{ "info": { "author": "WAKAYAMA Shirou", "author_email": "shirou.faw at gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Software Development :: Testing", "Topic :: System :: Monitoring", "Topic :: System :: Systems Administration" ], "description": "EnvAssert\n===================\n\nTest your servers environments by using fabric.\n\nRequirements\n----------------\n\n- python 2.6 or later\n- fabric\n\nHow to Use\n------------------\n\n0. install\n\n ::\n\n % pip install envassert\n\n1. write fabfile.py.\n\n ::\n\n from fabric.api import env, task\n from envassert import file, process, package, user, group, port, cron, detect\n\n env.use_ssh_config = True\n\n @task\n def check():\n env.platform_family = detect.detect()\n\n assert file.exists(\"/etc/hosts\")\n assert file.is_file(\"/etc/hosts\")\n assert file.is_dir(\"/tmp/\")\n assert file.dir_exists(\"/tmp/\")\n assert file.has_line(\"/etc/passwd\", \"sshd\")\n assert file.owner_is(\"/bin/sh\", \"root\")\n assert file.group_is(\"/bin/sh\", \"root\")\n assert file.mode_is(\"/bin/sh\", \"777\")\n\n if env.platform_family == \"freebsd\":\n assert file.is_link(\"/compat\")\n else:\n assert file.is_link(\"/usr/tmp\")\n\n assert package.installed(\"wget.x86_64\")\n\n assert user.exists(\"sshd\")\n assert user.is_belonging_group(\"shirou\", \"users\")\n assert group.exists(\"wheel\")\n\n assert port.is_listening(22)\n assert port.is_listening(80, \"tcp\")\n\n assert process.is_up(\"http\") is False\n assert service.is_enabled(\"httpd\")\n\n assert cron.has_entry('shirou', 'python')\n\n assert filesystem.is_type('ext4', '/')\n\n2. run fab\n\n ::\n\n % fab -H somehost check\n [somehost] Executing task 'check'\n\n Done.\n Disconnecting from root@192.168.22.98... done.\n\n You can use any other fabric arguments like hosts or parallel.\n\nDetecting OS\n-----------------------\n\nThe `detect.detect()` function can detect target OS and\ndistribution. Setting this variable to `env.platform_family`,\nfunctions can dispatch according to that value.\n\nThis function is a minimal port of ohai.\n\nCurrently, these platform can be detected. (but not tested yet)\n\n- rhel (redhat, centos, oracle, scientific, enterpriseenterprise, amazon)\n- debian (debian, ubuntu, linuxmint, raspbian)\n- fedora\n- suse\n- gentoo\n- arch\n- freebsd\n- netbsd\n- openbsd\n- darwin\n\nHowever, every functions are not implemented for these all\nplatform. Pull Requests are welcome.\n\n\nThe giants on whose shoulders this works stands\n----------------------------------------------------\n\n- serverspec : http://serverspec.org/\n- cuisine : https://github.com/sebastien/cuisine\n- ohai (for detecting platforms) : http://docs.opscode.com/chef/ohai.html\n\nLicense\n------------------\n\nMIT License\n\nFYI\n\n- cuisine: BSD\n- serverspec: MIT\n- ohai: Apache 2", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/envassert", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/r_rudi/envassert", "keywords": "test,server", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "envassert", "package_url": "https://pypi.org/project/envassert/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/envassert/", "project_urls": { "Download": "http://pypi.python.org/pypi/envassert", "Homepage": "http://bitbucket.org/r_rudi/envassert" }, "release_url": "https://pypi.org/project/envassert/0.1.10/", "requires_dist": null, "requires_python": null, "summary": "Test your servers environments by using fabric.", "version": "0.1.10" }, "last_serial": 2499419, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0c58dc01c94da78760ce3cab104f08a4", "sha256": "7c7eec720ceeaadf4c2ca69d1fa84010805b38c740460007e0496e26413c185c" }, "downloads": -1, "filename": "envassert-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0c58dc01c94da78760ce3cab104f08a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6116, "upload_time": "2013-05-13T12:26:01", "url": "https://files.pythonhosted.org/packages/5c/b8/f63711063a6f2816716da5ddb80a7263b23764b12104e9a68c2148a3c820/envassert-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fc7e38c7e13c9d501aee0c05d839b460", "sha256": "97700d2a0bec18ed3caa337e7218b0693156e514605bef5b2b3a14db77f1434f" }, "downloads": -1, "filename": "envassert-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fc7e38c7e13c9d501aee0c05d839b460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7321, "upload_time": "2013-05-16T04:22:14", "url": "https://files.pythonhosted.org/packages/de/b8/ab14a9b55299b8feda5092c00c52dc36f51621543ec3c21bcb41e22b4144/envassert-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "50e3ed16045b0cada4a9e9a5cd09013a", "sha256": "4b6c4fee34e9a7526706f7c0d0318501c51f48bb148b8bba25c89be76579a0c9" }, "downloads": -1, "filename": "envassert-0.1.10.tar.gz", "has_sig": false, "md5_digest": "50e3ed16045b0cada4a9e9a5cd09013a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7725, "upload_time": "2016-12-05T02:35:37", "url": "https://files.pythonhosted.org/packages/83/b1/35f68f1408fee211e9ffea275f07a28d60a45e377012b27db65cc7bc62ff/envassert-0.1.10.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "81bed9f9b380323a3b3b86f14d6454ba", "sha256": "d3569a9c7527f326735815b82fa02a5cf3db634525ddb364bf76b807956a1700" }, "downloads": -1, "filename": "envassert-0.1.3.tar.gz", "has_sig": false, "md5_digest": "81bed9f9b380323a3b3b86f14d6454ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7088, "upload_time": "2013-05-16T05:00:55", "url": "https://files.pythonhosted.org/packages/a8/a6/e41b188739828e4032c8541c3b11ab2cc5d2bdf76ca94d098e85d4bc9446/envassert-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "1ba3a28f99fe27be482b759f3a2f3702", "sha256": "9d7dfdfdd47968bddda2d5f418ccb1126252f19eca98f61a74889726527805b7" }, "downloads": -1, "filename": "envassert-0.1.4.tar.gz", "has_sig": false, "md5_digest": "1ba3a28f99fe27be482b759f3a2f3702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7260, "upload_time": "2014-02-16T12:53:45", "url": "https://files.pythonhosted.org/packages/0c/25/62054188941c0877a966d622ae6ac6330292a09fce63a642810a015bfd95/envassert-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e0b7eb24b2ef8782a52067762e27d2c3", "sha256": "88924b404b3bae008383f4e14713f3b5d4544ca948482c7e33de95f5290f6367" }, "downloads": -1, "filename": "envassert-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e0b7eb24b2ef8782a52067762e27d2c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6599, "upload_time": "2014-04-14T08:05:02", "url": "https://files.pythonhosted.org/packages/1d/1b/100372aecd0b4a3b9fba1ffc9081c807505ad29ea75dc78007e9ab1b0ead/envassert-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "3da213216d6071a7aab4813369c031a0", "sha256": "39da9da1d580c998c422bc2a3def48fe18e427ec5386db1d1047ea013dd9f406" }, "downloads": -1, "filename": "envassert-0.1.6.tar.gz", "has_sig": false, "md5_digest": "3da213216d6071a7aab4813369c031a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6759, "upload_time": "2014-06-23T01:35:03", "url": "https://files.pythonhosted.org/packages/37/28/c9b77860aef229822191362c1574e0e6377d92684ed20a47cc3d41dc2d2c/envassert-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "50fbecb7f066c5fb3339aa16e1ea587c", "sha256": "c08e82c7fa89fbd162096839b2df8f94033c5dcb1c633d66e102488411472579" }, "downloads": -1, "filename": "envassert-0.1.7.tar.gz", "has_sig": false, "md5_digest": "50fbecb7f066c5fb3339aa16e1ea587c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7873, "upload_time": "2014-08-07T04:43:05", "url": "https://files.pythonhosted.org/packages/c6/67/f032a122b7f1c3c25a3ce0555145704b068b82e8f058974a44463d05fdbb/envassert-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "ac978ba0e58f2f8856a8d97a8b909813", "sha256": "58f636c37f4433871a011e9440496a62e60301e7358b9f5b82edd1169f004951" }, "downloads": -1, "filename": "envassert-0.1.8.tar.gz", "has_sig": false, "md5_digest": "ac978ba0e58f2f8856a8d97a8b909813", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8056, "upload_time": "2015-03-04T12:41:18", "url": "https://files.pythonhosted.org/packages/ed/45/d6f763d239a75372277ccce4b96bc84f2dad7f39dd57705f83ce70de6a36/envassert-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "ad4d325b8e274ff797a61417d7851cea", "sha256": "754636708c9915a522cfe7ec4e834521239b206322f4c2ef290cc20dd6f76cf1" }, "downloads": -1, "filename": "envassert-0.1.9.tar.gz", "has_sig": false, "md5_digest": "ad4d325b8e274ff797a61417d7851cea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7877, "upload_time": "2015-08-27T14:23:59", "url": "https://files.pythonhosted.org/packages/77/3d/9c4dc6b91db09c1053abb21b728b2e6f217eceadac722cf21f75bc6b834b/envassert-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "50e3ed16045b0cada4a9e9a5cd09013a", "sha256": "4b6c4fee34e9a7526706f7c0d0318501c51f48bb148b8bba25c89be76579a0c9" }, "downloads": -1, "filename": "envassert-0.1.10.tar.gz", "has_sig": false, "md5_digest": "50e3ed16045b0cada4a9e9a5cd09013a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7725, "upload_time": "2016-12-05T02:35:37", "url": "https://files.pythonhosted.org/packages/83/b1/35f68f1408fee211e9ffea275f07a28d60a45e377012b27db65cc7bc62ff/envassert-0.1.10.tar.gz" } ] }