• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python utils.loh_to_hoh函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中utils.loh_to_hoh函数的典型用法代码示例。如果您正苦于以下问题:Python loh_to_hoh函数的具体用法?Python loh_to_hoh怎么用?Python loh_to_hoh使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了loh_to_hoh函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: replace_objects_newer_on_remote

    def replace_objects_newer_on_remote(self, obj_type):
         locals = utils.loh_to_hoh(self.local_data[obj_type],"uid")
         remotes = utils.loh_to_hoh(self.remote_data[obj_type],"uid")

         for (ruid, rdata) in remotes.iteritems():

             # do not add the system if it is not on the transfer list
             if not self.must_include[obj_type].has_key(rdata["name"]):
                 continue

             if locals.has_key(ruid):
                 ldata = locals[ruid]
                 if ldata["mtime"] < rdata["mtime"]:

                     if ldata["name"] != rdata["name"]:
                         self.logger.info("removing %s %s" % (obj_type, ldata["name"]))
                         self.api.remove_item(obj_type, ldata["name"], recursive=True, logger=self.logger)
                     creator = getattr(self.api, "new_%s" % obj_type)
                     newobj = creator()
                     newobj.from_datastruct(rdata)
                     try:
                         self.logger.info("updating %s %s" % (obj_type, rdata["name"]))
                         self.api.add_item(obj_type, newobj)
                     except Exception, e:
                         utils.log_exc(self.logger)
开发者ID:angrygorilla,项目名称:cobbler,代码行数:25,代码来源:action_replicate.py


示例2: remove_objects_not_on_master

    def remove_objects_not_on_master(self, obj_type):
        locals = utils.loh_to_hoh(self.local_data[obj_type],"uid")
        remotes = utils.loh_to_hoh(self.remote_data[obj_type],"uid")

        for (luid, ldata) in locals.iteritems():
            if not remotes.has_key(luid):
                try:
                    self.logger.info("removing %s %s" % (obj_type, ldata["name"]))
                    self.api.remove_item(obj_type, ldata["name"], recursive=True, logger=self.logger)
                except Exception, e:
                    utils.log_exc(self.logger)
开发者ID:angrygorilla,项目名称:cobbler,代码行数:11,代码来源:action_replicate.py


示例3: add_objects_not_on_local

    def add_objects_not_on_local(self, obj_type):
         locals   = utils.loh_to_hoh(self.local_data[obj_type], "uid")
         remotes  = utils.loh_sort_by_key(self.remote_data[obj_type],"depth")
         remotes2 = utils.loh_to_hoh(self.remote_data[obj_type],"depth")

         for rdata in remotes:

             # do not add the system if it is not on the transfer list
             if not self.must_include[obj_type].has_key(rdata["name"]):
                 continue

             if not locals.has_key(rdata["uid"]):
                 creator = getattr(self.api, "new_%s" % obj_type)
                 newobj = creator()
                 newobj.from_datastruct(rdata)
                 try:
                     self.logger.info("adding %s %s" % (obj_type, rdata["name"]))
                     self.api.add_item(obj_type, newobj)
                 except Exception, e:
                     utils.log_exc(self.logger)
开发者ID:angrygorilla,项目名称:cobbler,代码行数:20,代码来源:action_replicate.py


示例4: remove_objects_not_on_master

    def remove_objects_not_on_master(self, obj_type):
        locals = utils.lod_to_dod(self.local_data[obj_type], "uid")
        remotes = utils.lod_to_dod(self.remote_data[obj_type], "uid")

        obj_pattern = getattr(self, "%s_patterns" % obj_type)
        if obj_pattern and self.prune:
            self.logger.info("Found pattern for %s. Pruning non-matching items" % obj_type)
            keep_obj = {}
            remote_names = utils.loh_to_hoh(self.remote_data[obj_type], "name")
            for name in remote_names.keys():
                if name in self.must_include[obj_type] and remote_names[name]["uid"] in remotes:
                    self.logger.info("Adding %s:%s to keep list" % (name, remote_names[name]["uid"]))
                    keep_obj[remote_names[name]["uid"]] = remotes[remote_names[name]["uid"]]
            remotes = keep_obj

        for (luid, ldata) in locals.iteritems():
            if luid not in remotes:
                try:
                    self.logger.info("removing %s %s" % (obj_type, ldata["name"]))
                    self.api.remove_item(obj_type, ldata["name"], recursive=True, logger=self.logger)
                except Exception:
                    utils.log_exc(self.logger)
