def Run(self, args): with transaction_util.TransactionFile( args.transaction_file) as trans_file: change = transaction_util.ChangeFromYamlFile(trans_file) if import_util.IsOnlySOAIncrement(change): log.status.Print('Nothing to do, empty transaction [{0}]'.format( args.transaction_file)) os.remove(args.transaction_file) return None dns = self.context['dns_client'] messages = self.context['dns_messages'] resources = self.context['dns_resources'] project_id = properties.VALUES.core.project.Get(required=True) zone_ref = resources.Parse(args.zone, collection='dns.managedZones') # Send the change to the service. result = dns.changes.Create( messages.DnsChangesCreateRequest(change=change, managedZone=zone_ref.Name(), project=project_id)) change_ref = resources.Create(collection='dns.changes', project=project_id, managedZone=zone_ref.Name(), changeId=result.id) msg = 'Executed transaction [{0}] for managed-zone [{1}].'.format( args.transaction_file, zone_ref.Name()) log.status.Print(msg) log.CreatedResource(change_ref) os.remove(args.transaction_file) return result
def Run(self, args): with trans_util.TransactionFile(args.transaction_file) as trans_file: change = trans_util.ChangeFromYamlFile(trans_file) dns = self.context['dns_client'] messages = self.context['dns_messages'] resources = self.context['dns_resources'] project_id = properties.VALUES.core.project.Get(required=True) record_to_remove = trans_util.CreateRecordSetFromArgs(args) # Ensure the record to be removed exists zone_ref = resources.Parse(args.zone, collection='dns.managedZones') existing_records = [record for record in apitools.YieldFromList( dns.resourceRecordSets, messages.DnsResourceRecordSetsListRequest( project=project_id, managedZone=zone_ref.Name(), name=args.name, type=args.type), field='rrsets')] if not existing_records or existing_records[0] != record_to_remove: raise exceptions.ToolException('Record to be removed does not exist') change.deletions.append(record_to_remove) with trans_util.TransactionFile(args.transaction_file, 'w') as trans_file: trans_util.WriteToYamlFile(trans_file, change) log.status.Print( 'Record removal appended to transaction at [{0}].'.format( args.transaction_file))
def Run(self, args): with trans_util.TransactionFile(args.transaction_file) as trans_file: change = trans_util.ChangeFromYamlFile(trans_file) change.additions.append(trans_util.CreateRecordSetFromArgs(args)) with trans_util.TransactionFile(args.transaction_file, 'w') as trans_file: trans_util.WriteToYamlFile(trans_file, change) log.status.Print( 'Record addition appended to transaction at [{0}].'.format( args.transaction_file))
def Run(self, args): with transaction_util.TransactionFile( args.transaction_file) as trans_file: return transaction_util.ChangeFromYamlFile(trans_file)