drivers/azure/azure.go
func (d *Driver) Remove() error {
	if err := d.checkLegacyDriver(false); err != nil {
		return err
	}

	// NOTE(ahmetalpbalkan):
	//   - remove attempts are best effort and if a resource is already gone, we
	//     continue removing other resources instead of failing.
	//   - we can probably do a lot of parallelization here but a sequential
	//     logic works fine too. If we were to detach the NIC from the VM and
	//     then delete the VM, this could enable some parallelization.

	log.Info("NOTICE: Please check Azure portal/CLI to make sure you have no leftover resources to avoid unexpected charges.")
	c, err := d.newAzureClient()
	if err != nil {
		return err
	}
	if err := c.DeleteVirtualMachineIfExists(d.ResourceGroup, d.naming().VM()); err != nil {
		return err
	}
	if err := c.DeleteNetworkInterfaceIfExists(d.ResourceGroup, d.naming().NIC()); err != nil {
		return err
	}
	if err := c.DeletePublicIPAddressIfExists(d.ResourceGroup, d.naming().IP()); err != nil {
		return err
	}
	if err := c.DeleteNetworkSecurityGroupIfExists(d.ResourceGroup, d.naming().NSG()); err != nil {
		return err
	}
	if err := c.CleanupAvailabilitySetIfExists(d.ResourceGroup, d.AvailabilitySet); err != nil {
		return err
	}
	if err := c.CleanupSubnetIfExists(d.ResourceGroup, d.VirtualNetwork, d.SubnetName); err != nil {
		return err
	}
	err = c.CleanupVirtualNetworkIfExists(d.ResourceGroup, d.VirtualNetwork)
	return err
}
func (d *Driver) Remove() error {
	if err := d.checkLegacyDriver(false); err != nil {
		return err
	}

	// NOTE(ahmetalpbalkan):
	//   - remove attempts are best effort and if a resource is already gone, we
	//     continue removing other resources instead of failing.
	//   - we can probably do a lot of parallelization here but a sequential
	//     logic works fine too. If we were to detach the NIC from the VM and
	//     then delete the VM, this could enable some parallelization.

	log.Info("NOTICE: Please check Azure portal/CLI to make sure you have no leftover resources to avoid unexpected charges.")
	c, err := d.newAzureClient()
	if err != nil {
		return err
	}
	if err := c.DeleteVirtualMachineIfExists(d.ResourceGroup, d.naming().VM()); err != nil {
		return err
	}
	if err := c.DeleteNetworkInterfaceIfExists(d.ResourceGroup, d.naming().NIC()); err != nil {
		return err
	}
	if err := c.DeletePublicIPAddressIfExists(d.ResourceGroup, d.naming().IP()); err != nil {
		return err
	}
	if err := c.DeleteNetworkSecurityGroupIfExists(d.ResourceGroup, d.naming().NSG()); err != nil {
		return err
	}
	if err := c.CleanupAvailabilitySetIfExists(d.ResourceGroup, d.AvailabilitySet); err != nil {
		return err
	}
	if err := c.CleanupSubnetIfExists(d.ResourceGroup, d.VirtualNetwork, d.SubnetName); err != nil {
		return err
	}
	err = c.CleanupVirtualNetworkIfExists(d.ResourceGroup, d.VirtualNetwork)
	return err
}
func ( d * Driver ) Remove ( ) error { if err := d . checkLegacyDriver ( false ) ; err != nil { return err } // NOTE(ahmetalpbalkan): //   - remove attempts are best effort and if a resource is already gone, we //     continue removing other resources instead of failing. //   - we can probably do a lot of parallelization here but a sequential //     logic works fine too. If we were to detach the NIC from the VM and //     then delete the VM, this could enable some parallelization. log . Info ( " " ) c , err := d . newAzureClient ( ) if err != nil { return err } if err := c . DeleteVirtualMachineIfExists ( d . ResourceGroup , d . naming ( ) . VM ( ) ) ; err != nil { return err } if err := c . DeleteNetworkInterfaceIfExists ( d . ResourceGroup , d . naming ( ) . NIC ( ) ) ; err != nil { return err } if err := c . DeletePublicIPAddressIfExists ( d . ResourceGroup , d . naming ( ) . IP ( ) ) ; err != nil { return err } if err := c . DeleteNetworkSecurityGroupIfExists ( d . ResourceGroup , d . naming ( ) . NSG ( ) ) ; err != nil { return err } if err := c . CleanupAvailabilitySetIfExists ( d . ResourceGroup , d . AvailabilitySet ) ; err != nil { return err } if err := c . CleanupSubnetIfExists ( d . ResourceGroup , d . VirtualNetwork , d . SubnetName ) ; err != nil { return err } err = c . CleanupVirtualNetworkIfExists ( d . ResourceGroup , d . VirtualNetwork ) return err }
// Remove deletes the virtual machine and resources associated to it.
Remove deletes the virtual machine and resources associated to it .