============ Contributing ============ Benchmark development environment ================================= Recommended VirtualBox (https://www.virtualbox.org/wiki/Downloads) installation: - Install Oracle VM VirtualBox Extension Pack (https://www.virtualbox.org/wiki/Downloads) - Linux Ubuntu 16.04.3 (64-bit) (https://www.ubuntu.com/download/desktop) - >8 gb memory - >70 gb disk space - >2 CPUs - Network bridge access - Install VBoxGuestAdditions inside the Ubuntu guest for corresponding VirtualBox version (https://download.virtualbox.org/virtualbox/). This can be done by downloading the .iso file and loading it into the optical drive. Required packages for various PAVICS components: python-dev curl git docker.io docker-compose Setting up pycharm ================== - For missing python modules: https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-upgrading-packages.html Commands to run in Python console: :: import pip pip.main(['install', 'https://github.com/geopython/pywps/archive/7cab3866e34ce24d3df56e3c1c546739b1cda2d7.zip']) pip.main(['install', '--upgrade', '--force-reinstall', 'https://github.com/bird-house/OWSLib/archive/pingudev.zip']) - Some packages are not happy with wheel, try uninstalling it if all else fails. Launching individual local components ===================================== Solr ---- :: docker pull pavics/solr docker run --name my_solr -d -p 8983:8983 -t pavics/solr Check that Solr is running at http://localhost:8983/solr/#/birdhouse Public THREDDS -------------- :: git clone https://github.com/Ouranosinc/PAVICS.git cp PAVICS/birdhouse/templates/docker-compose.override.public_thredds.yml PAVICS/birdhouse/docker-compose.override.yml In this new docker-compose.override.yml change ${PATH_TO_LOCAL_NETCDF_FILES} to an actual path on disk with NetCDF files. :: docker-compose up -d thredds Check that thredds is running at http://localhost:8083/thredds/ HTTPS THREDDS ------------- First you will need a self-signed certificate: :: openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 This will ask for various inputs that may be left blank. :: cat key.pem >> cert.pem cert.pm is your self-signed certificate. :: git clone https://github.com/Ouranosinc/PAVICS.git Switch to PAVICS/birdhouse directory. :: ./set_hostname.sh dummy Add this dummy hostname to /etc/hosts :: 127.0.0.1 dummy.crim.ca Either set SSL_CERTIFICATE to the location of cert.pem and HOSTNAME to dummy.crim.ca or use the template docker-compose_shorcut.sh and set those values in it (here renamed to mycompose.sh). :: cp PAVICS/birdhouse/templates/docker-compose.override.local_https_thredds.yml PAVICS/birdhouse/docker-compose.override.yml In this override file specify the path to local netcdf files and set localhost IP. :: ./mycompose.sh up -d thredds proxy magpie twitcher It may take a minute for twitcher to get online. If it does not respond after a while, try to restart everything once or twice. :: ./mycompose down ./mycompose.sh up -d thredds proxy magpie twitcher Check that twitcher is running at https://localhost/twitcher/ (returns hello) Check that magpie is running at https://localhost/magpie/ Check that thredds is running at https://localhost/twitcher/ows/proxy/thredds/ Play around with magpie permissions to check that the security is working HTTPS custom WPS service ------------------------ Follow all the steps of the HTTPS THREDDS setup above up to the template copy, instead use:: cp PAVICS/birdhouse/templates/docker-compose.override.local_https_wps.yml PAVICS/birdhouse/docker-compose.override.yml In this override file, set the localhost IP, then you can switch the wpsandbox image for the wps service image of your choice and assign it an available port of your choice. Then assign a corresponding port to the proxy. A new proxy configuration file need to be added to PAVICS/birdhouse/config/proxy/conf.d/wpsandbox.conf for this service, e.g.:: server { listen 8081; location / { proxy_pass http://wpsandbox; } } :: ./mycompose.sh up -d proxy magpie twitcher wpsandbox It may take a minute for twitcher to get online. If it does not respond after a while, try to restart everything once or twice. :: ./mycompose down ./mycompose.sh up -d thredds proxy magpie twitcher Check that twitcher is running at https://localhost/twitcher/ (returns hello) Check that magpie is running at https://localhost/magpie/ Register the new wps service in magpie: In Home > Edit Services > wps > Add Service. In our case the name is wpsandbox and the public url is https://dummy.crim.ca/twitcher/ows/proxy/wpsandbox with the wps service type. Then edit this new service Protected URL to http://dummy.crim.ca:8081 Alternatively, this can be entered in PAVICS/birdhouse/config/magpie/providers.cfg Check that the wps is running at https://localhost/twitcher/ows/proxy/wpsandbox/pywps?service=WPS&version=1.0.0&request=GetCapabilities Play around with magpie permissions to check that the security is working PAVICS-DataCatalog development ------------------------------ :: git clone https://github.com/Ouranosinc/PAVICS-DataCatalog.git cd PAVICS-DataCatalog cp catalog.cfg ~/catalog.cfg Edit ~/catalog.cfg with Solr address. Note that within docker, localhost is not the same as the workstation localhost, so the address must use the ip of the local machine (retrieve with, e.g., ifconfig). Also point to a valid thredds server. :: sudo su # to work with docker docker build -t pavics-datacatalog . docker run --name pavics-datacatalog1 -d -v ~/catalog.cfg:/home/catalog.cfg -p 8009:80 pavics-datacatalog Check that the wps is running at http://localhost:8009/pywps?service=WPS&request=GetCapabilities&version=1.0.0 Note that when running with magpie, the root directory of thredds does not properly redirect to the proxy. To crawl a thredds server with threddsclient, provide the birdhouse root directory of thredds (e.g. in catalog.cfg):: https://localhost/twitcher/ows/proxy/thredds/catalog/birdhouse Flyingpigeon development ------------------------ :: git clone https://github.com/Ouranosinc/flyingpigeon.git cd flyingpigeon git checkout pavics Need to either add a custom.cfg or modify profiles/base.cfg with:: [settings] geoserver = http://host:port/geoserver/wfs Then proceed with installation:: make clean install make test make start The WPS will be running at:: http://localhost:8093/wps?service=WPS&version=1.0.0&request=GetCapabilities To restart flyingpigeon (e.g. after modifications):: make stop make start Malleefowl development ---------------------- :: git clone https://github.com/Ouranosinc/malleefowl.git cd malleefowl git checkout pavics Need to either add a custom.cfg or modify profiles/base.cfg with:: [settings] persist-path = /tmp archive-root = / Then proceed with installation:: make clean install make test make start The WPS will be running at:: http://localhost:8091/wps?service=WPS&version=1.0.0&request=GetCapabilities