code: func (az *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error) {
  	nodeName, err := az.vmSet.GetNodeNameByProviderID(providerID)
  	if err != nil {
  		return false, err
  	}
  
  	powerStatus, err := az.vmSet.GetPowerStatusByNodeName(string(nodeName))
  	if err != nil {
  		return false, err
  	}
  	klog.V(5).Infof("InstanceShutdownByProviderID gets power status %q for node %q", powerStatus, nodeName)
  
  	return strings.ToLower(powerStatus) == vmPowerStateStopped || strings.ToLower(powerStatus) == vmPowerStateDeallocated, nil
  }
docs: // InstanceShutdownByProviderID returns true if the instance is in safe state to detach volumes