def import_channel_families(self): """Insert channel family data into DB.""" log(1, "Channel families in manifest: %d" % len(self.sat5_cert.channel_families)) # pylint: disable=E1101 batch = [] for cf in self.sat5_cert.channel_families: # pylint: disable=E1101 label = cf.name try: family = self.families[label] family_object = ChannelFamily() for k in family.keys(): family_object[k] = family[k] family_object['label'] = label batch.append(family_object) self.families_to_import.append(label) except KeyError: # While channel mappings are not consistent with certificate generated on RHN... msg = ("WARNING: Channel family '%s' is provided by manifest but " "was not found in cdn-sync mappings." % label) log2(0, 1, msg, stream=sys.stderr) log(1, "Channel families to import: %d" % len(batch)) # Perform import backend = SQLBackend() importer = ChannelFamilyImport(batch, backend) importer.run()
def import_channel_families(self): """Insert channel family data into DB.""" # Debug print("Channel families in cert: %d" % len(self.sat5_cert.channel_families)) # pylint: disable=E1101 batch = [] for cf in self.sat5_cert.channel_families: # pylint: disable=E1101 label = cf.name try: family = self.families[label] family_object = ChannelFamily() for k in family.keys(): family_object[k] = family[k] family_object['label'] = label batch.append(family_object) self.families_to_import.append(label) except KeyError: print("ERROR: Channel family '%s' was not found in mapping" % label) # Perform import backend = SQLBackend() importer = ChannelFamilyImport(batch, backend) importer.run()
def _update_channels_metadata(self, channels): # First populate rhnProductName table self._update_product_names(channels) backend = SQLBackend() channels_batch = [] content_sources_batch = [] for label in channels: channel = self.channel_metadata[label] channel_object = Channel() for k in channel.keys(): channel_object[k] = channel[k] family_object = ChannelFamily() family_object['label'] = self.channel_to_family[label] channel_object['families'] = [family_object] channel_object['label'] = label channel_object['basedir'] = '/' # Backend expects product_label named as product_name # To have correct value in rhnChannelProduct and reference # to rhnProductName in rhnChannel channel_object['product_name'] = channel['product_label'] dists = [] releases = [] # Distribution/Release channel mapping available if label in self.channel_dist_mapping: dist_map = self.channel_dist_mapping[label] for item in dist_map: if item['eus_release']: r = ReleaseChannelMap() r['product'] = item['os'] r['version'] = item['release'] r['release'] = item['eus_release'] r['channel_arch'] = item['channel_arch'] releases.append(r) else: d = DistChannelMap() for k in item: d[k] = item[k] dists.append(d) channel_object['dists'] = dists channel_object['release'] = releases sources = self.cdn_repository_manager.get_content_sources_import_batch(label, backend) content_sources_batch.extend(sources) channel_object['content-sources'] = sources channels_batch.append(channel_object) importer = ContentSourcesImport(content_sources_batch, backend) importer.run() importer = ChannelImport(channels_batch, backend) importer.run()
def _update_channel_families(self): """Insert channel family data into DB""" families_in_mapping = [] for entitlement in self.manifest.get_all_entitlements(): for product_id in entitlement.get_product_ids(): try: product = self.products[product_id] families_in_mapping.extend(product['families']) # Some product cannot be mapped into channel families except KeyError: print("Cannot map product '%s' into channel families" % product_id) families_in_mapping = set(families_in_mapping) # Debug print("Channel families mapped from products: %d" % len(self.families_to_import)) print("Channel families in cert: %d" % len(self.sat5_cert.channel_families)) # pylint: disable=E1101 batch = [] for cf in self.sat5_cert.channel_families: # pylint: disable=E1101 label = cf.name if label not in families_in_mapping: print( "Skipping channel family from certificate, not in the mapping: %s" % label) continue try: family = self.families[label] family_object = ChannelFamily() for k in family.keys(): family_object[k] = family[k] family_object['label'] = label batch.append(family_object) self.families_to_import.append(label) except KeyError: print("ERROR: Channel family '%s' was not found in mapping" % label) # Perform import backend = SQLBackend() importer = ChannelFamilyImport(batch, backend) importer.run()