File plugin for the Pulp Project
Project description
``pulp_file`` Plugin
=======================
This is the ``pulp_file`` Plugin for `Pulp Project
3.0+ <https://pypi-hypernode.com/project/pulpcore/>`__. This plugin replaces the ISO support in the
``pulp_rpm`` plugin for Pulp 2. This plugin uses the
`ChangeSet API <http://docs.pulpproject.org/en/3.0/nightly/plugins/plugin-api/changeset.html>`_
to add and remove content from a repository.
All REST API examples bellow use `httpie <https://httpie.org/doc>`__ to perform the requests.
The ``httpie`` commands below assume that the user executing the commands has a ``.netrc`` file
in the home directory. The ``.netrc`` should have the following configuration:
.. code-block::
machine localhost
login admin
password admin
If you configured the ``admin`` user with a different password, adjust the configuration
accordingly. If you prefer to specify the username and password with each request, please see
``httpie`` documentation on how to do that.
This documentation makes use of the `jq library <https://stedolan.github.io/jq/>`_
to parse the json received from requests, in order to get the unique urls generated
when objects are created. To follow this documentation as-is please install the jq
library with:
``$ sudo dnf install jq``
Install ``pulpcore``
--------------------
Follow the `installation
instructions <https://docs.pulpproject.org/en/3.0/nightly/installation/instructions.html>`__
provided with pulpcore.
Install ``pulp-file`` from source
---------------------------------
1) sudo -u pulp -i
2) source ~/pulpvenv/bin/activate
3) git clone https://github.com/pulp/pulp\_file.git
4) cd pulp\_file
5) python setup.py develop
6) pulp-manager makemigrations pulp\_file
7) pulp-manager migrate pulp\_file
8) django-admin runserver
9) sudo systemctl restart pulp\_resource\_manager
10) sudo systemctl restart pulp\_worker@1
11) sudo systemctl restart pulp\_worker@2
Install ``pulp-file`` From PyPI
-------------------------------
1) sudo -u pulp -i
2) source ~/pulpvenv/bin/activate
3) pip install pulp-file
4) pulp-manager makemigrations pulp\_file
5) pulp-manager migrate pulp\_file
6) django-admin runserver
7) sudo systemctl restart pulp\_resource\_manager
8) sudo systemctl restart pulp\_worker@1
9) sudo systemctl restart pulp\_worker@2
Create a repository ``foo``
---------------------------
``$ http POST http://localhost:8000/pulp/api/v3/repositories/ name=foo``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/repositories/8d7cd67a-9421-461f-9106-2df8e4854f5f/",
...
}
``$ export REPO_HREF=$(http :8000/pulp/api/v3/repositories/ | jq -r '.results[] | select(.name == "foo") | ._href')``
Create a new remote ``bar``
-----------------------------
``$ http POST http://localhost:8000/pulp/api/v3/remotes/file/ name='bar' url='https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST'``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/remotes/file/13ac2d63-7b7b-401d-b71b-9a5af05aab3c/",
...
}
``$ export REMOTE_HREF=$(http :8000/pulp/api/v3/remotes/file/ | jq -r '.results[] | select(.name == "bar") | ._href')``
Sync repository ``foo`` using remote ``bar``
----------------------------------------------
``$ http POST $REMOTE_HREF'sync/' repository=$REPO_HREF``
Look at the new Repository Version created
------------------------------------------
``$ http GET $REPO_HREF'versions/1/'``
.. code:: json
{
"_added_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/added_content/",
"_content_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/content/",
"_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/",
"_removed_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/removed_content/",
"content_summary": {
"file": 3
},
"created": "2018-02-23T20:29:54.499055Z",
"number": 1
}
Upload ``foo.tar.gz`` to Pulp
-----------------------------
Create an Artifact by uploading the file to Pulp.
``$ http --form POST http://localhost:8000/pulp/api/v3/artifacts/ file@./foo.tar.gz``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/",
...
}
Create ``file`` content from an Artifact
-------------------------------------------
Create a content unit and point it to your artifact
``$ http POST http://localhost:8000/pulp/api/v3/content/file/ relative_path=foo.tar.gz artifact="http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/"``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/content/file/a9578a5f-c59f-4920-9497-8d1699c112ff/",
"artifact": "http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/",
"relative_path": "foo.tar.gz",
"type": "file"
}
``$ export CONTENT_HREF=$(http :8000/pulp/api/v3/content/file/ | jq -r '.results[] | select(.relative_path == "foo.tar.gz") | ._href')``
Add content to repository ``foo``
---------------------------------
``$ http POST $REPO_HREF'versions/' add_content_units:="[\"$CONTENT_HREF\"]"``
Create a ``file`` Publisher
---------------------------
``$ http POST http://localhost:8000/pulp/api/v3/publishers/file/ name=bar``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/publishers/file/fd4cbecd-6c6a-4197-9cbe-4e45b0516309/",
...
}
``$ export PUBLISHER_HREF=$(http :8000/pulp/api/v3/publishers/file/ | jq -r '.results[] | select(.name == "bar") | ._href')``
Use the ``bar`` Publisher to create a Publication
-------------------------------------------------
``$ http POST $PUBLISHER_HREF'publish/' repository=$REPO_HREF``
.. code:: json
[
{
"_href": "http://localhost:8000/pulp/api/v3/tasks/fd4cbecd-6c6a-4197-9cbe-4e45b0516309/",
"task_id": "fd4cbecd-6c6a-4197-9cbe-4e45b0516309"
}
]
``$ export PUBLICATION_HREF=$(http :8000/pulp/api/v3/publications/ | jq -r --arg PUBLISHER_HREF "$PUBLISHER_HREF" '.results[] | select(.publisher==$PUBLISHER_HREF) | ._href')``
Create a Distribution for the Publication
---------------------------------------
``$ http POST http://localhost:8000/pulp/api/v3/distributions/ name='baz' base_path='foo' publication=$PUBLICATION_HREF``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/distributions/9b29f1b2-6726-40a2-988a-273d3f009a41/",
...
}
Download ``test.iso`` from Pulp
---------------------------------
``$ http GET http://localhost:8000/content/foo/test.iso``
=======================
This is the ``pulp_file`` Plugin for `Pulp Project
3.0+ <https://pypi-hypernode.com/project/pulpcore/>`__. This plugin replaces the ISO support in the
``pulp_rpm`` plugin for Pulp 2. This plugin uses the
`ChangeSet API <http://docs.pulpproject.org/en/3.0/nightly/plugins/plugin-api/changeset.html>`_
to add and remove content from a repository.
All REST API examples bellow use `httpie <https://httpie.org/doc>`__ to perform the requests.
The ``httpie`` commands below assume that the user executing the commands has a ``.netrc`` file
in the home directory. The ``.netrc`` should have the following configuration:
.. code-block::
machine localhost
login admin
password admin
If you configured the ``admin`` user with a different password, adjust the configuration
accordingly. If you prefer to specify the username and password with each request, please see
``httpie`` documentation on how to do that.
This documentation makes use of the `jq library <https://stedolan.github.io/jq/>`_
to parse the json received from requests, in order to get the unique urls generated
when objects are created. To follow this documentation as-is please install the jq
library with:
``$ sudo dnf install jq``
Install ``pulpcore``
--------------------
Follow the `installation
instructions <https://docs.pulpproject.org/en/3.0/nightly/installation/instructions.html>`__
provided with pulpcore.
Install ``pulp-file`` from source
---------------------------------
1) sudo -u pulp -i
2) source ~/pulpvenv/bin/activate
3) git clone https://github.com/pulp/pulp\_file.git
4) cd pulp\_file
5) python setup.py develop
6) pulp-manager makemigrations pulp\_file
7) pulp-manager migrate pulp\_file
8) django-admin runserver
9) sudo systemctl restart pulp\_resource\_manager
10) sudo systemctl restart pulp\_worker@1
11) sudo systemctl restart pulp\_worker@2
Install ``pulp-file`` From PyPI
-------------------------------
1) sudo -u pulp -i
2) source ~/pulpvenv/bin/activate
3) pip install pulp-file
4) pulp-manager makemigrations pulp\_file
5) pulp-manager migrate pulp\_file
6) django-admin runserver
7) sudo systemctl restart pulp\_resource\_manager
8) sudo systemctl restart pulp\_worker@1
9) sudo systemctl restart pulp\_worker@2
Create a repository ``foo``
---------------------------
``$ http POST http://localhost:8000/pulp/api/v3/repositories/ name=foo``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/repositories/8d7cd67a-9421-461f-9106-2df8e4854f5f/",
...
}
``$ export REPO_HREF=$(http :8000/pulp/api/v3/repositories/ | jq -r '.results[] | select(.name == "foo") | ._href')``
Create a new remote ``bar``
-----------------------------
``$ http POST http://localhost:8000/pulp/api/v3/remotes/file/ name='bar' url='https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST'``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/remotes/file/13ac2d63-7b7b-401d-b71b-9a5af05aab3c/",
...
}
``$ export REMOTE_HREF=$(http :8000/pulp/api/v3/remotes/file/ | jq -r '.results[] | select(.name == "bar") | ._href')``
Sync repository ``foo`` using remote ``bar``
----------------------------------------------
``$ http POST $REMOTE_HREF'sync/' repository=$REPO_HREF``
Look at the new Repository Version created
------------------------------------------
``$ http GET $REPO_HREF'versions/1/'``
.. code:: json
{
"_added_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/added_content/",
"_content_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/content/",
"_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/",
"_removed_href": "http://localhost:8000/pulp/api/v3/repositories/b787e6ad-d6b6-4e3d-ab12-73eba19b42fb/versions/1/removed_content/",
"content_summary": {
"file": 3
},
"created": "2018-02-23T20:29:54.499055Z",
"number": 1
}
Upload ``foo.tar.gz`` to Pulp
-----------------------------
Create an Artifact by uploading the file to Pulp.
``$ http --form POST http://localhost:8000/pulp/api/v3/artifacts/ file@./foo.tar.gz``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/",
...
}
Create ``file`` content from an Artifact
-------------------------------------------
Create a content unit and point it to your artifact
``$ http POST http://localhost:8000/pulp/api/v3/content/file/ relative_path=foo.tar.gz artifact="http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/"``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/content/file/a9578a5f-c59f-4920-9497-8d1699c112ff/",
"artifact": "http://localhost:8000/pulp/api/v3/artifacts/7d39e3f6-535a-4b6e-81e9-c83aa56aa19e/",
"relative_path": "foo.tar.gz",
"type": "file"
}
``$ export CONTENT_HREF=$(http :8000/pulp/api/v3/content/file/ | jq -r '.results[] | select(.relative_path == "foo.tar.gz") | ._href')``
Add content to repository ``foo``
---------------------------------
``$ http POST $REPO_HREF'versions/' add_content_units:="[\"$CONTENT_HREF\"]"``
Create a ``file`` Publisher
---------------------------
``$ http POST http://localhost:8000/pulp/api/v3/publishers/file/ name=bar``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/publishers/file/fd4cbecd-6c6a-4197-9cbe-4e45b0516309/",
...
}
``$ export PUBLISHER_HREF=$(http :8000/pulp/api/v3/publishers/file/ | jq -r '.results[] | select(.name == "bar") | ._href')``
Use the ``bar`` Publisher to create a Publication
-------------------------------------------------
``$ http POST $PUBLISHER_HREF'publish/' repository=$REPO_HREF``
.. code:: json
[
{
"_href": "http://localhost:8000/pulp/api/v3/tasks/fd4cbecd-6c6a-4197-9cbe-4e45b0516309/",
"task_id": "fd4cbecd-6c6a-4197-9cbe-4e45b0516309"
}
]
``$ export PUBLICATION_HREF=$(http :8000/pulp/api/v3/publications/ | jq -r --arg PUBLISHER_HREF "$PUBLISHER_HREF" '.results[] | select(.publisher==$PUBLISHER_HREF) | ._href')``
Create a Distribution for the Publication
---------------------------------------
``$ http POST http://localhost:8000/pulp/api/v3/distributions/ name='baz' base_path='foo' publication=$PUBLICATION_HREF``
.. code:: json
{
"_href": "http://localhost:8000/pulp/api/v3/distributions/9b29f1b2-6726-40a2-988a-273d3f009a41/",
...
}
Download ``test.iso`` from Pulp
---------------------------------
``$ http GET http://localhost:8000/content/foo/test.iso``
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pulp-file-0.0.1b1.tar.gz
(18.3 kB
view details)
Built Distribution
File details
Details for the file pulp-file-0.0.1b1.tar.gz
.
File metadata
- Download URL: pulp-file-0.0.1b1.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8886ab371bc04abc3995c20edfa9747c94ab9d260223ee209af9478541f5e9d9 |
|
MD5 | 03df086bdc057e54d9214995700889a0 |
|
BLAKE2b-256 | f90681388995484897411eb1d49b01661fdac22c8aea32b303d44f92564d4f3f |
File details
Details for the file pulp_file-0.0.1b1-py3-none-any.whl
.
File metadata
- Download URL: pulp_file-0.0.1b1-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 950674db2972215a8433cb6cf30734c84a14fee1bd0410e2f1dc70ec385280d0 |
|
MD5 | b5842cc4b14d13dd17a1357cb0c6509d |
|
BLAKE2b-256 | 7166d6bf3dc35c38e2ccc15eb068f87e7cf323cd0fff40596bc58f312471768f |