func (cloudConn *AzureCloudConnection) CreateVMHandler() (irs.VMHandler, error) {
	cblogger.Info("Azure Cloud Driver: called CreateVMHandler()!")
	vmHandler := azrs.AzureVMHandler{
		CredentialInfo: cloudConn.CredentialInfo,
		Region:         cloudConn.Region,
		Ctx:            cloudConn.Ctx,
		Client:         cloudConn.VMClient,
		SubnetClient:   cloudConn.SubnetClient,
		NicClient:      cloudConn.VNicClient,
		PublicIPClient: cloudConn.PublicIPClient,
		DiskClient:     cloudConn.DiskClient,
	}
	return &vmHandler, nil
}
/*func (cloudConn *AzureCloudConnection) CreateVNicHandler() (irs.VNicHandler, error) {
cblogger.Info("Azure Cloud Driver: called CreateVNicHandler()!")
vNicHandler := azrs.AzureVNicHandler{cloudConn.CredentialInfo, cloudConn.Region, cloudConn.Ctx, cloudConn.VNicClient, cloudConn.SubnetClient}
return &vNicHandler, nil
}
/*func (cloudConn *AzureCloudConnection) CreatePublicIPHandler() (irs.PublicIPHandler, error) {
cblogger.Info("Azure Cloud Driver: called CreatePublicIPHandler()!")
publicIPHandler := azrs.AzurePublicIPHandler{cloudConn.Region, cloudConn.Ctx, cloudConn.PublicIPClient, cloudConn.IPConfigClient}
return &publicIPHandler, nil
}
package connect
import (
	"context"
	"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2021-03-01/compute"
	"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2021-02-01/network"
	cblog "github.com/cloud-barista/cb-log"
	azrs "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/azure/resources"
	idrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces"
	irs "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces/resources"
	"github.com/sirupsen/logrus"
)
var cblogger *logrus.Logger
func init() {
	cblogger = cblog.GetLogger("CB-SPIDER")
}
type AzureCloudConnection struct {
	CredentialInfo      idrv.CredentialInfo
	Region              idrv.RegionInfo
	Ctx                 context.Context
	VMClient            *compute.VirtualMachinesClient
	ImageClient         *compute.ImagesClient
	VMImageClient       *compute.VirtualMachineImagesClient
	PublicIPClient      *network.PublicIPAddressesClient
	SecurityGroupClient *network.SecurityGroupsClient
	VNetClient          *network.VirtualNetworksClient
	VNicClient          *network.InterfacesClient
	IPConfigClient      *network.InterfaceIPConfigurationsClient
	SubnetClient        *network.SubnetsClient
	DiskClient          *compute.DisksClient
	VmSpecClient        *compute.VirtualMachineSizesClient
}
func (cloudConn *AzureCloudConnection) CreateImageHandler() (irs.ImageHandler, error) {
	cblogger.Info("Azure Cloud Driver: called CreateImageHandler()!")
	imageHandler := azrs.AzureImageHandler{cloudConn.Region, cloudConn.Ctx, cloudConn.ImageClient, cloudConn.VMImageClient}
	return &imageHandler, nil
}
func (cloudConn *AzureCloudConnection) CreateVPCHandler() (irs.VPCHandler, error) {
	cblogger.Info("Azure Cloud Driver: called CreateVPCHandler()!")
	vpcHandler := azrs.AzureVPCHandler{cloudConn.Region, cloudConn.Ctx, cloudConn.VNetClient, cloudConn.SubnetClient}
	return &vpcHandler, nil
}
func (cloudConn *AzureCloudConnection) CreateSecurityHandler() (irs.SecurityHandler, error) {
	cblogger.Info("Azure Cloud Driver: called CreateSecurityHandler()!")
	sgHandler := azrs.AzureSecurityHandler{cloudConn.Region, cloudConn.Ctx, cloudConn.SecurityGroupClient}
	return &sgHandler, nil
}
func (cloudConn *AzureCloudConnection) CreateKeyPairHandler() (irs.KeyPairHandler, error) {
	cblogger.Info("Azure Cloud Driver: called CreateKeyPairHandler()!")
	keypairHandler := azrs.AzureKeyPairHandler{cloudConn.CredentialInfo, cloudConn.Region}
	return &keypairHandler, nil
}