Skip to main content

A simple API for serving the metadata from the RPM repositories

Project description

mdapi

A simple and fast API for serving the metadata from the RPM repositories

Installation

For development

  1. Install Python 3, Virtualenv and Poetry on your Fedora Linux installation.
    $ sudo dnf install python3 python3-virtualenv poetry
    
  2. Clone the repository to your local storage and make it your present working directory.
    $ git clone git@github.com:fedora-infra/mdapi.git
    $ cd mdapi
    
  3. Set up and activate a virtual environment within the directory of the cloned repository.
    $ virtualenv venv
    $ source venv/bin/activate
    
  4. Check the validity of the project configuration and install the project dependencies from the lockfile.
    $ (venv) poetry check
    $ (venv) poetry install
    

For container image

  1. Install Podman on your Fedora Linux installation.
    $ sudo dnf install podman
    
  2. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The project configuration is modified according to needs in myconfig.py file, following the instructions provided in the configuration setup section.
  3. Execute the following command to build the container image.
    $ (venv) podman build -t "mdapi:$(poetry version -s)" .
    

Usage

In development

Viewing the help message and version

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
  2. Execute the following command to view the help message.
    $ (venv) mdapi --help
    
    Output
    Usage: mdapi [OPTIONS] COMMAND [ARGS]...
    
      A simple API for serving the metadata from the RPM repositories
    
    Options:
      -c, --conffile PATH  Read configuration from the specified Python file
      --version            Show the version and exit.
      --help               Show this message and exit.
    
    Commands:
      database  Fetch SQLite databases from all active Fedora Linux and EPEL...
      serveapp  Start the API server for querying repository metadata
    
  3. Execute the following command to view the project version.
    $ (venv) mdapi --version
    
    Output
    mdapi, version 3.0.0
    

Testing the project

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The storage partition on which test database directory is located has at least 1.5 GiB of free space.
  2. Execute the following command to run the code quality checks and testcases.
    $ (venv) tox
    

Setting up the configuration

  1. Ensure that
    1. The project directory is the present working directory.
  2. Make a copy of the default configuration on your local storage.
    $ cp mdapi/confdata/standard.py mdapi/confdata/myconfig.py
    
  3. Make changes to the copied configuration file to suit the requirements.
    $ nano confdata/myconfig.py
    

Fetching the databases

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The storage partition on which database directory is located has at least 6 GiB of free space.
  2. Execute the following command to start fetching the database, while referencing to the modified configuration file.
    $ (venv) mdapi --conffile myconfig.py database
    
  3. Note that the first run of the database fetching command will take a long time, depending on the internet connection.

Serving the application

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
  2. Execute the following command to start serving the application, while referencing to the modified configuration file.
    $ (venv) mdapi --conffile myconfig.py serveapp
    
  3. When done with serving the application, press Ctrl + C to raise a KeyboardInterrupt and exit out of the program.

In container or pod

Serving the application

  1. Ensure that
    1. The project directory is the present working directory.
    2. The virtual environment with the project is activated, following the instructions provided in the development installation section.
    3. The container image is built and available locally.
    4. The databases are downloaded to the database directory, following the instructions provided in the database fetching section.
  2. Execute the following command to start the serving the application.
    $ (venv) podman run -v /var/tmp:/var/tmp -p 8080:8080 -ti mdapi:$(poetry version -s)
    
    This command assumes that the database directory is /var/tmp (which is the default) and the service port is 8080 (which is the default).

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

mdapi-3.1.6a2.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

mdapi-3.1.6a2-py3-none-any.whl (37.3 kB view details)

Uploaded Python 3

File details

Details for the file mdapi-3.1.6a2.tar.gz.

File metadata

  • Download URL: mdapi-3.1.6a2.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Linux/6.10.7-arch1-1

File hashes

Hashes for mdapi-3.1.6a2.tar.gz
Algorithm Hash digest
SHA256 ab85db12ce7f34b67b39a2ec128c0c0788e79f91a1255fd8b9192a35044fc69d
MD5 119adfe2422de91a9f3429cc62e400fb
BLAKE2b-256 4932233429cac56054e13cbe138b0c0c472dd6ec921ce67f1bf7e1613be0c087

See more details on using hashes here.

File details

Details for the file mdapi-3.1.6a2-py3-none-any.whl.

File metadata

  • Download URL: mdapi-3.1.6a2-py3-none-any.whl
  • Upload date:
  • Size: 37.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Linux/6.10.7-arch1-1

File hashes

Hashes for mdapi-3.1.6a2-py3-none-any.whl
Algorithm Hash digest
SHA256 8b0b6c3bb96dd9c26831d11e19f7b3ead6f0f3d148b5851182351c2d2247ce01
MD5 94552ae6907b85fd361a339cb6af44cd
BLAKE2b-256 eb47bd2aa984e18b7eaf6d2fa543ff5ebb914c315f8f4940ac4cac412b3e3316

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