本文整理汇总了Python中utils.path_tail函数的典型用法代码示例。如果您正苦于以下问题:Python path_tail函数的具体用法?Python path_tail怎么用?Python path_tail使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了path_tail函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: configure_tree_location
def configure_tree_location(self, distro):
"""
Once a distribution is identified, find the part of the distribution
that has the URL in it that we want to use for automating the Linux
distribution installation, and create a autoinstall_meta variable $tree
that contains this.
"""
base = self.rootdir
# how we set the tree depends on whether an explicit network_root was specified
if self.network_root is None:
dest_link = os.path.join(self.settings.webdir, "links", distro.name)
# create the links directory only if we are mirroring because with
# SELinux Apache can't symlink to NFS (without some doing)
if not os.path.exists(dest_link):
try:
self.logger.info("trying symlink: %s -> %s" % (str(base), str(dest_link)))
os.symlink(base, dest_link)
except:
# this shouldn't happen but I've seen it ... debug ...
self.logger.warning("symlink creation failed: %(base)s, %(dest)s" % {"base": base, "dest": dest_link})
tree = "http://@@[email protected]@/cblr/links/%s" % (distro.name)
self.set_install_tree(distro, tree)
else:
# where we assign the automated installation file source is relative
# to our current directory and the input start directory in the crawl.
# We find the path segments between and tack them on the network source
# path to find the explicit network path to the distro that Anaconda
# can digest.
tail = utils.path_tail(self.path, base)
tree = self.network_root[:-1] + tail
self.set_install_tree(distro, tree)
示例2: get_tree_location
def get_tree_location(self, distro):
"""
Once a distribution is identified, find the part of the distribution
that has the URL in it that we want to use for kickstarting the
distribution, and create a ksmeta variable $tree that contains this.
"""
base = self.get_rootdir()
if self.network_root is None:
dists_path = os.path.join(self.path, "dists")
if os.path.isdir(dists_path):
tree = "http://@@[email protected]@/cblr/ks_mirror/%s" % (self.name)
else:
tree = "http://@@[email protected]@/cblr/repo_mirror/%s" % (distro.name)
self.set_install_tree(distro, tree)
else:
# where we assign the kickstart source is relative to our current directory
# and the input start directory in the crawl. We find the path segments
# between and tack them on the network source path to find the explicit
# network path to the distro that Anaconda can digest.
tail = utils.path_tail(self.path, base)
tree = self.network_root[:-1] + tail
self.set_install_tree(distro, tree)
return
示例3: add_single_distro
def add_single_distro(self, name):
# get the distro record
distro = self.distros.find(name=name)
if distro is None:
return
# copy image files to images/$name in webdir & tftpboot:
self.sync.pxegen.copy_single_distro_files(distro, self.settings.webdir, True)
self.tftpd.add_single_distro(distro)
# create the symlink for this distro
src_dir = utils.find_distro_path(self.settings, distro)
dst_dir = os.path.join(self.settings.webdir, "links", name)
if os.path.exists(dst_dir):
self.logger.warning("skipping symlink, destination (%s) exists" % dst_dir)
elif utils.path_tail(os.path.join(self.settings.webdir, "ks_mirror"), src_dir) == "":
self.logger.warning("skipping symlink, the source (%s) is not in %s" % (src_dir, os.path.join(self.settings.webdir, "ks_mirror")))
else:
try:
self.logger.info("trying symlink %s -> %s" % (src_dir, dst_dir))
os.symlink(src_dir, dst_dir)
except (IOError, OSError):
self.logger.error("symlink failed (%s -> %s)" % (src_dir, dst_dir))
# generate any templates listed in the distro
self.sync.pxegen.write_templates(distro, write_file=True)
# cascade sync
kids = distro.get_children()
for k in kids:
self.add_single_profile(k.name, rebuild_menu=False)
self.sync.pxegen.make_pxe_menu()
示例4: configure_tree_location
def configure_tree_location(self, distro):
"""
Once a distribution is identified, find the part of the distribution
that has the URL in it that we want to use for kickstarting the
distribution, and create a ksmeta variable $tree that contains this.
"""
base = self.get_rootdir()
if self.network_root is None:
tree = self.get_install_tree(distro,base)
else:
# where we assign the kickstart source is relative to our current directory
# and the input start directory in the crawl. We find the path segments
# between and tack them on the network source path to find the explicit
# network path to the distro that Anaconda can digest.
tail = utils.path_tail(self.path, base)
tree = self.network_root[:-1] + tail
self.set_install_tree( distro, tree)
示例5: replicate_data
def replicate_data(self):
self.local_data = {}
self.remote_data = {}
self.remote_settings = self.remote.get_settings()
self.logger.info("Querying Both Servers")
for what in OBJ_TYPES:
self.remote_data[what] = self.remote.get_items(what)
self.local_data[what] = self.local.get_items(what)
self.generate_include_map()
if self.prune:
self.logger.info("Removing Objects Not Stored On Master")
obj_types = OBJ_TYPES[:]
if len(self.system_patterns) == 0 and "system" in obj_types:
obj_types.remove("system")
for what in obj_types:
self.remove_objects_not_on_master(what)
else:
self.logger.info("*NOT* Removing Objects Not Stored On Master")
if not self.omit_data:
self.logger.info("Rsyncing distros")
for distro in self.must_include["distro"].keys():
if self.must_include["distro"][distro] == 1:
self.logger.info("Rsyncing distro %s" % distro)
target = self.remote.get_distro(distro)
target_webdir = os.path.join(self.remote_settings["webdir"], "distro_mirror")
tail = utils.path_tail(target_webdir, target["kernel"])
if tail != "":
try:
# path_tail(a,b) returns something that looks like
# an absolute path, but it's really the sub-path
# from a that is contained in b. That means we want
# the first element of the path
dest = os.path.join(self.settings.webdir, "distro_mirror", tail.split("/")[1])
self.rsync_it("distro-%s" % target["name"], dest)
except:
self.logger.error("Failed to rsync distro %s" % distro)
continue
else:
self.logger.warning("Skipping distro %s, as it doesn't appear to live under distro_mirror" % distro)
self.logger.info("Rsyncing repos")
for repo in self.must_include["repo"].keys():
if self.must_include["repo"][repo] == 1:
self.rsync_it("repo-%s" % repo, os.path.join(self.settings.webdir, "repo_mirror", repo), "repo")
self.logger.info("Rsyncing distro repo configs")
self.rsync_it("cobbler-distros/config/", os.path.join(self.settings.webdir, "distro_mirror", "config"))
self.logger.info("Rsyncing automatic installation templates & snippets")
self.rsync_it("cobbler-autoinstalls", "/var/lib/cobbler/autoinstall_templates")
self.rsync_it("cobbler-snippets", "/var/lib/cobbler/autoinstall_snippets")
self.logger.info("Rsyncing triggers")
self.rsync_it("cobbler-triggers", "/var/lib/cobbler/triggers")
self.logger.info("Rsyncing scripts")
self.rsync_it("cobbler-scripts", "/var/lib/cobbler/scripts")
else:
self.logger.info("*NOT* Rsyncing Data")
self.logger.info("Removing Objects Not Stored On Local")
for what in OBJ_TYPES:
self.add_objects_not_on_local(what)
self.logger.info("Updating Objects Newer On Remote")
for what in OBJ_TYPES:
self.replace_objects_newer_on_remote(what)
示例6: get_name_from_path
def get_name_from_path(self,dirname):
return self.mirror_name + "-".join(utils.path_tail(os.path.dirname(self.path),dirname).split("/"))