...
S.No | Command Name | Command text | Description | ||||
---|---|---|---|---|---|---|---|
1. | deploy | marvincli deploy config-file=<marvin-config-file> EX: marvincli deploy config-file=setup/dev/advanced.cfg | Deploys a data center under CS. Args:
| ||||
2. | generatepis<fromspecfile> | marvincli generateapis api-spec-file= <api-spec-file> folder-path=<path where the output cloudstackAPI information is dumped> EX: marvincli generateapis api-spec-file=/etc/cloud/cli/commands.xml folder-path=tools/marvin/marvin/ | Generates the CloudStack API directory containing CS api information references, which is further used by marvin when making api calls to CS. It uses /etc/cloud/cli/commands.xml to generate these. Args:
Note: This currently, is generated as part of mvn profile, with this we can remove the particular mvn profile. | ||||
3. | generatepis<fromendpoint> | marvincli generateapis end-point=<CS Endpoint ip> folder-path=<path where the output cloudstackAPI information is dumped> EX: marvincli generateapis end-point=localhost folder-path=tools/marvin/marvin/ | Generates the CloudStack API directory containing CS api information references, which is further used by marvin when making api calls to CS. Host ip of CS machine, is used to retrieve this information. Args:
Note: This currently, is generated as part of mvn profile, with this we can remove the particular mvn profile. | ||||
4. deployandruntcs | deploydc_and_runtest | marvincli deployandruntcs deploydc_and_runtest config-file=<path_to_marvin_cfg> tc-path=<test suite or test case folder path> zone=<name of the zone> hyp-type=<hypervisor_type> EX: marvincli deployandruntcs deploydc_and_runtest config-file=setup/dev/advanced.cfg tc-path=test/integration/smoke zone=sandbox-siumulator hyp-type=simulator tc-path=test/integration/smoke required-hardware=Falsefalse | Deploys a datacenter "and" runs test cases as well. Args:
| ||||
5. | --cli-help | marvincli --h (or) marvincli --cli-help | Prints the marvincli help. Its commands usage and args information in colored text. | ||||
6. | --version | marvincli --v (or) marvincli --version
| Prints the marvincli version information, as similar to marvin version information. | ||||
7.buildandinstall | build_and_install | marvincli setup-file=<mvn-setup.py file path> version=<marvin version> EX: marvincli setup-file=tools/marvin/mvn-setup.py version=4.5.1 | Builds and install marvin. Args: *1.setup-file: path to setup.py file *2. version: version to be used for marvin building, typically the CS version | build_and_install cs-folder-path=<cloudstack code root dir > api-spec-file=<api spec file generated by CS EX: /etc/cloud/cli/commands.xml> EX: marvincli build_and_install cs-folder-path=/root/cs-4.5/cloudstack/ api-spec-file=EX: /etc/cloud/cli/commands.xml | Builds and install marvin. It uses api spec file EX: /etc/cloud/cli/commands.xml file to build cs apis, used for marvin reference and then installs marvin. Args: *1. cs-folder-path : CS code root folder path EX: /root/cs-4.5/cloudstack/ 2. api-spec-file: api spec file generated by CS EX: /etc/cloud/cli/commands.xml Note : api-spec-file is not a mandatory field. If nothing is provided, it will use /etc/cloud/cli/commands.xml | ||
8. | sync_and_install | marvincli sync_and_install cs-folder-path=<cloudstack code root dir > end-point=<CS installed host ip> EX: marvincli sync_and_install cs-folder-path=/root/cs-4.5/cloudstack/ end-point=localhost
| Builds and install marvin. Its the same as previous command except that it uses an installed CS endpoint to generate apis, build and install marvin instead. EX: /etc/cloud/cli/commands.xml file to build cs apis, used for marvin reference and then installs marvin. Args: *1. cs-folder-path : CS code root folder path EX: /root/cs-4.5/cloudstack/ 2. end-point: CS installed host ip EX: localhost Note : end-point is not a mandatory field. If nothing is provided, it will use localhost | ||||
9. | runtest | marvincli runtest config-file=<path_to_marvin_config> tc-path=<path to test case suite or test suite directory> zone=<name of zone> hyp-type=<xenserver or kvm or vmware> required_hardware=<true\false> EX: marvincli runtest config-file=setup/dev/advanced.cfg tc-ath=test/integration/smoke zone=sandbox-siumulator hyp-type=simulator required-hardware=false | Runs a single test suite or list of suites, mentioned either smoke or component mentioned with below options. Args:
|
Sample Workflow:
This will help take few marvin facilities easily from cli, printing its help and using it from cli iteself, with out looking at wikis and other information required.
Currently, there are few mvn profiles under tools/marvin/pom.xml, viz., marvin.sync, marvin.setup,marvin.test etc which are dealing with marvin building,usage etc. These usages are available through mvn commands through its profiles. We can now remove these profiles and decouple these usages of marvin from mvn, instead use the above cli commands for ease and maintenance.