Пример #1
0
    def _get_deps_list(self, package):
        # We assume, that package looks like 'package_name=1.2.3'
        logger.info('Getting dependencies for {}'.format(package))
        NodeControlUtil.update_package_cache()
        holded = NodeControlUtil.get_sys_holds()
        if not holded:
            return package

        app_holded = list(set(self.config.PACKAGES_TO_HOLD + self.hold_ext + holded))
        deps_list = NodeControlUtil.get_deps_tree_filtered(package, hold_list=app_holded, deps_map={})
        # we need to make sure, that all hold package should be presented
        # in result list
        if package not in deps_list:
            deps_list.append(package)

        return " ".join(deps_list)
Пример #2
0
 def _get_deps_list(self, package):
     logger.info('Getting dependencies for {}'.format(package))
     NodeControlUtil.update_package_cache()
     dep_tree = NodeControlUtil.get_deps_tree(package)
     ret = []
     NodeControlUtil.dep_tree_traverse(dep_tree, ret)
     # Filter deps according to system hold list
     # in case of hold empty return only package
     holded = NodeControlUtil.get_sys_holds()
     if not holded:
         return package
     else:
         ret_list = []
         for rl in ret:
             name = rl.split("=", maxsplit=1)[0]
             if name in holded:
                 ret_list.append(rl)
         if package not in ret_list:
             ret_list.append(package)
         return " ".join(ret_list)
Пример #3
0
def test_generated_cmd_get_sys_holds(monkeypatch, catch_generated_commands):
    monkeypatch.setattr(shutil, 'which', lambda *_: 'path')
    NodeControlUtil.get_sys_holds()
    assert len(generated_commands) == 1
    assert generated_commands[0] == "apt-mark showhold"