{ "info": { "author": "Amalgam8 Team", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [], "description": "Amalgam8 Command Line Interface (CLI)\r\n=====================================\r\n\r\nCommand-line tool for Amalgam8 (http://www.amalgam8.io/).\r\n\r\nInstallation\r\n------------\r\n\r\nTo install the Amalgam8 CLI:\r\n\r\n.. code:: bash\r\n\r\n sudo pip install git+https://github.com/amalgam8/a8ctl #install from github repo. Preferred.\r\n\r\nor\r\n\r\n.. code:: bash\r\n\r\n sudo pip install a8ctl # from pypi\r\n sudo pip install a8ctl== # for specific version, e.g., pip install a8ctl==0.1.8\r\n\r\nFor usage information, run the following command:\r\n\r\n.. code:: bash\r\n\r\n a8ctl -h\r\n\r\nCommands\r\n--------\r\n\r\n.. code:: bash\r\n\r\n a8ctl service-list\r\n\r\n a8ctl route-list\r\n a8ctl route-set [--default ] [--selector \"(\" (weight \"=\" | user \"=\" | header \"=\" \":\" ) \")\"]*\r\n a8ctl route-delete \r\n\r\n a8ctl action-list\r\n a8ctl action-add [--source [\":\" ]] [--destination ] [--header \":\" ]* [--cookie \"=\" ]* [--action \"(\" \"->\" (delay \"=\" | abort \"=\" ) \")\"]* [--priority ]\r\n a8ctl rule-delete \r\n\r\n a8ctl traffic-start [--amount ]\r\n a8ctl traffic-step [--amount ]\r\n a8ctl traffic-abort \r\n\r\nExamples\r\n--------\r\n\r\n.. code::\r\n\r\n $ a8ctl service-list\r\n +-------------+---------------------+\r\n | Service | Instances |\r\n +-------------+---------------------+\r\n | reviews | v1(1), v2(1), v3(1) |\r\n | productpage | v1(1) |\r\n | ratings | v1(1) |\r\n | helloworld | v1(2), v2(2) |\r\n | details | v1(1) |\r\n +-------------+---------------------+\r\n\r\n $ a8ctl route-set productpage --default v1\r\n Set routing rules for productpage productpage\r\n\r\n $ a8ctl route-set helloworld --default v1 --selector 'v2(weight=0.25)'\r\n Set routing rules for microservice helloworld\r\n \r\n $ a8ctl route-set reviews --default v1 --selector 'v2(user=\"frankb\")' --selector 'v3(user=\"shriram\")'\r\n Set routing rules for microservice reviews\r\n \r\n $ a8ctl route-list\r\n +-------------+-----------------+---------------------------------------+\r\n | Service | Default Version | Version Selectors |\r\n +-------------+-----------------+---------------------------------------+\r\n | productpage | v1 | |\r\n | reviews | v1 | v2(user=\"frankb\"), v3(user=\"shriram\") |\r\n | ratings | | |\r\n | details | | |\r\n | helloworld | v1 | v2(weight=0.25) |\r\n +-------------+-----------------+---------------------------------------+\r\n \r\n $ a8ctl action-add --source reviews:v2 --destination ratings --cookie user=jason --action 'v1(1->delay=7)'\r\n Set action rule for destination ratings\r\n \r\n $ a8ctl action-add --source productpage:v1 --destination reviews --cookie user=jason --header Foo:bar --action 'v2(0.5->delay=5)' --action 'v2(1->abort=400)' --priority 15\r\n Set action rule for destination reviews\r\n\r\n $ a8ctl action-list\r\n +-------------+----------------+-------------------------------+----------+----------------------------------------+--------------------------------------+\r\n | Destination | Source | Headers | Priority | Actions | Rule Id |\r\n +-------------+----------------+-------------------------------+----------+----------------------------------------+--------------------------------------+\r\n | reviews | productpage:v1 | Foo:bar, Cookie:.*?user=jason | 15 | v2(0.5->delay=5.0), v2(1.0->abort=400) | 4ccad0c9-277f-49ae-89be-d900cf66a24d |\r\n | ratings | reviews:v2 | Cookie:.*?user=jason | 10 | v1(1.0->delay=7.0) | e76d79e6-8b3e-45a7-87e7-674480a92d7c |\r\n +-------------+----------------+-------------------------------+----------+----------------------------------------+--------------------------------------+ \r\n\r\n $ a8ctl rule-delete e76d79e6-8b3e-45a7-87e7-674480a92d7c\r\n Deleted rule with id: e76d79e6-8b3e-45a7-87e7-674480a92d7c\r\n \r\n $ a8ctl traffic-start reviews v2\r\n Transfer starting for reviews: diverting 10% of traffic from v1 to v2 \r\n $ a8ctl traffic-step reviews\r\n Transfer step for reviews: diverting 20% of traffic from v1 to v2 \r\n $ a8ctl traffic-step reviews --amount 40\r\n Transfer step for reviews: diverting 40% of traffic from v1 to v2 \r\n ...\r\n $ a8ctl traffic-step reviews\r\n Transfer step for reviews: diverting 90% of traffic from v1 to v2 \r\n $ a8ctl traffic-step reviews\r\n Transfer complete for reviews: sending 100% of traffic to v2\r\n \r\n $ a8ctl traffic-start reviews v2\r\n Transfer starting for reviews: diverting 10% of traffic from v1 to v2 \r\n $ a8ctl traffic-abort reviews\r\n Transfer aborted for reviews: all traffic reverted to v1\r\n\r\nContributing\r\n------------\r\nProposals and pull requests will be considered.\r\nPlease see the https://github.com/amalgam8/amalgam8.github.io/blob/master/CONTRIBUTING.md file for more information.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/amalgam8/a8ctl", "keywords": null, "license": "Apache Software License V2", "maintainer": null, "maintainer_email": null, "name": "a8ctl", "package_url": "https://pypi.org/project/a8ctl/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/a8ctl/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/amalgam8/a8ctl" }, "release_url": "https://pypi.org/project/a8ctl/0.4/", "requires_dist": null, "requires_python": null, "summary": "Amalgam8 Command Line Interface", "version": "0.4" }, "last_serial": 2422481, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2532cd3a661e4ef80f6b1b75e86a35ff", "sha256": "cc05ad6d6adb8daa9c7ac0c83812c1d61d387402cc92043e14f8c73e88b3ee20" }, "downloads": -1, "filename": "a8ctl-0.1.tar.gz", "has_sig": false, "md5_digest": "2532cd3a661e4ef80f6b1b75e86a35ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2356, "upload_time": "2016-06-08T21:16:03", "url": "https://files.pythonhosted.org/packages/77/66/06dd7b3277d2b221e138220e4b8e0a15cf7ed1a237822f453c043bd39ec7/a8ctl-0.1.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "8e52e093ab66f46bc1b64aed50676084", "sha256": "ae72638e850c22dbd2518134eb593a9c5a4741032b9985cd0e4c7637c7991352" }, "downloads": -1, "filename": "a8ctl-0.1.8.tar.gz", "has_sig": false, "md5_digest": "8e52e093ab66f46bc1b64aed50676084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8581, "upload_time": "2016-07-06T16:28:16", "url": "https://files.pythonhosted.org/packages/4e/b7/a03635085891cf63081f6d928d0aecae1554bb6f59544bf7f3095f9467cc/a8ctl-0.1.8.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8a0132a2771a98de484215d59e4e316b", "sha256": "bd5b1a8dc53745efa4820e3ef3ac4457d1680cbbb67a057635ab62d696c8ee6f" }, "downloads": -1, "filename": "a8ctl-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8a0132a2771a98de484215d59e4e316b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16582, "upload_time": "2016-07-22T17:03:24", "url": "https://files.pythonhosted.org/packages/8d/09/bc87a9171bae3c97600e515a7fc81f44e18edfd49c5f5e8a0eb4a6abbd5a/a8ctl-0.2.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "753f15da2c7faf66d5d2c565bed80b7e", "sha256": "18a8e9fc2efac1d2e09a3f6e0f379d91930264986a716d08f1e61a5dfeccc47b" }, "downloads": -1, "filename": "a8ctl-0.3.tar.gz", "has_sig": false, "md5_digest": "753f15da2c7faf66d5d2c565bed80b7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21841, "upload_time": "2016-09-17T16:46:56", "url": "https://files.pythonhosted.org/packages/e2/9e/224ef06233a7fe843db7ff62df411c4f7ef5ac70bed2cfeb2354d3c76a2f/a8ctl-0.3.tar.gz" } ], "0.4": [] }, "urls": [] }