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
@@ -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'
@@ -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(