Change hosts_file example to use Resource.connect_with_defaults

This commit is contained in:
Dmitry Shulyak 2015-09-30 11:53:38 +03:00
parent 483b787b42
commit a08e512804
5 changed files with 14 additions and 10 deletions

View File

@ -20,22 +20,22 @@ def run():
hosts1 = vr.create('hosts_file1', 'resources/hosts_file', {})[0]
hosts2 = vr.create('hosts_file2', 'resources/hosts_file', {})[0]
signals.connect(node1, hosts1, {
node1.connect_with_defaults(hosts1, {
'name': 'hosts:name',
'ip': 'hosts:ip',
})
signals.connect(node2, hosts2, {
node2.connect_with_defaults(hosts1, {
'name': 'hosts:name',
'ip': 'hosts:ip',
})
signals.connect(node1, hosts2, {
node1.connect_with_defaults(hosts2, {
'name': 'hosts:name',
'ip': 'hosts:ip',
})
signals.connect(node2, hosts1, {
node2.connect_with_defaults(hosts2, {
'name': 'hosts:name',
'ip': 'hosts:ip',
})

View File

@ -251,13 +251,17 @@ class Resource(object):
return orm.DBCommitedState.get_or_create(self.name)
def connect_with_events(self, receiver, mapping=None, events=None,
use_defaults=False):
signals.connect(emitter, receiver, mapping=mapping)
use_defaults=False):
signals.connect(self, receiver, mapping=mapping)
if use_defaults:
api.add_default_events(self, receiver)
if events:
api.add_events(self.name, events)
def connect_with_defaults(self, receiver, mapping=None, events=None):
return self.connect_with_events(
receiver, mapping=mapping, events=events, use_defaults=True)
def load(name):

View File

@ -168,7 +168,7 @@ def update_inputs(child, args):
parent = load_resource(c['parent'])
events = c['events']
mapping[c['parent_input']] = c['child_input']
signals.connect(parent, child, mapping, events)
parent.connect_with_events(child, mapping, events)
child.update(assignments)

View File

@ -39,8 +39,8 @@ def create_event(event_dict):
def add_default_events(emitter, receiver):
events_to_add = [
Dependency(emitter.name, 'run', 'success', receiver.name, 'run'),
Dependency(emitter.name, 'update', 'success', receiver.name, 'update')
Dep(emitter.name, 'run', 'success', receiver.name, 'run'),
Dep(emitter.name, 'update', 'success', receiver.name, 'update')
]
add_events(emitter.name, events_to_add)

View File

@ -112,7 +112,7 @@ def test_parse_bad_event(bad_event_type):
def test_add_connections(mocker, resources):
mocked_signals = mocker.patch('solar.core.resource.virtual_resource.signals')
mocked_signals = mocker.patch('solar.core.resource.resource.signals')
args = {'ip': 'node1::ip',
'servers': ['node1::ip', 'node2::ip'],
'alias': 'ser1'