{ "info": { "author": "OCS", "author_email": "contact@ocs.online.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Other/Proprietary License", "Operating System :: Unix", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Communications", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Metadata Server\n===============\n\nServes pimouss metadata using its own IP address as authentication token.\n\n::\n\n $ curl http://169.254.42.42\n\n\nDevelopment\n-----------\n\nStandalone API::\n\n $> pip install -e .\n $> OCS_SETTINGS=conf/dev.yaml ocs-api-metadata\n\nRun test::\n\n $> pip install -e .\n $> pip install tox\n $> tox\n\n\nAPI Routes\n----------\n\n- `GET /conf` or `GET /conf?format=json`: get instance configuration: name,\n public IP address, SSH public keys, organization details, volumes infos, ...\n The default format (`?format=sh`) outputs a response that can be sourced in a\n shell.\n\n- `PATCH /state`: update instance state: kernel_started, booted, .... The state\n is used to know where the problem comes from in case the boot fails.\n\n- `GET and PATCH /user_data`: user data is a key/value store related to the\n server, used to store anything (text, small binary blobs, ...).\n To prevent non-root users from accessing this endpoint, the local port making\n the request must be below 1024.\n This endpoint is notably used by our images to store SSH server fingerprints\n (`/user_data/ssh-host-fingerprints`).\n\n- `GET /ipxe`: our x86 nodes (bare metal and VPS) boot on iPXE which retrieves\n its configuration through this endpoint.\n\nConfiguration\n-------------\n\nIf `run-in-devcker` is defined to 1 in the `api-metadata` section of the\nconfiguration file, then the /state route will honor `X-Forwarded-For`.\n\nChangeLog\n=========\n\n1.2.7 (2019-02-06)\n------------------\n\n* Fix GPU: use real commercial name (RENDER) instead of the internal name (GPU).\n\n1.2.6 (2019-01-30)\n------------------\n\n* Dummy release\n\n1.2.5 (2019-01-30)\n------------------\n\n* Add support to boot GPU\n* Remove process-dependency-links\n* Try to fix dependency issue by adding `ocs.object_store.sqlalchemy` which is a sub-dependency, pinning world-backend+api-account and moving SQLAlchemy to tests only\n\n1.2.4 (2018-10-09)\n------------------\n\n* Fix PEP8\n\n1.2.3 (2018-10-09)\n------------------\n\n* Handle rescue boot type\n* Fix/improve tests :\n** Force pylint 1.x in tox.ini (to fix jenkins tests)\n** AM-36 Change test to use token's secret\n** Add missing config for api-task\n** Check status_code before reading body\n\n1.2.2 (2018-05-04)\n------------------\n\n* Add START offers\n\n1.2.1 (2018-01-23)\n------------------\n\n* PEP8, to make Jenkins happy.\n\n1.2.0 (2018-01-22)\n------------------\n\n* Add version in root endpoint.\n* Fix healthcheck.\n\n1.1.1 (2017-09-07)\n------------------\n\n* Do not instanciate Flask application at each request. SCW-6.\n\n1.1.0 (2017-07-21)\n------------------\n\n* Expose bootscripts.\n\n1.0.7 (2017-04-25)\n------------------\n\n* Remove voluptuous dep.\n\n1.0.6 (2017-04-25)\n------------------\n\n* Specific name for the initrd.\n* Specific serial device for ARM64.\n\n1.0.5 (2017-03-15)\n------------------\n\n* Fix unittests\n\n1.0.4 (2017-02-02)\n------------------\n\n* Support of new commercial type.\n\n1.0.3 (2016-11-29)\n------------------\n\n* Add default ``isort`` configuration.\n* Add default ``bumpversion`` configuration.\n\n1.0.2 (2016-06-24)\n------------------\n\n* Do not install pre-released packages. Refs SN-412.\n\n1.0.1 (2016-04-25)\n------------------\n\n* Fix unittests.\n\n1.0.0 (2016-03-25)\n------------------\n\n* Adapt /ipxe to the new compute API format for bootscripts.\n* iPXE template: do not generate the \"initrd\" statement if there's no initrd\n attached to the server. Do the same for kernel (even if a server *must* have\n a kernel set).\n\n0.10.11 (2016-03-22)\n--------------------\n\n* iPXE: in case of error during kernel/initrd download or boot, wait a few\n seconds before rebooting to let the serial console's viewer understand what's\n going on.\n\n0.10.10 (2016-02-16)\n--------------------\n\n* Update VM cmdline (remove all the unused TTYs).\n\n0.10.9 (2016-02-09)\n-------------------\n\n* Fix unittest.\n\n0.10.8 (2016-02-09)\n-------------------\n\n* Fix device name in VM is vda.\n\n0.10.7 (2016-02-02)\n-------------------\n\n* Fix unittest.\n\n0.10.6 (2016-02-02)\n-------------------\n\n* Append root for specific commercial type.\n\n0.10.5 (2016-01-06)\n-------------------\n\n* Replace LINUX_COMMON by host specific options in ipxe view.\n\n0.10.4 (2016-01-05)\n-------------------\n\n* Expose ipv6 property and extra networks.\n\n0.10.3 (2015-12-15)\n-------------------\n\n* Freeze sqlalchemy version because of a regression in joinedload of polymorphic entities\n\n0.10.2 (2015-12-04)\n-------------------\n\n* iPXE configuration: reboot if the kernel or the initrd download fails.\n* Output server commercial type property.\n\n0.10.1 (2015-11-04)\n-------------------\n\n* Fix packaging: add api_metadata/views/templates/* to package data.\n\n0.10.0 (2015-09-19)\n-------------------\n\n* Create route /ipxe to generate the iPXE configuration of suchards.\n\n0.9.3 (2015-10-12)\n------------------\n\n* Fix unittests to work with latest cp backend.\n\n0.9.2 (2015-09-24)\n------------------\n\n* Fix error message.\n\n0.9.1 (2015-09-24)\n------------------\n\n* Remove the useless variable X_FORWARDED_REMOTE_PORT and use REMOTE_PORT\n instead.\n* Cast REMOTE_PORT to int, otherwise the comparison with 1024 is always true\n and user data are always inaccessible.\n\n0.9.0 (2015-09-08)\n------------------\n\n* GET /user_data uses the shell export by default. ?format=json must be\n specified to get the old behavior.\n* Only expose user data to root users by limiting access if local port is below\n 1024.\n\n0.8.1 (2015-09-04)\n------------------\n\n* Return HTTP/404 instead of HTTP/500 in GET /user_data/ when \n doesn't exist.\n\n0.8.0 (2015-09-03)\n------------------\n\n* Expose server location in /conf.\n\n0.7.1 (2015-09-03)\n------------------\n\n* Force Content-Type to be text/plain to update user data.\n\n0.7.0 (2015-08-31)\n------------------\n\n* Update package dependency from ocs-sdk to scaleway-sdk.\n* Require ocs.api >=0.38 for unittests since it dropped usage of CustomLog*.\n* Expose user data.\n\n0.6.3 (2015-07-15)\n------------------\n\n* Fix new release of tox is filtering env variables.\n\n0.6.2 (2015-03-16)\n------------------\n\n* Remove direct deps to ``sqlalchemy``.\n\n0.6.1 (2014-11-17)\n------------------\n\n* Use patch instead of put on servers in state view.\n* Render old format if the image is old. refs: CP-380.\n* Add a hostname property in server fields. Refs: CP-356.\n* Expose TIMEZONE. Refs: AM-2.\n\n0.6.0 (2014-10-22)\n------------------\n\n* Raise dependency on lib-ocs for fixes in shell export.\n* Fix name and fluent tag to match convention of other APIs.\n* Add PasteDeploy entry-point, refs: SCW-9.\n* Switch to split lib-ocs dependencies.\n\n0.5.0 (2014-07-11)\n------------------\n\n* Add state view to be able to directly update server state detail from\n metadata API. CP-223.\n\n0.4.2 (2014-06-12)\n------------------\n\n* Bugfixes.\n* Move reusable code to lib-ocs.\n\n0.4.1 (2014-05-16)\n------------------\n\n* Fix call super before every action to have the logger properly configured.\n* Fix UnicodeEncodeError with shell export.\n* Update unittests to work with latest api-compute.\n\n0.4.0 (2014-02-07)\n------------------\n\n* api-metadata is a client of api-compute and api-account.\n* Improve sh export.\n* Remove unused export formats.\n\n0.3.2 (2014-02-03)\n------------------\n\n* Cosmetic fixes.\n\n0.3.1 (2013-11-27)\n------------------\n\n* Use appropriate dependency from ocs for unittests.\n\n0.3.0 (2013-11-12)\n------------------\n\n* Drop all configuration management. It was unused or useless and has been\n replaced by command line option parsing.\n* Updated documentation.\n* Enhanced testsuite and coverage.\n* Use object_store factories to simplify unittests.\n* Rewrite using view model from ocs.api.\n\n0.2.0 (2013-09-26)\n------------------\n\n* Fix long_description.\n* Switch to new style models.\n* Added metadata tree export.\n\n0.1.0 (2013-09-20)\n------------------\n\n* Initial release.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://online.net", "keywords": "", "license": "Proprietary", "maintainer": "", "maintainer_email": "", "name": "api-metadata", "package_url": "https://pypi.org/project/api-metadata/", "platform": "", "project_url": "https://pypi.org/project/api-metadata/", "project_urls": { "Homepage": "http://online.net" }, "release_url": "https://pypi.org/project/api-metadata/1.2.7/", "requires_dist": null, "requires_python": "", "summary": "OCS metadata server", "version": "1.2.7" }, "last_serial": 4787693, "releases": { "1.2.7": [ { "comment_text": "", "digests": { "md5": "99b5d4275aade833ea68ebf330fbb287", "sha256": "1897f88c8f046fb240277cc947fba3cd69633678a005ef13ee536586a1b79543" }, "downloads": -1, "filename": "api_metadata-1.2.7-py2.7.egg", "has_sig": false, "md5_digest": "99b5d4275aade833ea68ebf330fbb287", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 52621, "upload_time": "2019-02-06T17:22:16", "url": "https://files.pythonhosted.org/packages/35/b1/d21aad52ba8d3f9604a73bb2a8f9ec63b9ba81c5a3183d9dd6a4f94e518d/api_metadata-1.2.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "56b5e648bfbc6fcde1b7d8434ba037e2", "sha256": "b8053ded07e8bd89ad27d95f6768f7a1cb911c7b771b7243a32f436cff06a6a2" }, "downloads": -1, "filename": "api_metadata-1.2.7-py2-none-any.whl", "has_sig": false, "md5_digest": "56b5e648bfbc6fcde1b7d8434ba037e2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 24012, "upload_time": "2019-02-06T17:22:18", "url": "https://files.pythonhosted.org/packages/3e/90/39c3d095428d79400c66aa04dc25bf699905cf2080237025dea38b9afddc/api_metadata-1.2.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba072a7bb8de8da07b2baf5d3498f9ab", "sha256": "27ee9f96b50e914f38d371ec667d7e0754e751800412e10e1418b4d606b2f7fc" }, "downloads": -1, "filename": "api-metadata-1.2.7.tar.gz", "has_sig": false, "md5_digest": "ba072a7bb8de8da07b2baf5d3498f9ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21802, "upload_time": "2019-02-06T17:22:12", "url": "https://files.pythonhosted.org/packages/a7/ae/8e7303c4aadf20fc78a22f1e71cbf6d4d1d2f730906f7a0cedb9365eb538/api-metadata-1.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "99b5d4275aade833ea68ebf330fbb287", "sha256": "1897f88c8f046fb240277cc947fba3cd69633678a005ef13ee536586a1b79543" }, "downloads": -1, "filename": "api_metadata-1.2.7-py2.7.egg", "has_sig": false, "md5_digest": "99b5d4275aade833ea68ebf330fbb287", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 52621, "upload_time": "2019-02-06T17:22:16", "url": "https://files.pythonhosted.org/packages/35/b1/d21aad52ba8d3f9604a73bb2a8f9ec63b9ba81c5a3183d9dd6a4f94e518d/api_metadata-1.2.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "56b5e648bfbc6fcde1b7d8434ba037e2", "sha256": "b8053ded07e8bd89ad27d95f6768f7a1cb911c7b771b7243a32f436cff06a6a2" }, "downloads": -1, "filename": "api_metadata-1.2.7-py2-none-any.whl", "has_sig": false, "md5_digest": "56b5e648bfbc6fcde1b7d8434ba037e2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 24012, "upload_time": "2019-02-06T17:22:18", "url": "https://files.pythonhosted.org/packages/3e/90/39c3d095428d79400c66aa04dc25bf699905cf2080237025dea38b9afddc/api_metadata-1.2.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba072a7bb8de8da07b2baf5d3498f9ab", "sha256": "27ee9f96b50e914f38d371ec667d7e0754e751800412e10e1418b4d606b2f7fc" }, "downloads": -1, "filename": "api-metadata-1.2.7.tar.gz", "has_sig": false, "md5_digest": "ba072a7bb8de8da07b2baf5d3498f9ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21802, "upload_time": "2019-02-06T17:22:12", "url": "https://files.pythonhosted.org/packages/a7/ae/8e7303c4aadf20fc78a22f1e71cbf6d4d1d2f730906f7a0cedb9365eb538/api-metadata-1.2.7.tar.gz" } ] }