User Tools

Site Tools


scenario_file_format

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
scenario_file_format [2019/11/28 16:18] – [Grammar] mimbertscenario_file_format [2023/08/29 15:29] (current) – Add example of passive keyword in new syntax cmorin
Line 12: Line 12:
 ====== Grammar ====== ====== Grammar ======
  
-We're progressively adding new capabilities to the CorteXlab platform. There is now two different syntaxes for the scenario file, the legacy syntax, where commands are run on the nodes, and the new syntax, where docker containers are run on the nodes. Both syntaxes are allowed, even in the same scenario, but only one syntax is allowed per-node.+We're progressively adding new capabilities to the CorteXlab platform. There is now two different syntaxes for the scenario file, the legacy syntax, where commands are run on the nodes, and the new syntax, where [[docker|docker]] containers are run on the nodes. Both syntaxes are allowed, even in the same scenario, but only one syntax is allowed per-node.
  
 The scenario.yaml file is structured as follows: The scenario.yaml file is structured as follows:
Line 21: Line 21:
       * which //MUST// contain **//ONLY ONE//** of the following:       * which //MUST// contain **//ONLY ONE//** of the following:
         * **(new syntax)** a ''container'' key, value pair, whose value is a mapping with the following key, value pairs:         * **(new syntax)** a ''container'' key, value pair, whose value is a mapping with the following key, value pairs:
-          * ''image'' //MANDATORY// a string, the docker image name+          * ''image'' //MANDATORY// a string, the name of the docker image, which must be accessible on a public docker repository (such as the docker hub). See [[docker images]]
           * ''command'' //OPTIONAL// a string, the command to run in the container, which overrides the image default command (see https://docs.docker.com/engine/reference/run/#cmd-default-command-or-options https://docs.docker.com/engine/reference/builder/#cmd)           * ''command'' //OPTIONAL// a string, the command to run in the container, which overrides the image default command (see https://docs.docker.com/engine/reference/run/#cmd-default-command-or-options https://docs.docker.com/engine/reference/builder/#cmd)
           * ''exec'' //OPTIONAL// a string or array of strings: additionnal commands which are executed in the container (see https://docs.docker.com/engine/reference/commandline/exec/)           * ''exec'' //OPTIONAL// a string or array of strings: additionnal commands which are executed in the container (see https://docs.docker.com/engine/reference/commandline/exec/)
Line 34: Line 34:
       * which //MAY// contain a ''passive'' key, value pair, whose value is a boolean (default is ''false''). A minus task will terminate when the first of the following conditions occur: its //duration// is exceeded or all its //active// nodes terminate.       * which //MAY// contain a ''passive'' key, value pair, whose value is a boolean (default is ''false''). A minus task will terminate when the first of the following conditions occur: its //duration// is exceeded or all its //active// nodes terminate.
  
-An example scenario (new syntax): +An example scenario (new syntax):<code>
- +
-<code>+
 description: Example of new syntax with docker containers description: Example of new syntax with docker containers
 duration: 120 duration: 120
Line 42: Line 40:
   node3:   node3:
     container:     container:
-    - image: m1mbert/cxlb-toolchain:firsttry +    - image: m1mbert/cxlb-gnuradio-3.8:1.0 
-    - image: m1mbert/cxlb-toolchain:firsttry+    - image: m1mbert/cxlb-gnuradio-3.8:1.0
       command: /usr/sbin/sshd -p 2223 -D       command: /usr/sbin/sshd -p 2223 -D
   node4:   node4:
     container:     container:
       image: m1mbert/openbts-xenial:1.1       image: m1mbert/openbts-xenial:1.1
-</code> +    passive: true 
- +</code>Note that in this example, on node3, two containers are instanciated, based on the same image. The first container does not specify a ''command'', so the default command of the image is used, which is an ssh daemon listening on port 2222. The second container overrides the default command with an ssh daemon listening on port 2223 (if we try to instanciate two identical containers from this image, both ssh daemons will try to bind to port 2222 and the second one will fail)
-An example scenario (old syntax):+
  
-<code>+An example scenario (old syntax):<code>
 description: Dummy scenario example description: Dummy scenario example
 duration: 60 duration: 60
scenario_file_format.1574954311.txt.gz · Last modified: 2019/11/28 16:18 by mimbert

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki