Пример #1
0
Файл: Yum.py Проект: ab/bcfg2
def _setup_pulp(setup):
    global PULPSERVER, PULPCONFIG
    if not has_pulp:
        msg = "Packages: Cannot create Pulp collection: Pulp libraries not found"
        logger.error(msg)
        raise Bcfg2.Server.Plugin.PluginInitError(msg)

    if PULPSERVER is None:
        try:
            username = setup.cfp.get("packages:pulp", "username")
            password = setup.cfp.get("packages:pulp", "password")
        except ConfigParser.NoSectionError:
            msg = "Packages: No [pulp] section found in Packages/packages.conf"
            logger.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)
        except ConfigParser.NoOptionError:
            msg = "Packages: Required option not found in Packages/packages.conf: %s" % sys.exc_info()[1]
            logger.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)

        PULPCONFIG = ConsumerConfig()
        serveropts = PULPCONFIG.server

        PULPSERVER = server.PulpServer(serveropts['host'],
                                       int(serveropts['port']),
                                       serveropts['scheme'],
                                       serveropts['path'])
        PULPSERVER.set_basic_auth_credentials(username, password)
        server.set_active_server(PULPSERVER)
    return PULPSERVER
Пример #2
0
def _setup_pulp(setup):
    global PULPSERVER, PULPCONFIG
    if not has_pulp:
        msg = "Packages: Cannot create Pulp collection: Pulp libraries not found"
        logger.error(msg)
        raise Bcfg2.Server.Plugin.PluginInitError(msg)

    if PULPSERVER is None:
        try:
            username = setup.cfp.get("packages:pulp", "username")
            password = setup.cfp.get("packages:pulp", "password")
        except ConfigParser.NoSectionError:
            msg = "Packages: No [pulp] section found in Packages/packages.conf"
            logger.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)
        except ConfigParser.NoOptionError:
            msg = "Packages: Required option not found in Packages/packages.conf: %s" % sys.exc_info()[1]
            logger.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)

        PULPCONFIG = ConsumerConfig()
        serveropts = PULPCONFIG.server

        PULPSERVER = server.PulpServer(serveropts['host'],
                                       int(serveropts['port']),
                                       serveropts['scheme'],
                                       serveropts['path'])
        PULPSERVER.set_basic_auth_credentials(username, password)
        server.set_active_server(PULPSERVER)
    return PULPSERVER
Пример #3
0
    def setup_pulp(self):
        """ instantiate pulp server object and log in """
        config = ConsumerConfig()
        userapi = UserAPI()
        serveropts = config.server
        pulpserver = server.PulpServer(serveropts['host'],
                                       int(serveropts['port']),
                                       serveropts['scheme'],
                                       serveropts['path'])
        server.set_active_server(pulpserver)

        bundle = SpongeBundle(SpongeConfig.get("scheduler_username"))
        try:
            server.active_server.set_basic_auth_credentials(SpongeConfig.get("scheduler_username"),
                                                            SpongeConfig.get("scheduler_password"))
            crt = userapi.admin_certificate()
            bundle.write(crt)
        except server.ServerRequestError, err:
            self.stderr.write("Could not authenticate to Pulp: %s\n" % err[1])
            self.stderr.write("Ensure that the scheduler username and password are set properly in Sponge\n")
            raise SystemExit(1)
Пример #4
0
def _setup_pulp(setup):
    """ Connect to a Pulp server and pass authentication credentials.
    This only needs to be called once, but multiple calls won't hurt
    anything.

    :param setup: A Bcfg2 options dict
    :type setup: dict
    :returns: :class:`pulp.client.api.server.PulpServer`
    """
    global PULPSERVER, PULPCONFIG
    if not HAS_PULP:
        msg = "Packages: Cannot create Pulp collection: Pulp libraries " + \
            "not found"
        LOGGER.error(msg)
        raise Bcfg2.Server.Plugin.PluginInitError(msg)

    if PULPSERVER is None:
        try:
            username = setup.cfp.get("packages:pulp", "username")
            password = setup.cfp.get("packages:pulp", "password")
        except ConfigParser.NoSectionError:
            msg = "Packages: No [pulp] section found in bcfg2.conf"
            LOGGER.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)
        except ConfigParser.NoOptionError:
            msg = "Packages: Required option not found in bcfg2.conf: %s" % \
                sys.exc_info()[1]
            LOGGER.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)

        PULPCONFIG = ConsumerConfig()
        serveropts = PULPCONFIG.server

        PULPSERVER = server.PulpServer(serveropts['host'],
                                       int(serveropts['port']),
                                       serveropts['scheme'],
                                       serveropts['path'])
        PULPSERVER.set_basic_auth_credentials(username, password)
        server.set_active_server(PULPSERVER)
    return PULPSERVER
Пример #5
0
def _setup_pulp(setup):
    """ Connect to a Pulp server and pass authentication credentials.
    This only needs to be called once, but multiple calls won't hurt
    anything.

    :param setup: A Bcfg2 options dict
    :type setup: dict
    :returns: :class:`pulp.client.api.server.PulpServer`
    """
    global PULPSERVER, PULPCONFIG
    if not HAS_PULP:
        msg = "Packages: Cannot create Pulp collection: Pulp libraries " + \
            "not found"
        LOGGER.error(msg)
        raise Bcfg2.Server.Plugin.PluginInitError(msg)

    if PULPSERVER is None:
        try:
            username = setup.cfp.get("packages:pulp", "username")
            password = setup.cfp.get("packages:pulp", "password")
        except ConfigParser.NoSectionError:
            msg = "Packages: No [pulp] section found in bcfg2.conf"
            LOGGER.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)
        except ConfigParser.NoOptionError:
            msg = "Packages: Required option not found in bcfg2.conf: %s" % \
                sys.exc_info()[1]
            LOGGER.error(msg)
            raise Bcfg2.Server.Plugin.PluginInitError(msg)

        PULPCONFIG = ConsumerConfig()
        serveropts = PULPCONFIG.server

        PULPSERVER = server.PulpServer(serveropts['host'],
                                       int(serveropts['port']),
                                       serveropts['scheme'],
                                       serveropts['path'])
        PULPSERVER.set_basic_auth_credentials(username, password)
        server.set_active_server(PULPSERVER)
    return PULPSERVER
Пример #6
0
def get_pulp_server(user=None, new=False):
    """ set up a pulp client server instance """
    if new or not isinstance(server.active_server, server.Server):
        config = ConsumerConfig()
        pulpserver = server.PulpServer(config.server['host'],
                                       int(config.server['port']),
                                       config.server['scheme'],
                                       config.server['path'])
        server.set_active_server(pulpserver)

    if user:
        bundle = SpongeBundle(user)
        if os.path.exists(bundle.crtpath()):
            server.active_server.set_ssl_credentials(bundle.crtpath())
        else:
            raise IOError("No Pulp certificate found for %s at %s" %
                          (user, bundle.crtpath()))

        # make a quick and easy API call to verify that the session is
        # still active
        userapi = UserAPI()
        userapi.user(user)

    return server.active_server