Intergrated Testing - SimonZsx/clipper GitHub Wiki
json
file
The File name
in form of: appname.json
e.g. imagequery.json
Fields
appname
The identifiers for the APP to be deployed, not necessary to be the same as the file name
num_containers
supportSwarm
Either True or False
images
Lists of the name of the images; each system should have a separate list
build_path
Path of the scripts to build the images; each system should have one sub-entry
- Note that in the scripts, it is recommended to use the absolute path, so that these scripts can be run both with the launcher or manually
frontendServerPath
The path to the executable files to deploy the applications; each system should have one sub-entry
frontendServerArgs
What arguments should be appended to the command to start the application; each system should have on sub-entry although some of them may not need any arguments
e.g. To start the imagequery, the entire commands is
python3 /clipper/clipper_admin/imagequery.py --dag /clipper/applications/imagequery_w_proxy/dag_formatted
Thus, one may add the entry
"withProxy": "/clipper/clipper_admin/imagequery.py"
with in the frontendServerPath
field, and add
"withProxy": "--dag /clipper/applications/imagequery_w_proxy/dag_formatted"
with in the frontendServerArgs
field.
frontendClientPath
Path to the client; each system should have one sub-entry although some may not need it
frontendClientParams
Arguments following the command to start the client and the enquire; each system should have one sub-entry
We recommend you that for each system, the four entries("ip", "port", "system" and "worker") may be specified, though for certain systems, the values of all the four entries are left as empty
arguments
--appName
or -n
Specifying the name; this should correspond to the name of the json files
--mode
or -m
Specifying in which system the app is going to run.
Note that the system (or to say, the mode) here should have one sub-entry in each field in the json file except for the appName
, num_containers
and supportSwarm
ones
--network
or --net
Specifying which network to run the APPs. It should be either localhost
or swarm
--refresh
or -r
A flag to determine whether the launcher should re-build the images to be deployed.
Program procedure
Storing testing results
After the above procedure is done, the performance will be analysed. The data will be printed and stored in the /clipper/process_log/
directory, as a *.log
file. The output is encoded with the ASCII standard.
You may also specify the containers which you would like to see the output from when the procedure is about to finish and asking you enter the container names. You will expect to find them all in /clipper/process_log/
Note that in usual cases, the python scripts to stop the applications will be executed automatically after the log is retrieved, analysed and stored. If you want to bypass it, you may have to change the source code in clipper/launcher.py