Skip to content
Snippets Groups Projects
README.md 8.57 KiB

Introduction

This is a flask application that leverages RabbitMQ and Celery to asynchronously create a Cheaha user account. Currently the project is being developed on an Openstack cluster.

Project Setup

To clone this repo use the command:

$ git clone https://gitlab.rc.uab.edu/mmoo97/flask_user_reg.git
$ cd flask_user_reg

Prerequisites

Setup a Virtual Environment

  • Ensure you have created a virtual environment called venv setup running python3.
    • Note, this project requires a virtual environment running python3 (3.6.8 in this case).
      • Create this by navigating to you home directory via typing $ cd and entering the following commands:
      $ python3 -m venv ~/venv
      $ source ~/venv
      • Upon Activation, you should see the prompt update accordingly:
      [centos@ood ~]$              <------Old Prompt
      (venv) [centos@ood ~]$       <------New Prompt
      In this case, the env name is displayed as venv but would change to reflect whatever name you initialized it with in the previous step. Additionally, this example is running on the ood node provisioned via OpenStack.
  • Ensure pip is installed.
    • Mac/Linux

      • Check if installed by typing $ pip
      • Install pip using $ python -m pip install --user --upgrade pip.
    • Windows

      • Check if installed using $ py
      • Install pip using $ py -m pip install --upgrade pip

  • Ensure Flask and other dependencies are installed to you virtual environment using the following commands:
$ cd ~/your/repo/path/flask_user_reg
$ pip install -r requirements.txt
  • Note, to install flask in your own $HOME use pip install --user Flask.

Install RabbitMQ

(Reference: here)

  • Install RabbitMQ server on the host machine. (Installation Guide)
    • Mac/Linux

      • $ brew update
      • $ brew install rabbitmq
      • it is recommended that you add the following line to your .bash_profile: export PATH=$PATH:/usr/local/opt/rabbitmq/sbin.
      • Start server using the command $ rabbitmq-server. (Note, this implementation assumes RabbitMQ is running on localhost on standard port 5672)
    • Windows

      • Download the installer from here and run.
      • Post install, the server should be running. To check, run $ rabbitmqctl.bat status.
    • CentOS 7

      • First, import signing key using $ rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
      • Next, install Erlang using $ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      • Finally, install RabbitMq using $ yum install rabbitmq-server-3.8.2-1.el8.noarch.rpm
      • The server is not started as a daemon by default when the RabbitMQ server package is installed. To start the daemon by default when the system boots, as an administrator run: $ chkconfig rabbitmq-server on.
      • As an administrator, start and stop the server as usual:
        /sbin/service rabbitmq-server start
        /sbin/service rabbitmq-server stop
  • Add the user "reggie" using the command $ rabbitmqctl add_user reggie reggie.
    • The current configuration assumes the following username password combination. To change the password, type $ rabbitmqctl change_password reggie <new_password>.
    • Note that rabbitmqctl may require sudo permissions and that changing the password will require a password change in the credentials within test_producer.py and base_consumer.py as well.

Setup pre commit hook

  • via Homebrew(Mac)
brew install pre-commit
  • via pip
pip install pre-commit

After pre-commit is installed, run install in the repo directory:

$ pre-commit install
> pre-commit installed at .git/hooks/pre-commit