Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Azure] Implement ListIID() #1340

Merged
merged 9 commits into from
Sep 23, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func getResourceHandler(resourceType string, config Config) (interface{}, error)
resourceHandler, err = cloudConnection.CreatePriceInfoHandler()
case "cluster":
resourceHandler, err = cloudConnection.CreateClusterHandler()
case "tag":
case "tag":
resourceHandler, err = cloudConnection.CreateTagHandler()
}

Expand Down Expand Up @@ -300,7 +300,8 @@ func testSecurityHandlerListPrint() {
cblogger.Info("4. DeleteSecurity()")
cblogger.Info("5. AddRules()")
cblogger.Info("6. RemoveRules()")
cblogger.Info("7. Exit")
cblogger.Info("7. ListIID()")
cblogger.Info("8. Exit")
}

// SecurityGroup
Expand Down Expand Up @@ -388,7 +389,7 @@ Loop:
reqInfo := irs.SecurityReqInfo{
IId: securityIId,
SecurityRules: &securityRulesInfos,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
VpcIID: targetVPCIId,
}
security, err := securityHandler.CreateSecurity(reqInfo)
Expand Down Expand Up @@ -421,6 +422,14 @@ Loop:
}
fmt.Println("Finish RemoveRules()")
case 7:
cblogger.Info("Start ListIID() ...")
if listIID, err := securityHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 8:
fmt.Println("Exit")
break Loop
}
Expand All @@ -437,7 +446,8 @@ func testVPCHandlerListPrint() {
cblogger.Info("4. DeleteVPC()")
cblogger.Info("5. AddSubnet()")
cblogger.Info("6. RemoveSubnet()")
cblogger.Info("7. Exit")
cblogger.Info("7. ListIID()")
cblogger.Info("8. Exit")
}

func testVPCHandler(config Config) {
Expand Down Expand Up @@ -468,7 +478,7 @@ func testVPCHandler(config Config) {
VPCReqInfo := irs.VPCReqInfo{
IId: vpcIID,
IPv4_CIDR: config.Azure.Resources.VPC.IPv4CIDR,
TagList:[]irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
SubnetInfoList: subnetInfoList,
}
addSubnet := config.Azure.Resources.VPC.AddSubnet
Expand Down Expand Up @@ -555,6 +565,14 @@ Loop:
}
cblogger.Info("Finish RemoveSubnet()")
case 7:
cblogger.Info("Start ListIID() ...")
if listIID, err := vpcHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 8:
cblogger.Info("Exit")
break Loop
}
Expand All @@ -569,7 +587,8 @@ func testKeyPairHandlerListPrint() {
cblogger.Info("2. GetKey()")
cblogger.Info("3. CreateKey()")
cblogger.Info("4. DeleteKey()")
cblogger.Info("5. Exit")
cblogger.Info("5. ListIID()")
cblogger.Info("6. Exit")
}
func testKeyPairHandler(config Config) {
resourceHandler, err := getResourceHandler("keypair", config)
Expand Down Expand Up @@ -617,8 +636,8 @@ Loop:
case 3:
cblogger.Info("Start CreateKey() ...")
reqInfo := irs.KeyPairReqInfo{
IId: keypairIId,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
IId: keypairIId,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
}
if keyInfo, err := keyPairHandler.CreateKey(reqInfo); err != nil {
cblogger.Error(err)
Expand All @@ -634,6 +653,14 @@ Loop:
}
cblogger.Info("Finish DeleteKey()")
case 5:
cblogger.Info("Start ListIID() ...")
if listIID, err := keyPairHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 6:
cblogger.Info("Exit")
break Loop
}
Expand Down Expand Up @@ -775,7 +802,7 @@ func testVMHandler(config Config) {
SecurityGroupIIDs: SecurityGroupIIDs,
VMUserId: config.Azure.Resources.Vm.VMUserId,
VMUserPasswd: config.Azure.Resources.Vm.VMUserPasswd,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
}

Loop:
Expand Down Expand Up @@ -883,7 +910,8 @@ func testNLBHandlerListPrint() {
cblogger.Info("8. RemoveVMs()")
cblogger.Info("9. GetVMGroupHealthInfo()")
cblogger.Info("10. ChangeHealthCheckerInfo()")
cblogger.Info("11. Exit")
cblogger.Info("11. ListIID()")
cblogger.Info("12. Exit")
}

func testNLBHandler(config Config) {
Expand Down Expand Up @@ -915,7 +943,7 @@ func testNLBHandler(config Config) {
},
VMGroup: irs.VMGroupInfo{
Port: "22",
Protocol: "TCP",
Protocol: "TCP",
VMs: &[]irs.IID{
{NameId: "vm-01"},
{NameId: "vm-02"},
Expand All @@ -925,11 +953,11 @@ func testNLBHandler(config Config) {
Protocol: "TCP",
Port: "22",
Interval: 10,
Timeout: -1,
Timeout: -1,
Threshold: 5,
// Threshold: 429496728,
},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
}
updateListener := irs.ListenerInfo{
Protocol: "TCP",
Expand Down Expand Up @@ -1051,6 +1079,14 @@ Loop:
}
cblogger.Info("Finish ChangeHealthCheckerInfo()")
case 11:
cblogger.Info("Start ListIID() ...")
if listIID, err := nlbHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 12:
cblogger.Info("Exit")
break Loop
}
Expand All @@ -1067,7 +1103,8 @@ func testDiskHandlerListPrint() {
cblogger.Info("5. ChangeDiskSize()")
cblogger.Info("6. AttachDisk()")
cblogger.Info("7. DetachDisk()")
cblogger.Info("8. Exit")
cblogger.Info("8. ListIID()")
cblogger.Info("9. Exit")
}

func testDiskHandler(config Config) {
Expand All @@ -1086,8 +1123,8 @@ func testDiskHandler(config Config) {
IId: irs.IID{
NameId: config.Azure.Resources.Disk.IID.NameId,
},
Zone: config.Azure.Zone,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
Zone: config.Azure.Zone,
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
DiskSize: config.Azure.Resources.Disk.DiskSize,
DiskType: config.Azure.Resources.Disk.DiskType,
}
Expand Down Expand Up @@ -1170,6 +1207,14 @@ Loop:
}
cblogger.Info("Finish DetachDisk()")
case 8:
cblogger.Info("Start ListIID() ...")
if listIID, err := diskHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 9:
cblogger.Info("Exit")
break Loop
}
Expand All @@ -1184,7 +1229,8 @@ func testMyImageHandlerListPrint() {
cblogger.Info("2. GetMyImage()")
cblogger.Info("3. SnapshotVM()")
cblogger.Info("4. DeleteMyImage()")
cblogger.Info("5. Exit")
cblogger.Info("5. ListIID()")
cblogger.Info("6. Exit")
}

func testMyImageHandler(config Config) {
Expand All @@ -1200,7 +1246,7 @@ func testMyImageHandler(config Config) {
targetvm := irs.MyImageInfo{
IId: irs.IID{NameId: config.Azure.Resources.MyImage.IID.NameId},
SourceVM: irs.IID{NameId: config.Azure.Resources.MyImage.SourceVM.NameId},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
}
delimageIId := irs.IID{NameId: config.Azure.Resources.MyImage.IID.NameId}
Loop:
Expand Down Expand Up @@ -1248,6 +1294,14 @@ Loop:
}
cblogger.Info("Finish DeleteMyImage()")
case 5:
cblogger.Info("Start ListIID() ...")
if listIID, err := myimageHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 6:
cblogger.Info("Exit")
break Loop
}
Expand Down Expand Up @@ -1446,8 +1500,9 @@ func testClusterHandlerListPrint() {
cblogger.Info("7. SetNodeGroupAutoScaling()")
cblogger.Info("8. ChangeNodeGroupScaling()")
cblogger.Info("9. UpgradeCluster()")
cblogger.Info("10. Create->GET->List->AddNodeGroup->RemoveNodeGroup->SetNodeGroupAutoScaling(Change)->SetNodeGroupAutoScaling(restore)->ChangeNodeGroupScaling->Upgrade->Delete")
cblogger.Info("11. Exit")
cblogger.Info("10. ListIID()")
cblogger.Info("11. Create->GET->List->AddNodeGroup->RemoveNodeGroup->SetNodeGroupAutoScaling(Change)->SetNodeGroupAutoScaling(restore)->ChangeNodeGroupScaling->Upgrade->Delete")
cblogger.Info("12. Exit")
}

