Add --force flag to replace existing network protocol profile
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		| @@ -17,7 +17,7 @@ import ( | ||||
| 	"spamasaurus.com/m/pkg/utils" | ||||
| ) | ||||
|  | ||||
| func CreateNetworkProtocolProfile(ctx context.Context, clt *vim25.Client, datacenter, network, startaddress, endaddress, netmask, dnsdomain, gateway string, dnsserver []string) error { | ||||
| func CreateNetworkProtocolProfile(ctx context.Context, clt *vim25.Client, datacenter, network, startaddress, endaddress, netmask, dnsdomain, gateway string, dnsserver []string, force bool) error { | ||||
| 	finder := find.NewFinder(clt, true) | ||||
| 	dc, err := finder.Datacenter(ctx, datacenter) | ||||
| 	if err != nil { | ||||
| @@ -33,7 +33,22 @@ func CreateNetworkProtocolProfile(ctx context.Context, clt *vim25.Client, datace | ||||
| 	pc := property.DefaultCollector(clt) | ||||
| 	pc.Retrieve(ctx, []types.ManagedObjectReference{nw.Reference()}, []string{"summary"}, &networksummary) | ||||
| 	if networksummary.Summary.GetNetworkSummary().IpPoolId != nil { | ||||
| 		log.Fatalf("[ERROR] Network '%s' already has an existing protocol profile associated", network) | ||||
| 		if force == true { | ||||
| 			request := &types.DestroyIpPool{ | ||||
| 				This:  *clt.ServiceContent.IpPoolManager, | ||||
| 				Dc:    dc.Reference(), | ||||
| 				Id:    *networksummary.Summary.GetNetworkSummary().IpPoolId, | ||||
| 				Force: true, | ||||
| 			} | ||||
| 			if _, err := methods.DestroyIpPool(ctx, clt.RoundTripper, request); err != nil { | ||||
| 				log.Fatalf("[ERROR] Could not remove existing network protocol profile '%s'", | ||||
| 					networksummary.Summary.GetNetworkSummary().IpPoolName) | ||||
| 			} | ||||
| 		} else { | ||||
| 			log.Fatalf("[ERROR] Network '%s' already has existing network protocol profile '%s' associated; use the --force flag to replace it", | ||||
| 				network, | ||||
| 				networksummary.Summary.GetNetworkSummary().IpPoolName) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	iprange, err := netrange.ParseRange(fmt.Sprintf("%s-%s", startaddress, endaddress)) | ||||
| @@ -66,7 +81,10 @@ func CreateNetworkProtocolProfile(ctx context.Context, clt *vim25.Client, datace | ||||
| 	} | ||||
|  | ||||
| 	if _, err := methods.CreateIpPool(ctx, clt.RoundTripper, request); err != nil { | ||||
| 		log.Fatalf("[ERROR]: Failed creating new network protocol profile (for network '%s' within datacenter '%s'): %s", network, datacenter, err) | ||||
| 		log.Fatalf("[ERROR]: Failed creating new network protocol profile (for network '%s' within datacenter '%s'): %s", | ||||
| 			network, | ||||
| 			datacenter, | ||||
| 			err) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
|   | ||||
		Reference in New Issue
	
	Block a user