You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by li...@apache.org on 2020/09/30 09:45:45 UTC
[submarine] branch master updated: SUBMARINE-635. [WEB] Add sync
code to experiment UI
This is an automated email from the ASF dual-hosted git repository.
liuxun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git
The following commit(s) were added to refs/heads/master by this push:
new bd7578c SUBMARINE-635. [WEB] Add sync code to experiment UI
bd7578c is described below
commit bd7578cc28f8280f9170938d4469fcc965e24a89
Author: kobe860219 <ko...@gmail.com>
AuthorDate: Mon Sep 28 16:34:46 2020 +0800
SUBMARINE-635. [WEB] Add sync code to experiment UI
### What is this PR for?
Before pod starting, need to clone git-repo to /code/current.
And disable some routerlink to WIP page.
### What type of PR is it?
[Feature]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-635
### How should this be tested?
https://travis-ci.org/github/kobe860219/submarine/builds/730755150
### Screenshots (if appropriate)
![螢幕錄製 2020-09-28 下午1](https://user-images.githubusercontent.com/48027290/94395240-d330ab80-0191-11eb-874a-82c0bc6febaf.gif)
![120136838_966648427146981_8787822419064498915_n](https://user-images.githubusercontent.com/48027290/94423735-abeed400-01bb-11eb-9839-7fd8909c5a4e.png)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: kobe860219 <ko...@gmail.com>
Closes #414 from kobe860219/SUBMARINE-635 and squashes the following commits:
b336097 [kobe860219] SUBMARINE-635. [WEB] Add sync code to experiment UI
94e1207 [kobe860219] SUBMARINE-635. [WEB] Add sync code to experiment UI
189f531 [kobe860219] SUBMARINE-635. [WEB] Add sync code to experiment UI
10d2a64 [kobe860219] SUBMARINE-635. [WEB] Add sync code to experiment UI
31ec7f0 [kobe860219] SUBMARINE-635. [WEB] Add sync code to experiment UI
---
.../apache/submarine/integration/experimentIT.java | 1 +
.../src/app/interfaces/experiment-spec.ts | 6 ++++++
.../workbench/environment/environment.component.html | 3 ++-
.../experiment-customized-form.component.html | 20 ++++++++++++++++++++
.../experiment-customized-form.component.scss | 2 +-
.../experiment-customized-form.component.ts | 16 +++++++++++++---
.../workbench/experiment/experiment.component.html | 3 ++-
.../app/pages/workbench/manager/manager.component.ts | 12 ++++++------
.../pages/workbench/notebook/notebook.component.html | 3 ++-
9 files changed, 53 insertions(+), 13 deletions(-)
diff --git a/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java b/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
index 8051ea6..ef2057b 100644
--- a/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
+++ b/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
@@ -72,6 +72,7 @@ public class experimentIT extends AbstractSubmarineIT {
" --learning_rate=0.01 --batch_size=150",
"apache/submarine:tf-mnist-with-summaries-1.0",
"ENV_1", "ENV1");
+ pollingWait(By.xpath("//input[@id='git-repo']"), MAX_BROWSER_TIMEOUT_SEC).sendKeys("https://github.com/apache/submarine.git");
Assert.assertTrue(experimentPage.getGoButton().isEnabled());
experimentPage.goButtonClick();
diff --git a/submarine-workbench/workbench-web-ng/src/app/interfaces/experiment-spec.ts b/submarine-workbench/workbench-web-ng/src/app/interfaces/experiment-spec.ts
index 64524bb..fb9eedb 100644
--- a/submarine-workbench/workbench-web-ng/src/app/interfaces/experiment-spec.ts
+++ b/submarine-workbench/workbench-web-ng/src/app/interfaces/experiment-spec.ts
@@ -44,8 +44,14 @@ export interface Specs {
};
}
+export interface Code {
+ syncMode: string;
+ url: string;
+}
+
export interface ExperimentSpec {
meta: ExperimentMeta;
environment: EnvironmentSpec;
spec: Specs;
+ code: Code;
}
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/environment/environment.component.html b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/environment/environment.component.html
index b61942c..aa8a84d 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/environment/environment.component.html
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/environment/environment.component.html
@@ -22,7 +22,8 @@
<div id="environmentOuter">
<nz-breadcrumb>
<nz-breadcrumb-item>
- <a [routerLink]="['/', 'workbench', 'home']">Home</a>
+ <!--<a [routerLink]="['/', 'workbench', 'home']">Home</a>-->
+ <a>Home</a>
</nz-breadcrumb-item>
<nz-breadcrumb-item>
<a [routerLink]="['/', 'workbench', 'environment']">environment</a>
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.html b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.html
index 5d85b7a..6f9ffe4 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.html
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.html
@@ -99,6 +99,24 @@
<nz-option *ngFor="let namespace of nameSpaceList" [nzValue]="namespace" [nzLabel]="namespace"></nz-option>
</nz-select>
</div>
+ <div *ngIf="ADVANCED" class="single-field-group">
+ <label for="git-repo">
+ Git repository
+ </label>
+ <nz-input-group [nzSuffix]="suffixTemplateInfo">
+ <input
+ nz-input
+ type="text"
+ name="git-repo"
+ id="git-repo"
+ placeholder="https://github.com/apache/submarine.git"
+ formControlName="gitRepo"
+ />
+ </nz-input-group>
+ <ng-template #suffixTemplateInfo>
+ <i nz-icon nz-tooltip nzTitle="Copy git repo to /code/current in container." nzType="info-circle"></i>
+ </ng-template>
+ </div>
<div *ngIf="ADVANCED">
<ul formArrayName="envs" class="list-container">
<ng-container *ngFor="let env of envs.controls; index as i">
@@ -130,6 +148,7 @@
<button nz-button id="env-btn" style="display: block; margin: auto;" nzType="primary" (click)="onCreateEnv()">
Add new environment variable
</button>
+ <br />
</div>
</div>
<div *ngSwitchCase="1" id="secondStep">
@@ -262,6 +281,7 @@
{{ item.value.resources }}
</nz-descriptions-item>
</div>
+ <nz-descriptions-item nzTitle="Git repository">{{ finialExperimentSpec.code.url }}</nz-descriptions-item>
</nz-descriptions>
</div>
</div>
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.scss b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.scss
index a158387..01fd3f4 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.scss
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.scss
@@ -112,7 +112,7 @@ textarea.ng-invalid.ng-touched {
margin-right: 1.5rem;
}
}
- & input, nz-select, textarea {
+ & input, nz-select, nz-input-group, textarea {
flex: 0 0 48%;
}
}
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
index ac322f7..048cedd 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
@@ -19,7 +19,7 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
-import { EnvironmentSpec, ExperimentMeta, ExperimentSpec, Specs } from '@submarine/interfaces/experiment-spec';
+import { EnvironmentSpec, ExperimentMeta, ExperimentSpec, Specs, Code } from '@submarine/interfaces/experiment-spec';
import { ExperimentFormService } from '@submarine/services/experiment.form.service';
import { ExperimentService } from '@submarine/services/experiment.service';
import { ExperimentValidatorService } from '@submarine/services/experiment.validator.service';
@@ -88,7 +88,8 @@ export class ExperimentCustomizedFormComponent implements OnInit, OnDestroy {
cmd: new FormControl('', [Validators.required]),
image: new FormControl(this.defaultImage, [Validators.required]),
envs: new FormArray([], [this.experimentValidatorService.nameValidatorFactory('key')]),
- specs: new FormArray([], [this.experimentValidatorService.nameValidatorFactory('name')])
+ specs: new FormArray([], [this.experimentValidatorService.nameValidatorFactory('name')]),
+ gitRepo: new FormControl(null, [])
});
// Bind the component method for callback
@@ -164,6 +165,9 @@ export class ExperimentCustomizedFormComponent implements OnInit, OnDestroy {
get specs() {
return this.experiment.get('specs') as FormArray;
}
+ get gitRepo() {
+ return this.experiment.get('gitRepo');
+ }
/**
* Reset properties in parent component when the form is about to closed
@@ -340,10 +344,16 @@ export class ExperimentCustomizedFormComponent implements OnInit, OnDestroy {
image: this.image.value
};
+ const code: Code = {
+ syncMode: 'git',
+ url: this.gitRepo.value
+ };
+
const newExperimentSpec: ExperimentSpec = {
meta: meta,
environment: environment,
- spec: specs
+ spec: specs,
+ code: code
};
return newExperimentSpec;
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment.component.html b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment.component.html
index 21b11a4..4436cef 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment.component.html
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment.component.html
@@ -22,7 +22,8 @@
<div id="experimentOuter">
<nz-breadcrumb>
<nz-breadcrumb-item>
- <a [routerLink]="['/', 'workbench', 'home']">Home</a>
+ <!--<a [routerLink]="['/', 'workbench', 'home']">Home</a>-->
+ <a>Home</a>
</nz-breadcrumb-item>
<nz-breadcrumb-item>
<a [routerLink]="['/', 'workbench', 'experiment']" (click)="isInfo = false">experiment</a>
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/manager/manager.component.ts b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/manager/manager.component.ts
index 6612041..935b192 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/manager/manager.component.ts
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/manager/manager.component.ts
@@ -41,8 +41,8 @@ export class ManagerComponent implements OnInit {
description: 'You can check the user, delete the user, lock and unlock the user, etc.',
breadCrumb: [
{
- title: 'Home',
- routerLink: '/workbench/home'
+ title: 'Home'
+ //routerLink: '/workbench/home'
},
{
title: 'manager'
@@ -57,8 +57,8 @@ export class ManagerComponent implements OnInit {
description: 'System Dict Manager',
breadCrumb: [
{
- title: 'Home',
- routerLink: '/workbench/home'
+ title: 'Home'
+ //routerLink: '/workbench/home'
},
{
title: 'manager'
@@ -73,8 +73,8 @@ export class ManagerComponent implements OnInit {
description: 'System Department Manager',
breadCrumb: [
{
- title: 'Home',
- routerLink: '/workbench/home'
+ title: 'Home'
+ //routerLink: '/workbench/home'
},
{
title: 'manager'
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/notebook/notebook.component.html b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/notebook/notebook.component.html
index 906ae47..a7ffdd1 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/notebook/notebook.component.html
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/notebook/notebook.component.html
@@ -22,7 +22,8 @@
<div id="notebookOuter">
<nz-breadcrumb>
<nz-breadcrumb-item>
- <a [routerLink]="['/', 'workbench', 'home']">Home</a>
+ <!--<a [routerLink]="['/', 'workbench', 'home']">Home</a>-->
+ <a>Home</a>
</nz-breadcrumb-item>
<nz-breadcrumb-item>
<a [routerLink]="['/', 'workbench', 'notebook']">Notebook</a>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org