## 2. VSCode setup
1. Install [Visual Studio Code](https://code.visualstudio.com/) and start it up
-1. Vscode: go to `Extensions` ![](images/Extensions.png)
- 1. search for `remote development` and install the Remote Development extension pack from Microsoft
-1. Vscode: On the left side bar, choose `Remote explorer`
- 1. In the drop down, choose `SSH targets`
- 1. Click `Add new`
+1. Vscode: On the left sidebar, select `Extensions` ![](images/Extensions.png)
+ 1. In `Search Extensions in Marketplace` enter "remote development".
+ 1. Choose and install the "Remote Development" extension pack from Microsoft
+1. Vscode: On the left sidebar, choose `Remote Explorer` ![](images/RemoteExplorer.png)
+ 1. At the top of the Remote Explorer panel choose `SSH targets` ![](images/SSHTargets.png)
+ 1. Click `Add New` ![](images/AddNew.png)
1. Enter the `ssh shell…` command line you used in the previous section, step 1.4.1
- 1. Right click the ssh target in the list and select “connect to host in current window`
-1. Vscode: go to `Extensions`
- 1. Search for `benten` and install `CWL (Rabix/Benten)`
- 1. Choose `Install extension on the remote ssh host`
-1. Vscode: On the left side bar, choose `Explorer`
- 1. Select `Clone Repository` and then enter [https://github.com/arvados/arvados-vscode-cwl-training](https://github.com/arvados/arvados-vscode-cwl-training)
- 1. Choose `Open`
+ 1. If it asks you `Select SSH configuration file to update` choose the first one in the list.
+ 1. Right click the newly added ssh target in the list and select “connect to host in current window`
+ 1. If it asks `Select platform of the remote host` select `Linux`.
+1. Vscode: On the left sidebar, go back to `Extensions` ![](images/Extensions.png)
+ 1. Search for "benten" and install `CWL (Rabix/Benten)`
+ 1. You should see a message `Extension is enabled on 'SSH: ...' and disabled locally.`
+1. Vscode: On the left sidebar, choose `Explorer` ![](images/Explorer.png)
+ 1. Select `Clone Repository` and enter [https://github.com/arvados/arvados-vscode-cwl-training](https://github.com/arvados/arvados-vscode-cwl-training), then click `Open`
+ 1. If asked `Would you like to open the cloned repository?` choose `Open`
1. Go to Arvados Workbench
1. Workbench: In the user menu, select `Current token`
1. Vscode: Click on the `Terminal` menu
1. Click `Run process`
1. This should take you to a panel showing the workflow run status
1. Workbench: workflow run status panel
- 1. Click on the three vertical dots in the top-right corner
+ 1. Wait for the badge in the upper right to say `Completed`
+ 1. In the lower panel, double click on the `echo` workflow step
+ 1. This will take you to the status panel for the `echo` step
+ 1. Click on the three vertical dots in the top-right corner next to `Completed`
1. Choose `Log`
- 1. Under `event type` choose `stdout`
+ 1. This will take you to the log viewer panel
+ 1. Under `Event Type` choose `stdout`
1. You should see your message
## 4. Working with input and output files
1. Click `Run Task…`
1. Select `Register or update CWL workflow on Arvados Workbench`
1. Go to your desktop
- 1. Using a text editor such as notepad, create a file "message.txt"
- 1. Enter a message like "Hello world" and save
+ 1. Right click on the desktop, select `New > Text Document`
+ 1. Name the file `message`
+ 1. Enter a message like "Hello earth" and save
1. Workbench: Go to `+NEW` and select `New project`
1. Enter a name for the project like "Lesson 2"
1. You should arrive at the panel for the new project
1. Arvados workbench: With `Lesson 2` project selected
1. Click on +NEW and select `New collection`
- 1. Call the collection "my message"
+ 1. For Collection Name enter "my message"
1. Drag and drop `message.txt` into the browser
1. Click `Create a collection`
1. The file should be uploaded and then you will be on the collection page
1. Click on the dot menu
1. Choose `Outputs`
1. Right click on `reverse.txt`
- 1. Click on `Download`
- 1. Open the downloaded file. It should have your results.
+ 1. Click on `Open in new tab`
+ 1. The results should be visible in a new browser tab.
## 5. Register a workflow with default inputs
The default value for the `message` parameter will taken from the `lesson3/defaults.yaml` file
+1. Vscode: Click on the `lesson3/main.cwl` file
+ 1. Click on the `Terminal` menu
+ 1. Click `Run Task…`
+ 1. Select `Register or update CWL workflow on Arvados Workbench`
1. Workbench: Go to `+NEW` and select `New project`
1. Enter a name for the project like "Lesson 3"
1. You should arrive at the panel for the new project
1. The results of this run will appear in the terminal when the run completes.
1. Workbench: Paste the workflow identifier into the search box
1. This will take you to the status page for this workflow
+
+
+## Notes
+
+If you need to change something about the environment of the user on
+the remote host (for example, the user has been added to a new unix
+group) you need to restart the vscode server that runs on the remote
+host. Do this in vscode:
+
+ctrl+shift+p: `Remote-SSH: Kill VS Code Server on Host`
+
+This is because the vscode server remains running on the remote host
+even after you disconnect, so exiting/restarting vscode on the desktop
+has no effect.