Add several helpers for creation of events and add events in puppet-example.py

This commit is contained in:
Dmitry Shulyak
2015-08-06 17:35:47 +03:00
parent e8ba4aa1fa
commit 1d7dc6dfd3
3 changed files with 25 additions and 6 deletions

View File

@@ -8,6 +8,7 @@ from solar.core import signals
from solar.core import validation
from solar.core.resource import virtual_resource as vr
from solar import errors
from solar import events as evapi
from solar.interfaces.db import get_db
@@ -39,7 +40,7 @@ def setup_resources():
signals.Connections.clear()
node1, node2 = vr.create('nodes', 'templates/nodes.yml', {})
# MARIADB
mariadb_service1 = vr.create('mariadb_service1', 'resources/mariadb_service', {
'image': 'mariadb',
@@ -71,6 +72,7 @@ def setup_resources():
# KEYSTONE
keystone_puppet = vr.create('keystone_puppet', 'resources/keystone_puppet', {})[0]
evapi.add_dep(rabbitmq_service1.name, keystone_puppet.name, actions=('run', 'update'))
keystone_db = vr.create('keystone_db', 'resources/mariadb_db/', {
'db_name': 'keystone_db',
'login_user': 'root'
@@ -259,7 +261,7 @@ def setup_resources():
'port': ['admin_port', 'internal_port', 'public_port'],})
signals.connect(keystone_puppet, cinder_keystone_service_endpoint, {
'admin_port': 'keystone_admin_port', 'admin_token': 'admin_token'})
# CINDER GLANCE
# Deploy chain: cinder_puppet -> cinder_glance -> ( cinder_api, cinder_scheduler, cinder_volume )
cinder_glance_puppet = vr.create('cinder_glance_puppet', 'resources/cinder_glance_puppet', {})[0]
@@ -273,17 +275,17 @@ def setup_resources():
signals.connect(cinder_puppet, cinder_api_puppet, {
'keystone_host': 'keystone_auth_host',
'keystone_port': 'keystone_auth_port'})
evapi.add_react(cinder_puppet.name, cinder_api_puppet.name, actions=('update',))
# CINDER SCHEDULER
cinder_scheduler_puppet = vr.create('cinder_scheduler_puppet', 'resources/cinder_scheduler_puppet', {})[0]
signals.connect(node1, cinder_scheduler_puppet)
signals.connect(cinder_puppet, cinder_scheduler_puppet)
evapi.add_react(cinder_puppet.name, cinder_scheduler_puppet.name, actions=('update',))
# CINDER VOLUME
cinder_volume_puppet = vr.create('cinder_volume_puppet', 'resources/cinder_volume_puppet', {})[0]
signals.connect(node1, cinder_volume_puppet)
signals.connect(cinder_puppet, cinder_volume_puppet)
evapi.add_react(cinder_puppet.name, cinder_volume_puppet.name, actions=('update',))
# NOVA
nova_puppet = vr.create('nova_puppet', 'resources/nova_puppet', {})[0]
nova_db = vr.create('nova_db', 'resources/mariadb_db/', {

View File

@@ -0,0 +1,2 @@
from .api import *

View File

@@ -1,6 +1,6 @@
__all__ = ['add_event', 'remove_event', 'all_events', 'set_events']
__all__ = ['add_dep', 'add_react']
import networkx as nx
@@ -34,6 +34,21 @@ def add_event(ev):
[i.to_dict() for i in rst],
collection=db.COLLECTIONS.events)
def add_dep(parent, dep, actions, state='success'):
for act in actions:
d = Dep(parent, act, state=state,
depend_node=dep, depend_action=act)
add_event(d)
log.debug('Added event: %s', d)
def add_react(parent, dep, actions, state='success'):
for act in actions:
r = React(parent, act, state=state,
depend_node=dep, depend_action=act)
add_event(r)
log.debug('Added event: %s', r)
def remove_event(ev):
rst = all_events(ev.parent_node)
db.save(