{ "info": { "author": "makoto tsuyuki", "author_email": "mtsuyuki@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Clustering", "Topic :: System :: Software Distribution", "Topic :: System :: Systems Administration" ], "description": "\nOozappa\n============================================================\n\nFabric task runner and helper. Execute tasks via web browser.\n\noozappa is \u5927\u96d1\u628a.\n\nChange logs.\n-------------------------------------------\n\n0.9.1\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n* Fixed bug, zappa init command generate illegal path. Thank you sugamasao!\n\n https://github.com/tsuyukimakoto/oozappa/pull/20\n\n* Fixed image path of README file\n\n0.9.0\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAdding new subcommands to zappa.\n\n * list\n * run_jobset\n * manage\n\nRemoved rapid execution.\n\nAdding cli_only flag to Jobset.Now set cli_only flag using zappa manage. Now you can make Jobset can't run from web ui.\n\nDecoupling webui from fabric execution(Error doesn't occur even if connection reset).\n\nShow comfirm dialog before leaving web ui. and better ux. thank you yusuke furukawa.\n\n0.8.5\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAdding new feature, modify Jobsets sort order on jobsets page.\n\nAdding new feature, modify a Job data on environ page.\n\nImprove Fabric task's behavior better when failed.\n\nYou need db migration if you use 0.8.4 or below.\n\nDownload zip archive from https://github.com/tsuyukimakoto/oozappa/raw/master/migration/to_0.8.5.zip\n\n::\n\n $ unzip to_0.8.5.zip && cd oozappa_to_0_8_5\n\n If you have not alembic installed. You need install it using pip or any way you like.\n Open alembic.ini and modify sqlalchemy.url to indicate your own oozappa's db. then\n\n $ alembic upgrade 1e26220da128\n\n0.8.4\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nJobset runs exclusively from webui.\n\n0.8.3\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nA zappa command added and removed oozappa.create_environment module.\n\n0.8.2\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nOozappa finds tasks from imported modules, not recursive.\n\nInstall\n-------------------------------------------\n\nInstall from Cheese Shop (pypi).\n\n::\n\n $ pip install oozappa\n\nIf you use Xcode 5.1(above) and failed with **clang: error: unknown argument: '-mno-fused-madd'** , export flags before install.\n::\n\n $ export CPPFLAGS=-Qunused-arguments\n $ export CFLAGS=-Qunused-arguments\n\nOozappa data models.\n-------------------------------------------\n\nEnvironment\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nEnvironment is a category that has fibfile directory and vars.py .\n\nA problem about fabric with large project is, too many fabric tasks and complicated task orders.\n\nSo you should separate fabfile into domain category. That is Environment.\n\nJob\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nJob is like a normal fabric execution command.\n\nnote::\n\n fab task1 task2 is a job.\n\nJobset\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nJobset is oozappa operation unit.\n\nJobset can contain multiple job, even extend over environments.\n\nOozappa fabric structures.\n-------------------------------------------\n\nSee sample oozappa project( https://github.com/tsuyukimakoto/oozappa/tree/master/sample/ops ).\n::\n\n .\n \u251c\u2500\u2500 common\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 files\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 functions\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 common_multiple_fabric_environment.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 templates\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 sample_a.txt\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vars.py\n \u251c\u2500\u2500 construction\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 fabfile\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 cloud.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 templates\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vars.py\n \u251c\u2500\u2500 deployment\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 fabfile\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 templates\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vars.py\n \u251c\u2500\u2500 production\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 fabfile\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 templates\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vars.py\n \u2514\u2500\u2500 staging\n \u251c\u2500\u2500 fabfile\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u251c\u2500\u2500 templates\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 sample_a.txt\n \u2514\u2500\u2500 vars.py\n\n**common** is reserved directory. **construction** and others are environment directory. These names except common are just example.\n\nvars\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\ncommon and each environment's vars.py might have oozappa.config.OozappaSetting instance named settings.\nOozappaSetting is dict like object.\n\n**common.vars.setting** is updated by executed environment's **vars.setting** , so you can set base configuration to common.vars.setting and environment's one overwrite it.\n\nCheck printsetting task on staging environment.\n\nYou can run fabric task within environment directory as usual.\n::\n\n $ cd sample/ops/staging\n $ fab printsetting\n {'instance_type': 't1.micro', 'domain': 'localhost', 'sample_template_vars': {'sample_a': {'key_a_2': \"a's 2 value from common.vars\", 'key_a_1': \"a's 1 value from stging.vars\"}}, 'email': 'mtsuyuki at gmail.com'}\n\nSee common/vars.py and staging/vars.py .\n\ntemplates\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSame as vars, **oozappa.fabrictools.upload_template** search template. upload_template is almost same as **fabric.contrib.files.upload_template** . oozappa's upload_template doesn't accept use_jinja, because oozappa's upload_template pass use_jinja=True to fabric.contrib.files.upload_template.\n\nJinja2 has inheritance template system and search template from multipul paths. fabric's upload_template accept only one template_dir string not list. **fabric doesn't assume multiplu environment** , so it's reasonable.\nBecause of this, oozappa's upload_template search template path is limited only one template_dir that found filename.\nIt mean that you can't store child template and parent template separately.\n\ncommon/functions\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCall **oozappa.config.procure_common_functions** () and add commons/functions directory to sys.path for convinient to using on multiple fabric environment.\n\nRun fabric task via web browser.\n-----------------------------------------------------------\n\nChange directory to outside environment directory.\n::\n\n $ cd ..\n $ ls\n common production staging\n $ gunicorn -t 3600 -k flask_sockets.worker oozappa.webui:app\n\nRunning oozappa:app creates **/tmp/oozappa.sqlite** .\n\nOpen your web browser and browse http://localhost:8000/ .\n\nRapid execution\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nModify *Run fabric in raw*'s left hand side input to **staging** and click *run_tasks*. You can see what tasks exists.\n\nThen input **ls ps** to right hand side input and click *run_tasks* .\n\nThat's it.\n\nBetter way using sample\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nregister environment to db.\n___________________________\n\n* Click environment button via top menu.\n\n* Add new Environment\n\n * name: constructiton\n\n * sort_order: 1\n\n * execute_path: constructiton\n\n* Add 3 more.\n\n.. image:: https://raw.github.com/wiki/tsuyukimakoto/oozappa/images/readme/environments.png\n :alt: environments\n\ncreate job in each environments.\n_________________________________\n\n* Click environment you created\n\n* Create new Job.\n\n * Click task from Possible tasks in order\n\n.. image:: https://raw.github.com/wiki/tsuyukimakoto/oozappa/images/readme/create_job.png\n :alt: job\n\ncreate jobset\n___________________________\n\n* Click jobset button via top menu.\n\n* Click jobs you'd like to execute once.\n\n.. image:: https://raw.github.com/wiki/tsuyukimakoto/oozappa/images/readme/create_jobset.png\n :alt: jobset\n\n\nrun jobset\n___________________________\n\n* Click navigation button or jobset button via top menu.\n\n* Click jobset you'd like to execute.\n\n* Click *run jobset* button.\n* Running log displays **Running log**.\n\n* Reload page when jobset done. or Go to top(via navigation button)\n\n * You see Execute Logs and show raw log when you click success (or fail).\n\n.. image:: https://raw.github.com/wiki/tsuyukimakoto/oozappa/images/readme/jobset.png\n :alt: running jobset\n\nHow to create your own\n-------------------------------------------\n\nCreate common directory\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nChange directory your own oozappa.\n::\n\n $ mkdir devops\n $ cd devops\n\nThen run zappa command.\n::\n\n $ zappa init\n Create common environment here? [y/N] : y\n Sqlite database stored path. [/tmp/oozappa/data.sqlite] :\n Log files stored path. [/tmp/oozappa] :\n Create directory or exit? \"/tmp/oozappa\" [y/N] : y\n created common directory. db/log file path and flask secret key are in common/vars.py.\n\n.. attention:: Default stored path is not for production use.\n You should input your own file/directory path. Or data/results disapear when you reboot your machine or server.\n\nHow to change settings\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nOpen `common/vars.py` and change settings.\n\n* **OOZAPPA_DB**\n\n sqlite's data store path.\n\n* **OOZAPPA_LOG_BASEDIR**\n\n Jobset execute log store directory path.\n\nCreate environment\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRun `zappa` command with names option.\n::\n\n $ zappa create_environment --names construction deployment\n 2014-04-20 16:43:26,543 INFO create environment : construction\n 2014-04-20 16:43:26,544 INFO create environment : deployment\n\nThen you can write fabfile normally and execute via oozappa.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tsuyukimakoto/oozappa", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "oozappa", "package_url": "https://pypi.org/project/oozappa/", "platform": "", "project_url": "https://pypi.org/project/oozappa/", "project_urls": { "Homepage": "https://github.com/tsuyukimakoto/oozappa" }, "release_url": "https://pypi.org/project/oozappa/0.9.1/", "requires_dist": null, "requires_python": "", "summary": "Fabric task runner and helper. Executes and manages tasks via web browser.", "version": "0.9.1" }, "last_serial": 3421364, "releases": { "0.8.1": [ { "comment_text": "", "digests": { "md5": "1084da984e01d1904060c64ab76e67f8", "sha256": "07f6f05df7cdb0d6f2431d8f5d1e731c810c67bd77b59f3680d2a5e73fed37a5" }, "downloads": -1, "filename": "oozappa-0.8.1.tar.gz", "has_sig": false, "md5_digest": "1084da984e01d1904060c64ab76e67f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35850, "upload_time": "2014-05-03T08:45:31", "url": "https://files.pythonhosted.org/packages/e3/52/af692495f27a241190e0dcbbd718b92411169fcb41b6af4d3113b3eae933/oozappa-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "3167ec73353cdf88e30381abbd30d987", "sha256": "f81a6c3564c2d0860c200a29a42aafd6b077b1e2f6210a4e6a7a48a11d8bc806" }, "downloads": -1, "filename": "oozappa-0.8.2.tar.gz", "has_sig": false, "md5_digest": "3167ec73353cdf88e30381abbd30d987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36027, "upload_time": "2014-06-05T12:10:29", "url": "https://files.pythonhosted.org/packages/af/b0/d8aa150568327d4f1d360e944761a09a25316123f9cadb213c6ff45af5b9/oozappa-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "a5c723cd471cf875c9786d69696e047a", "sha256": "9ab6b11c192e9f33604fdedfb1479be5606c62f3a45f0c20e72d497c53eba28b" }, "downloads": -1, "filename": "oozappa-0.8.3.tar.gz", "has_sig": false, "md5_digest": "a5c723cd471cf875c9786d69696e047a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11438, "upload_time": "2014-06-09T13:46:27", "url": "https://files.pythonhosted.org/packages/d0/55/8e3fec45d4cf5090753b5dba622688f96a6057bf350d289fbea54c6547e1/oozappa-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "4f34e80eba5df980656ac32be0a7665f", "sha256": "2d3af7b3af4bf8492d8caf201ef5166a169113170d825e8a0474e548c9348af8" }, "downloads": -1, "filename": "oozappa-0.8.4.tar.gz", "has_sig": false, "md5_digest": "4f34e80eba5df980656ac32be0a7665f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38391, "upload_time": "2014-07-23T07:11:25", "url": "https://files.pythonhosted.org/packages/d8/99/1be16c4e11410ed733d02e3f4e452bcbdb246175be87a40982ff7297c9a4/oozappa-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "29ab20cdb87751f91b356139e8619dbe", "sha256": "590f227245f77b89a75588dc2cb1b5b064d8812cfcd72ecf59fe53085377abab" }, "downloads": -1, "filename": "oozappa-0.8.5.tar.gz", "has_sig": false, "md5_digest": "29ab20cdb87751f91b356139e8619dbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39436, "upload_time": "2015-01-27T16:05:55", "url": "https://files.pythonhosted.org/packages/fb/56/9d6263ca4ba0abea204af8bcd66801ed081ee26394d93024bce4e8a41913/oozappa-0.8.5.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "8ab4c4ab5d443296aeb2f374b76e1750", "sha256": "ea85b916e3367eaaebe4b49dd17c0cc1970a576831b2c4c0fe0c8176adf9804d" }, "downloads": -1, "filename": "oozappa-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8ab4c4ab5d443296aeb2f374b76e1750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40743, "upload_time": "2015-10-10T08:27:43", "url": "https://files.pythonhosted.org/packages/7d/3e/b78a8c2918af6acc5cbf9305b58b2c8da448e13012a6f168d85395f9637d/oozappa-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "34bb773f6229afa9e4f32144b158bbb8", "sha256": "5a040226fcab826c65852823cde36ce0d0401df9166515a73a66553b9ffb3250" }, "downloads": -1, "filename": "oozappa-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "34bb773f6229afa9e4f32144b158bbb8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 52530, "upload_time": "2017-12-16T05:34:08", "url": "https://files.pythonhosted.org/packages/30/60/604535f55639471a2b39637eab8db4993a0d708eec59f66e2d3c673abf68/oozappa-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08179edbc314fbe990dbf890a1312465", "sha256": "3a837d34704837825279be14e39412cf4fac828aae1c8214c21f736138f9cf42" }, "downloads": -1, "filename": "oozappa-0.9.1.tar.gz", "has_sig": false, "md5_digest": "08179edbc314fbe990dbf890a1312465", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41839, "upload_time": "2017-12-16T05:34:04", "url": "https://files.pythonhosted.org/packages/6d/33/9b854ba15ba32f30b57703ee71c1e2d572feb5224a29bf3cb5062244fdbd/oozappa-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34bb773f6229afa9e4f32144b158bbb8", "sha256": "5a040226fcab826c65852823cde36ce0d0401df9166515a73a66553b9ffb3250" }, "downloads": -1, "filename": "oozappa-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "34bb773f6229afa9e4f32144b158bbb8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 52530, "upload_time": "2017-12-16T05:34:08", "url": "https://files.pythonhosted.org/packages/30/60/604535f55639471a2b39637eab8db4993a0d708eec59f66e2d3c673abf68/oozappa-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08179edbc314fbe990dbf890a1312465", "sha256": "3a837d34704837825279be14e39412cf4fac828aae1c8214c21f736138f9cf42" }, "downloads": -1, "filename": "oozappa-0.9.1.tar.gz", "has_sig": false, "md5_digest": "08179edbc314fbe990dbf890a1312465", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41839, "upload_time": "2017-12-16T05:34:04", "url": "https://files.pythonhosted.org/packages/6d/33/9b854ba15ba32f30b57703ee71c1e2d572feb5224a29bf3cb5062244fdbd/oozappa-0.9.1.tar.gz" } ] }