summaryrefslogtreecommitdiffstats
path: root/docs/part-2/1_xds-server/3_how-to-run.md
diff options
context:
space:
mode:
authorJohann CAHIER <johann.cahier@iot.bzh>2018-10-09 10:45:08 +0200
committerJohann CAHIER <johann.cahier@iot.bzh>2018-10-11 13:38:39 +0200
commitbbbe9c168526bbb729022f9de903aff5690b328d (patch)
treee20b465e03d23d4c85a62dbfbc2aa1d8f8c13a4f /docs/part-2/1_xds-server/3_how-to-run.md
parent48374d29bcc3bcf2b055b49d56eac49247772271 (diff)
Improves documentation
* Describes better available source tree sharing method (between xds-agent and xds-server), and which to prefer depending on the deployment setup. * Gives indication about how to pass RSYNC_TARGET and RSYNC_PREFIX env vars to the helloworld-native-application build process. * Swap chapter order (build before config) Change-Id: Ie4c22f277a59b0405744d71b0fadff67c5d5d025 Signed-off-by: Johann CAHIER <johann.cahier@iot.bzh>
Diffstat (limited to 'docs/part-2/1_xds-server/3_how-to-run.md')
-rw-r--r--docs/part-2/1_xds-server/3_how-to-run.md198
1 files changed, 198 insertions, 0 deletions
diff --git a/docs/part-2/1_xds-server/3_how-to-run.md b/docs/part-2/1_xds-server/3_how-to-run.md
new file mode 100644
index 0000000..4e56f3f
--- /dev/null
+++ b/docs/part-2/1_xds-server/3_how-to-run.md
@@ -0,0 +1,198 @@
+# How to run
+
+`xds-server` has been designed to easily compile and debug
+[AGL](https://www.automotivelinux.org/) applications. That's why `xds-server` has
+been integrated into AGL SDK docker container.
+
+>**Note:** For more info about AGL SDK docker container, please refer to
+[AGL SDK Quick Setup](http://docs.automotivelinux.org/docs/getting_started/en/dev/reference/setup-sdk-environment.html)
+
+## Start xds-server
+
+There are several way to install xds-server and start-up depend of installation type:
+
+| Installation type | Supported<br> host OS | Start-up | Install instructions |
+|-------------------|-------------------------|---------------------------------------------------|----------------------|
+| Docker container | Linux or MacOS | Automatic based on systemd user service | [see Installation based on Docker container](../../part-1/1-1_install-xds-server-docker.html) |
+| Virtual Machine | Linux, MacOS or Windows | Automatic based on systemd user service | [see Installation based on VirtualBox appliance](../../part-1/1-2_install-xds-server-vm.html) |
+| Native | Linux | Automatic based on systemd user service or manual | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
+| Native | MacOS or Windows | Manually | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
+
+### Automatic start-up based on systemd user service
+
+XDS server is started as a user service by Systemd.
+
+```bash
+/usr/lib/systemd/user/xds-server.service
+```
+
+Use well-known systemd commands to control `xds-server.service` service.
+
+```bash
+# Enter in docker container or VM
+# (optional, depending on installation type)
+ssh -p 2222 devel@localhost
+
+# Status XDS server:
+systemctl --user status xds-server
+
+# Restart XDS server
+systemctl --user restart xds-server
+```
+
+If needed you can change default setting by defining specific environment
+variables file
+
+```bash
+ssh -t -p 2222 devel@localhost vim /etc/default/xds-server
+```
+
+For example to control log level, just set LOG_LEVEL env variable.
+
+knowing that supported *level* are:
+
+- panic
+- fatal
+- error
+- warn
+- info
+- debug
+
+```bash
+docker exec ${CONTAINER_NAME} bash -c "echo 'LOG_LEVEL=debug' >> /etc/default/xds-server"
+ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server"
+```
+
+### Manual start-up
+
+On **Linux or MacOS**, simply execute `xds-server` executable:
+
+```bash
+/opt/AGL/bin/xds-server
+```
+
+On **Windows**, simply execute `xds-server` executable:
+
+```batch
+C:\AGL\bin\xds-server.exe
+```
+
+<!-- section-note -->
+**Note:**
+
+Invoke `xds-server --help` to get more details about possible options that allow
+for example to change logging level or select another configuration file.
+
+<!-- end-section-note -->
+
+## XDS server REST API and Web application
+
+`xds-server` exposes a REST API and serves a basic web-application.
+
+REST API based url is `http://localhost:8000/api/v1/` when XDS server is
+running on your host (localhost) and basic web-application is available at
+[http://localhost:8000](http://localhost:8000).
+
+Just replace `localhost` by the host name or ip when `xds-server` is running
+on another host.
+
+```bash
+# Get version using REST API
+curl http://localhost:8000/api/v1/version
+
+# Open browser and local xds-server web-application
+xdg-open http://localhost:8000
+```
+
+Then follow instructions provided on this page to install and start `xds-agent`
+that must run locally on your machine.
+
+See also [xds-agent documentation](../2_xds-agent/0_abstract.html) for more details.
+
+## SDK cross-toolchain Management
+
+### Setup to add support of a new SDK family
+
+<!-- section-note -->
+**Optional step**: read this chapter only if you plan to add a new SDK family.
+<!-- end-section-note -->
+
+`xds-server` dynamically detects supported SDKs by scanning sub-directories of
+`sdkScriptsDir` directory (see [Configuration chapter](2_config.html)).
+
+Each sub-directory (usually name is the same as the SDK family) of `sdkScriptsDir`
+must contain a set of scripts that will be called by `xds-server` to managed SDKs
+of a specific family.
+
+These scripts are:
+
+- `add`: used to add/install a new SDK
+- `db-dump`: returned the list of available and installed SDKs (JSON format)
+- `db-update`: update SDKs database
+- `get-family-config`: returned SDK family configuration structure (JSON format)
+- `get-sdk-info`: extract SDK info (JSON format) from a SDK file/tarball
+- `remove`: used to remove an existing SDK
+
+For example, here 2 SDKs family (`agl` and `zephyr`) are defined:
+
+```bash
+# > tree ./sdks/
+./sdks/
+├── agl
+│ ├── add
+│ ├── db-dump
+│ ├── db-update
+│ ├── get-family-config
+│ ├── get-sdk-info
+│ └── remove
+├── README.md
+└── zephyr
+ ├── add
+│ ├── db-dump
+│ ├── db-update
+│ ├── get-family-config
+│ ├── get-sdk-info
+ └── remove
+```
+
+On startup `xds-server` will call in order:
+
+- `sdks/*/get-family-config` to get configuration of each SDK family.
+- `sdks/*/db-update` to update database (only when `SdkDbUpdate` is set to ̀`startup`,
+ see [Configuration chapter](2_config.html) for more details)
+- `sdks/*/db-dump` scripts to get the initial list of available and installed SDKs.
+
+Please refer to `sdks/README.md` for more information about scripts definition
+and to understand how to add support of a new SDK family.
+
+### Install a new SDK
+
+Please refer to [Installing AGL SDKs](../../part-1/3_install-sdks.html) chapter.
+
+### Un-install a SDK from command line
+
+Used `sdks` command of `xds-cli` tool to managed SDKs.
+
+```bash
+# List installed SDKs
+xds-cli sdks ls
+List of installed SDKs:
+ ID NAME STATUS VERSION ARCH
+ c39e5998 poky-agl_aarch64_4.0.1 Installed 4.0.1 aarch64
+ d610bfbf poky-agl-aarch64.current_on_iotbzh_download-3.99.1+snapshot Installed 3.99.1+snapshot aarch64.current_on_iotbzh_download
+ a0ae663d poky-agl-corei7-64-3.99.1+snapshot Installed 3.99.1+snapshot corei7-64
+ 87f0400b AGL-release-dab-3.99.3-m3ulcb-nogfx Installed 3.99.3 aarch64
+ 352c0584 poky-agl-corei7-64-3.99.2+snapshot Installed 3.99.2+snapshot corei7-64
+ d65fe750 AGL-release-eel-latest-qemux86-64 Installed 4.99.5 corei7-64
+
+# Un-install a SDK
+xds-cli sdks uninstall d65fe750
+SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully deleted.
+```
+
+### Un-install a SDK from XDS Dashboard
+
+Open XDS-Dashboard in web-browser and select `SDKs` entry in left side menu.
+
+If needed, switch to `BASIC SDKS VIEW` view and click on trash icon located
+in the top-right corner of SDK card.