Allow multiple managers

This commit is contained in:
Dmitry Shulyak 2015-11-10 15:12:38 +02:00
parent cd3f1978b3
commit 4e05ce3adf
4 changed files with 14 additions and 9 deletions

View File

@ -2,7 +2,9 @@
id: role_data
handler: none
version: 0.0.1
manager: manager.py
managers:
- managers/from_file.py
- managers/globals.py
input:
# should be auto-generated based on outputs from globals.pp
puppet_modules:

View File

@ -1,7 +1,8 @@
id: managed
handler: none
version: 1.0.0
manager: managers/manager.py
managers:
- managers/manager.py
input:
val:
schema: int!

View File

@ -90,7 +90,7 @@ class Resource(object):
'meta_inputs': inputs,
'tags': tags,
'state': RESOURCE_STATE.created.name,
'manager': metadata.get('manager', '')
'managers': metadata.get('managers', [])
})
self.create_inputs(args)
@ -287,13 +287,15 @@ class Resource(object):
self.db_obj.save_lazy()
def prefetch(self):
if not self.db_obj.manager:
if not self.db_obj.managers:
return
manager_path = os.path.join(
self.db_obj.base_path, self.db_obj.manager)
rst = utils.communicate([manager_path], json.dumps(self.args))
self.update(json.loads(rst))
manager_stack = self.db_obj.managers
while manager_stack:
manager = manager_stack.pop(0)
manager_path = os.path.join(self.db_obj.base_path, manager)
rst = utils.communicate([manager_path], json.dumps(self.args))
self.update(json.loads(rst))
def load(name):
r = DBResource.get(name)

View File

@ -715,7 +715,7 @@ class Resource(Model):
meta_inputs = Field(dict, default=dict)
state = Field(str) # on_set/on_get would be useful
events = Field(list, default=list)
manager = Field(str)
managers = Field(list, default=list)
inputs = InputsField(default=dict)
tags = TagsField(default=list)