Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pulp/pulp-openapi-generator
https://github.com/pulp/pulp-openapi-generator
openapi pulp
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/pulp/pulp-openapi-generator
- Owner: pulp
- License: gpl-2.0
- Created: 2019-04-12T18:59:47.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-07-08T13:58:52.000Z (4 months ago)
- Last Synced: 2024-08-01T22:54:20.652Z (3 months ago)
- Topics: openapi, pulp
- Language: Mustache
- Size: 144 KB
- Stars: 4
- Watchers: 6
- Forks: 24
- Open Issues: 10
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
pulp-openapi-generator
======================This repository provides a script that helps generate Python and Ruby bindings for pulpcore or any of it's
plugins.The first time the script is run, a docker container with openapi-generator-cli is downloaded. All
subsequent runs will re-use the container that was downloaded on the initial run.Requirements
------------
- Pulp 3 running on localhost:24817
- DockerGenerating bindings
-------------------The ``generate.sh`` script takes three positional arguments: module name, language, and version.
When the optional version parameter is provided, it is used as the version string. When it is not
provided, the version reported by Pulp's status API is used. The following commands should be used
to generate Python bindings for ``pulpcore``:.. code-block:: bash
sudo ./generate.sh pulpcore python
This command will generate a python package inside ``pulpcore-client`` directory.
Ruby bindings for the RPM plugin can be generated with the following command:
.. code-block:: bash
sudo ./generate.sh pulp_rpm ruby
This command will generate a Ruby Gem inside ``pulp_rpm-client`` directory.
The packages generated will have the same version as what is reported by the status API.
This command will generate a Ruby Gem with '3.0.0rc1.dev.10' version.
.. code-block:: bash
sudo ./generate.sh pulp_rpm ruby 3.0.0rc1.dev.10
Generating Bindings Against Re-Rooted Systems
---------------------------------------------During bindings generation the openapi schema is fetched. Use the ``PULP_API_ROOT`` environment
variable to instruct the bindings generator where the root of the API is located. For example, the
default ``export PULP_API_ROOT="/pulp/"`` is the default root, which then serves the api.json at
``/pulp/api/v3/docs/api.json``.Generating Bindings Against Remote Systems
------------------------------------------During bindings generation the openapi schema is fetched. Use the ``PULP_API`` environment
variable to instruct the bindings generator to use a Pulp API on a different host and/or port.
For example, ``export PULP_API="http://localhost:24817"`` are the default host and port, which
results in the bindings generator talking to the Pulp API at
``http://localhost:24817/pulp/api/v3/docs/api.json``.Generating Bindings Using a Local Openapi Schema
-----------------------------------------------If you want to use a locally present openapi schema, you can skip fetching the openapi schema
by setting the ``USE_LOCAL_API_JSON`` environment variable. Doing so you have to manually provide the
``api.json`` file containing the openapi schema in the current working directory.Generate Bindings Using Docker in Docker (dind)
-----------------------------------------------Bindings are generated using the openapi-generator-cli docker container. If your environment itself runs in
a docker container, the openapi-generator-cli container has to be started as a sibling container. For
sibling containers, volumes cannot be mounted as usual. They have to be passed through from the parent
container. For this to work you have to set the ``PARENT_CONRAINER_ID`` environment variable to specify the
parent container in a dind environment.Generating Bindings on a Filesystem Shared With Another Container
-----------------------------------------------------------------When the bindings are being generated so that they can be installed inside another container, it
may be necessary to set the MCS label on the openapi-generator-cli container to match the MCS label
of the other container. Users can set the $PULP_MCS_LABEL environment variable (e.g. s0:c1,c2).
When this variable is present, the container for `openapi-generator-cli` will be started with this
MCS label. This only applies to systems that are using `podman` and SELinux is `Enforcing`.