{ "info": { "author": "Apache Mesos", "author_email": "dev@mesos.apache.org", "bugtrack_url": null, "classifiers": [], "description": "=========\nmesos-cli\n=========\n\n**This project has been deprecated and is no longer being actively maintained. Please use the** `DCOS CLI`_.\n\nCLI tools to work with mesos.\n\n-----------------------------\nWhat problem does this solve?\n-----------------------------\n\nI am comfortable debugging programs from the command line. I have a set of tools that I use from coreutils that end up being used every day. A day doesn't go by when I've not used grep, find, or cat.\n\nWhile mesos allows you to treat all the nodes in your data center as anonymous resources, debugging still needs to be done on specific hosts. Currently, it requires multiple tools and context switches to gather the pieces that you need to look at what a specific task is doing. Most of these existing tools don't work well with the command line and I'm unable to use the workflow that I've become comfortable with.\n\n--------------------------\nHow is the problem solved?\n--------------------------\n\nTo solve the problem, some of the coreutil commands have been re-implemented to work across the entire data center instead of a single host.\n\n- commands and options have been copied as closely as it makes sense. They should have the same options that you're used to.\n- pipe works the way you'd expect it to. You should be able to replace most host specific debug scripts easily.\n- mesos itself isn't required locally. Developers want to debug their tasks without having a local copy of mesos installed.\n- everything is task centric. There's no need to worry about specifying a framework if you don't want to, just put in the task id.\n- lazy matching. Task IDs are long and normally require cut/paste to get exact matches. Instead, all `task` parameters are partial matches, no need to type that long thing in.\n- auto-complete. Most parameters tab-complete (see the section on auto-completion to configure), just type a couple characters in and get what you're looking for.\n- extensibility. Write your own subcommands. Most of the required information can be accessed via. existing subcommands (leading master resolution via. mesos-resolve), so you only need to implement what you want and not re-invent the wheel.\n\n-------\nInstall\n-------\n\nNote that if you've already installed `mesos` locally, you can either install this to a location other than `/usr/local/bin` via. pip options or remove `/usr/local/bin/mesos`. There should be no downsides to just removing it.\n\nFrom PyPI:\n\n.. code-block:: bash\n\n pip install mesos.cli\n\nFrom this repo:\n\n.. code-block:: bash\n\n python setup.py install\n\n------------------\nCreate Environment\n------------------\n\n.. code-block:: bash\n\n make env\n source env/bin/activate\n\n-----\nBuild\n-----\n\n.. code-block:: bash\n\n python setup.py build\n\n----\nTest\n----\n\n.. code-block:: bash\n\n make test\n\n-------------------\nCommand Completion\n-------------------\n\nTask IDs? File names? Complete all the things! Configure command completion and you'll be able to tab complete most everything.\n\n+++++\nBASH\n+++++\n\nAdd the following to your startup scripts:\n\n.. code-block:: bash\n\n complete -C mesos-completion mesos\n\n++++\nZSH\n++++\n\nAdd the following to your `.zshrc`:\n\n.. code-block:: bash\n\n source mesos-zsh-completion.sh\n\nNote that `bashcompinit` is being used. If you're running an older version of ZSH, it won't work. Take a look at `bin/mesos-zsh-completion.sh` for information.\n\n-------------\nConfiguration\n-------------\n\nPlace a configuration file at any of the following:\n\n.. code-block:: bash\n\n ./.mesos.json\n ~/.mesos.json\n /etc/.mesos.json\n /usr/etc/.mesos.json\n /usr/local/etc/.mesos.json\n\nYou can override the location of this config via. `MESOS_CLI_CONFIG`.\n\nIf you're using a non-local master, you'll need to configure where the master should be found like so:\n\n.. code-block:: bash\n\n mesos config master zk://localhost:2181/mesos\n\nAlternatively, you can create the config file yourself.\n\n.. code-block:: json\n\n {\n \"profile\": \"default\",\n \"default\": {\n \"master\": \"zk://localhost:2181/mesos\",\n \"log_level\": \"warning\",\n \"log_file\": \"/tmp/mesos-cli.log\"\n }\n }\n\nNote that master accepts all values that mesos normally does, eg:\n\n.. code-block:: bash\n\n localhost:5050\n zk://localhost:2181/mesos\n file:///path/to/config/above\n\n+++++++++\nProfiles\n+++++++++\n\nWant to access multiple mesos clusters without changing config? You're in luck!\n\nTo change your profile, you can run:\n\n.. code-block:: bash\n\n mesos config profile new-profile\n\nThe old config will be maintained and can be switched back to at any point.\n\n+++++++++++++++\nConfig Options\n+++++++++++++++\n\n.. code-block:: json\n\n {\n // Show stack traces on keyboard interrupt\n \"debug\": \"false\",\n\n // Path to where you'd like the log file\n \"log_file\": None,\n\n // Log level to use.\n \"log_level\": \"warning\",\n\n // Location of your master, this can be any of the values that mesos\n // supports which includes the following:\n // localhost:5050\n // zk://localhost:2181/mesos\n // file:///path/to/config\n \"master\": \"localhost:5050\",\n\n // Scheme to use when connecting to mesos, can be either http or https\n \"scheme\": \"http\"\n }\n\n========\nCommands\n========\n\nAll commands have their own options and parameters. Make sure you run `mesos [command] --help` to get the potential options.\n\nMost commands take a `task-id` as parameter. This does not need to be an exact match and for commands where it makes sense, can match multiple tasks. Suppose your cluster is running the following tasks:\n\n hadoop.myjob.12345-1928731\n\n rails.48271236-1231234\n\n app-10.89934ht-2398hriwuher\n\n app-20.9845uih-9823hriu-2938u422\n\n- A task-id of `app` will match both app-10 and app-20.\n- A task-id of `myjob` will only match the hadoop task.\n- A task-id of `1231234` will only match the rails task.\n\n---\ncat\n---\n\n.. code-block:: bash\n\n mesos cat task-id file [file]\n\n------\nevents\n------\n\n.. code-block:: bash\n\n mesos events\n\nobserve events from the cluster. You will see the events occurring on the master and all slaves in the cluster (including new slaves as they arrive) as they occur.\n\n----\nfind\n----\n\n.. code-block:: bash\n\n mesos find task-id [path]\n\nWhen multiple tasks match task-id, headers will be printed between their results.\n\n----\nhead\n----\n\n.. code-block:: bash\n\n mesos head -n 10 task-id file [file]\n\n--\nls\n--\n\n.. code-block:: bash\n\n mesos ls task-id [path]\n\nThe default view is `ls -la`. When multiple tasks match task-id, headers will be printed between their results.\n\n--\nps\n--\n\n.. code-block:: bash\n\n mesos ps\n\nOutput time, memory, cpu, command, user and slave/task_id information for currently running tasks.\n\n---\nscp\n---\n\n.. code-block:: bash\n\n mesos scp file [file ...] remote_path\n\nUpload local file(s) to the remote_path on every slave. Note that you will need to have SSH access to every slave you'd like to upload to.\n\n---\nssh\n---\n\n.. code-block:: bash\n\n mesos ssh task-id\n\nThis will SSH into the sandbox of the specified task on the slave that it is running on. Note that you need to have SSH access to this slave/sandbox.\n\n----\ntail\n----\n\n.. code-block:: tail\n\n mesos tail -n 10 task-id file [file]\n\nThis also implements follow. Unlike normal tail, it will look for tasks/files being created on your mesos cluster and begin to follow those files as they are written to. You can start tail in --follow mode and then launch your tasks to watch everything has it happens.\n\n===============\nAdding Commands\n===============\n\nCommands are all separate scripts. The `mesos` script inspects your path and looks for everything that starts with `mesos-`. To add a new command, just name the script `mesos-new-name` and you'll have a new command. This makes it possible to write new sub-commands in whatever language you'd like.\n\nThere are some utils that are nice to have when you're doing a new command. While all of them are available in python via. this package, a subset is available via. existing commands. This allows you to focus on the new functionality you'd like in your command (in the language you're comfortable with).\n\n------\nconfig\n------\n\n.. code-block:: bash\n\n mesos config [key] [value]\n\n\nOutput a json object containing all the mesos-cli config or you can get/set specific values in the configuration.\n\n-------\nresolve\n-------\n\n.. code-block:: bash\n\n mesos resolve [master-config]\n\nTake either the existing configured master or the one passed on the command line and discover where the leading master is. You'll be able to use the following format:\n\n.. code-block:: bash\n\n localhost:5050\n zk://localhost:2181/mesos\n file:///path/to/config/above\n\n-----\nstate\n-----\n\n.. code-block:: bash\n\n mesos state [slave-id]\n\nReturn the full JSON state of either the master or slave (partial matches are valid).\n\n=======\nTesting\n=======\n\nThere are two ways to do testing. If you'd like to just test with your local setup:\n\n python setup.py nosetests\n\nFor a full virtualenv + specific python versions (py26, py27), you can use tox:\n\n tox\n\n.. _`DCOS CLI`: https://github.com/mesosphere/dcos-cli", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/mesos.cli", "keywords": "mesos", "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "mesos.cli", "package_url": "https://pypi.org/project/mesos.cli/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mesos.cli/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/mesos.cli" }, "release_url": "https://pypi.org/project/mesos.cli/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Mesos CLI Tools", "version": "0.1.5" }, "last_serial": 4227047, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "b01e0a60286e99dad2477615630e73ff", "sha256": "f3bb1514deb82d3ba1fb7b10d917b2ed47f06e2c4c32ce76ed4a0be84091cb5d" }, "downloads": -1, "filename": "mesos.cli-0.0.0-py2.7.egg", "has_sig": false, "md5_digest": "b01e0a60286e99dad2477615630e73ff", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 60887, "upload_time": "2014-08-04T20:31:21", "url": "https://files.pythonhosted.org/packages/7a/b9/8ccef842de68ecd811eccfd43c22801eaace59852c51307ee276ef0328e6/mesos.cli-0.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "76b342a0e45c93f121cc0e19ca1ecb59", "sha256": "c5b0b9771b5ca8f78ea3fb2cf9f80812d2a3ee06b63e3422f8c94ea8fa3c2239" }, "downloads": -1, "filename": "mesos.cli-0.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "76b342a0e45c93f121cc0e19ca1ecb59", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 36047, "upload_time": "2014-07-16T23:57:35", "url": "https://files.pythonhosted.org/packages/9c/ad/40a323706d9fa51200360e6897de6d1cab8c262c769bd264f19a29cbd165/mesos.cli-0.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6121d20c0e8a84a7a0b8e13aed284b9d", "sha256": "1ee6b1f734fa7207123b03d4c3eb1521f604289ec063c01faf30a6fab9ef1419" }, "downloads": -1, "filename": "mesos.cli-0.0.0.tar.gz", "has_sig": false, "md5_digest": "6121d20c0e8a84a7a0b8e13aed284b9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17232, "upload_time": "2014-08-04T20:31:06", "url": "https://files.pythonhosted.org/packages/d0/52/dc9d310f426fffb58ff230993637193305e25054207b34b5d66c7a807169/mesos.cli-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c72c0819f7b6d2afd13860bcb7a73065", "sha256": "bbf384f67804b545c84c11706b884b460dadb6e76fa9ec4390085dcb19aeb925" }, "downloads": -1, "filename": "mesos.cli-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "c72c0819f7b6d2afd13860bcb7a73065", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 68774, "upload_time": "2014-08-08T00:39:25", "url": "https://files.pythonhosted.org/packages/8d/e0/2963f8dd174444f5c88dafad630c97f5a3132c4631a4f9673d11ca2bdf56/mesos.cli-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c1e5de17c67bb8616fe82b1768f7bba4", "sha256": "c24a4570c072eb19c32be47d1bd448537585d12a83080b77c280d7692993a7d2" }, "downloads": -1, "filename": "mesos.cli-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c1e5de17c67bb8616fe82b1768f7bba4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 41886, "upload_time": "2014-08-08T00:39:28", "url": "https://files.pythonhosted.org/packages/c5/81/aac1fba46aa7fe68f2c2a41de1300f12a10efc290a3d353f6daed268ae62/mesos.cli-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6fe103dff8a0104b1145219092cf5b6", "sha256": "91eed90b31c4f7d5aa848c7c22745d11afcb91e2a5b61024484e7bbbcec4964b" }, "downloads": -1, "filename": "mesos.cli-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b6fe103dff8a0104b1145219092cf5b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18216, "upload_time": "2014-08-08T00:39:21", "url": "https://files.pythonhosted.org/packages/8e/b3/a2253abe96360cefb21d732dcae329050a7c3391f586a18fd39b0de0858e/mesos.cli-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "93b8fd2ce7188b793c5a232d7d1d30e2", "sha256": "5bb12a7c8a806b9c09425f49317620ba560da0a6b220c5f6d3e85b70c973a409" }, "downloads": -1, "filename": "mesos.cli-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "93b8fd2ce7188b793c5a232d7d1d30e2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 70963, "upload_time": "2014-08-08T22:07:24", "url": "https://files.pythonhosted.org/packages/d0/a6/bfca0ce793f5577bf17ab685d739b214177e3a77637fcb9cd2730aa1e059/mesos.cli-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0bbca5d417a1fd33fe8233e1a2d9a241", "sha256": "91eb5bb26d8ba82fbacb220541700c883c0764f74347b290fe91173944c02354" }, "downloads": -1, "filename": "mesos.cli-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0bbca5d417a1fd33fe8233e1a2d9a241", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 42963, "upload_time": "2014-08-08T22:07:26", "url": "https://files.pythonhosted.org/packages/31/9f/1189f76facbad028e20aaa0a26eb16a01c3222d419a7b6e46eb6c77242c1/mesos.cli-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f5f4039fce9dce19293ebcf79e49c9a", "sha256": "2629184c0d92c7e0b0d2993e88cf70625d3f3a5527be363efad8cd43d339939d" }, "downloads": -1, "filename": "mesos.cli-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1f5f4039fce9dce19293ebcf79e49c9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18903, "upload_time": "2014-08-08T22:07:22", "url": "https://files.pythonhosted.org/packages/69/0d/5831c0f66e7903ff9a807e37fe90096a9f851c1033d4094b6f47611c56c4/mesos.cli-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "323a4441d905abf4a6af8062de04edd2", "sha256": "af8839d46ab6f062b8c5f727d2b03d27b1145c4b661d90167e393ce3c7213df9" }, "downloads": -1, "filename": "mesos.cli-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "323a4441d905abf4a6af8062de04edd2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 71383, "upload_time": "2014-08-19T16:22:33", "url": "https://files.pythonhosted.org/packages/31/a6/08686a8210a3325a7078ffe12d2e944fb53950cb55be6d57c28a0f064393/mesos.cli-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2cb53b573a8ddb56ebc132cec4fc403a", "sha256": "d86ad91a4a5fd3681e02b7d3835c4e59e504febe7af4901928cb5fd905032b41" }, "downloads": -1, "filename": "mesos.cli-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "2cb53b573a8ddb56ebc132cec4fc403a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43148, "upload_time": "2014-08-19T16:22:36", "url": "https://files.pythonhosted.org/packages/12/59/be97db038513ed8e9edff239a9a7928f7c4ce342b1dd33aafbe306ac77fd/mesos.cli-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83a6163c99cc6a544b75d647b5565bc2", "sha256": "31c4aee4b66517e26ce64ce150ac3e2745010e99fcb7c06bf11238ceb7e4d9b7" }, "downloads": -1, "filename": "mesos.cli-0.1.2.tar.gz", "has_sig": false, "md5_digest": "83a6163c99cc6a544b75d647b5565bc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19095, "upload_time": "2014-08-19T16:22:30", "url": "https://files.pythonhosted.org/packages/5b/56/87a48a6d842721613ff44fdc1f857aaef1f4ba0b58f10992295686ff2c36/mesos.cli-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "00b6647fe02506af7f914a8c9e31f3cd", "sha256": "421ac83cc63fa5bc348f1858e58bedc7ac80b38fe72914c4ede85f1e8a8f9ad0" }, "downloads": -1, "filename": "mesos.cli-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "00b6647fe02506af7f914a8c9e31f3cd", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 72592, "upload_time": "2014-09-04T21:08:17", "url": "https://files.pythonhosted.org/packages/13/14/7766245f5c10e5633057dd67bda47a51acbd7b275e2e0b73886f79aa29b2/mesos.cli-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "a3670fe5cbd5025e5bbf7e522754a798", "sha256": "4e25c19d3731d77c2a6db905b432e7259231066904ae7ce0ab8a700bc415d1d6" }, "downloads": -1, "filename": "mesos.cli-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "a3670fe5cbd5025e5bbf7e522754a798", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43994, "upload_time": "2014-09-03T23:44:39", "url": "https://files.pythonhosted.org/packages/4a/2c/63cb7ee3c4a95c3b60ef0d0cedd40307310d6e91e0b80657c39b92023ad6/mesos.cli-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c51dd68c671808a8bdb7c230a232a1b", "sha256": "36a55a512ffd4ab80d5058e52229ffe836c0294eca863d65e520abc724607fdb" }, "downloads": -1, "filename": "mesos.cli-0.1.3.tar.gz", "has_sig": false, "md5_digest": "9c51dd68c671808a8bdb7c230a232a1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19500, "upload_time": "2014-09-04T20:47:35", "url": "https://files.pythonhosted.org/packages/70/04/dc2a695212e9581ca790a4faa55420e5bbe251af3deb88d4b85af4491ab3/mesos.cli-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "25d09f308a3d0c65e5aa6adfe78e2d54", "sha256": "1891da7d266af65a7fba069ef3c91a2a45c1af86536d332fffc36a3d7168e7fe" }, "downloads": -1, "filename": "mesos.cli-0.1.5.tar.gz", "has_sig": false, "md5_digest": "25d09f308a3d0c65e5aa6adfe78e2d54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22421, "upload_time": "2015-10-09T16:16:15", "url": "https://files.pythonhosted.org/packages/ba/fb/43644236ed43a2f687e1c8050928c312b826e0577a539b42840d7cf8262a/mesos.cli-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25d09f308a3d0c65e5aa6adfe78e2d54", "sha256": "1891da7d266af65a7fba069ef3c91a2a45c1af86536d332fffc36a3d7168e7fe" }, "downloads": -1, "filename": "mesos.cli-0.1.5.tar.gz", "has_sig": false, "md5_digest": "25d09f308a3d0c65e5aa6adfe78e2d54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22421, "upload_time": "2015-10-09T16:16:15", "url": "https://files.pythonhosted.org/packages/ba/fb/43644236ed43a2f687e1c8050928c312b826e0577a539b42840d7cf8262a/mesos.cli-0.1.5.tar.gz" } ] }