RETIRED, OpenStack Health Dashboard
Go to file
Masayuki Igawa 21eca6c9bb Fix sorting order on home page
This commit fixes the sorting order on the home page. We should have a
floating point value rounded to 4 digits after the decimal point at
least. For example, 0.3333 would be 33% with the original rounding.
However, this is not enough resolution for the home page. This should be
33.33% at least.

Closes-Bug: #1522200
Change-Id: I2e57fce318256fcd6e9aee892706d21d5269b81c
2016-01-26 00:11:36 +00:00
app Fix sorting order on home page 2016-01-26 00:11:36 +00:00
doc/source Remove the remaining mockups 2015-12-07 23:58:48 +00:00
etc Allow users to select information grouping 2015-12-17 01:06:24 +00:00
gulp Enable Protractor end-to-end testing. 2015-11-11 17:02:27 -07:00
openstack_health Merge "Fix missing bare Session() call" 2016-01-20 22:47:44 +00:00
test Fix sorting order on home page 2016-01-26 00:11:36 +00:00
.eslintignore Fix log error 2015-10-20 12:59:51 -02:00
.eslintrc Disable `one-var` eslint rule. 2015-12-09 13:21:34 -07:00
.gitignore Enable coverage reporting. 2015-11-16 13:44:54 -07: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 Fix typos in README and comment 2016-01-19 11:19:11 +09:00
gulpfile.js Add Angular boilerplate from `angularjs-gulp-browserify-boilerplate` 2015-08-31 15:18:45 -06:00
package.json Enable Protractor end-to-end testing. 2015-11-11 17:02:27 -07:00
requirements.txt Add API method to get a list of recent runs by metadata 2016-01-13 01:02:25 -05:00
setup.cfg Fix wsgi_script entry point 2015-10-10 00:39:36 -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 Add npm envs to tox 2015-11-09 17:11:38 -02:00

README.rst

openstack-health

webclient for visualizing test results of OpenStack CI jobs.

Installation

API

Make sure the python dependencies are installed preferably 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 can install the openstack_health python package in development mode and start the API service with:

python setup.py develop
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>

A sample of <config_file> can be found in etc/openstack-health-api.conf. This will start up a local webserver listening on 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.

Testing

API

To test python code, run:

tox -e py27

Frontend

To test javascript code, run:

npm test

This will execute both unit and end-to-end tests, and will write coverage reports to ./cover. To individually run unit tests and generate coverage reports, run:

npm run unit

Similarly, to run only end-to-end tests, run:

npm run e2e

Alternatively, you can start the karma server and have it watch for changes in your files so that unit tests are run every time they change, allowing for much faster feedback:

./node_modules/karma/bin/karma start test/karma.conf.js --no-single-run