{ "info": { "author": "OpenStack", "author_email": "openstack-dev@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python" ], "description": "OpenStack Nova GCE API README\n-----------------------------\n\nSupport of GCE-API for OpenStack.\n\nInstallation\n=====\n\nMake sure that python-pip package is installed.\n\nCheck and correct default options in the begining of 'install.sh' file.\n\nRun \"install.sh\".\n\nCheck for other options in /etc/gceapi/gceapi.conf if needed.\n\nRun it - \"gce-api\".\n\nUsage\n=====\n\nDownload gcloud from Google and install it.\nhttps://developers.google.com/compute/docs/gcutil/\n\nThere are two ways for using it:\n\n1. Run authorization command:\n\tpython google-cloud-sdk/platform/gcutil/gcutil --authorization_uri_base=http://localhost:8787 auth\n and next any other commands:\n\tpython google-cloud-sdk/platform/gcutil/gcutil --api_host=http://localhost:8787/ --authorization_uri_base=http://localhost:8787 --project demo listzones\n\n2. You have to have Google account\n You can activate an already-authorized account with\n\tgcloud config set account \n or authorize a new account with\n\tgcloud auth login\n Next you must authorize in Openstack by running authorization command:\n\tgcutil --authorization_uri_base=http://localhost:8787 auth\n and next you can run any other commands: \n\tgcutil --api_host=http://localhost:8787/ --authorization_uri_base=http://localhost:8787 --project demo listzones\n\nMake gcutil always use your GCE API endpoint using '--api_host' flag and your GCE API\nauthorization endpoint using '--authorization_uri_base' flag. Also you can store this\nsettings in \"~/.gcutil.flags\" file.\n\nIf it doesn't work by some reason check that your PYTHONPATH is exported and set correctly to something like\n``/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages``.\n\nLimitations\n===========\n\n* Names are unique in GCE and are used for identification. Names are not unique in Nova. IDs are used instead.\nSolution: GCE-managed OpenStack installation should also maintain unique naming.\n\n* GCE IDs are ulong (8 bytes). Openstack IDs can be different (int, string) but mostly they are GUID (16 bytes).\nSolution: Since Openstack IDs are of different length and nature and because GCE API never uses ID as a parameter\nnow, 8-byte hashes are generated and returned for any ID to report.\n\n* GCE allows per-user SSH key specification, but Nova supports only one key.\nSolution: Nova GCE API just uses first key.\n\n* Default Openstack flavors are available as machine types. GCE doesn't allow symbol '.' in machine type names,\n that's why GCE API plugin converts symbols '.' into '-' in 'get' requests (e.g. request of machine types converts\n the name 'm1.tiny' into m1-tiny) and vise versa in 'put/post/delete' requests (e.g. instance creation converts\n the name 'n1-standard-1' to 'n1.standard.1').\n\nAuthentication specifics\n========================\n\nGCE API uses OAuth2.0 for authentication. Simple sufficient implementation of this protocol\nwas added into GCE API service in nova because of its absence in keystone.\nCurrent implementation allows operation with several OpenStack projects for\none authenticated user as Google allows. For this initial token returned during\nauthentication doesn't contain information about project required by keystone.\nInstead another authentication happens with each request when incoming project\ninformation is added to existing user info and new token is acquired in keystone.\n\nSupported Features\n==================\n\nStandard Query Params (except for fields and prettyPrint) are not supported.\n\nSupported resource types\n\n* Addresses\n* Disks\n* Firewalls\n* Images\n* Instances\n* MachineTypes\n* Networks\n* Projects\n* Regions\n* Zones\n\nUnsupported resource types\n\n* ForwardingRules\n* HttpHealthChecks\n* TargetPools\n\nIn the lists below:\n\"+\" means supported\n\"-\" unsupported\n\n+Addresses\n\n+aggregatedList GET /project/aggregated/addresses\n+delete DELETE /project/regions/region/addresses/address\n+get GET /project/regions/region/addresses/address\n+insert POST /project/regions/region/addresses\n+list GET /project/regions/region/addresses\n\n+Disks\n\n+aggregatedList GET /project/aggregated/disks\n+createSnapshot POST /project/zones/zone/disks/disk/createSnapshot\n+delete DELETE /project/zones/zone/disks/disk\n+get GET /project/zones/zone/disks/disk\n+insert POST /project/zones/zone/disks\n+list GET /project/zones/zone/disks\n\n+Firewalls\n\n+delete DELETE /project/global/firewalls/firewall\n+get GET /project/global/firewalls/firewall\n+insert POST /project/global/firewalls\n+list GET /project/global/firewalls\n-patch PATCH /project/global/firewalls/firewall\n-update PUT /project/global/firewalls/firewall\n\n-ForwardingRules\n\n-aggregatedList GET /project/aggregated/forwardingRules\n-delete DELETE /project/regions/region/forwardingRules/forwardingRule\n-get GET /project/regions/region/forwardingRules/forwardingRule\n-insert POST /project/regions/region/forwardingRules\n-list GET /project/regions/region/forwardingRules\n-setTarget POST /project/regions/region/forwardingRules/forwardingRule/setTarget\n\n+GlobalOperations\n\n+aggregatedList GET /project/aggregated/operations\n+delete DELETE /project/global/operations/operation\n+get GET /project/global/operations/operation\n+list GET /project/global/operations\n\n-HttpHealthChecks\n\n-delete DELETE /project/global/httpHealthChecks/httpHealthCheck\n-get GET /project/global/httpHealthChecks/httpHealthCheck\n-insert POST /project/global/httpHealthChecks\n-list GET /project/global/httpHealthChecks\n-patch PATCH /project/global/httpHealthChecks/httpHealthCheck\n-update PUT /project/global/httpHealthChecks/httpHealthCheck\n\n+Images\n\n+delete DELETE /project/global/images/image\n-deprecate POST /project/global/images/image/deprecate\n+get GET /project/global/images/image\n+insert POST /project/global/images\n+list GET /project/global/images\n\n+Instances\n\n+addAccessConfig POST /project/zones/zone/instances/instance/addAccessConfig\n+aggregatedList GET /project/aggregated/instances\n+attachDisk POST /project/zones/zone/instances/instance/attachDisk\n+delete DELETE /project/zones/zone/instances/instance\n+deleteAccessConfig POST /project/zones/zone/instances/instance/deleteAccessConfig\n+detachDisk POST /project/zones/zone/instances/instance/detachDisk\n+get GET /project/zones/zone/instances/instance\n-getSerialPortOutput GET /project/zones/zone/instances/instance/serialPort\n+insert POST /project/zones/zone/instances\n+list GET /project/zones/zone/instances\n+reset POST /project/zones/zone/instances/instance/reset\n-setMetadata POST /project/zones/zone/instances/instance/setMetadata\n-setTags POST /project/zones/zone/instances/instance/setTags\n-setScheduling POST /project/zones/zone/instances/instance/setScheduling\n\n+MachineTypes\n\n+aggregatedList GET /project/aggregated/machineTypes\n+get GET /project/zones/zone/machineTypes/machineType\n+list GET /project/zones/zone/machineTypes\n\n+Networks\n\n+delete DELETE /project/global/networks/network\n+get GET /project/global/networks/network\n+insert POST /project/global/networks\n+list GET /project/global/networks\n\n+Projects\n\n+get GET /project\n+setCommonInstanceMetadata POST /project/setCommonInstanceMetadata\n\n-RegionOperations\n\n+delete DELETE /project/regions/region/operations/operation\n+get GET /project/regions/region/operations/operation\n+list GET /project/regions/region/operations\n\n+Regions\n\n+get GET /project/regions/region\n+list GET /project/regions\n\n+Routes\n\n+delete DELETE /project/global/routes/route\n+get GET /project/global/routes/route\n+insert POST /project/global/routes\n+list GET /project/global/routes\n\n+Snapshots\n\n+delete DELETE /project/global/snapshots/snapshot\n+get GET /project/global/snapshots/snapshot\n+list GET /project/global/snapshots\n\n-TargetPools\n\n-addHealthCheck POST /project/regions/region/targetPools/targetPool/addHealthCheck\n-addInstance POST /project/regions/region/targetPools/targetPool/addInstance\n-aggregatedList GET /project/aggregated/targetPools\n-delete DELETE /project/regions/region/targetPools/targetPool\n-get GET /project/regions/region/targetPools/targetPool\n-getHealth POST /project/regions/region/targetPools/targetPool/getHealth\n-insert POST /project/regions/region/targetPools\n-list GET /project/regions/region/targetPools\n-removeHealthCheck POST /project/regions/region/targetPools/targetPool/removeHealthCheck\n-removeInstance POST /project/regions/region/targetPools/targetPool/removeInstance\n-setBackup POST /project/regions/region/targetPools/targetPool/setBackup\n\n+ZoneOperations\n\n+delete DELETE /project/zones/zone/operations/operation\n+get GET /project/zones/zone/operations/operation\n+list GET /project/zones/zone/operations\n\n+Zones\n\n+get GET /project/zones/zone\n+list GET /project/zones\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://launchpad.net/gce-api", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "gce-api", "package_url": "https://pypi.org/project/gce-api/", "platform": "", "project_url": "https://pypi.org/project/gce-api/", "project_urls": { "Homepage": "https://launchpad.net/gce-api" }, "release_url": "https://pypi.org/project/gce-api/3.0.0/", "requires_dist": [ "Babel (>=2.3.4)", "eventlet (!=0.18.3,>=0.18.2)", "greenlet (>=0.3.2)", "oslo.config (>=3.14.0)", "oslo.concurrency (>=3.8.0)", "oslo.context (>=2.9.0)", "oslo.db (>=4.10.0,!=4.13.1,!=4.13.2)", "oslo.log (>=3.11.0)", "oslo.utils (>=3.16.0)", "oslo.serialization (>=1.10.0)", "oslo.service (>=1.10.0)", "paramiko (>=2.0)", "Paste", "PasteDeploy (>=1.5.0)", "pbr (>=1.6)", "python-cinderclient (!=1.7.0,>=1.6.0,!=1.7.1)", "python-glanceclient (>=2.5.0)", "python-keystoneclient (!=2.1.0,>=2.0.0)", "python-neutronclient (>=5.1.0)", "python-novaclient (>=2.29.0,!=2.33.0)", "six (>=1.9.0)", "SQLAlchemy (>=1.0.10,<1.1.0)", "sqlalchemy-migrate (>=0.9.6)", "WebOb (>=1.2.3)", "Routes (>=1.12.3,!=2.0,!=2.3.0); (python_version!='2.7')", "Routes (!=2.1,>=1.12.3,!=2.0,!=2.3.0); (python_version=='2.7')" ], "requires_python": "", "summary": "OpenStack Gceapi Service", "version": "3.0.0" }, "last_serial": 2388002, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "509833cc7c73b78fc344bdda4c498b90", "sha256": "22f9506cb20af37307a2d5e35b600f2fd75317e97f706ea8f3de9f189af5927d" }, "downloads": -1, "filename": "gce_api-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "509833cc7c73b78fc344bdda4c498b90", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 221497, "upload_time": "2015-11-26T16:50:37", "url": "https://files.pythonhosted.org/packages/a4/f3/17c872b56c2a8d0e21479287b6eb7cfd7d61d5c07e837aa1edb871779eb5/gce_api-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "148cdf9105006cb3daad06518bc83f25", "sha256": "8162533a441379bbfb0a08ecb6afe4e5d9082b4ede99edf08aa0ff05f03af72d" }, "downloads": -1, "filename": "gce-api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "148cdf9105006cb3daad06518bc83f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 194994, "upload_time": "2015-11-26T16:50:43", "url": "https://files.pythonhosted.org/packages/87/91/b61efcfc0e2b1af3ad3df0f6851054ecf76daf7e7744646ce5079ba293e1/gce-api-1.0.0.tar.gz" } ], "1.0.0.dev44": [], "2.0.0": [ { "comment_text": "", "digests": { "md5": "a856902fc547db06e04847cf818c413b", "sha256": "db2f0b790893c64c1c613a0e472b459bea69f5118cdc03a7bc0dad72ffe61b2a" }, "downloads": -1, "filename": "gce_api-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a856902fc547db06e04847cf818c413b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 222040, "upload_time": "2016-04-22T20:46:16", "url": "https://files.pythonhosted.org/packages/fb/c0/163d04995423aba2468a38e9a973a87f68548197292b5e3256b7fc381094/gce_api-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32715e59cc28e1e397dd991468a22cf0", "sha256": "ab4a02248f9384ad0ca62f83b7d5c9be154773e4bf7b677b8888fcd3df2b104e" }, "downloads": -1, "filename": "gce-api-2.0.0.tar.gz", "has_sig": false, "md5_digest": "32715e59cc28e1e397dd991468a22cf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 199402, "upload_time": "2016-04-22T20:46:27", "url": "https://files.pythonhosted.org/packages/7f/77/882462e247c12d5931f926809889d7800be4dabeb99c72f0f57232191049/gce-api-2.0.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "462d9450c2127715272c46062d0ab022", "sha256": "af18e87ca940e466a950efd0b7a2f81301dd8e7905ed48cd74dba204487c8e09" }, "downloads": -1, "filename": "gce_api-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "462d9450c2127715272c46062d0ab022", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 217232, "upload_time": "2016-10-08T10:01:33", "url": "https://files.pythonhosted.org/packages/03/d4/b7d15dc5efbabb0afeb6342b7ef6a414f18cc6b5fde3cd6f0ee175f502a0/gce_api-3.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e78f24a56d14ec7124b93ec852c0f289", "sha256": "5a9260a70e7b6310bf2c5c1f0ec31f7b697fbb80d936fd5724153e3191a64db0" }, "downloads": -1, "filename": "gce-api-3.0.0.tar.gz", "has_sig": false, "md5_digest": "e78f24a56d14ec7124b93ec852c0f289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204565, "upload_time": "2016-10-08T10:01:36", "url": "https://files.pythonhosted.org/packages/b7/7e/bf2be7a8b1c616a24b4546af29404ad02ae0fddc09bca2d442587b0da99c/gce-api-3.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "462d9450c2127715272c46062d0ab022", "sha256": "af18e87ca940e466a950efd0b7a2f81301dd8e7905ed48cd74dba204487c8e09" }, "downloads": -1, "filename": "gce_api-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "462d9450c2127715272c46062d0ab022", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 217232, "upload_time": "2016-10-08T10:01:33", "url": "https://files.pythonhosted.org/packages/03/d4/b7d15dc5efbabb0afeb6342b7ef6a414f18cc6b5fde3cd6f0ee175f502a0/gce_api-3.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e78f24a56d14ec7124b93ec852c0f289", "sha256": "5a9260a70e7b6310bf2c5c1f0ec31f7b697fbb80d936fd5724153e3191a64db0" }, "downloads": -1, "filename": "gce-api-3.0.0.tar.gz", "has_sig": false, "md5_digest": "e78f24a56d14ec7124b93ec852c0f289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204565, "upload_time": "2016-10-08T10:01:36", "url": "https://files.pythonhosted.org/packages/b7/7e/bf2be7a8b1c616a24b4546af29404ad02ae0fddc09bca2d442587b0da99c/gce-api-3.0.0.tar.gz" } ] }