metadata.yaml
name: feed
summary: CreateDrive's FEED Ruby on Rails application.
maintainer: James Beedy <james.beedy@creativedrive.com>
description: |
This charm provides 'FEED', the product cataloging,
sample tracking and project configuration for CreativeDrive's customers.
tags:
- feed
- webapp
subordinate: false
series:
- xenial
provides:
website:
interface: http
requires:
feeddb:
interface: pgsql
feedreportdb:
interface: pgsql
redis:
interface: redis
@when('feeddb.connected')
@when_not('feeddb.requested')
def request_feed_database(pgsql):
"""Request feed db
"""
status_set('maintenance',
'Requesting PostgreSQL database for FEED.')
# Request database for FEED
pgsql.set_database("feed_%s" % RAILS_ENV)
# Set active status
status_set('active',
'PostgreSQL databases requested')
# Set state
set_state('feeddb.requested')
@when('feeddb.master.available')
@when_not('feeddb.available')
def get_set_feeddb_data(pgsql):
"""Get/set feeddb details
"""
# Set maintenance status
status_set('maintenance',
'Getting/Setting details for FEED db.')
# Create PG_DATA dict
FEED_DB_DATA = {'user': pgsql.master.user,
'pass': pgsql.master.password,
'host': pgsql.master.host,
'db': pgsql.master.dbname}
# Set data in kv store
kv.set('FEED_DB_DATA', FEED_DB_DATA)
status_set('active', 'feed_%s available' % RAILS_ENV)
# Set state
set_state('feeddb.available')
@when('feedreportdb.connected')
@when_not('feedreportdb.requested')
def request_feed_report_database(pgsql):
"""Request reporting db for feed
"""
status_set('maintenance',
'Requesting reporting database for FEED.')
# Request reporting database for FEED
pgsql.set_database("feed_report_%s" % RAILS_ENV)
# Set active status
status_set('active', 'feed_report_%s available' % RAILS_ENV)
# Set state
set_state('feedreportdb.requested')
@when('feedreportdb.master.available')
@when_not('feedreportdb.available')
def get_set_feed_report_db_data(pgsql):
"""Get/set feedreportdb details
"""
# Set maintenance status
status_set('maintenance',
'Getting/Setting details for FEED report db.')
# Create PG_DATA dict
FEED_REPORT_DB_DATA = {'user': pgsql.master.user,
'pass': pgsql.master.password,
'host': pgsql.master.host,
'db': pgsql.master.dbname}
# Set data in kv store
kv.set('FEED_REPORT_DB_DATA', FEED_REPORT_DB_DATA)
# Set active status
log('Postgres connected : %s' % str(FEED_REPORT_DB_DATA))
status_set('active', ('%s connected.' % pgsql.master))
# Set state
set_state('feedreportdb.available')