allow Manifest to differentiate between supplied and implicit found initial manifest

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
Nico Schottelius 2012-11-07 09:07:18 +01:00
parent 9cf80f5fdf
commit e785092935

View file

@ -86,15 +86,19 @@ class Manifest(object):
return env return env
def run_initial_manifest(self, script): def run_initial_manifest(self, initial_manifest=None):
self.log.info("Running initial manifest " + self.local.manifest_path) if not initial_manifest:
initial_manifest = self.local.initial_manifest
if not os.path.isfile(self.local.manifest_path): self.log.info("Running initial manifest " + initial_manifest)
raise cdist.Error("Initial manifest is missing")
self.local.run_script(script, env=self.env_initial_manifest(script)) if not os.path.isfile(initial_manifest):
raise cdist.Error("Initial manifest is missing: %s" % initial_manifest)
self.local.run_script(script, env=self.env_initial_manifest(initial_manifest))
def env_type_manifest(self, cdist_object): def env_type_manifest(self, cdist_object):
type_manifest = os.path.join(self.local.type_path, cdist_object.cdist_type.manifest_path)
env = os.environ.copy() env = os.environ.copy()
env.update(self.env) env.update(self.env)
env.update({ env.update({
@ -103,12 +107,12 @@ class Manifest(object):
'__object_id': cdist_object.object_id, '__object_id': cdist_object.object_id,
'__object_name': cdist_object.name, '__object_name': cdist_object.name,
'__type': cdist_object.cdist_type.absolute_path, '__type': cdist_object.cdist_type.absolute_path,
'__cdist_manifest': script, '__cdist_manifest': type_manifest,
}) })
return env return env
def run_type_manifest(self, cdist_object): def run_type_manifest(self, cdist_object):
script = os.path.join(self.local.type_path, cdist_object.cdist_type.manifest_path) type_manifest = os.path.join(self.local.type_path, cdist_object.cdist_type.manifest_path)
if os.path.isfile(script): if os.path.isfile(type_manifest):
self.local.run_script(script, env=self.env_type_manifest(cdist_object)) self.local.run_script(type_manifest, env=self.env_type_manifest(cdist_object))