Пример #1
0
def get_pips(c, distro):
    cls = common.get_action_cls(settings.INSTALL, c)
    dummy_config = common.get_config()
    dummy_root = tempfile.gettempdir()
    instance = cls(instances=set(), distro=distro,
                    packager=None, config=dummy_config,
                    root=dummy_root, opts=list(),
                    keep_old=False)
    if not isinstance(instance, component.PkgInstallComponent):
        return None
    else:
        return instance._get_pkgs_expanded()
Пример #2
0
def _instanciate_components(action_name, components, distro, pkg_manager, config, root_dir):
    all_instances = {}
    prerequisite_instances = {}

    for component in components.keys():
        action_cls = common.get_action_cls(action_name, component)
        instance = action_cls(instances=all_instances,
                              distro=distro,
                              packager=pkg_manager,
                              config=config,
                              root=root_dir,
                              opts=components.get(component, list()))
        all_instances[component] = instance

        if action_name == settings.START:
            if not instance.is_installed():
                install_cls = common.get_action_cls(settings.INSTALL, component)
                install_instance = install_cls(instances=dict(),
                                               distro=distro,
                                               packager=pkg_manager,
                                               config=config,
                                               root=root_dir,
                                               opts=components.get(component, list()))
                prerequisite_instances[component] = install_instance

        elif action_name == settings.UNINSTALL:
            if component not in _NO_AUTO_STOP:
                # stop the component if started
                if instance.is_started():
                    stop_cls = common.get_action_cls(settings.STOP, component)
                    stop_instance = stop_cls(instances=dict(),
                                             distro=distro,
                                             packager=pkg_manager,
                                             config=config,
                                             root=root_dir,
                                             opts=components.get(component, list()))
                    prerequisite_instances[component] = stop_instance

    return (all_instances, prerequisite_instances)
Пример #3
0
 def _instanciate_components(self, components):
     all_instances = dict()
     for component in components.keys():
         cls = common.get_action_cls(self.action, component, self.distro)
         instance = cls(instances=all_instances,
                               distro=self.distro,
                               packager=self.pkg_manager,
                               config=self.cfg,
                               root=self.directory,
                               opts=components.get(component, list()),
                               keep_old=self.kargs.get("keep_old")
                               )
         all_instances[component] = instance
     return all_instances
def get_epels(c, distro):
    cls = common.get_action_cls(settings.INSTALL, c)
    dummy_config = common.get_config()
    dummy_root = tempfile.gettempdir()
    instance = cls(instances=set(), distro=distro,
                    packager=None, config=dummy_config,
                    root=dummy_root, opts=list(),
                    keep_old=False)
    if not isinstance(instance, component.PkgInstallComponent):
        return None
    else:
        pkgs = instance._get_pkgs_expanded()
        epel_pkgs = dict()
        for (name, info) in pkgs.items():
            meta = info.get("meta") or dict()
            if meta and meta.get("epel"):
                epel_pkgs[name] = info
        return epel_pkgs
Пример #5
0
distro = settings.RHEL6
comps = common.get_default_components()


def filter_c(c):
    if not inspect.isclass(c):
        return False
    if c is object:
        return False
    return True


actions = settings.ACTIONS
for action in actions:
    klss = list()

    for c in comps.keys():
        kls = common.get_action_cls(action, c, distro)
        klss.append(kls)

    max_depth = 5
    fn = "%s.png" % (action)
    objgraph.show_refs(
        klss,
        filename=fn,
        max_depth=max_depth,
        highlight=inspect.isclass,
        filter=filter_c,
        extra_ignore=[id(locals())])