diff --git a/src/app/job/job.component.html b/src/app/job/job.component.html index a7536627842229aa6a151e0df30129212aa6b19a..7d417b6c1f5ad84e5c8e26221bcf4d715dbf21e4 100644 --- a/src/app/job/job.component.html +++ b/src/app/job/job.component.html @@ -1,93 +1,56 @@ -<mat-list-item> - <!--<mat-card-title>{{ jobdata.name }}</mat-card-title>--> - <div style="width: 100%"> - <div *ngIf="jobdata.connectionState == 0"> - <div gdAreas="name name name name| - status resources space buttons" - gdColumns="20% 60% auto 20%" - > - <div gdArea="name"> - {{ jobdata.name }} {{ jobdata.desc }} - </div> - <div gdArea="status"> - {{ jobdata.state }} - </div> - <div gdArea="buttons"> - <div fxLayout="row"> - <div fxFlex *ngIf="!nocancel"> - <button mat-button (click)="onCancel()" > - Cancel - </button> - </div> - <div fxFlex *ngIf="jobdata.state == 'RUNNING' && jobdata.app !== null && jobdata.app.client !== null"> - <button mat-button (click)="onConnect()"> - Connect - </button> - </div> - </div> - </div> - <div gdArea="resources"> - <div fxLayout="column"> - <div> - {{ resources }} - </div> - <div> - {{ timeremaining }} - </div> - </div> - </div> - - </div> -</div> -<!-- <table> - <tr> - <td width="100%"> - {{ jobdata.desc }} - </td> - <td width="20%"> - {{ jobdata.state }} - </td> - <td withdt="10%"> - <div *ngIf="!nocancel"> - <button mat-button (click)="onCancel()" > - Cancel - </button> - </div> - </td> - <td width="10%"> - <div *ngIf="available"> - <button mat-button (click)="onConnect()" [disabled]="busy"> - Connect - </button> - </div> - </td> - </tr> -</table> --> - <div *ngIf="jobdata.connectionState == 1"> - <div gdArea="status"> - Getting app parameters +<mat-list-item style="height: auto; width: auto"> + <div fxLayout="column" style="width: 100%"> + <div style="text-align: left"> {{ jobdata.name }} </div> + <div *ngIf="jobdata.connectionState == 0" fxLayout="row" fxLayoutAlign="space-between"> + <div fxFlex="10%"> {{ jobdata.state }} </div> + <div fxFlex="10%"> {{ jobdata.jobid }}</div> + <div fxFlex="10%"> {{ jobdata.batch_host }}</div> + <div fxFlex="20%" fxLayout="column"> + <div> {{ resources }} </div> + <div> {{ timeremaining }} </div> </div> - <div gdArea="resources"> - <mat-progress-bar mode="determinate" value=30></mat-progress-bar> + <div fxFlex></div> + <div fxFlex="10%" fxLayout="row"> + <div fxFlex *ngIf="!nocancel"> <button mat-button (click)="onCancel()" > Cancel </button> </div> + <div fxFlex *ngIf="jobdata.state == 'RUNNING' && jobdata.app !== null && jobdata.app.client !== null"> <button mat-button (click)="onConnect()"> Connect </button> </div> </div> </div> - <div *ngIf="jobdata.connectionState == 2"> - <div gdArea="status"> - Creating secure tunnels - </div> - <div gdArea="resources"> - <mat-progress-bar mode="determinate" value=60></mat-progress-bar> - </div> + <div fxLayout="row" *ngIf="jobdata.connectionState == 1"> + <div fxFlex="20%"> Getting app parameters </div> + <div fxFlex="80%"> <mat-progress-bar mode="determinate" value=30></mat-progress-bar> </div> </div> - - <div *ngIf="jobdata.connectionState == 3"> - <div gdArea="status"> - Determining correct URL - </div> - <div gdArea="resources"> - <mat-progress-bar mode="determinate" value=90></mat-progress-bar> - </div> + + <div fxLayout="row" *ngIf="jobdata.connectionState == 2"> + <div fxFlex="20%"> Creating secure tunnels </div> + <div fxFlex="80%"> <mat-progress-bar mode="determinate" value=60></mat-progress-bar> </div> + </div> + + <div fxLayout="row" *ngIf="jobdata.connectionState == 3"> + <div fxFlex="20%"> Determining correct URL </div> + <div fxFlex="80%"> <mat-progress-bar mode="determinate" value=90></mat-progress-bar> </div> </div> </div> </mat-list-item> + +<!--<mat-list-item> + <div fxLayout="column" fxLayoutAlign="space-around none" style="width: 100%; background-color: red"> + <div fxLayout="row" style="background-color: green"> + <div> + {{ jobdata.name }} + </div> + <div fxFlex> + </div> + </div> + <div *ngIf="jobdata.connectionState == 0" fxLayout="row" style="background-color: blue"> + <div> + {{ jobdata.state }} + </div> + <div></div> + <div fxLayout="column"> + <div> {{ resources }} </div> + <div> {{ timeremaining }} </div> + </div> + </div> + </div> +</mat-list-item>--> diff --git a/src/app/joblist/joblist.component.html b/src/app/joblist/joblist.component.html index fabe6c5f88097fd439f3555f0b6f96b9be138101..50cde8c15127d34bb1e442c979a03d166d68c673 100644 --- a/src/app/joblist/joblist.component.html +++ b/src/app/joblist/joblist.component.html @@ -3,9 +3,10 @@ </div>--> <div *ngIf="(identitySubject | async) !== null" > <mat-list> - <div *ngFor="let job of ((identitySubject | async).joblist | async)"> + <div *ngFor="let job of ((identitySubject | async).joblist | async) ; let lastItem = last"> <div *ngIf="job.state != 'Finished'"> <app-job [jobdata]=job></app-job> + <mat-divider></mat-divider> </div> </div> </mat-list> diff --git a/src/app/launcher/launcher.component.html b/src/app/launcher/launcher.component.html index e19f1d79f842ca026bbd04ca83e24013b89a0247..9cd5a2721b9539e702130150faf5fb4a323a8cf8 100644 --- a/src/app/launcher/launcher.component.html +++ b/src/app/launcher/launcher.component.html @@ -18,21 +18,22 @@ <div *ngFor="let id of (computeSitesService.appidentities | async)"> <mat-expansion-panel (opened)="selectId(id)"> <mat-expansion-panel-header> - <mat-panel-title> - <button mat-button style="width: 100%"> + <mat-panel-title> + + <!--<button mat-button style="width: 100%">--> <div fxLayout="row"> - <div style="width: 10px;"></div> + <div style="width: 20px;"></div> <div fxFlex fxLayout="column"> - <div style="height: 10px"></div> + <div style="height: 15px"></div> <span fxFlex matBadge="{{ (id.healthalerts | async).length }}" [matBadgeHidden]= "(id.healthalerts | async).length == 0" matBadgePosition="above before" - matBadgeColor="warn" style=" text-align: left"> + matBadgeColor="warn" style=" text-align: left" matBadgeOverlap="false" matBadgeSize="small"> {{ id.displayName() }} </span> </div> </div> - </button> + <!--</button>--> </mat-panel-title> </mat-expansion-panel-header> <app-strudelapplist [applist]=id.site.appCatalog [identity]="id" (appChange)="selectApp($event)"></app-strudelapplist> diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html index 93f7c3b39d4592b6cbc9e19cb6d05a9afb34db3c..41b3441c127652c1b036c3020d098c6193deaed1 100644 --- a/src/app/login/login.component.html +++ b/src/app/login/login.component.html @@ -1,4 +1,4 @@ - +<div fxLayout="column" style="height: 100%"> <mat-toolbar color="primary" style="width: 100%"> <mat-toolbar-row> <button mat-icon-button ><mat-icon>menu</mat-icon></button> @@ -7,11 +7,11 @@ <span class="fill-horizontal-space"></span> </mat-toolbar-row> </mat-toolbar> -<mat-sidenav-container style="height: 100%; width: 100%"> - <mat-sidenav> +<mat-sidenav-container fxFlex style=" width: 100%;"> + <mat-sidenav > </mat-sidenav> - <mat-sidenav-content> - <div fxFlex style="flex: 1 1 0%; box-sizing: border-box"> + <mat-sidenav-content style="height: 100%"> + <!--<div fxFlex style="flex: 1 1 0%; box-sizing: border-box">--> <div fxLayout="column" fxLayoutAlign="space-around stretch" style="height: 100%; width: 100%" > <div fxLayout="row"> <div fxFlex></div> @@ -41,6 +41,7 @@ <div fxFlex></div> <button mat-icon-button routerLink="/settings"><mat-icon>settings</mat-icon></button> </div> - </div> + <!--</div>--> </mat-sidenav-content> </mat-sidenav-container> +</div> diff --git a/src/app/tes.service.ts b/src/app/tes.service.ts index 9a633270e9b4c143a7c40edbd8800016413be9b2..c597dd3c3ea24571d141ee7abcc35d65130089b2 100644 --- a/src/app/tes.service.ts +++ b/src/app/tes.service.ts @@ -156,7 +156,7 @@ public setStatusMsg(statusMsg: BehaviorSubject<any>) { } joblist = joblist.sort((a,b) => (a.jobid < b.jobid)? 1:-1); identity.joblist.next(joblist); - this.statusMsg.next(null); + //this.statusMsg.next(null); } private getBatchInterfaceError(error: any) { @@ -379,6 +379,7 @@ addUserHealth(identity,resp) { params.set('cmd',JSON.stringify(job.app.paramscmd)); let paramstr = params.toString(); job.connectionState = 1; + console.log('in getAppInstance'); this.http.get<string>(this.Base+'/appinstance/'+username+'/'+loginhost+'/'+batchhost+'/'+jobid+'?'+paramstr, options) // .pipe(catchError(this.handleError)) .subscribe(resp => { job.appinst = resp; this.createTunnel(job) }, @@ -512,9 +513,13 @@ private httperror(errorstr: string) { private handleAppInstanceError(job: Job, error: any) { + console.log('in handle app instance error'); + console.log(error); job.connectionState=0; if (error.error !== undefined && error.error.message !== undefined) { this.statusMsg.next(error.error.message); + } else if (error.error !== undefined && error.error.error !== undefined) { + this.statusMsg.next(error.error.error.msg); } else { this.statusMsg.next(error); } diff --git a/src/assets/config/computesites.json b/src/assets/config/computesites.json index b5d8b970625330a96faeb93941a5a0b303a61b9c..205b513cc81e8cd99917adc5c0ebcd6e78d2a081 100644 --- a/src/assets/config/computesites.json +++ b/src/assets/config/computesites.json @@ -1,8 +1,8 @@ [ { - "url": "http://localhost:5000/", + "url": "https://strudel2-api-dev.cloud.cvl.org.au/m3/", "name": "M3", - "host": "m3-login2.massive.org.au", + "host": "m3-login1.massive.org.au", "dtn": "m3-dtn1.massive.org.au", "cafingerprint": "RSA SHA256:cmDxHrZQSPlBMUUcI/BWmruXho1XOzfXPDHSqVTwV2I", "appCatalog": [], diff --git a/src/assets/config/m3apps.dev.json b/src/assets/config/m3apps.dev.json index 17bd3ec0c25650c6cc917cf1b19530f12a24f7ef..5f470b6ef9dc42d5e1d51475e69d87e495b33387 100644 --- a/src/assets/config/m3apps.dev.json +++ b/src/assets/config/m3apps.dev.json @@ -1,8 +1,8 @@ [ { "url": null, "name": "Desktop", - "startscript": "#!/bin/bash\n/usr/local/sv2/dev/desktop/desktop.slurm\n ", - "paramscmd": "/usr/local/sv2/dev/desktop/params.py", + "startscript": "#!/bin/bash\n#SBATCH -w m3a002\n/usr/local/sv2/dev/desktop/desktop.slurm\n ", + "paramscmd": "/usr/local/sv2/dev/desktop/params.py {jobid}", "client": {"cmd": null, "redir": "vnc.html?password={password}" }, "localbind": true, "applist": null diff --git a/src/assets/config/m3apps.json b/src/assets/config/m3apps.json index c8baa3b4e43b6335b567b32b6b34bd767b802c00..2918d2dd7c9cea41a5b48c05acc77f65010252b5 100644 --- a/src/assets/config/m3apps.json +++ b/src/assets/config/m3apps.json @@ -1,8 +1,8 @@ [ { "url": null, "name": "Desktop", - "startscript": "#!/bin/bash\n/usr/local/sv2/desktop/desktop.slurm\n ", - "paramscmd": "/usr/local/sv2/desktop/params.py", + "startscript": "#!/bin/bash\n#SBATCH -w m3a002\n/usr/local/sv2/dev/desktop/desktop.slurm\n ", + "paramscmd": "/usr/local/sv2/dev/desktop/params.py {jobid}", "client": {"cmd": null, "redir": "vnc.html?password={password}" }, "localbind": true, "applist": null