475471568a
This adds homebrew-based instructions for running on OSX. Change-Id: If430257b5c38896803145cd88be2e2a7c8b75072 |
||
---|---|---|
app | ||
doc/source | ||
etc | ||
gulp | ||
openstack_health | ||
test | ||
.gitignore | ||
.gitreview | ||
.jshintrc | ||
.testr.conf | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
README.rst | ||
gulpfile.js | ||
package.json | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
openstack-health
webclient for visualizing test results of OpenStack CI jobs.
Installation
API
Make sure the python dependencies are installed preferrably in a virtualenv if doing development work:
pip install -r requirements.txt
Frontend
Installation of the frontend requires Node.js and Gulp.
Ubuntu:
sudo apt-get install nodejs npm nodejs-legacy
sudo npm -g install npm@2
sudo npm -g config set prefix /usr/local
sudo npm -g install npm
sudo npm -g install gulp
- OSX (via HomeBrew, note no sudo)::
-
brew install nodejs npm install -g gulp
Then, install the Node modules by running, from the project directory:
npm install
Usage - Development
API
To run the REST API for development you either install the openstack_health python package and run:
$ openstack_health_api config_file
or alternatively just can just run the api.py file manually. For example, from the top of the repo you would run:
$ python2 openstack_health/api.py config_file
This will start up a local webserver listening on the localhost. You can then send requests to the specified port on stdout to see the response.
Frontend
A development server can be run as follows:
gulp dev
This will open a web browser and reload code automatically as it changes on the filesystem.
Usage - Production
API
The rest api is a flask application so any of the methods for deploying a flask application can be used. The standalone entrypoint used for development isn't suitable for production because it's single threaded. You should use a wsgi container, something like uwsgi, gunicorn, or mod_wsgi to deploy it for real. For example, running the API with uwsgi standalone you can do something like:
$ uwsgi -s /tmp/uwsgi.sock --module openstack_health.api --callable app --pyargv config_file --http :5000
That will startup a uwsgi server running the rest api on port 5000.
Frontend
The production application can be build using:
gulp prod
The result will be written to ./build
and should be
appropriate for distribution. Note that all files are not required:
- Directory structure (
js/
,css/
,fonts/
,images/
): required. - Static resources (
fonts/
,images/
): required. - Core files (
index.html
,js/main.js
,css/main.css
): required unless gzipped versions are used. - Gzipped versions of core files (
*.gz
): not required, but preferred. Use instead of plain core files to save on disk usage and bandwidth. - Source maps (
js/main.js.map
,js/main.js.map.gz
): only required for debugging purposes.