Skip to main content

Gemfile plugin for the Pulp Project

Project description

https://travis-ci.org/ATIX-AG/pulp_gem.svg?branch=master

pulp_gem Plugin

This is the pulp_gem Plugin for Pulp Project 3.0+. This plugin adds importers and distributors for rubygems.

All REST API examples below use httpie 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:

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 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 provided with pulpcore.

Install pulp-gem from source

  1. sudo -u pulp -i

  2. source ~/pulpvenv/bin/activate

  3. git clone https://github.com/ATIX-AG/pulp_gem

  4. cd pulp_gem

  5. python setup.py develop

  6. pulp-manager makemigrations pulp_gem

  7. pulp-manager migrate pulp_gem

  8. django-admin runserver

  9. gunicorn pulpcore.content:server –bind ‘localhost:8080’ –worker-class ‘aiohttp.GunicornWebWorker’ -w 2

  10. sudo systemctl restart pulp_resource_manager

  11. sudo systemctl restart pulp_worker@1

  12. sudo systemctl restart pulp_worker@2

Install pulp-gem From PyPI

  1. sudo -u pulp -i

  2. source ~/pulpvenv/bin/activate

  3. pip install pulp-gem

  4. pulp-manager makemigrations pulp_gem

  5. pulp-manager migrate pulp_gem

  6. django-admin runserver

  7. gunicorn pulpcore.content:server –bind ‘localhost:8080’ –worker-class ‘aiohttp.GunicornWebWorker’ -w 2

  8. sudo systemctl restart pulp_resource_manager

  9. sudo systemctl restart pulp_worker@1

  10. sudo systemctl restart pulp_worker@2

Create a repository foo

$ http POST http://localhost:8000/pulp/api/v3/repositories/ name=foo

{
    "_href": "/pulp/api/v3/repositories/1/",
    "...": "..."
}

$ export REPO_HREF=$(http :8000/pulp/api/v3/repositories/ | jq -r '.results[] | select(.name == "foo") | ._href')

Add a remote

$ http POST http://localhost:8000/pulp/api/v3/remotes/gem/ name='bar' url='https://rubygems.org/' policy='streamed'

{
    "_href": "/pulp/api/v3/remotes/gem/1/",
    "..." : "..."
}

$ export REMOTE_HREF=$(http :8000/pulp/api/v3/remotes/gem/ | jq -r '.results[] | select(.name == "bar") | ._href')

Sync repository foo using remote bar

$ http POST ':8000'${REMOTE_HREF}'sync/' repository=$REPO_HREF

Upload foo-0.0.1.gem to Pulp

Create an Artifact by uploading the gemfile to Pulp.

$ http --form POST http://localhost:8000/pulp/api/v3/artifacts/ file@./foo-0.0.1.gem

{
    "_href": "/pulp/api/v3/artifacts/1/",
    "...": "..."
}

You need to upload the corresponding foo-0.0.1.gemspec.rz in the same way.

Create gem content from an Artifact

$ http POST http://localhost:8000/pulp/api/v3/content/gem/gems/ artifact="/pulp/api/v3/artifacts/1/"

{
    "_href": "/pulp/api/v3/content/gem/gems/1/",
    "artifacts": {
        "gems/foo-0.0.1.gem":"/pulp/api/v3/artifacts/1/",
        "quick/Marshal.4.8/foo-0.0.1.gemspec.rz":"/pulp/api/v3/artifacts/2/"
    },
    "name": "foo",
    "notes": {},
    "type": "gem",
    "version": "0.0.1"
}

$ export CONTENT_HREF=$(http :8000/pulp/api/v3/content/gem/gems/ | jq -r '.results[] | select(.name == "foo") | ._href')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulp-gem-0.0.1b2.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

pulp_gem-0.0.1b2-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file pulp-gem-0.0.1b2.tar.gz.

File metadata

  • Download URL: pulp-gem-0.0.1b2.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2rc1

File hashes

Hashes for pulp-gem-0.0.1b2.tar.gz
Algorithm Hash digest
SHA256 ce773e24815d169b576e9d395106a52a5f38cdfee5fc904fcf40fa33c8fc3a32
MD5 4d671975d99d3d424be944255cefb380
BLAKE2b-256 c7ff273674d610a5aaff3de350bdbc5aab3c1e2b3bb29056250ce3b1bec56aba

See more details on using hashes here.

File details

Details for the file pulp_gem-0.0.1b2-py3-none-any.whl.

File metadata

  • Download URL: pulp_gem-0.0.1b2-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2rc1

File hashes

Hashes for pulp_gem-0.0.1b2-py3-none-any.whl
Algorithm Hash digest
SHA256 8743e46afa85cd956f01b8217b9b2ddd19d827a566530d0a4f09930c972e4d09
MD5 28e34976b7d42c5605f7605eeb9aabb1
BLAKE2b-256 d6a2db4a657bb7e734976b379c4e4a7841aed969f434e6ac0e194de4c9535826

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page