Files
Dmitriy Rabotyagov 28bdf236fe Add wsgi module to freezer-api
Changes in python packaging tooling mean that the wsgi_scripts
functionality via PBR may not longer function.

We migrate freezer to use wsgi modules to ensure consistent behavior
and achieve the community goal.

For more details see the proposed OpenStack goal [1].

We also fix compatability with Falcon 4.1 which is a requirements for
2026.1

[1] https://review.opendev.org/c/openstack/governance/+/902807

Change-Id: I6f73ee5fe6194d2a5390dfb5389e336719332cb1
Signed-off-by: Dmitriy Rabotyagov <noonedeadpunk@gmail.com>
2025-11-21 16:54:34 +01:00
..
2025-11-21 16:54:34 +01:00
2024-05-02 10:38:39 +02:00

This directory contains the Freezer-API DevStack plugin.

To configure the Freezer API with DevStack, you will need to enable this plugin by adding one line to the local section of your local.conf file.

To enable the plugin, add a line of the form:

enable_plugin freezer-api <GITURL> [GITREF]

where:

<GITURL> is the URL of a freezer-api repository
[GITREF] is an optional git ref (branch/ref/tag).  The default is master.

For example:

enable_plugin freezer-api https://git.openstack.org/openstack/freezer-api master

The plugin makes use of apache2 by default. To use the uwsgi server set the following environment variable:

export FREEZER_API_SERVER_TYPE=uwsgi

The default port is 9090. To configure the api to listen on a different port set the variable FREEZER_API_PORT. For example to make use of port 19090 use:

export FREEZER_API_PORT=19090

The plugin makes use of elasticsearch as db backend by default. To use the sqlachemy set the following environment variable:

export FREEZER_BACKEND='sqlalchemy'

Running Freezer tempest tests

Install DevStack step by step =============================

  1. Download DevStack:

    git clone https://opendev.org/openstack/devstack
    cd devstack
  2. Add stack user and change devstack directory user group:

    ./create_stack_user.sh
    
    chown -R stack ./devstack/
    chown -R stack.stack ./devstack/
  3. Add this repo as an external repository.This is a sample local.conf file for freezer developer:

    [[local|localrc]]
    ADMIN_PASSWORD=stack
    DATABASE_PASSWORD=stack
    RABBIT_PASSWORD=stack
    SERVICE_PASSWORD=$ADMIN_PASSWORD
    
    DEST=/opt/stack
    LOGFILE=$DEST/logs/stack.sh.log
    
    # only install keystone/horizon/swift in devstack
    # disable_all_services
    # enable_service key mysql s-proxy s-object s-container s-account horizon
    
    enable_plugin freezer https://opendev.org/openstack/freezer master
    enable_plugin freezer-api https://opendev.org/openstack/freezer-api master
    enable_plugin freezer-tempest-plugin https://opendev.org/openstack/freezer-tempest-plugin master
    enable_plugin freezer-web-ui https://opendev.org/openstack/freezer-web-ui master
    
    export FREEZER_BACKEND='sqlalchemy'
  4. Use stack user to run stack.sh:

    su stack
    ./stack.sh

5.You can source openrc in your shell, and then use the openstack command line tool to manage your devstack.:

souce  /opt/stack/devstack/openrc  admin admin

Running Freezer tempest tests

  1. Listing Freezer tempest tests:

    tempest list-plugins
  2. Config the "tempest.conf" file:

    cd /opt/stack/tempest
    tox -e genconfig
    cd /opt/stack/tempest/etc
    cp tempest.conf.sample tempest.conf
  3. This is a sample "tempest.conf" file:

    [auth]
    admin_username = admin
    admin_project_name = admin
    admin_password = stack
    admin_domain_name = Default
    [identity]
    uri_v3 = http://172.16.1.108/identity/v3
  4. Running freezer tempest tests:

    cd /opt/stack/tempest
    tempest run -r freezer_tempest_plugin
  5. Running one tempest test case:

    cd /opt/stack/tempest
    tempest run  -r  freezer_tempest_plugin.tests.freezer_api.api.test_api_jobs.TestFreezerApiJobs.test_api_jobs_post
For more information, see:

https://docs.openstack.org/devstack/latest/index.html https://docs.openstack.org/tempest/latest/