def save_uploaded_package(stream, nevra, org_id, packaging, checksum_type=None, checksum=None): a_pkg = rhn_pkg.package_from_stream(stream, packaging=packaging) a_pkg.read_header() temp_dir = os.path.join(CFG.MOUNT_POINT, CFG.PREPENDED_DIR, org_id, 'stage') if not os.path.isdir(temp_dir): os.makedirs(temp_dir) temp_stream = tempfile.NamedTemporaryFile(dir=temp_dir, prefix='-'.join( (nevra[0], nevra[2], nevra[3], nevra[4]))) a_pkg.save_payload(temp_stream) if checksum_type and checksum: # verify checksum if not (checksum_type == a_pkg.checksum_type and checksum == a_pkg.checksum): log_debug( 1, "Mismatching checksums: expected %s:%s got %s:%s" % (checksum_type, checksum, a_pkg.checksum_type, a_pkg.checksum)) raise rhnFault(104, "Mismatching information") temp_stream.file.close() temp_stream.close_called = True return a_pkg
def load_checksum_from_header(self): if self.path is None: raise rhnFault(50, "Unable to load package", explain=0) self.file = open(self.path, 'rb') self.a_pkg = rhn_pkg.package_from_stream(self.file, packaging='rpm') self.a_pkg.read_header() self.a_pkg.payload_checksum() self.file.close()
def load_checksum_from_header(self): if self.path is None: raise rhnFault(50, "Unable to load package", explain=0) self.file = open(self.path, 'rb') self.a_pkg = rhn_pkg.package_from_stream(self.file, packaging='rpm') self.a_pkg.read_header() self.a_pkg.payload_checksum() self.file.close()
def save_uploaded_package(stream, nevra, org_id, packaging, checksum_type=None, checksum=None): a_pkg = rhn_pkg.package_from_stream(stream, packaging=packaging) a_pkg.read_header() temp_dir = os.path.join(CFG.MOUNT_POINT, CFG.PREPENDED_DIR, org_id, "stage") if not os.path.isdir(temp_dir): os.makedirs(temp_dir) temp_stream = tempfile.NamedTemporaryFile(dir=temp_dir, prefix="-".join((nevra[0], nevra[2], nevra[3], nevra[4]))) a_pkg.save_payload(temp_stream) if checksum_type and checksum: # verify checksum if not (checksum_type == a_pkg.checksum_type and checksum == a_pkg.checksum): log_debug( 1, "Mismatching checksums: expected %s:%s got %s:%s" % (checksum_type, checksum, a_pkg.checksum_type, a_pkg.checksum), ) raise rhnFault(104, "Mismatching information") temp_stream.file.close() temp_stream.close_called = True return a_pkg