Allow multiple managers
This commit is contained in:
parent
cd3f1978b3
commit
4e05ce3adf
@ -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:
|
||||
|
@ -1,7 +1,8 @@
|
||||
id: managed
|
||||
handler: none
|
||||
version: 1.0.0
|
||||
manager: managers/manager.py
|
||||
managers:
|
||||
- managers/manager.py
|
||||
input:
|
||||
val:
|
||||
schema: int!
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user