With this change, we need to specify the imports in pyinstaller spec file, so leave as is.
DC/OS Command Line Interface =========================== The DC/OS Command Line Interface (CLI) is a cross-platform command line utility that provides a user-friendly yet powerful way to manage DC/OS installations.
Installation and Usage
If you're a user of DC/OS, please follow the installation instructions. Otherwise, follow the instructions below to set up your development environment.
Detailed help and usage information is available through the
dcos help command and for specific subcommands through
dcos <subcommand> --help.
Additional documentation for the CLI and for the DC/OS in general is available in the Mesosphere docs.
Parsing CLI Output
The CLI outputs either whitespace delimited tables which can be
processed by all of your favourite Unix/Linux tools like sed, awk and
grep, or text formatted as JSON when using the --json
flag.
If using JSON, you can combine it with the powerful jq utility. The example below installs every package available in the DC/OS repository:
dcos package search --json | jq '.[0].packages[].name' | xargs -L 1 dcos package install --yes
Using the CLI without DC/OS --------------------------
You may optionally configure the DC/OS CLI to work with open source Mesos and Marathon by setting the following properties:
dcos config set core.mesos_master_url http://<mesos-master-host>:5050
dcos config set marathon.url http://<marathon-host>:8080
Note that the DC/OS CLI has tight integration with DC/OS and certain functionality may not work as expected or at all when using it directly with Mesos and Marathon.
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.
- win_bash must be installed if you are running this in Windows in order to run setup scripts from the Makefiles.
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 the CLI, changing the values below as appropriate for your local installation of DC/OS:
dcos config set core.dcos_url http://dcos-ea-1234.us-west-2.elb.amazonaws.comGet started by calling the DC/OS CLI help:
dcos help
Running Tests
Setup
Tox, our test runner, tests against both Python 2.7 and Python 3.4
environments. We have a set of tests in the dcos package
(root directory) and in the dcoscli package
(cli directory). When running the tests describe below
change directory to one of those two and follow the instructions.
Running
Tox will run unit and integration tests in both Python environments using a temporarily created virtualenv.
You can set DCOS_CONFIG to a config file that points to
a DC/OS cluster you want to use for integration tests. This defaults to
~/.dcos/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 py34-integration /test_config.py
Releasing
Releasing a new version of the DC/OS 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 DC/OS CLI installation script in the mesosphere/install-scripts repository.