{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "envmgr |pypi| |travis| |appveyor| |dockerautomated| |dockerpulls|\n=================================================================\n\nA cross-platform CLI client for `Environment\nManager `__\n\n.. figure:: https://github.com/trainline/envmgr-cli/raw/master/example.gif\n :alt: envmgr example\n\n\nInstall\n-------\n\n::\n\n pip install envmgr-cli\n\n\nSee `Configuration`_ for further install instructions.\n\n\nUsage\n-----\n\n*envmgr* is designed to provide an intuitive, human readable interface\naround the lower level `Environment Manager Python\nLibrary `__\n\nAll ``envmgr`` commands are exposed behind a set of verbs (*get* a\nstatus, *schedule* some downtime, *wait* for an ASG, etc). Verbs are\nalways the first value provided to ``envmgr`` and there is only ever one\nverb per command.\n\ndocopt\n^^^^^^\n\nThe cli interface is described in `docopt `__.\nThe easiest way to discover and understand the different usage patterns\navailable is to simply run\n\n::\n\n envmgr --help\n\nOutput\n^^^^^^\n\nBy default, ``envmgr`` commands will output a human friendly response\nuseful for testing single commands at a time. To help scripting or\nchaining results together, all commands also accept a ``--json``\nargument which will return the raw JSON response from Environment\nManager:\n\n::\n\n >> envmgr schedule asg my-asg on in prod\n Scheduled 1 instance in my-asg to: ON\n\n >> envmgr schedule asg my-asg on in prod --json\n {\"ChangedInstances\": [\"i-0afe2276909859130\"], \"ChangedAutoScalingGroups\": [\"my-asg\"]}\n\nExamples\n--------\n\n*In the examples below, assume that 'prod-1' is an environment, 'AwesomeService' is a\nservice and 'my-asg' is an ASG, all of which are already registered in\nEnvironment Manager.*\n\n.. code-block:: bash\n\n # Get the health status of all instances of AwesomeService, in all slices:\n envmgr get AwesomeService health in prod-1\n\n # Get the the active slice information for the AwesomeService service in prod-1 environment:\n envmgr get AwesomeService active slice in prod-1\n\n # Get the status of the my-asg ASG in the prod-1 environment. Status is calculated as an aggregate of all instances in the ASG:\n envmgr get asg my-asg status in prod-1\n\n # Get the schedule value set on the my-asg ASG in the prod-1 environment. Note this will tell you what the schedule is configured to - not the current state according to the schedule:\n envmgr get asg my-asg schedule in prod-1\n\n # Get the current status of the deployment with ID a2fbb0c0-ed4c-11e6-85b1-2b6d1cb68994:\n envmgr get deploy status a2fbb0c0-ed4c-11e6-85b1-2b6d1cb68994\n\n # Block and wait until the deployment with ID a2fbb0c0-ed4c-11e6-85b1-2b6d1cb68994 either succeeds or fails:\n envmgr wait-for deploy a2fbb0c0-ed4c-11e6-85b1-2b6d1cb68994\n\n # Block and wait until all instances in the ASG my-asg are ready fordeployment (In Service):\n envmgr wait-for asg my-asg in prod-1\n\n # Block and wait until the service AwesomeService is running with all healthchecks passing:\n envmgr wait-for healthy AwesomeService in prod-1\n\n # Set the schedule of the ASG my-asg in prod-1 to be off permanently until further notice:\n envmgr schedule asg my-asg off in prod-1\n\n # Publish the file build-22.zip as version 1.2.9 of AwesomeService:\n envmgr publish build-22.zip as AwesomeService 1.2.9\n\n # Deploy the published version 1.2.9 of AwesomeService into the prod-1 environment:\n envmgr deploy AwesomeService 1.2.9 in prod-1\n\n # Toggle the upstreams for AwesomeService in the prod-1 environment:\n envmgr toggle AwesomeService in prod-1\n\n # Get the Windows patch status for servers belonging to A-Team in prod-1:\n envmgr get A-team patch status in prod-1\n\n\n\nConfiguration\n-------------\n\nAuthentication\n^^^^^^^^^^^^^^\n\nAll calls to Environment Manager require authentication, which can be\nprovided in 1 of 2 ways.\n\nEither export your credentials as environment variables:\n\n::\n\n ENVMGR_USER=myusername\n ENVMGR_PASS=mypa$$word\n\nOr provide a ``--user`` and ``--pass`` value to each commad:\n\n::\n\n envmgr get MyService health in prod --user=\"sarah\" --pass=\"pa$$word\"\n\n*Note: It's recommended to only use this method in CI environments.*\n\nHost Config\n^^^^^^^^^^^\n\nThe hostname of your Environment Manager instance is configured\nsimilarly to your credentials:\n\nExport your hostname as an environment variable:\n\n::\n\n ENVMGR_HOST=environmentmanager.acme.com\n\nOr provide the hostname with each command:\n\n::\n\n envmgr get MyService health in prod --host=environmentmanager.acme.com\n\n\nDevelopment\n-----------\nTo install all test dependencies and run all tests, simply run:\n\n::\n\n python setup.py test [--adopts -v]\n\n\nFor convenience this is also available via the included `makefile`:\n\n::\n\n make test\n\n\nDocker\n------\n\nIf you want, you can use our automated container builds\n\nUsage\n^^^^^\n\n::\n\n docker run -it --rm \\\n -e ENVMGR_USER=user\n -e ENVMGR_PASS=password\n -e ENVMGR_HOST=foo.bar\n trainline/envmgr-cli:latest envmgr {YOUR_ARGS}\n\n\nExample\n^^^^^^^\n\n::\n\n ~$ docker run -it --rm trainline/envmgr-cli envmgr --version\n 1.9.1\n\n\nBuild\n^^^^^\n\n::\n\n docker build -t {YOUR_NAME}/envmgr-cli .\n\n\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/w50g5yb1fh4qh3rq/branch/master?svg=true\n :target: https://ci.appveyor.com/project/duncanhall/envmgr-cli/branch/master\n\n.. |travis| image:: https://travis-ci.org/trainline/envmgr-cli.svg?branch=master\n :target: https://travis-ci.org/trainline/envmgr-cli\n\n.. |pypi| image:: https://img.shields.io/badge/python-2.7%2C%203.4%2C%203.5%2C%203.6-blue.svg\n :target: https://pypi.python.org/pypi/envmgr-cli\n\n.. |dockerautomated| image:: https://img.shields.io/docker/automated/trainline/envmgr-cli.svg\n :target: https://hub.docker.com/r/trainline/envmgr-cli\n\n.. |dockerpulls| image:: https://img.shields.io/docker/pulls/trainline/envmgr-cli.svg\n :target: https://hub.docker.com/r/trainline/envmgr-cli\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "clingmerv", "package_url": "https://pypi.org/project/clingmerv/", "platform": "", "project_url": "https://pypi.org/project/clingmerv/", "project_urls": null, "release_url": "https://pypi.org/project/clingmerv/1.12.1/", "requires_dist": [ "docopt (~=0.6.2)", "simplejson (~=3.11.1)", "tabulate (~=0.7.7)", "future (~=0.16.0)", "semver (~=2.7.7)", "appdirs (~=1.4.3)", "progressbar2 (~=3.30.2)", "clingmerv-lib (==0.3.0)" ], "requires_python": "", "summary": "", "version": "1.12.1" }, "last_serial": 3207106, "releases": { "1.12.1": [ { "comment_text": "", "digests": { "md5": "fa66750b1b962983ffb082b0cd0b6937", "sha256": "e1d900edf9b9944dac4eaa247501d73a42724e02da8cfde52ef0d8954b34a29e" }, "downloads": -1, "filename": "clingmerv-1.12.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa66750b1b962983ffb082b0cd0b6937", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32988, "upload_time": "2017-09-27T13:27:48", "url": "https://files.pythonhosted.org/packages/ed/ec/ab8d963f5ab37545e3094f2f102323cc4ac104653a44661029c8883aff7b/clingmerv-1.12.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cf839e7263248740f82be8ca4e29ddf", "sha256": "732ff76543adb5a0153c8072ffd97d93fe315606f522de19d846fe39e7948950" }, "downloads": -1, "filename": "clingmerv-1.12.1.tar.gz", "has_sig": false, "md5_digest": "0cf839e7263248740f82be8ca4e29ddf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20180, "upload_time": "2017-09-27T13:27:50", "url": "https://files.pythonhosted.org/packages/0b/39/4fc681da04b97611ed3d72d04540546aa2652c2beae818ae5450ed9bfa20/clingmerv-1.12.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa66750b1b962983ffb082b0cd0b6937", "sha256": "e1d900edf9b9944dac4eaa247501d73a42724e02da8cfde52ef0d8954b34a29e" }, "downloads": -1, "filename": "clingmerv-1.12.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa66750b1b962983ffb082b0cd0b6937", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32988, "upload_time": "2017-09-27T13:27:48", "url": "https://files.pythonhosted.org/packages/ed/ec/ab8d963f5ab37545e3094f2f102323cc4ac104653a44661029c8883aff7b/clingmerv-1.12.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cf839e7263248740f82be8ca4e29ddf", "sha256": "732ff76543adb5a0153c8072ffd97d93fe315606f522de19d846fe39e7948950" }, "downloads": -1, "filename": "clingmerv-1.12.1.tar.gz", "has_sig": false, "md5_digest": "0cf839e7263248740f82be8ca4e29ddf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20180, "upload_time": "2017-09-27T13:27:50", "url": "https://files.pythonhosted.org/packages/0b/39/4fc681da04b97611ed3d72d04540546aa2652c2beae818ae5450ed9bfa20/clingmerv-1.12.1.tar.gz" } ] }