{ "info": { "author": "Jioh L. Jung", "author_email": "ziozzang@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "UCloud(CloudStack) Python Client\r\n===\r\n\r\n* Original Code from https://github.com/minsu/ucloud\r\n* Forked and Revised by Jioh L. Jung (ziozzang@gmail.com)\r\n\r\nThe Python Commandline Tool & library for UCloud.\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84 API\ub97c \uc774\uc6a9\ud55c \ud30c\uc774\uc36c \ud074\ub77c\uc774\uc5b8\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ubc0f Command Line \uc720\ud2f8\ub9ac\ud2f0 \ud504\ub85c\uadf8\ub7a8\uc785\ub2c8\ub2e4.\r\n\r\n\r\n### Installation Note\r\n\r\n* PIP\uc73c\ub85c \uc124\uce58 \ud558\ub294 \uacbd\uc6b0\r\n\r\n\ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c \uc0ac\uc6a9 \ud560\uacbd\uc6b0\uc5d0\ub294 pip/PyPI\ub85c \uc124\uce58 \ud558\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n```\r\npip install ucloud\r\n```\r\n\r\n* Git \uc73c\ub85c \ud074\ub860 \ud558\uae30.\r\n\r\n\ubcc4\ub3c4 \uc124\uce58\uc5c6\uc774 Git \ud074\ub860\ud55c \ud6c4\uc5d0 \ud574\ub2f9 \ud3f4\ub354\uc5d0\uc11c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uac70\ub098 \ud574\ub2f9 \ud30c\uc774\uc36c \ubaa8\ub4c8\uc744 `import UClient` \ud55c \ud6c4\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uba85\ub839\uc5b4 \uc2e4\ud589\uc740 \ub2e4\uc74c\uc758 Example\uacfc \uac19\uc774 Command Line \ud658\uacbd\uc5d0\uc11c \uc2e4\ud589 \ud569\ub2c8\ub2e4.\r\n\r\n python UClient.py server listVirtualMachines\r\n python UClient.py server deployVirtualMachine serviceofferingid=75 templateid=845 zoneid=2 diskofferingid=38 usageplantype=hourly\r\n ...\r\n python UClient.py server queryAsyncJobResult jobid=19993\r\n\r\n python UClient.py lb listLoadBalancers\r\n\r\n python UClient.py waf listWAFs\r\n \r\n\r\n\r\n### \ud658\uacbd \uc124\uc815\r\n\r\n* \ud30c\uc77c\uc5d0 \uc9c1\uc811 \uc218\uc815\r\n * Client.py \ub97c \uc5f4\uc5b4\uc11c API_KEY \uc640 SECRET \uc744 \uc218\uc815 \ud558\uac70\ub098, \ud658\uacbd \ubcc0\uc218\ub85c \uc124\uc815 \ud560\uc218 \uc788\ub2e4.\r\n\r\n* \ud658\uacbd \ubcc0\uc218\ub85c \uc124\uc815\r\n * API/SECRET Key \uc124\uc815: ```UCLOUD_API_KEY```, ```UCLOUD_SECRET``` \uac00 \ud658\uacbd \ubcc0\uc218\ub85c \uc124\uc815 \ub418\uc5b4 \uc788\uc73c\uba74 \ud574\ub2f9 \uac12\uc744 \uc77d\uc5b4\uc11c \uc501\ub2c8\ub2e4. (export \ub610\ub294 \uc708\ub3c4\uc5d0\uc11c set \uc73c\ub85c \uc124\uc815 \ud558\uba74 \ub429\ub2c8\ub2e4)\r\n * \ucd9c\ub825 \ud615\uc2dd \uc9c0\uc815: \uae30\ubcf8\uc740 JSON \ucd9c\ub825\uc774\ub098, XML \ucd9c\ub825\uc744 \ud558\uace0 \uc2f6\uc73c\uba74 \ud658\uacbd\ubcc0\uc218\uc5d0 ```UCLOUD_RESP_TYPE``` \ub97c xml \ub85c \uc138\ud305 \ud574\uc8fc\uc2dc\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n* \ucf54\ub4dc\ub85c \uc2e4\ud589 \ud558\ub294 \uacbd\uc6b0, \ud30c\ub77c\ubbf8\ud130\ub85c \ub118\uaca8 \uc8fc\ub294 \ubc29\ubc95\r\n * ``` client = UClient.UClient(api_type=\"package\", api_key=UCLOUD_API_KEY, secret=UCLOUD_SECRET) ``` \uc640 \uac19\uc774 \ud30c\ub77c\ubbf8\ud130\ub85c \ub118\uaca8\uc90c\r\n\r\n\r\n\r\n### \ucee4\ub9e8\ub4dc \ub77c\uc778\uc73c\ub85c \uc2e4\ud589\r\n\r\n```\r\n./UClient.py [api_type] [command] [params1] [param2]...\r\n```\r\n\uae30\ubcf8 \uc2e4\ud589 \ud615\uc2dd\uc785\ub2c8\ub2e4.\r\n\r\n \r\n\r\n\uc608\ub97c\ub4e4\uc5b4 zoneID \ub97c \uc5bb\ub294 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\r\n\r\n\uad00\ub828 API \ubb38\uc11c http://developer.ucloudbiz.olleh.com/doc/cloudstack/etc/listZones/\r\n```\r\n./UClient.py server listZones\r\n``` \r\n\r\n \r\n\r\n\uc608\ub97c\ub4e4\uc5b4 WAF \uc0dd\uc131 API \ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\r\n\r\n\uad00\ub828 API \ubb38\uc11c http://developer.ucloudbiz.olleh.com/doc/waf/WAF/createWAF-A/\r\n```\r\n./UClient.py waf name=wafname type=single spec=basic zoneid=9845bd17-d438-4bde-816d-1b12f37d5080 waf1consoleport=5950 waf1SSHport=5951 waf1DBport=5952\r\n```\r\n\r\n### \ucf54\ub4dc\ub85c \uc0ac\uc6a9\ud558\uae30\r\n\r\n\ud30c\uc774\uc36c \ubaa8\ub4c8\ub85c \uc0ac\uc6a9\ud560\ub54c\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n```\r\nimport json\r\nfrom ucloud import UClient\r\n\r\nclient = UClient.UClient(api_type=\"server\", api_key=\"API_KEY_HERE\", secret=\"SECRET_KEY_HERE\")\r\nparams = {\r\n \"parameter1\":\"value1\",\r\n}\r\npost_data = {\r\n \"body1\": \"longbody1\",\r\n}\r\nresp = client.run(\"Command\", params, post=post_data) # POST \ub85c \ub118\uae30\ub294 \uacbd\uc6b0\r\nresp = client.run(\"Command\", params) # POST\ub97c \uc4f0\uc9c0 \uc54a\ub294 \uacbd\uc6b0\r\n```\r\n\r\n\r\n### API \ud0c0\uc785 \ubaa9\ub85d\r\n\uc911\uac04\uc5d0 \ub4e4\uc5b4\uac00\ub294 api_type \uc740 \ub2e4\uc74c\uc744 \ud655\uc778\ud574\uc8fc\uc2dc\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n\uc885\ub958 | API \ud0c0\uc785 | \ub9e4\ub274\uc5bc/\uac00\uc774\ub4dc | API \uc8fc\uc18c\r\n--- | --- | --- | ---\r\nAutoScaling\t| as | http://developer.ucloudbiz.olleh.com/doc/autoscaling/ | https://api.ucloudbiz.olleh.com/autoscaling/v1/client/api\r\nCDN | cdn | http://developer.ucloudbiz.olleh.com/doc/CDN/ | https://api.ucloudbiz.olleh.com/cdn/v1/client/api\r\nLoadbalancer | lb | http://developer.ucloudbiz.olleh.com/doc/loadbalancer/ | https://api.ucloudbiz.olleh.com/loadbalancer/v1/client/api\r\nMessaging | msg | http://developer.ucloudbiz.olleh.com/doc/messaging/ | https://api.ucloudbiz.olleh.com/messaging/v1/client/api\r\nNAS Service | nas | http://developer.ucloudbiz.olleh.com/doc/nas/ | https://api.ucloudbiz.olleh.com/nas/v1/client/api\r\nPackaging | package | http://developer.ucloudbiz.olleh.com/doc/packaging/ | https://api.ucloudbiz.olleh.com/packaging/v1/client/api\r\nServer/CloudStack | server | http://developer.ucloudbiz.olleh.com/doc/cloudstack/ | https://api.ucloudbiz.olleh.com/server/v1/client/api\r\nuCloud DB/RDBAAS | db | http://developer.ucloudbiz.olleh.com/doc/DB/ | https://api.ucloudbiz.olleh.com/db/v1/client/api\r\nWatch | watch | http://developer.ucloudbiz.olleh.com/doc/watch/ | https://api.ucloudbiz.olleh.com/watch/v1/client/api\r\nWeb Application Firewall | waf | http://developer.ucloudbiz.olleh.com/doc/waf/ | https://api.ucloudbiz.olleh.com/waf/v1/client/api\r\n\r\n\r\n### \ub514\ubc84\uae45 \ubc29\ubc95\r\n\ud604\uc7ac \ub514\ubc84\uae45\uc740 \ucf54\ub4dc\ub85c \uc791\uc131 \ud558\ub294 \uacbd\uc6b0\uc5d0\ub9cc \uc9c0\uc6d0 \ud569\ub2c8\ub2e4. \ud30c\ub77c\ubbf8\ud130\ub97c \ub123\uc5b4 \uc2e4\ud589\ud560\ub54c\uc5d0 debug=True \ub85c \uc2e4\ud589 \ud574\uc8fc\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n```\r\nclient.run(.... , debug=True)\r\n```\r\n\r\n### \uc8fc\uc758\uc0ac\ud56d\r\n\r\n\ud504\ub85c\uadf8\ub7a8 \uc0ac\uc6a9\uc0c1 \uc8fc\uc758\ud560 \uc810\ub4e4\uc785\ub2c8\ub2e4.\r\n\r\n- \uc2e4\ud589\ud558\uae30 \uc804\uc5d0 API \ud0a4 \uac12\uacfc Secret Key \uac12\uc744 \uc124\uc815 \ud574 \uc8fc\uc5b4\uc57c \uba85\ub839\ub4e4\uc774 \ub3d9\uc791\ud569\ub2c8\ub2e4.\r\n- \uc77c\ubd80 \uba85\ub839\uc5b4\uc758 \uacbd\uc6b0 Command Line \uc2e4\ud589\uc2dc \ubcf4\uae30 \ud3b8\ud55c \ud615\ud0dc\ub85c \ucd9c\ub825\ub418\uc9c0\ub9cc, \ud544\uc694\ud55c \ud544\ub4dc\uac00 \ube60\uc838\uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ub300\ubd80\ubd84\uc758 \uba85\ub839\uc740 \uc11c\ubc84\uac00 \ud68c\uc2e0\ud55c JSON/XML \ub370\uc774\ud130\ub97c \ucd9c\ub825\ud569\ub2c8\ub2e4.\r\n- \ubaa8\ub4c8\ub85c \uc0ac\uc6a9\ud560 \uacbd\uc6b0 \ubaa8\ub4e0 \ub370\uc774\ud130\ub294 JSON \ub370\uc774\ud130\ub85c \ucc98\ub9ac\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\r\n- \ucee4\ub9e8\ub4dc \ub77c\uc778\uc73c\ub85c \uba85\ub839\uc5b4\ub97c \ud638\ucd9c\ud560 \uacbd\uc6b0 \uc624\uc9c1 GET \ubc29\uc2dd\uc73c\ub85c \uc694\uccad \ub429\ub2c8\ub2e4.\r\n- \uc798\ubabb\ub41c \uba85\ub839\uc5d0 \ub300\ud55c \uc11c\ubc84\uc758 \ubc18\uc751\uc740 \ubcc4\ub3c4\uc758 \uc5d0\ub7ec\uba54\uc2dc\uc9c0\ub3c4 \ucd9c\ub825\ub418\uc9c0\ub9cc XML\ud3ec\ub9f7\uc73c\ub85c\ub41c \uc5d0\ub7ec \uba54\uc2dc\uc9c0\uac00 \ucd9c\ub825 \ub429\ub2c8\ub2e4.\r\n- `destroyVirtualMachine`\uacfc \uac19\uc740 \uba85\ub839\uc740 `stopVirtualMachine`\uc774 \uc774\ub8e8\uc5b4 \uc9c4 \ub2e4\uc74c\uc5d0 \uc2e4\ud589\ub418\uc5b4\uc57c \uc815\uc0c1 \ub3d9\uc791\ud569\ub2c8\ub2e4.\r\n\r\n### \uc9c0\uc6d0\ud558\ub294 \uba85\ub839\ub4e4\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84 API \uc804\uccb4\uac00 \uc0ac\uc6a9\uac00\ub2a5\ud569\ub2c8\ub2e4, \ud14c\uc2a4\ud2b8 \ud574 \ubcf8 \uac83\uc740 VM \uad00\ub828\ud55c \uba85\ub839\uacfc Port Forwarding \uad00\ub828 \uba85\ub839 \ubfd0\uc785\ub2c8\ub2e4.\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc \ub85c\ub4dc\ubc38\ub7f0\uc11c API \uc9c0\uc6d0\uc774 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. (2012. 11. 13)\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc \uc6f9 \ubc29\ud654\ubcbd API \uc9c0\uc6d0\uc774 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. (2013. 02. 20)\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc Package API \uc9c0\uc6d0\uc774 \ucd94\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. (2013. 08. 19)\r\n\r\n\uc720\ud074\ub77c\uc6b0\ub4dc \uc804\uccb4 API \uc9c0\uc6d0\uc774 \ucd94\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. (2013. 08. 23)\r\n\r\nPIP/PyPI \uc5d0\uc11c \uc124\uce58\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. (2013. 09. 09)\r\n\r\n### \uae30\ubcf8\uac12 \uc9c0\uc815\uc744 \ud1b5\ud55c \ud3b8\ub9ac\ud55c \uc0ac\uc6a9\r\n\r\n`commands.py` \uc5d0 \uba85\uc2dc\ub418\uc5b4 \uc788\ub294 \uac01 \uba85\ub839\uc5d0\ub294 `default` \ub77c\ub294 Dictionary \ub370\uc774\ud130\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ubcf8 \uac12\uc73c\ub85c \uc9c0\uc815\ud560 \uacbd\uc6b0 \uba85\ub839\ucc3d\uc5d0\uc11c \ubcc4\ub3c4\ub85c \uc9c0\uc815\ud558\uc9c0 \uc54a\ub294 \ud55c \ud574\ub2f9 `default` \uac12\uc774 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \ud604\uc7ac `deployVirtualMachine` \uba85\ub839\uc758 \uae30\ubcf8\uac12\uc740 kr-1b \uc874\uc5d0 `Ubuntu 11.04 32bit, 1vCore, 1GB RAM, 100GB Disk` \uc2dc\uac04\uc81c \uc694\uae08\uc774 \ub4e4\uc5b4\uac00 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\n`commands.py` \uc5d0 \uba85\uc2dc \ub418\uc5b4 \uc788\uc9c0 \uc54a\uc740 \uba85\ub839\uc5b4\ub3c4 \uc2e4\ud589\uc5d0\ub294 \ubb38\uc81c\uac00 \uc5c6\uc73c\uba70 API \ubb38\uc11c\ub97c \ubcf4\uace0 \uc801\uc808\ud55c \ud30c\ub77c\ubbf8\ud130\ub97c \uba85\uc2dc\ud558\uba74 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\n\r\n### \ubc84\uc804\r\n\r\n0.1A : 2012. 03. 19 Release\r\n\r\n0.2A : 2012. 11. 13\r\n\r\n0.3A : 2013. 02. 20\r\n\r\n0.3A-Forked-ziozzang-v1 : 2013. 08. 19\r\n\r\n0.3A-Forked-ziozzang-v3 : 2013. 08. 23\r\n\r\n1.0 : 2013. 09. 09", "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/ziozzang/ucloud", "keywords": "", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "ucloud", "package_url": "https://pypi.org/project/ucloud/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ucloud/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ziozzang/ucloud" }, "release_url": "https://pypi.org/project/ucloud/1.0/", "requires_dist": null, "requires_python": null, "summary": "KT ucloud Python Client", "version": "1.0" }, "last_serial": 862465, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "90d02eec4f153b6b64621196efe78536", "sha256": "f8e75da1d2133c219c2f851c66f3ca2b3a048328bf3ae7bd27841f5f5c45dba1" }, "downloads": -1, "filename": "ucloud-1.0.tar.gz", "has_sig": false, "md5_digest": "90d02eec4f153b6b64621196efe78536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4732, "upload_time": "2013-09-09T08:52:08", "url": "https://files.pythonhosted.org/packages/b2/5c/21c71c2073bd720c7a942757032cdf97bb92ec795919fb886a6671589c9f/ucloud-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "90d02eec4f153b6b64621196efe78536", "sha256": "f8e75da1d2133c219c2f851c66f3ca2b3a048328bf3ae7bd27841f5f5c45dba1" }, "downloads": -1, "filename": "ucloud-1.0.tar.gz", "has_sig": false, "md5_digest": "90d02eec4f153b6b64621196efe78536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4732, "upload_time": "2013-09-09T08:52:08", "url": "https://files.pythonhosted.org/packages/b2/5c/21c71c2073bd720c7a942757032cdf97bb92ec795919fb886a6671589c9f/ucloud-1.0.tar.gz" } ] }