def getAnyChecksum(self, info, username=None, password=None, session=None, is_source=0): """ returns checksum info of available packages also does an existance check on the filesystem. """ log_debug(3) pkg_infos = info.get('packages') channels = info.get('channels', []) force = info.get('force', 0) orgid = info.get('org_id') if orgid == 'null': null_org = 1 else: null_org = None if not session: org_id, force = rhnPackageUpload.authenticate(username, password, channels=channels, null_org=null_org, force=force) else: try: org_id, force = rhnPackageUpload.authenticate_session( session, channels=channels, null_org=null_org, force=force) except rhnSession.InvalidSessionError: raise_with_tb(rhnFault(33), sys.exc_info()[2]) except rhnSession.ExpiredSessionError: raise_with_tb(rhnFault(34), sys.exc_info()[2]) if is_source: ret = self._getSourcePackageChecksum(org_id, pkg_infos) else: ret = self._getPackageChecksum(org_id, pkg_infos) return ret
def headerParserHandler(self, req): ret = basePackageUpload.BasePackageUpload.headerParserHandler( self, req) # Optional headers maps = [['Null-Org', 'null_org'], ['Packaging', 'packaging']] for hn, sn in maps: header_name = "%s-%s" % (self.header_prefix, hn) if req.headers_in.has_key(header_name): setattr(self, sn, req.headers_in[header_name]) if ret != apache.OK: return ret if CFG.SEND_MESSAGE_TO_ALL: rhnSQL.closeDB() log_debug(1, "send_message_to_all is set") rhnFlags.set("apache-return-code", apache.HTTP_NOT_FOUND) try: outage_message = open(CFG.MESSAGE_TO_ALL).read() except IOError: log_error("Missing outage message file") outage_message = "Outage mode" raise rhnFault(20001, outage_message, explain=0) # Init the database connection rhnSQL.initDB() use_session = 0 if self.field_data.has_key('Auth-Session'): session_token = self.field_data['Auth-Session'] use_session = 1 else: encoded_auth_token = self.field_data['Auth'] if not use_session: auth_token = self.get_auth_token(encoded_auth_token) if len(auth_token) < 2: log_debug(3, auth_token) raise rhnFault(105, "Unable to autenticate") self.username, self.password = auth_token[:2] force = self.field_data['Force'] force = int(force) log_debug(1, "Username", self.username, "Force", force) if use_session: self.org_id, self.force = rhnPackageUpload.authenticate_session( session_token, force=force, null_org=self.null_org) else: # We don't push to any channels self.org_id, self.force = rhnPackageUpload.authenticate( self.username, self.password, force=force, null_org=self.null_org) return apache.OK
def headerParserHandler(self, req): ret = basePackageUpload.BasePackageUpload.headerParserHandler(self, req) # Optional headers maps = [['Null-Org', 'null_org'], ['Packaging', 'packaging']] for hn, sn in maps: header_name = "%s-%s" % (self.header_prefix, hn) if req.headers_in.has_key(header_name): setattr(self, sn, req.headers_in[header_name]) if ret != apache.OK: return ret if CFG.SEND_MESSAGE_TO_ALL: rhnSQL.closeDB() log_debug(1, "send_message_to_all is set") rhnFlags.set("apache-return-code", apache.HTTP_NOT_FOUND) try: outage_message = open(CFG.MESSAGE_TO_ALL).read() except IOError: log_error("Missing outage message file") outage_message = "Outage mode" raise rhnFault(20001, outage_message, explain=0) # Init the database connection rhnSQL.initDB() use_session = 0 if self.field_data.has_key('Auth-Session'): session_token = self.field_data['Auth-Session'] use_session = 1 else: encoded_auth_token = self.field_data['Auth'] if not use_session: auth_token = self.get_auth_token(encoded_auth_token) if len(auth_token) < 2: log_debug(3, auth_token) raise rhnFault(105, "Unable to autenticate") self.username, self.password = auth_token[:2] force = self.field_data['Force'] force = int(force) log_debug(1, "Username", self.username, "Force", force) if use_session: self.org_id, self.force = rhnPackageUpload.authenticate_session(session_token, force=force, null_org=self.null_org) else: # We don't push to any channels self.org_id, self.force = rhnPackageUpload.authenticate(self.username, self.password, force=force, null_org=self.null_org) nevra = [self.package_name, "", self.package_version, self.package_release, self.package_arch] return apache.OK
def uploadPackage(self, username, password, info): """ Uploads an RPM package. """ log_debug(3) channels = info.get('channels', []) force = info.get('force', 0) org_id, force = rhnPackageUpload.authenticate(username, password, channels=channels, force=force) return self._uploadPackage(channels, org_id, force, info)