def _from_csv(cls,system,data,csv_type,log): """ Import data from CSV file into System Objects """ try: arch = Arch.by_name(data['arch']) except ValueError: log.append("%s: Invalid Arch %s" % (system.fqdn, data['arch'])) return False if data['update'] and data['family']: try: osversion = OSVersion.by_name(OSMajor.by_name(unicode(data['family'])), unicode(data['update'])) except InvalidRequestError: log.append("%s: Invalid Family %s Update %s" % (system.fqdn, data['family'], data['update'])) return False if osversion not in [oldosversion.osversion for oldosversion in system.excluded_osversion_byarch(arch)]: if data['excluded'] == 'True': exclude_osversion = ExcludeOSVersion(osversion=osversion, arch=arch) system.excluded_osversion.append(exclude_osversion) system.record_activity(user=identity.current.user, service=u'CSV', action=u'Added', field=u'Excluded_families', old=u'', new=u'%s/%s' % (osversion, arch)) else: if data['excluded'] == 'False': for old_osversion in system.excluded_osversion_byarch(arch): if old_osversion.osversion == osversion: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Removed', field=u'Excluded_families', old=u'%s/%s' % (old_osversion.osversion, arch), new=u'') session.delete(old_osversion) if not data['update'] and data['family']: try: osmajor = OSMajor.by_name(data['family']) except InvalidRequestError: log.append("%s: Invalid family %s " % (system.fqdn, data['family'])) return False if osmajor not in [oldosmajor.osmajor for oldosmajor in system.excluded_osmajor_byarch(arch)]: if data['excluded'].lower() == 'true': exclude_osmajor = ExcludeOSMajor(osmajor=osmajor, arch=arch) system.excluded_osmajor.append(exclude_osmajor) system.record_activity(user=identity.current.user, service=u'CSV', action=u'Added', field=u'Excluded_families', old=u'', new=u'%s/%s' % (osmajor, arch)) else: if data['excluded'].lower() == 'false': for old_osmajor in system.excluded_osmajor_byarch(arch): if old_osmajor.osmajor == osmajor: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Removed', field=u'Excluded_families', old=u'%s/%s' % (old_osmajor.osmajor, arch), new=u'') session.delete(old_osmajor) return True
def _from_csv(cls, system, data, csv_type, log): """ Import data from CSV file into System Objects """ family = None update = None # Arch is required if 'arch' in data: try: arch = Arch.by_name(data['arch']) except ValueError: log.append("%s: Invalid arch %s" % (system.fqdn, data['arch'])) return False else: log.append("%s: Error! Missing arch" % system.fqdn) return False # pull in update and family if present if 'family' in data: family = data['family'] if family: try: family = OSMajor.by_name(family) except InvalidRequestError: log.append("%s: Error! Invalid family %s" % (system.fqdn, data['family'])) return False if 'update' in data: update = data['update'] if update: if not family: log.append( "%s: Error! You must specify Family along with Update" % system.fqdn) return False try: update = OSVersion.by_name(family, unicode(update)) except InvalidRequestError: log.append("%s: Error! Invalid update %s" % (system.fqdn, data['update'])) return False #Import Update specific if update and family: if system.provisions.has_key(arch): system_arch = system.provisions[arch] else: system_arch = Provision(arch=arch) system.provisions[arch] = system_arch if system_arch.provision_families.has_key(family): system_provfam = system_arch.provision_families[family] else: system_provfam = ProvisionFamily(osmajor=family) system_arch.provision_families[family] = system_provfam if system_provfam.provision_family_updates.has_key(update): prov = system_provfam.provision_family_updates[update] else: prov = ProvisionFamilyUpdate(osversion=update) system_provfam.provision_family_updates[update] = prov installlog = '%s/%s' % (arch, update) #Import Family specific if family and not update: if system.provisions.has_key(arch): system_arch = system.provisions[arch] else: system_arch = Provision(arch=arch) system.provisions[arch] = system_arch if system_arch.provision_families.has_key(family): prov = system_arch.provision_families[family] else: prov = ProvisionFamily(osmajor=family) system_arch.provision_families[family] = prov installlog = '%s/%s' % (arch, family) #Import Arch specific if not family and not update: if system.provisions.has_key(arch): prov = system.provisions[arch] else: prov = Provision(arch=arch) system.provisions[arch] = prov installlog = '%s' % arch if 'ks_meta' in data and prov.ks_meta != data['ks_meta']: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:ks_meta:%s' % installlog, old=prov.ks_meta, new=data['ks_meta']) prov.ks_meta = data['ks_meta'] if 'kernel_options' in data and prov.kernel_options != data[ 'kernel_options']: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:kernel_options:%s' % installlog, old=prov.kernel_options, new=data['kernel_options']) prov.kernel_options = data['kernel_options'] if 'kernel_options_post' in data and prov.kernel_options_post != data[ 'kernel_options_post']: system.record_activity( user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:kernel_options_post:%s' % installlog, old=prov.kernel_options_post, new=data['kernel_options_post']) prov.kernel_options_post = data['kernel_options_post'] return True
def _from_csv(cls,system,data,csv_type,log): """ Import data from CSV file into System Objects """ family = None update = None # Arch is required if 'arch' in data: try: arch = Arch.by_name(data['arch']) except ValueError: log.append("%s: Invalid arch %s" % (system.fqdn, data['arch'])) return False else: log.append("%s: Error! Missing arch" % system.fqdn) return False # pull in update and family if present if 'family' in data: family = data['family'] if family: try: family = OSMajor.by_name(family) except InvalidRequestError: log.append("%s: Error! Invalid family %s" % (system.fqdn, data['family'])) return False if 'update' in data: update = data['update'] if update: if not family: log.append("%s: Error! You must specify Family along with Update" % system.fqdn) return False try: update = OSVersion.by_name(family, unicode(update)) except InvalidRequestError: log.append("%s: Error! Invalid update %s" % (system.fqdn, data['update'])) return False #Import Update specific if update and family: if system.provisions.has_key(arch): system_arch = system.provisions[arch] else: system_arch = Provision(arch=arch) system.provisions[arch] = system_arch if system_arch.provision_families.has_key(family): system_provfam = system_arch.provision_families[family] else: system_provfam = ProvisionFamily(osmajor=family) system_arch.provision_families[family] = system_provfam if system_provfam.provision_family_updates.has_key(update): prov = system_provfam.provision_family_updates[update] else: prov = ProvisionFamilyUpdate(osversion=update) system_provfam.provision_family_updates[update] = prov installlog = '%s/%s' % (arch,update) #Import Family specific if family and not update: if system.provisions.has_key(arch): system_arch = system.provisions[arch] else: system_arch = Provision(arch=arch) system.provisions[arch] = system_arch if system_arch.provision_families.has_key(family): prov = system_arch.provision_families[family] else: prov = ProvisionFamily(osmajor=family) system_arch.provision_families[family] = prov installlog = '%s/%s' % (arch,family) #Import Arch specific if not family and not update: if system.provisions.has_key(arch): prov = system.provisions[arch] else: prov = Provision(arch=arch) system.provisions[arch] = prov installlog = '%s' % arch if 'ks_meta' in data and prov.ks_meta != data['ks_meta']: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:ks_meta:%s' % installlog, old=prov.ks_meta, new=data['ks_meta']) prov.ks_meta = data['ks_meta'] if 'kernel_options' in data and prov.kernel_options != data['kernel_options']: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:kernel_options:%s' % installlog, old=prov.kernel_options, new=data['kernel_options']) prov.kernel_options = data['kernel_options'] if 'kernel_options_post' in data and prov.kernel_options_post != data['kernel_options_post']: system.record_activity(user=identity.current.user, service=u'CSV', action=u'Changed', field=u'InstallOption:kernel_options_post:%s' % installlog, old=prov.kernel_options_post, new=data['kernel_options_post']) prov.kernel_options_post = data['kernel_options_post'] return True