RETIRED, OpenStack Health Dashboard
Go to file
Michael Krotscheck 475471568a Updated README to include OSX instructions.
This adds homebrew-based instructions for running on OSX.

Change-Id: If430257b5c38896803145cd88be2e2a7c8b75072
2015-10-07 16:35:07 +00:00
app Merge "Add second page (project)" 2015-10-06 14:54:41 +00:00
doc/source Change small graphs per job to sparklines 2015-09-23 16:01:19 -03:00
etc Update README for api dev process 2015-09-17 13:31:07 -04:00
gulp Remove unused Node dependencies. 2015-09-18 11:41:00 -06:00
openstack_health Enable running under wsgi container 2015-10-02 18:24:06 -04:00
test Add Angular boilerplate from `angularjs-gulp-browserify-boilerplate` 2015-08-31 15:18:45 -06:00
.gitignore Add charts from mockup to home view. 2015-09-16 17:25:45 +00:00
.gitreview Add .gitreview file 2015-09-14 15:58:27 -06:00
.jshintrc Add jshint configuration. 2015-09-02 15:49:18 -06:00
.testr.conf Add python bits to the repo 2015-09-14 19:06:08 -04:00
CONTRIBUTING.rst Rename to openstack-health 2015-09-14 14:16:34 -06:00
HACKING.rst Remove all remaining references to stackviz template. 2015-09-14 16:43:16 -06:00
LICENSE Add some missing base files from cookiecutter (LICENSE, manifest, setuptools config) 2015-08-03 09:11:51 -06:00
README.rst Updated README to include OSX instructions. 2015-10-07 16:35:07 +00:00
gulpfile.js Add Angular boilerplate from `angularjs-gulp-browserify-boilerplate` 2015-08-31 15:18:45 -06:00
package.json Replace Highcharts with d3 and Nvd3 charts. 2015-10-02 15:29:40 -06:00
requirements.txt Add rest api method for first page view 2015-09-28 18:33:14 -04:00
setup.cfg Enable running under wsgi container 2015-10-02 18:24:06 -04:00
setup.py Add python bits to the repo 2015-09-14 19:06:08 -04:00
test-requirements.txt Add unit tests for rest api and fix docs 2015-09-15 23:39:20 -04:00
tox.ini Update flake8 path in tox.ini 2015-10-02 15:24:13 -04:00

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.