{
"info": {
"author": "Simon Baatz",
"author_email": "gmbnomis@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Framework :: Django",
"License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": ".. image:: https://travis-ci.org/gmbnomis/pulp_cookbook.svg?branch=master\n :target: https://travis-ci.org/gmbnomis/pulp_cookbook\n :alt: Travis (.org)\n.. image:: https://img.shields.io/pypi/v/pulp-cookbook.svg\n :target: https://pypi.python.org/pypi/pulp-cookbook\n :alt: PyPI\n.. image:: https://img.shields.io/pypi/pyversions/pulp-cookbook.svg\n :target: https://pypi.python.org/pypi/pulp-cookbook\n :alt: PyPI - Python Version\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: Code style: black\n\n\n``pulp_cookbook`` Plugin\n========================\n\nThis is the ``pulp_cookbook`` Plugin for `Pulp Project 3.0+\n`__. This plugin implements\nsupport for Chef cookbooks.\n\nCurrently, it allows to import packaged cookbooks into cookbook\nrepositories. When publishing a specific version of a cookbook\nrepository, a `universe\n`_ endpoint will\nbe created to allow tools like `berkshelf\n`_ to download cookbooks and\nresolve cookbook dependencies.\n\n**Not supported** (yet):\n\n- Full support of the `Supermarket API `_\n- Cookbook version constraints to a remote (only filtering by cookbook name\n is supported)\n\nAll REST API examples below use `httpie `__ to perform\nthe requests. The ``httpie`` commands below assume that the user executing the\ncommands has a ``.netrc`` file in the home directory. The ``.netrc`` should have\nthe following configuration:\n\n.. code:: text\n\n machine localhost\n login admin\n password admin\n\nIf you configured the ``admin`` user with a different password, adjust the\nconfiguration accordingly. If you prefer to specify the username and password\nwith each request, please see ``httpie`` documentation on how to do that.\n\nThis documentation makes use of the `jq library\n`_ to parse the json received from requests, in\norder to get the unique urls generated when objects are created. To follow this\ndocumentation as-is please install the jq library/binary with:\n\n``$ sudo dnf install jq``\n\n\nInstall ``pulpcore``\n--------------------\n\nFollow the `installation\ninstructions `__\nprovided with pulpcore.\n\nUsers should install from **either** PyPI or source.\n\nInstall ``pulp_cookbook`` from source\n-------------------------------------\n\n.. code-block:: bash\n\n sudo -u pulp -i\n source ~/pulpvenv/bin/activate\n git clone https://github.com/gmbnomis/pulp_cookbook.git\n cd pulp_cookbook\n pip install -e .\n\nInstall ``pulp-cookbook`` From PyPI\n-----------------------------------\n\n.. code-block:: bash\n\n sudo -u pulp -i\n source ~/pulpvenv/bin/activate\n pip install pulp-cookbook\n\nMake and Run Migrations\n-----------------------\n\n.. code-block:: bash\n\n export DJANGO_SETTINGS_MODULE=pulpcore.app.settings\n django-admin migrate pulp_cookbook\n\nRun Services\n------------\n\n.. code-block:: bash\n\n django-admin runserver 24817\n gunicorn pulpcore.content:server --bind 'localhost:24816' --worker-class 'aiohttp.GunicornWebWorker' -w 2\n sudo systemctl restart pulpcore-resource-manager\n sudo systemctl restart pulpcore-worker@1\n sudo systemctl restart pulpcore-worker@2\n\nExample: Import cookbooks and synchronize from remote\n=====================================================\n\nCreate a repository ``foo``\n---------------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/repositories/ name=foo``\n\n.. code:: json\n\n {\n \"pulp_created\": \"2019-10-03T16:29:25.171311Z\",\n \"pulp_href\": \"/pulp/api/v3/repositories/200118d5-dc92-4e2d-b970-df7edec122ea/\",\n \"latest_version_href\": null,\n \"versions_href\": \"/pulp/api/v3/repositories/200118d5-dc92-4e2d-b970-df7edec122ea/versions/\",\n \"description\": null,\n \"name\": \"foo\",\n \"plugin_managed\": false\n }\n\n``$ export REPO_HREF=$(http :24817/pulp/api/v3/repositories/ | jq -r '.results[] | select(.name == \"foo\") | .pulp_href')``\n\nUpload cookbooks to Pulp\n------------------------\n\nAs a simple example, let's download two cookbooks from the Chef Supermarket and\nupload them into our repository.\n\nDownload 'ubuntu' and 'apt' cookbooks (the 'ubuntu' cookbooks depends on the\n'apt' cookbook):\n\n``$ curl -Lo ubuntu-2.0.1.tgz https://supermarket.chef.io:443/api/v1/cookbooks/ubuntu/versions/2.0.1/download``\n``$ curl -Lo apt-7.0.0.tgz https://supermarket.chef.io:443/api/v1/cookbooks/apt/versions/7.0.0/download``\n\nCreate a content unit for ubuntu 2.0.1:\n\n``$ http --form POST http://localhost:24817/pulp/api/v3/content/cookbook/cookbooks/ name=\"ubuntu\" file@ubuntu-2.0.1.tgz``\n\n``$ export UBUNTU_CONTENT_HREF=$(http :24817/pulp/api/v3/content/cookbook/cookbooks/?name=ubuntu | jq -r '.results[0].pulp_href')``\n\nCreate a content unit for apt 7.0.0:\n\n``$ http --form POST http://localhost:24817/pulp/api/v3/content/cookbook/cookbooks/ name=\"apt\" file@apt-7.0.0.tgz``\n\n``$ export APT_CONTENT_HREF=$(http :24817/pulp/api/v3/content/cookbook/cookbooks/?name=apt | jq -r '.results[0].pulp_href')``\n\n\nAdd content to repository ``foo``\n---------------------------------\n\n``$ http POST :24817$REPO_HREF'versions/' add_content_units:=\"[\\\"$UBUNTU_CONTENT_HREF\\\",\\\"$APT_CONTENT_HREF\\\"]\"``\n\n``$ export LATEST_VERSION_HREF=$(http :24817$REPO_HREF | jq -r '.latest_version_href')``\n\nCreate a Publication\n--------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/publications/cookbook/cookbook/ repository_version=$LATEST_VERSION_HREF``\n\n.. code:: json\n\n {\n \"task\": \"/pulp/api/v3/tasks/cd37e3dd-fb9b-4fa3-a32b-174bcb860c79/\"\n }\n\n``$ export PUBLICATION_HREF=$(http :24817/pulp/api/v3/publications/cookbook/cookbook/ | jq --arg LVH \"$LATEST_VERSION_HREF\" -r '.results[] | select(.repository_version == $LVH) | .pulp_href')``\n\n\nCreate a Distribution at 'foo' for the Publication\n--------------------------------------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/distributions/cookbook/cookbook/ name='baz' base_path='foo' publication=$PUBLICATION_HREF``\n\nYou can have a look at the published \"universe\" metadata now:\n\n``$ http http://localhost:24816/pulp_cookbook/content/foo/universe``\n\n.. code:: json\n\n {\n \"apt\": {\n \"7.0.0\": {\n \"dependencies\": {},\n \"download_url\": \"http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/apt/7_0_0/apt-7.0.0.tar.gz\",\n \"location_path\": \"http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/apt/7_0_0/apt-7.0.0.tar.gz\",\n \"location_type\": \"uri\"\n }\n },\n \"ubuntu\": {\n \"2.0.1\": {\n \"dependencies\": {\n \"apt\": \">= 0.0.0\"\n },\n \"download_url\": \"http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/ubuntu/2_0_1/ubuntu-2.0.1.tar.gz\",\n \"location_path\": \"http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/ubuntu/2_0_1/ubuntu-2.0.1.tar.gz\",\n \"location_type\": \"uri\"\n }\n }\n }\n\n\nUse Berkshelf with the published repo\n-------------------------------------\n\nCreate a Berksfile with the following content:\n\n\n.. code:: ruby\n\n source 'http://localhost:24816/pulp_cookbook/content/foo/'\n\n cookbook 'ubuntu'\n\n\n``$ berks install``\n\n.. code:: text\n\n Resolving cookbook dependencies...\n Fetching cookbook index from http://localhost:24816/pulp_cookbook/content/foo/...\n Installing apt (7.0.0) from http://localhost:24816/pulp_cookbook/content/foo/ ([uri] http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/apt/7_0_0/apt-7.0.0.tar.gz)\n Installing ubuntu (2.0.1) from http://localhost:24816/pulp_cookbook/content/foo/ ([uri] http://localhost:24816/pulp_cookbook/content/foo/cookbook_files/ubuntu/2_0_1/ubuntu-2.0.1.tar.gz)\n\nCreate a new remote ``foo_remote``\n-----------------------------------\n\nIn addition to uploading content, ``pulp_cookbook`` allows to synchronize a repo\nwith an upstream repo (that has to provide a \"universe\" endpoint).\n\nLet's mirror the ``pulp`` and ``qpid`` cookbooks into our existing repo. First, we have to create a remote:\n\n``$ http POST http://localhost:24817/pulp/api/v3/remotes/cookbook/cookbook/ name='foo_remote' url='https://supermarket.chef.io/' cookbooks:='{\"pulp\": \"\", \"qpid\": \"\"}'``\n\n.. code:: json\n\n {\n \"pulp_created\": \"2019-10-03T16:37:19.240581Z\",\n \"pulp_href\": \"/pulp/api/v3/remotes/cookbook/cookbook/601c0402-30ff-4209-9008-5bc0339419be/\",\n \"pulp_last_updated\": \"2019-10-03T16:37:19.240602Z\",\n \"_type\": \"cookbook.cookbook\",\n \"cookbooks\": {\n \"pulp\": \"\",\n \"qpid\": \"\"\n },\n \"download_concurrency\": 20,\n \"name\": \"foo_remote\",\n \"policy\": \"immediate\",\n \"proxy_url\": null,\n \"ssl_ca_certificate\": null,\n \"ssl_client_certificate\": null,\n \"ssl_client_key\": null,\n \"ssl_validation\": true,\n \"url\": \"https://supermarket.chef.io/\"\n }\n\n``$ export REMOTE_HREF=$(http :24817/pulp/api/v3/remotes/cookbook/cookbook/ | jq -r '.results[] | select(.name == \"foo_remote\") | .pulp_href')``\n\nSync repository ``foo`` using remote ``foo_remote``\n----------------------------------------------------\n\nWe don't want to delete the ``apt`` and ``ubuntu`` coobooks imported previously.\nTherefore, we sync in 'additive' mode by setting ``mirror`` to false.\n\n``$ http POST :24817$REMOTE_HREF'sync/' repository=$REPO_HREF mirror:=false``\n\nLook at the new Repository Version created\n------------------------------------------\n\n``$ http GET ':24817'$REPO_HREF'versions/2/'``\n\n.. code:: json\n\n {\n \"pulp_created\": \"2019-10-03T16:38:18.843201Z\",\n \"pulp_href\": \"/pulp/api/v3/repositories/200118d5-dc92-4e2d-b970-df7edec122ea/versions/2/\",\n \"base_version\": null,\n \"content_summary\": {\n \"added\": {\n \"cookbook.cookbook\": {\n \"count\": 2,\n \"href\": \"/pulp/api/v3/content/cookbook/cookbooks/?repository_version_added=/pulp/api/v3/repositories/200118d5-dc92-4e2d-b970-df7edec122ea/versions/2/\"\n }\n },\n \"present\": {\n \"cookbook.cookbook\": {\n \"count\": 4,\n \"href\": \"/pulp/api/v3/content/cookbook/cookbooks/?repository_version=/pulp/api/v3/repositories/200118d5-dc92-4e2d-b970-df7edec122ea/versions/2/\"\n }\n },\n \"removed\": {}\n },\n \"number\": 2\n }\n\nAt the time of writing, there was only a single version of the ``pulp`` and\n``qpid`` cookbooks available, respectively. This brings the total count to 4 cookbooks.\n\nPublish the newest version\n--------------------------\n\nTo publish the version just created, do:\n\n``$ http POST http://localhost:24817/pulp/api/v3/publications/cookbook/cookbook/ repository=$REPO_HREF``\n\nAnd update the distribution:\n\n.. code:: bash\n\n export DISTRIBUTION_HREF=$(http :24817/pulp/api/v3/distributions/cookbook/cookbook/ | jq -r '.results[] | select(.name == \"baz\") | .pulp_href')\n export LATEST_VERSION_HREF=$(http :24817$REPO_HREF | jq -r '.latest_version_href')\n export LATEST_PUBLICATION_HREF=$(http :24817/pulp/api/v3/publications/cookbook/cookbook/ | jq --arg LVH \"$LATEST_VERSION_HREF\" -r '.results[] | select(.repository_version == $LVH) | .pulp_href')\n http PATCH :24817$DISTRIBUTION_HREF publication=$LATEST_PUBLICATION_HREF\n\nNow, the universe endpoint\n``http://localhost:24816/pulp_cookbook/content/foo/universe`` will show the\ncontent of the new repo version.\n\n\nExample: Snapshot of Chef Supermarket\n=====================================\n\nUsing the 'on_demand' policy on a remote allows to create snapshots of a large\nrepo like the Chef Supermarket effectively. In \"on_demand\" mode, only the\nmeta-data will be synchronized. Actual cookbooks are not downloaded at sync\ntime, but only when requested from a distribution. After the first successful\ndownload, the cookbooks are stored locally for faster retrieval.\n\nCreate a repository ``supermarket``\n-----------------------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/repositories/ name=supermarket``\n\n.. code:: json\n\n {\n \"pulp_created\": \"2019-03-30T22:59:02.569833Z\",\n \"pulp_href\": \"/pulp/api/v3/repositories/80f03582-ae58-406d-b456-bbb33e718f8f/\",\n \"latest_version_href\": null,\n \"versions_href\": \"/pulp/api/v3/repositories/80f03582-ae58-406d-b456-bbb33e718f8f/versions/\",\n \"description\": \"\",\n \"name\": \"supermarket\"\n }\n\n\n``$ export REPO_HREF=$(http :24817/pulp/api/v3/repositories/ | jq -r '.results[] | select(.name == \"supermarket\") | .pulp_href')``\n\n\nCreate a new remote ``supermarket``\n-----------------------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/remotes/cookbook/cookbook/ name='supermarket' url='https://supermarket.chef.io/' policy=on_demand``\n\n.. code:: json\n\n {\n \"pulp_created\": \"2019-03-30T22:59:35.618466Z\",\n \"pulp_href\": \"/pulp/api/v3/remotes/cookbook/cookbook/472c73b9-0132-4c1b-8814-816fd237a40a/\",\n \"pulp_last_updated\": \"2019-03-30T22:59:35.618484Z\",\n \"_type\": \"cookbook.cookbook\",\n \"cookbooks\": \"\",\n \"download_concurrency\": 20,\n \"name\": \"supermarket\",\n \"policy\": \"on_demand\",\n \"proxy_url\": \"\",\n \"ssl_validation\": true,\n \"url\": \"https://supermarket.chef.io/\",\n \"validate\": true\n }\n\n\n``$ export REMOTE_HREF=$(http :24817/pulp/api/v3/remotes/cookbook/cookbook/ | jq -r '.results[] | select(.name == \"supermarket\") | .pulp_href')``\n\n\nSync repository ``supermarket`` using remote ``supermarket``\n------------------------------------------------------------\n\n\n``$ http POST :24817$REMOTE_HREF'sync/' repository=$REPO_HREF mirror:=true``\n\n.. code:: json\n\n {\n \"task\": \"/pulp/api/v3/tasks/24990466-6602-4f4f-bb59-6d827bd48130/\"\n }\n\nThis will take a while. You can query the task status using the returned URL. In\nthe example above, use ``http\n:24817/pulp/api/v3/tasks/24990466-6602-4f4f-bb59-6d827bd48130/`` and inspect the\n\"state\" field.\n\n\nCreate a Publication\n--------------------\n\n``$ export LATEST_VERSION_HREF=$(http :24817$REPO_HREF | jq -r '.latest_version_href')``\n\n``$ http POST http://localhost:24817/pulp/api/v3/publications/cookbook/cookbook/ repository_version=$LATEST_VERSION_HREF``\n\n.. code:: json\n\n {\n \"task\": \"/pulp/api/v3/tasks/8e9d3faf-695f-4048-a11a-1a7a65bd2f8e/\"\n }\n\nAgain, this may take some time. When the task is finished, get the URL of the\npublication:\n\n``$ export PUBLICATION_HREF=$(http :24817/pulp/api/v3/publications/cookbook/cookbook/ | jq --arg LVH \"$LATEST_VERSION_HREF\" -r '.results[] | select(.repository_version == $LVH) | .pulp_href')``\n\n\nCreate a Distribution at 'supermarket' for the Publication\n----------------------------------------------------------\n\n``$ http POST http://localhost:24817/pulp/api/v3/distributions/cookbook/cookbook/ name='supermarket' base_path='supermarket' publication=$PUBLICATION_HREF``\n\nYou can have a look at the published \"universe\" metadata now:\n\n``$ http localhost:24816/pulp_cookbook/content/supermarket/universe``\n\nIn your ``Berksfile`` you can use the following ``source`` to access the\nSupermarket snapshot:\n\n.. code:: ruby\n\n source 'http://localhost:24816/pulp_cookbook/content/supermarket/'\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/gmbnomis/pulp_cookbook/",
"keywords": "",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "pulp-cookbook",
"package_url": "https://pypi.org/project/pulp-cookbook/",
"platform": "",
"project_url": "https://pypi.org/project/pulp-cookbook/",
"project_urls": {
"Homepage": "https://github.com/gmbnomis/pulp_cookbook/"
},
"release_url": "https://pypi.org/project/pulp-cookbook/0.1.0b3/",
"requires_dist": [
"pulpcore-plugin (==0.1rc7)"
],
"requires_python": "",
"summary": "Cookbook plugin for the Pulp Project",
"version": "0.1.0b3"
},
"last_serial": 5980197,
"releases": {
"0.0.1a1": [
{
"comment_text": "",
"digests": {
"md5": "04ceb744b7c96880101ebfc4e66170e7",
"sha256": "def9e82e74251379054be4ba5bdc3cc270af18bce890ea16b25a2caedd0415b6"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.1a1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "04ceb744b7c96880101ebfc4e66170e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11758,
"upload_time": "2018-08-25T16:28:42",
"url": "https://files.pythonhosted.org/packages/be/5b/8575d903075c2c199f7e6b43847c12773caa7cc6083b3707c536b48f3873/pulp_cookbook-0.0.1a1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "02a9877afee1c774b7b5c4f7b25ee8ec",
"sha256": "532350fdfc33fc605d38574a5f8e9e7c7224480aa671f7e43660a3ef8de7de7b"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.1a1.tar.gz",
"has_sig": false,
"md5_digest": "02a9877afee1c774b7b5c4f7b25ee8ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19000,
"upload_time": "2018-08-25T16:28:43",
"url": "https://files.pythonhosted.org/packages/59/d1/0025736fad1595e972d94bd5338801aad10ae56723775922f5d61ab0b12a/pulp-cookbook-0.0.1a1.tar.gz"
}
],
"0.0.2a2": [
{
"comment_text": "",
"digests": {
"md5": "423b6fc80b3c1e62dbb6562d43be164e",
"sha256": "c49191ff15e6b8d290fd991edd38a598771ef14f9f2031139008c76bc011444c"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.2a2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "423b6fc80b3c1e62dbb6562d43be164e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 30427,
"upload_time": "2018-09-14T18:52:15",
"url": "https://files.pythonhosted.org/packages/1f/36/5cc7e4d79e50261131cdd90487027bedb18428cc73005082d9d4f3082ec1/pulp_cookbook-0.0.2a2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "54e07a6c1b55f9fb07c746acfd388e20",
"sha256": "614b4e6c8c01e1475656c941b5bee4d31943c17576e3a81adeef5d1660f8bc95"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.2a2.tar.gz",
"has_sig": false,
"md5_digest": "54e07a6c1b55f9fb07c746acfd388e20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30761,
"upload_time": "2018-09-14T18:52:17",
"url": "https://files.pythonhosted.org/packages/4f/f0/0d51598beb1176611eae8830a8f4b04548923f44dc81cf01c0151e7e0cda/pulp-cookbook-0.0.2a2.tar.gz"
}
],
"0.0.3a1": [
{
"comment_text": "",
"digests": {
"md5": "7680f8c8288073cc0ccbe4096f7b563a",
"sha256": "c10b8230557df1680f9ac7a9b9af0605a4135b21c96d738870821626e747474e"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.3a1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7680f8c8288073cc0ccbe4096f7b563a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34929,
"upload_time": "2018-12-19T21:15:51",
"url": "https://files.pythonhosted.org/packages/ec/84/b80c622616295236ecbc75fc6d146cedfe7ce7ece1aaf746b070b72ac176/pulp_cookbook-0.0.3a1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1ce6e27d65da4cb3f22870916f7081d5",
"sha256": "8cfe57ffa5e04f1cc7be7d9233ef67df232d988aac092a7e296bec0551df7975"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.3a1.tar.gz",
"has_sig": false,
"md5_digest": "1ce6e27d65da4cb3f22870916f7081d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29822,
"upload_time": "2018-12-19T21:15:53",
"url": "https://files.pythonhosted.org/packages/5a/ff/8cfd690260e7fef286d624f40f660a8bb0049b4254b61ff7eddb7c1bf024/pulp-cookbook-0.0.3a1.tar.gz"
}
],
"0.0.3a2": [
{
"comment_text": "",
"digests": {
"md5": "6ef7b2840efb8fe0cd69d5e9d3a34beb",
"sha256": "c577a81e320fca681db6841bd66d064f546e741258692edad9f9da9b06f3241a"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.3a2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ef7b2840efb8fe0cd69d5e9d3a34beb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 35007,
"upload_time": "2018-12-22T13:32:39",
"url": "https://files.pythonhosted.org/packages/0a/01/c9f0c4c59dded826775f6d3d625cac71569fddfc19cd14879f9d327b62bd/pulp_cookbook-0.0.3a2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "209b97cba0775d3721b5fe3d6add747d",
"sha256": "85a2e4532167431d95128121b0a04a3cbb3e139707b7bfe13395fb82d97274b3"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.3a2.tar.gz",
"has_sig": false,
"md5_digest": "209b97cba0775d3721b5fe3d6add747d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29893,
"upload_time": "2018-12-22T13:32:41",
"url": "https://files.pythonhosted.org/packages/dd/38/03d3dec35389620f733af85ae1cb848fc4f009738d2c54b7a89eee4dd493/pulp-cookbook-0.0.3a2.tar.gz"
}
],
"0.0.4b1": [
{
"comment_text": "",
"digests": {
"md5": "1c0b93fd76d33e9733e9d543c28421c5",
"sha256": "eabcd0b4c647770bab3d604f251b434cef5413da2721031166cbe4d186098a79"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.4b1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1c0b93fd76d33e9733e9d543c28421c5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 45509,
"upload_time": "2019-02-05T20:49:51",
"url": "https://files.pythonhosted.org/packages/8d/65/413be3abb61dc154dbed827ba847b4826dc57e3b307a8d75a7620c0572ef/pulp_cookbook-0.0.4b1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4a039fec30101f1cedcfe42290c4bf69",
"sha256": "69146929968b8c545da43c5e9bebbdc013565f21d36d7352f76db302724aa54b"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.4b1.tar.gz",
"has_sig": false,
"md5_digest": "4a039fec30101f1cedcfe42290c4bf69",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39243,
"upload_time": "2019-02-05T20:49:53",
"url": "https://files.pythonhosted.org/packages/43/f3/201a5d76a4bbcd56d60c8e7e47bdc230f9f51ac76d1fde4beec21610c442/pulp-cookbook-0.0.4b1.tar.gz"
}
],
"0.0.4b2": [
{
"comment_text": "",
"digests": {
"md5": "d0f440d79f075dededd48e6e003903ed",
"sha256": "a27986cc9583f3ae0df5e42bb23c7defdbfc2c37ab8bc67c0151aff25cb0078f"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.4b2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d0f440d79f075dededd48e6e003903ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 47075,
"upload_time": "2019-03-31T17:12:50",
"url": "https://files.pythonhosted.org/packages/86/d1/61dabd902ec49b4c74a8f8d25458a05984268c649eb4233e4e2eeee29a7a/pulp_cookbook-0.0.4b2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "21b8517139aa03dac404ea65936a47f6",
"sha256": "208b533605e77fbcb78f33002c7f783ab1a8f7ecec7464aa4b1a30f692ee558c"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.4b2.tar.gz",
"has_sig": false,
"md5_digest": "21b8517139aa03dac404ea65936a47f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40162,
"upload_time": "2019-03-31T17:12:52",
"url": "https://files.pythonhosted.org/packages/6d/e6/76b13c5b229e92527a30c3d87e05f92d3b495d9baf1b973512496bd8b2b8/pulp-cookbook-0.0.4b2.tar.gz"
}
],
"0.0.4b3": [
{
"comment_text": "",
"digests": {
"md5": "2aad1419c52f78158474e53bfb300033",
"sha256": "bbd42c3b55f05eaadc81ed76466b90284933db2647058155af586e4bbc3f089e"
},
"downloads": -1,
"filename": "pulp_cookbook-0.0.4b3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2aad1419c52f78158474e53bfb300033",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 45153,
"upload_time": "2019-05-20T18:52:13",
"url": "https://files.pythonhosted.org/packages/71/1b/fad6aa7c729025cb1f648fb707f5800cd41227566b09897803747b37e053/pulp_cookbook-0.0.4b3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e4a542afb32281a1ef089a25ecca080d",
"sha256": "6635202302a850ae153c5745a38d58017e0d26c9911024e6779a7c4c7ff00d34"
},
"downloads": -1,
"filename": "pulp-cookbook-0.0.4b3.tar.gz",
"has_sig": false,
"md5_digest": "e4a542afb32281a1ef089a25ecca080d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39059,
"upload_time": "2019-05-20T18:52:16",
"url": "https://files.pythonhosted.org/packages/7b/b8/2dd816ee56bb1e463ef50789f2c76d408fb2988ba9a89be37ba019674972/pulp-cookbook-0.0.4b3.tar.gz"
}
],
"0.1.0b1": [
{
"comment_text": "",
"digests": {
"md5": "63eedeed88d63020d0772241ce1c976f",
"sha256": "cb6f8499b5e9bb808495d830b0b5cc7f691f4181401e69a5f2fb4d9fe11e0901"
},
"downloads": -1,
"filename": "pulp_cookbook-0.1.0b1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63eedeed88d63020d0772241ce1c976f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 47955,
"upload_time": "2019-09-23T17:00:36",
"url": "https://files.pythonhosted.org/packages/31/53/c12cb4e3c59b50a3513621ded4b5f9d0349c7442c598d3a6d293a4bec192/pulp_cookbook-0.1.0b1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "25a3ed2c135a302d91795fe8add0851e",
"sha256": "0284e8dfadd93fa11c3e0df166433935389baba9e0446ffa93f58233a942f933"
},
"downloads": -1,
"filename": "pulp-cookbook-0.1.0b1.tar.gz",
"has_sig": false,
"md5_digest": "25a3ed2c135a302d91795fe8add0851e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 41232,
"upload_time": "2019-09-23T17:00:38",
"url": "https://files.pythonhosted.org/packages/a2/fb/10794ed820ebcbca811883513fc7997e84ee5aa3ad40fe36e6443295abcc/pulp-cookbook-0.1.0b1.tar.gz"
}
],
"0.1.0b2": [
{
"comment_text": "",
"digests": {
"md5": "2d7b91e0062021fb217b6c72185f8fac",
"sha256": "0d566452b6455f80adb5d45ce29d222c2cb3171388caca831621feb121b9212c"
},
"downloads": -1,
"filename": "pulp_cookbook-0.1.0b2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2d7b91e0062021fb217b6c72185f8fac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 48203,
"upload_time": "2019-10-04T20:51:00",
"url": "https://files.pythonhosted.org/packages/bb/f5/fb561cac8803611048fa50fd9dd0e93f393d6ca89fdaa382baf68b7665ec/pulp_cookbook-0.1.0b2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "179cae15897b57ec16c0cb85ad5ee6cf",
"sha256": "4944ddf7ab7d8914c8c2998e2d38260092cd508f8b2b5a7fd5cdf1718f25a7db"
},
"downloads": -1,
"filename": "pulp-cookbook-0.1.0b2.tar.gz",
"has_sig": false,
"md5_digest": "179cae15897b57ec16c0cb85ad5ee6cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40433,
"upload_time": "2019-10-04T20:51:02",
"url": "https://files.pythonhosted.org/packages/cb/1b/b678b4a1cf3ca4e8f017e9f77499f9c4de31a43ab2c3158c40bad908db81/pulp-cookbook-0.1.0b2.tar.gz"
}
],
"0.1.0b3": [
{
"comment_text": "",
"digests": {
"md5": "119ededc9b321a4445fa787a686b453f",
"sha256": "1c9dde527c857baed705d64fc28dc55af658d66a4b2b04251672b1bd1cd06f2d"
},
"downloads": -1,
"filename": "pulp_cookbook-0.1.0b3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "119ededc9b321a4445fa787a686b453f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 48249,
"upload_time": "2019-10-15T22:27:40",
"url": "https://files.pythonhosted.org/packages/97/d5/71819878b20ac743bf5d7ca41e108a5adccea43dae13b0fa54e038a555a2/pulp_cookbook-0.1.0b3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "32e6bd4f9289494f437c97c35f2870bc",
"sha256": "52f9f7dabd2d07d3eda5dd033fc114f3c5eada9c3e7d2844c92920d8176d4bce"
},
"downloads": -1,
"filename": "pulp-cookbook-0.1.0b3.tar.gz",
"has_sig": false,
"md5_digest": "32e6bd4f9289494f437c97c35f2870bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40566,
"upload_time": "2019-10-15T22:27:42",
"url": "https://files.pythonhosted.org/packages/3e/dd/c6a17c8a193eb27aa30936fc2d88f507a47e25c808d35ce6a2eabc150cd0/pulp-cookbook-0.1.0b3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "119ededc9b321a4445fa787a686b453f",
"sha256": "1c9dde527c857baed705d64fc28dc55af658d66a4b2b04251672b1bd1cd06f2d"
},
"downloads": -1,
"filename": "pulp_cookbook-0.1.0b3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "119ededc9b321a4445fa787a686b453f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 48249,
"upload_time": "2019-10-15T22:27:40",
"url": "https://files.pythonhosted.org/packages/97/d5/71819878b20ac743bf5d7ca41e108a5adccea43dae13b0fa54e038a555a2/pulp_cookbook-0.1.0b3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "32e6bd4f9289494f437c97c35f2870bc",
"sha256": "52f9f7dabd2d07d3eda5dd033fc114f3c5eada9c3e7d2844c92920d8176d4bce"
},
"downloads": -1,
"filename": "pulp-cookbook-0.1.0b3.tar.gz",
"has_sig": false,
"md5_digest": "32e6bd4f9289494f437c97c35f2870bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40566,
"upload_time": "2019-10-15T22:27:42",
"url": "https://files.pythonhosted.org/packages/3e/dd/c6a17c8a193eb27aa30936fc2d88f507a47e25c808d35ce6a2eabc150cd0/pulp-cookbook-0.1.0b3.tar.gz"
}
]
}