开发者ID:reikoshea,项目名称:cobbler,代码行数:22,代码来源:action_replicate.py


示例5: generate_include_map

    def generate_include_map(self):

        self.remote_names = {}
        self.remote_dict  = {}
        self.must_include = {
            "distro"    : {},
            "profile"   : {},
            "system"    : {},
            "image"     : {},
            "repo"      : {},
            "mgmtclass" : {},
            "package"   : {},
            "file"      : {}
        }

        for ot in OBJ_TYPES:
            self.remote_names[ot] = utils.loh_to_hoh(self.remote_data[ot],"name").keys()
            self.remote_dict[ot]  = utils.loh_to_hoh(self.remote_data[ot],"name")
            if self.sync_all:
                for names in self.remote_dict[ot]:
                    self.must_include[ot][names] = 1

        self.logger.debug("remote names struct is %s" % self.remote_names)

        if not self.sync_all:
             # include all profiles that are matched by a pattern
             for obj_type in OBJ_TYPES:
                 patvar = getattr(self, "%s_patterns" % obj_type)
                 self.logger.debug("* Finding Explicit %s Matches" % obj_type)
                 for pat in patvar:
                     for remote in self.remote_names[obj_type]:
                         self.logger.debug("?: seeing if %s looks like %s" % (remote,pat))
                         if fnmatch.fnmatch(remote, pat):
                             self.must_include[obj_type][remote] = 1

             # include all profiles that systems require
             # whether they are explicitly included or not
             self.logger.debug("* Adding Profiles Required By Systems")
             for sys in self.must_include["system"].keys():
                 pro = self.remote_dict["system"][sys].get("profile","")
                 self.logger.debug("?: requires profile: %s" % pro)
                 if pro != "":
                    self.must_include["profile"][pro] = 1

             # include all profiles that subprofiles require
             # whether they are explicitly included or not
             # very deep nesting is possible
             self.logger.debug("* Adding Profiles Required By SubProfiles")
             while True:
                 loop_exit = True
                 for pro in self.must_include["profile"].keys():
                     parent = self.remote_dict["profile"][pro].get("parent","")
                     if parent != "":
                         if not self.must_include["profile"].has_key(parent):
                             self.must_include["profile"][parent] = 1
                             loop_exit = False
                 if loop_exit:
                     break
     
             # require all distros that any profiles in the generated list requires
             # whether they are explicitly included or not
             self.logger.debug("* Adding Distros Required By Profiles")
             for p in self.must_include["profile"].keys():
                 distro = self.remote_dict["profile"][p].get("distro","")
                 if not distro == "<<inherit>>" and not distro == "~":
                     self.logger.info("Adding repo %s for profile %s."%(p, distro))
                     self.must_include["distro"][distro] = 1

             # require any repos that any profiles in the generated list requires
             # whether they are explicitly included or not
             self.logger.debug("* Adding Repos Required By Profiles")
             for p in self.must_include["profile"].keys():
                 repos = self.remote_dict["profile"][p].get("repos",[])
                 for r in repos:
                     self.must_include["repo"][r] = 1

             # include all images that systems require
             # whether they are explicitly included or not
             self.logger.debug("* Adding Images Required By Systems")
             for sys in self.must_include["system"].keys():
                 img = self.remote_dict["system"][sys].get("image","")
                 self.logger.debug("?: requires profile: %s" % pro)
                 if img != "":
                    self.must_include["image"][img] = 1

        # FIXME: remove debug
        for ot in OBJ_TYPES:
            self.logger.debug("transfer list for %s is %s" % (ot, self.must_include[ot].keys()))
开发者ID:angrygorilla,项目名称:cobbler,代码行数:88,代码来源:action_replicate.py



注:本文中的utils.loh_to_hoh函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python utils.lxmlize函数代码示例发布时间:2022-05-26
下一篇:
Python utils.loginfo函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap