本文整理汇总了Python中utils.find_kickstart函数的典型用法代码示例。如果您正苦于以下问题:Python find_kickstart函数的具体用法?Python find_kickstart怎么用?Python find_kickstart使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了find_kickstart函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: generate_kickstart_for_profile
def generate_kickstart_for_profile(self,g):
g = self.api.find_profile(name=g)
if g is None:
return "# profile not found"
distro = g.get_conceptual_parent()
meta = utils.blender(self.api, False, g)
if distro is None:
raise CX(_("profile %(profile)s references missing distro %(distro)s") % { "profile" : g.name, "distro" : g.distro })
kickstart_path = utils.find_kickstart(meta["kickstart"])
if kickstart_path is not None and os.path.exists(kickstart_path):
# the input is an *actual* file, hence we have to copy it
try:
meta = utils.blender(self.api, False, g)
ksmeta = meta["ks_meta"]
del meta["ks_meta"]
meta.update(ksmeta) # make available at top level
meta["yum_repo_stanza"] = self.generate_repo_stanza(g,True)
meta["yum_config_stanza"] = self.generate_config_stanza(g,True)
meta["kickstart_done"] = self.generate_kickstart_signal(0, g, None)
meta["kickstart_start"] = self.generate_kickstart_signal(1, g, None)
meta["kernel_options"] = utils.hash_to_string(meta["kernel_options"])
kfile = open(kickstart_path)
data = self.templar.render(kfile, meta, None, g)
kfile.close()
return data
except:
utils.log_exc(self.api.logger)
raise
elif kickstart_path is not None and not os.path.exists(kickstart_path):
if kickstart_path.find("http://") == -1 and kickstart_path.find("ftp://") == -1 and kickstart_path.find("nfs:") == -1:
return "# Error, cannot find %s" % kickstart_path
return "# kickstart is sourced externally, or is missing, and cannot be displayed here: %s" % meta["kickstart"]
示例2: generate_kickstart
def generate_kickstart(self, profile=None, system=None):
obj = system
if system is None:
obj = profile
meta = utils.blender(self.api, False, obj)
kickstart_path = utils.find_kickstart(meta["kickstart"])
if not kickstart_path:
return "# kickstart is missing or invalid: %s" % meta["kickstart"]
ksmeta = meta["ks_meta"]
del meta["ks_meta"]
meta.update(ksmeta) # make available at top level
meta["yum_repo_stanza"] = self.generate_repo_stanza(obj, (system is None))
meta["yum_config_stanza"] = self.generate_config_stanza(obj, (system is None))
meta["kernel_options"] = utils.hash_to_string(meta["kernel_options"])
# meta["config_template_files"] = self.generate_template_files_stanza(g, False)
try:
raw_data = utils.read_file_contents(kickstart_path, self.api.logger,
self.settings.template_remote_kickstarts)
if raw_data is None:
return "# kickstart is sourced externally: %s" % meta["kickstart"]
data = self.templar.render(raw_data, meta, None, obj)
return data
except FileNotFoundException:
self.api.logger.warning("kickstart not found: %s" % meta["kickstart"])
return "# kickstart not found: %s" % meta["kickstart"]
示例3: set_kickstart
def set_kickstart(self,kickstart):
"""
It may not make sense for images to have kickstarts. It really doesn't.
However if the image type is 'iso' koan can create a virtual floppy
and shove an answer file on it, to script an installation. This may
not be a kickstart per se, it might be a windows answer file (SIF) etc.
"""
if kickstart is None or kickstart == "" or kickstart == "delete":
self.kickstart = ""
return True
if utils.find_kickstart(kickstart):
self.kickstart = kickstart
return True
raise CX(_("kickstart not found for image"))
示例4: test_kickstart_scan
def test_kickstart_scan(self):
# we don't check to see if kickstart files look like anything
# so this will pass
self.assertTrue(utils.find_kickstart("filedoesnotexist") is None)
self.assertTrue(utils.find_kickstart(self.topdir) == None)
self.assertTrue(utils.find_kickstart("http://bar"))
self.assertTrue(utils.find_kickstart("ftp://bar"))
self.assertTrue(utils.find_kickstart("nfs://bar"))
self.assertFalse(utils.find_kickstart("gopher://bar"))
示例5: set_kickstart
def set_kickstart(self,kickstart):
"""
Sets the kickstart. This must be a NFS, HTTP, or FTP URL.
Or filesystem path. Minor checking of the URL is performed here.
"""
if kickstart == "" or kickstart is None:
self.kickstart = ""
return True
if kickstart == "<<inherit>>":
self.kickstart = kickstart
return True
if utils.find_kickstart(kickstart):
self.kickstart = kickstart
return True
raise CX(_("kickstart not found: %s") % kickstart)
示例6: generate_kickstart
def generate_kickstart(self, profile=None, system=None):
obj = system
if system is None:
obj = profile
meta = utils.blender(self.api, False, obj)
kickstart_path = utils.find_kickstart(meta["kickstart"])
if not kickstart_path:
return "# kickstart is missing or invalid: %s" % meta["kickstart"]
ksmeta = meta["ks_meta"]
del meta["ks_meta"]
meta.update(ksmeta) # make available at top level
meta["yum_repo_stanza"] = self.generate_repo_stanza(obj, (system is None))
meta["yum_config_stanza"] = self.generate_config_stanza(obj, (system is None))
meta["kernel_options"] = utils.hash_to_string(meta["kernel_options"])
# add extra variables for other distro types
if "tree" in meta:
urlparts = urlparse.urlsplit(meta["tree"])
meta["install_source_directory"] = urlparts[2]
try:
raw_data = utils.read_file_contents(
kickstart_path, self.api.logger,
self.settings.template_remote_kickstarts)
if raw_data is None:
return "# kickstart is sourced externally: %s" % meta["kickstart"]
distro = profile.get_conceptual_parent()
if system is not None:
distro = system.get_conceptual_parent().get_conceptual_parent()
data = self.templar.render(raw_data, meta, None, obj)
if distro.breed == "suse":
# AutoYaST profile
data = self.generate_autoyast(profile, system, data)
return data
except FileNotFoundException:
self.api.logger.warning("kickstart not found: %s" % meta["kickstart"])
return "# kickstart not found: %s" % meta["kickstart"]
示例7: set_kickstart
def set_kickstart(self,kickstart):
"""
Sets the kickstart. This must be a NFS, HTTP, or FTP URL.
Or filesystem path. Minor checking of the URL is performed here.
NOTE -- usage of the --kickstart parameter in the profile
is STRONGLY encouraged. This is only for exception cases
where a user already has kickstarts made for each system
and can't leverage templating. Profiles provide an important
abstraction layer -- assigning systems to defined and repeatable
roles.
"""
if kickstart is None or kickstart in [ "", "delete", "<<inherit>>" ]:
self.kickstart = "<<inherit>>"
return True
if utils.find_kickstart(kickstart):
self.kickstart = kickstart
return True
raise CX(_("kickstart not found: %s" % kickstart))
示例8: generate_kickstart_for_system
def generate_kickstart_for_system(self,s):
s = self.api.find_system(name=s)
if s is None:
return "# system not found"
profile = s.get_conceptual_parent()
if profile is None:
raise CX(_("system %(system)s references missing profile %(profile)s") % { "system" : s.name, "profile" : s.profile })
distro = profile.get_conceptual_parent()
if distro is None:
# this is an image parented system, no kickstart available
return "# image based systems do not have kickstarts"
meta = utils.blender(self.api, False, s)
kickstart_path = utils.find_kickstart(meta["kickstart"])
if kickstart_path and os.path.exists(kickstart_path):
try:
ksmeta = meta["ks_meta"]
del meta["ks_meta"]
meta.update(ksmeta) # make available at top level
meta["yum_repo_stanza"] = self.generate_repo_stanza(s, False)
meta["yum_config_stanza"] = self.generate_config_stanza(s, False)
meta["kickstart_done"] = self.generate_kickstart_signal(0, profile, s)
meta["kickstart_start"] = self.generate_kickstart_signal(1, profile, s)
meta["kernel_options"] = utils.hash_to_string(meta["kernel_options"])
# meta["config_template_files"] = self.generate_template_files_stanza(g, False)
kfile = open(kickstart_path)
data = self.templar.render(kfile, meta, None, s)
kfile.close()
return data
except:
traceback.print_exc()
raise CX(_("Error templating file"))
elif kickstart_path is not None and not os.path.exists(kickstart_path):
if kickstart_path.find("http://") == -1 and kickstart_path.find("ftp://") == -1 and kickstart_path.find("nfs:") == -1:
return "# Error, cannot find %s" % kickstart_path
return "# kickstart is sourced externally: %s" % meta["kickstart"]