Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Octocat-spinner-32 cilogon-wsgi add my_proxy_client_id parameter for cilogon January 29, 2014
Octocat-spinner-32 errors error pages for apache when ion-ux not running June 24, 2013
Octocat-spinner-32 static Merge pull request #362 from cgalvarino/no_agent_instance_hide_start April 10, 2014
Octocat-spinner-32 templates OOIION-1210 April 08, 2014
Octocat-spinner-32 tests Added unit test and logger July 16, 2013
Octocat-spinner-32 ui_specs OOIION-1778 (M156 : schema versioning) March 18, 2014
Octocat-spinner-32 .gitignore Added Pycharm/idea to gitignore - added Deployment to Resource type l… August 29, 2013
Octocat-spinner-32 README add r3_alpha deploy target; update stage url March 05, 2014
Octocat-spinner-32 SETUP Initializing project with simple Flask setup and usage. November 15, 2011
Octocat-spinner-32 VERSION.txt Bump to 3.0.0-dev March 19, 2014
Octocat-spinner-32 cilogontarexcludes.txt Updated fab script to make deployment easier to ux-dev and ux-test July 27, 2012
Octocat-spinner-32 config.py.template Adds new variable in config.py STATIC_ASSETS December 09, 2013
Octocat-spinner-32 dummy_data.py Instrument dummy data; Backbone views refactored. August 02, 2012
Octocat-spinner-32 dummy_data_layout.py DataSet -> Dataset February 21, 2013
Octocat-spinner-32 dummy_service_api.py Instrument facepage added. March 06, 2012
Octocat-spinner-32 fabfile.py add r3_alpha deploy target; update stage url March 05, 2014
Octocat-spinner-32 fabrelease.py Use local clone for fab release file April 18, 2013
Octocat-spinner-32 instrument_command.py PREST read-only parameters added to blacklist. March 14, 2013
Octocat-spinner-32 ion-ux.wsgi.template fab deploy support March 18, 2012
Octocat-spinner-32 layout_api.py Adds new variable in config.py STATIC_ASSETS December 09, 2013
Octocat-spinner-32 main.py add get_data_product_updates op to support M192 April 03, 2014
Octocat-spinner-32 service_api.py OOIION-1812 April 15, 2014
Octocat-spinner-32 setup.py Added fabric to setup.py July 16, 2013
Octocat-spinner-32 uitarexcludes.txt Updated fab script to make deployment easier to ux-dev and ux-test July 27, 2012
README
ION-UX Setup
============

Getting ION-UX up and running is straightforward once you have a Capability Container running. In a nutshell, there are three steps with an optional fourth step and a NOTES section to catch everything else:

1.) Create virtualenv and install dependencies
2.) Configure FLASK, GATEWAY and PORTAL_ROOT settings
3.) Launch Flask web application
4.) Load "preload data" (test data) into COI Servies


1. Environment Setup
--------------------

It is best to setup a virtualenv to install the dependencies (Flask, requests).

	virtualenv --no-site-packages venv
	pip install Flask -E venv/
	source venv/bin/activate
	pip install requests


2. Deploy Local
---------------

First, copy the config template file and enter appropriate values for your local machine.

	cp config.py.template config.py

For the most common scenario (i.e. running the UI on your development environment), the settings will look like this:

* FLASK_HOST = 'localhost'
* FLASK_PORT = 3000
* GATEWAY_HOST = 'localhost'
* GATEWAY_PORT = 5000
* PORTAL_ROOT = 'working/path/to/ion-ux/'

Next, make sure to create a log file (ion-ux.log) in the root directory.

3. Run Local
------------

To run locally, simply execute the main module, be sure that PORTAL_ROOT is specified in config.py.

	python main.py

Point your browser to http://localhost:3000 and enjoy.

### Current features (in progress)

* Flask powered API (using mock data and calls to the service gateway)
* Continued development of JavaScript/CSS.
* Development of dynamic layouts defined by JSON


4. Load Data into COI Services
------------------------------

See also: ION-UX Guide for COI Developers

https://confluence.oceanobservatories.org/display/CIDev/ION-UX+Guide+for+COI+Developers

It will be a better browsing experience to have data preloaded into your COI Services Capability Container. The first thing you will want to do is create pyon.local.yml:

	coi-services/res/config/pylon.local.yml

In pyon.local.yml:

	system:
  		force_clean: False
  		name: ionux

The name above ensures that your Capability Container will always use the same system name for creating, clearing and loading the data in CouchDB. After lauching you Capability Container with pyon.local.yml enabled, enter one of the following commands in another terminal window:

Beta Preload

	bin/pycc -x ion.processes.bootstrap.ion_loader.IONLoader op=load loadui=true scenario=BASE,BETA path=master ui_path='https://userexperience.oceanobservatories.org/database-exports' attachments=res/preload/r2_ioc/attachments

To clear preload data, exit out of the running Capability Container and enter:

	bin/pycc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=clear

5. Release
----------------

A fab script has been provided to tag specific releases of this software.  You need to be in a virtualenv with 'fabric' installed before running following command:

    fab -f fabrelease.py release

6. Deploy Remote
----------------


A fab script has been provided to facilitate deployment to a remote VM.  To prepare to run the fab script, be sure to install fabric.

        easy_install fabric

Now you run the fab script, which will prompt you for necessary information to complete the deployment.  Currently, the script supports deployment to ion systems listed below.  You should deploy as the 'ux' user which needs to be configured by operations (with your ssh key).  Utilize one of the following command lines to deploy.

        > fab ion_dev deploy
        > fab ion_alpha deploy
        > fab r3_alpha deploy
        > fab ion_beta deploy
        > fab ion_stage deploy
	> fab ooinet deploy

NOTES
----------------

* We use a custom version of bootstrap.  So far, manual modifications have been made to static/bootstrap/css/bootstrap.css and static/bootstrap/less/bootstrap.min.css.
Something went wrong with that request. Please try again.