Run Yagi, a modular OpenStack notification event processor against Rackspace account on OpenShift PaaS. We have modified code to adapt PaaS. There are conflicting licensing issue with non-Rackspace, non-OpenShift applications. Unless we receive clean cheat, actually its kind of criminal activity
to release with GNU GPL 3.0 License. As we have the target to submit the App as OpenShift Developer, we are only describing the method to install Rackspace Notification Processor on OpenShift PaaS from Source Code. The App is written in Python and this is an advanced tutorial.
Run Rackspace Notification Processor on OpenShift PaaS
Yagi can be found here :
1 | https://github.com/rackerlabs/yagi |
This is not a ready to use Python App for OpenShift, as PaaS has limitations. You should have an active OpenShift account (for processing or monitoring) and an active Rackspace Cloud Account with running devices like servers and other services. This application does not communicate with OpenShift’s OpenStack if used as foundation. Python has many advantages.
You should use the OpenShift Command Line Tool to install and modify Yagi.
---
We have to add upstream moded app as repo to Openshift. So download Yagi by simple click like the starters and upload / publish it as if your own application. If you fork and modify the core, maintainers of the Yagi repo will get confused. Rackspace usually adds dual Open Source License and even if not, your basic need to use is for Rackspace account, not to steal anything or claim as own software.
As you will require multiple gears for the dependencies :
anyjson
argparse
feedgenerator
httplib2
requests / httplib2
redis # optional
webob
eventlet
python-dateutil
daemon
pubsubhubbub_publish (see the publisher_clients folder)
carrot (Rabbit will eat carrot)
routes
It is possible to manage these with three gears. We actually do not need Google App Engine SDK for Linux, because OpenShift has App Engine like App to run Java Apps. You can alter the code language from Python to Java (there is a Java equivalent available) and work or run as described.
We need to add Python App in this way :
1 2 3 | rhc app create MyApp python-version_number rhc cartridge add database_app-version_number -a MyApp # example - rhc cartridge add mysql-5.5 -a MyApp |
The trick to run Python app is written by Openshift :
1 2 3 | https://developers.openshift.com/en/python-overview.html # and this https://blog.openshift.com/rapid-python-and-django-app-deployment-to-the-cloud-with-a-paas/ |
As Yagi is complicated, we will require the environment variables :
1 | https://developers.openshift.com/en/managing-environment-variables.html |