dcos-568 verify that Marathon 0.8.0 or later is installed
DCOS Command Line Interface
The DCOS Command Line Interface (CLI) is a command line utility that provides a user-friendly yet powerful way to manage DCOS installations.
Dependencies
- git must be installed and on the
system path in order to fetch packages from 
gitsources. - virtualenv must be installed and on the system path in order to install subcommands.
 
Setup
Make sure you meet requirements for installing packages
Clone git repo for the dcos cli:
git clone git@github.com:mesosphere/dcos-cli.gitChange directory to the repo directory:
cd dcos-cliMake sure that you have virtualenv installed. If not type:
sudo pip install virtualenvCreate a virtualenv and packages for the dcos project:
make env make packagesCreate a virtualenv for the dcoscli project:
cd cli make env
Configure Environment and Run
sourcethe setup file to add thedcoscommand line interface to yourPATHand create an empty configuration file:source bin/env-setup-devConfigure Marathon, changing the values below as appropriate for your local installation:
dcos config set marathon.host localhost dcos config set marathon.port 8080 dcos config append package.sources https://github.com/mesosphere/universe/archive/master.zip dcos config set package.cache /tmp/dcos dcos package updateGet started by calling the DCOS CLI help:
dcos help
Running Tests
Setup
Tox, our test runner, tests against both Python 2.7 and Python 3.4 environments.
If you're using OS X, be sure to use the officially distributed Python 3.4 installer since the Homebrew version is missing a necessary library.
To support subcommand integration tests, you'll need to clone, package and configure your environment to point to the packaged dcos-helloworld account.
- Check out the dcos-helloworld project
 cd dcos-helloworldmake packages- Set the 
DCOS_TEST_WHEELenvironment variable to the path of the created wheel package:export DCOS_TEST_WHEEL=$(pwd)/dist/dcos_helloworld-0.1.0-py2.py3-none-any.whl 
Running https://github.com/mesosphere/dcos-cli/blob/master/bin/publish_to_pypi.sh#######
Tox will run unit and integration tests in both Python environments using a temporarily created virtualenv.
You should ensure DCOS_CONFIG is set and that the config
file points to the Marathon instance you want to use for integration
tests. If you're happy to use the default test configuration which
assumes there is a Marathon instance running on localhost, set
DCOS_CONFIG as follows:
export DCOS_CONFIG=$(pwd)/tests/data/dcos.toml
There are two ways to run tests, you can either use the virtualenv
created by make env above:
make test
Or, assuming you have tox installed (via
sudo pip install tox):
tox
Other Useful Commands
List all of the supported test environments:
tox --listenvsRun a specific set of tests:
tox -e <testenv>Run a specific integration test module:
tox -e py27-integration /cli/test_config.py
Releasing
Releasing a new version of the DCOS CLI is only possible through an automated TeamCity build which is triggered automatically when a new tag is added.
The tag is used as the version number and must adhere to the conventional PEP-440 version scheme.
Once all tests pass successfully, the automated build publishes two packages to PyPI using the publish_to_pypi.sh script:
These packages are now available to be installed by the DCOS CLI installation script in the mesosphere/install-scripts repository.
Using the CLI
Detailed help and usage information is available through the
dcos help command and for specific subcommands through
dcos <subcommand> --help.
Full documentation is available for the DCOS CLI on the Mesosphere docs website.