func testClusterHandler(config Config) {
Expand Down Expand Up @@ -1492,7 +1547,7 @@ func testClusterHandler(config Config) {
// OnAutoScaling: true,
//},
},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"},{Key: "Environment2", Value: "Production2"}},
TagList: []irs.KeyValue{{Key: "Environment", Value: "Production"}, {Key: "Environment2", Value: "Production2"}},
}
addNodeGroup := irs.NodeGroupInfo{
IId: irs.IID{NameId: "nodegroup3"},
Expand Down Expand Up @@ -1590,6 +1645,14 @@ Loop:
}
cblogger.Info("Finish UpgradeCluster()")
case 10:
cblogger.Info("Start ListIID() ...")
if listIID, err := clusterHandler.ListIID(); err != nil {
cblogger.Error(err)
} else {
spew.Dump(listIID)
}
cblogger.Info("Finish ListIID()")
case 11:
falowStr := "Create->GET->AddNodeGroup->RemoveNodeGroup->SetNodeGroupAutoScaling(Change)->SetNodeGroupAutoScaling(restore)->ChangeNodeGroupScaling->Delete"
cblogger.Info(fmt.Sprintf("Start %s =====", falowStr))
cblogger.Info("Start Create =====")
Expand Down Expand Up @@ -1946,7 +2009,7 @@ Loop:
cblogger.Info("Finish Delete =====")
}
cblogger.Info(fmt.Sprintf("Finish %s =====", falowStr))
case 11:
case 12:
cblogger.Info("Exit")
break Loop
}
Expand Down Expand Up @@ -1982,7 +2045,6 @@ func testTagHandler(config Config) {
// resIID := irs.IID{NameId: "keypair-01", SystemId: ""}
// resIID := irs.IID{NameId: "vm-01", SystemId: ""}


Loop:
for {
var commandNum int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2365,7 +2365,38 @@ func getClusterAccessInfo(cluster *armcontainerservice.ManagedCluster, managedCl
return accessInfo, nil
}

func (ClusterHandler *AzureClusterHandler) ListIID() ([]*irs.IID, error) {
cblogger.Info("Cloud driver: called ListIID()!!")
return nil, errors.New("Does not support ListIID() yet!!")
func (ac *AzureClusterHandler) ListIID() ([]*irs.IID, error) {
hiscallInfo := GetCallLogScheme(ac.Region, call.CLUSTER, "CLUSTER", "ListIID()")
start := call.Start()

var iidList []*irs.IID

pager := ac.ManagedClustersClient.NewListPager(nil)

for pager.More() {
page, err := pager.NextPage(ac.Ctx)
if err != nil {
err = errors.New(fmt.Sprintf("Failed to List Cluster. err = %s", err))
cblogger.Error(err.Error())
LoggingError(hiscallInfo, err)
return make([]*irs.IID, 0), err
}

for _, cluster := range page.Value {
var iid irs.IID

if cluster.ID != nil {
iid.SystemId = *cluster.ID
}
if cluster.Name != nil {
iid.NameId = *cluster.Name
}

iidList = append(iidList, &iid)
}
}

LoggingInfo(hiscallInfo, start)

return iidList, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -748,7 +748,38 @@ func AttachList(diskIIDList []irs.IID, ownerVM irs.IID, credentialInfo idrv.Cred
return vm, nil
}

func (DiskHandler *AzureDiskHandler) ListIID() ([]*irs.IID, error) {
cblogger.Info("Cloud driver: called ListIID()!!")
return nil, errors.New("Does not support ListIID() yet!!")
func (diskHandler *AzureDiskHandler) ListIID() ([]*irs.IID, error) {
hiscallInfo := GetCallLogScheme(diskHandler.Region, call.DISK, "DISK", "ListIID()")
start := call.Start()

var iidList []*irs.IID

pager := diskHandler.DiskClient.NewListPager(nil)

for pager.More() {
page, err := pager.NextPage(diskHandler.Ctx)
if err != nil {
getErr := errors.New(fmt.Sprintf("Failed to List Disk. err = %s", err.Error()))
cblogger.Error(getErr.Error())
LoggingError(hiscallInfo, getErr)
return make([]*irs.IID, 0), err
}

for _, disk := range page.Value {
var iid irs.IID

if disk.ID != nil {
iid.SystemId = *disk.ID
}
if disk.Name != nil {
iid.NameId = *disk.Name
}

iidList = append(iidList, &iid)
}
}

LoggingInfo(hiscallInfo, start)

return iidList, nil
}
Loading