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
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)
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
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