Speed improvement. One connect per resource

This commit is contained in:
Łukasz Oleś 2015-11-09 10:36:10 +01:00
parent 7dd0b1dbcb
commit 9c3e7853de
2 changed files with 13 additions and 7 deletions

View File

@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from collections import defaultdict
import os
from StringIO import StringIO
import yaml
@ -168,14 +169,19 @@ def update_resources(template_resources):
def update_inputs(child, args):
child = load_resource(child)
connections, assignments = parse_inputs(args)
parents = defaultdict(lambda: defaultdict(dict))
for c in connections:
mapping = {}
parent = load_resource(c['parent'])
events = c['events']
use_defaults = not c['events'] is False
mapping[c['parent_input']] = c['child_input']
mapping = {c['parent_input']: c['child_input']}
parents[c['parent']]['mapping'].update(mapping)
if parents[c['parent']].get('events', None) is None:
parents[c['parent']]['events'] = c['events']
for parent, data in parents.iteritems():
parent = load_resource(parent)
use_defaults = not data['events'] is False
mapping = data['mapping']
parent.connect_with_events(
child, mapping, events, use_defaults=use_defaults)
child, mapping, {}, use_defaults=use_defaults)
child.update(assignments)

View File

@ -134,7 +134,7 @@ def test_add_connections(mocker, resources):
'alias': 'ser1'
}
vr.update_inputs('service1', args)
assert mocked_signals.connect.call_count == 3
assert mocked_signals.connect.call_count == 2
def test_add_list_values(mocker, resources):