diff --git a/cloud-control-manager/cloud-driver/drivers/alibaba/main/Test_Resources.go b/cloud-control-manager/cloud-driver/drivers/alibaba/main/Test_Resources.go index 322639701..956d7145d 100644 --- a/cloud-control-manager/cloud-driver/drivers/alibaba/main/Test_Resources.go +++ b/cloud-control-manager/cloud-driver/drivers/alibaba/main/Test_Resources.go @@ -31,116 +31,6 @@ func init() { cblog.SetLevel("debug") } -/* -// Test PublicIp -func handlePublicIP() { - cblogger.Debug("Start Publicip Resource Test") - - ResourceHandler, err := testconf.GetResourceHandler("Publicip") - if err != nil { - panic(err) - } - - handler := ResourceHandler.(irs.PublicIPHandler) - - config := testconf.ReadConfigFile() - //reqGetPublicIP := "13.124.140.207" - reqPublicIP := config.Ali.PublicIP - //reqPublicIP = "eipalloc-0231a3e16ec42e869" - cblogger.Info("reqPublicIP : ", reqPublicIP) - //handler.CreatePublicIP(publicIPReqInfo) - //handler.ListPublicIP() - //handler.GetPublicIP("13.124.140.207") - - for { - fmt.Println("") - fmt.Println("Publicip Resource Test") - fmt.Println("1. ListPublicIP()") - fmt.Println("2. GetPublicIP()") - fmt.Println("3. CreatePublicIP()") - fmt.Println("4. DeletePublicIP()") - fmt.Println("5. Exit") - - var commandNum int - var reqDelIP string - - inputCnt, err := fmt.Scan(&commandNum) - if err != nil { - panic(err) - } - - if inputCnt == 1 { - switch commandNum { - case 1: - fmt.Println("Start ListPublicIP() ...") - result, err := handler.ListPublicIP() - if err != nil { - cblogger.Error("PublicIP 목록 조회 실패 : ", err) - } else { - cblogger.Info("PublicIP 목록 조회 결과") - spew.Dump(result) - } - - fmt.Println("Finish ListPublicIP()") - - case 2: - fmt.Println("Start GetPublicIP() ...") - result, err := handler.GetPublicIP(reqPublicIP) - if err != nil { - cblogger.Error(reqPublicIP, " PublicIP 정보 조회 실패 : ", err) - } else { - cblogger.Infof("PublicIP[%s] 정보 조회 결과", reqPublicIP) - spew.Dump(result) - } - fmt.Println("Finish GetPublicIP()") - - case 3: - fmt.Println("Start CreatePublicIP() ...") - reqInfo := irs.PublicIPReqInfo{Name: "mcloud-barista-eip-test"} - result, err := handler.CreatePublicIP(reqInfo) - if err != nil { - cblogger.Error("PublicIP 생성 실패 : ", err) - } else { - cblogger.Info("PublicIP 생성 성공 ", result) - spew.Dump(result) - } - fmt.Println("Finish CreatePublicIP()") - - case 4: - fmt.Println("Start DeletePublicIP() ...") - fmt.Print("삭제할 PublicIP를 입력하세요 : ") - inputCnt, err := fmt.Scan(&reqDelIP) - if err != nil { - panic(err) - } - - if inputCnt == 1 { - cblogger.Info("삭제할 PublicIP : ", reqDelIP) - } else { - fmt.Println("삭제할 Public IP만 입력하세요.") - } - - result, err := handler.DeletePublicIP(reqDelIP) - if err != nil { - cblogger.Error(reqDelIP, " PublicIP 삭제 실패 : ", err) - } else { - if result { - cblogger.Infof("PublicIP[%s] 삭제 완료", reqDelIP) - } else { - cblogger.Errorf("PublicIP[%s] 삭제 실패", reqDelIP) - } - } - fmt.Println("Finish DeletePublicIP()") - - case 5: - fmt.Println("Exit") - return - } - } - } -} -*/ - // Test VMSpec func handleVMSpec() { cblogger.Debug("Start VMSpec Resource Test") @@ -155,7 +45,8 @@ func handleVMSpec() { //config := testconf.ReadConfigFile() //reqVMSpec := config.Ali.VMSpec //reqVMSpec := "ecs.g6.large" // GPU가 없음 - reqVMSpec := "ecs.vgn5i-m8.4xlarge" // GPU 1개 + // reqVMSpec := "ecs.vgn5i-m8.4xlarge" // GPU 1개 + reqVMSpec := "" // GPU 1개 //reqVMSpec := "ecs.gn6i-c24g1.24xlarge" // GPU 4개 //reqRegion := config.Ali.Region @@ -185,9 +76,9 @@ func handleVMSpec() { fmt.Println("Start ListVMSpec() ...") result, err := handler.ListVMSpec() if err != nil { - cblogger.Error("VMSpec 목록 조회 실패 : ", err) + cblogger.Error("Failed to retrieve VMSpec list : ", err) } else { - cblogger.Info("VMSpec 목록 조회 결과") + cblogger.Info("Result of VMSpec list retrieval") spew.Dump(result) } @@ -197,9 +88,9 @@ func handleVMSpec() { fmt.Println("Start GetVMSpec() ...") result, err := handler.GetVMSpec(reqVMSpec) if err != nil { - cblogger.Error(reqVMSpec, " VMSpec 정보 조회 실패 : ", err) + cblogger.Error(reqVMSpec, "Failed to retrieve VMSpec list : ", err) } else { - cblogger.Infof("VMSpec[%s] 정보 조회 결과", reqVMSpec) + cblogger.Infof("Result of VMSpec list retrieval", reqVMSpec) spew.Dump(result) } fmt.Println("Finish GetVMSpec()") @@ -208,9 +99,9 @@ func handleVMSpec() { fmt.Println("Start ListOrgVMSpec() ...") result, err := handler.ListOrgVMSpec() if err != nil { - cblogger.Error("VMSpec 목록 조회 실패 : ", err) + cblogger.Error("Failed to retrieve VMSpec list : ", err) } else { - cblogger.Info("VMSpec 목록 조회 결과") + cblogger.Info("Result of VMSpec list retrieval") cblogger.Info(result) //spew.Dump(result) } @@ -221,9 +112,9 @@ func handleVMSpec() { fmt.Println("Start GetOrgVMSpec() ...") result, err := handler.GetOrgVMSpec(reqVMSpec) if err != nil { - cblogger.Error(reqVMSpec, " VMSpec 정보 조회 실패 : ", err) + cblogger.Error(reqVMSpec, "Failed to retrieve VMSpec list : ", err) } else { - cblogger.Infof("VMSpec[%s] 정보 조회 결과", reqVMSpec) + cblogger.Infof("Result of VMSpec list retrieval", reqVMSpec) cblogger.Info(result) //spew.Dump(result) } @@ -237,96 +128,6 @@ func handleVMSpec() { } } -/* -// Test AMI -func handleImage() { - cblogger.Debug("Start ImageHandler Resource Test") - - ResourceHandler, err := testconf.GetResourceHandler("Image") - if err != nil { - panic(err) - } - //handler := ResourceHandler.(irs2.ImageHandler) - handler := ResourceHandler.(irs.ImageHandler) - - //imageReqInfo := irs2.ImageReqInfo{ - imageReqInfo := irs.ImageReqInfo{ - Id: "ami-047f7b46bd6dd5d84", - Name: "Test OS Image", - } - - for { - fmt.Println("ImageHandler Management") - fmt.Println("0. Quit") - fmt.Println("1. Image List") - fmt.Println("2. Image Create") - fmt.Println("3. Image Get") - fmt.Println("4. Image Delete") - - var commandNum int - inputCnt, err := fmt.Scan(&commandNum) - if err != nil { - panic(err) - } - - if inputCnt == 1 { - switch commandNum { - case 0: - return - - case 1: - result, err := handler.ListImage() - if err != nil { - cblogger.Infof(" Image 목록 조회 실패 : ", err) - } else { - cblogger.Info("Image 목록 조회 결과") - cblogger.Info(result) - //spew.Dump(result) - cblogger.Info("출력 결과 수 : ", len(result)) - - //조회및 삭제 테스트를 위해 리스트의 첫번째 정보의 ID를 요청ID로 자동 갱신함. - if result != nil { - imageReqInfo.Id = result[0].Id // 조회 및 삭제를 위해 생성된 ID로 변경 - } - } - - case 2: - cblogger.Infof("[%s] Image 생성 테스트", imageReqInfo.Name) - //vNetworkReqInfo := irs.VNetworkReqInfo{} - result, err := handler.CreateImage(imageReqInfo) - if err != nil { - cblogger.Infof(imageReqInfo.Id, " Image 생성 실패 : ", err) - } else { - cblogger.Infof("Image 생성 결과 : ", result) - imageReqInfo.Id = result.Id // 조회 및 삭제를 위해 생성된 ID로 변경 - spew.Dump(result) - } - - case 3: - cblogger.Infof("[%s] Image 조회 테스트", imageReqInfo.Id) - result, err := handler.GetImage(imageReqInfo.Id) - if err != nil { - cblogger.Infof("[%s] Image 조회 실패 : ", imageReqInfo.Id, err) - } else { - cblogger.Infof("[%s] Image 조회 결과 : [%s]", imageReqInfo.Id, result) - spew.Dump(result) - } - - case 4: - cblogger.Infof("[%s] Image 삭제 테스트", imageReqInfo.Id) - result, err := handler.DeleteImage(imageReqInfo.Id) - if err != nil { - cblogger.Infof("[%s] Image 삭제 실패 : ", imageReqInfo.Id, err) - } else { - cblogger.Infof("[%s] Image 삭제 결과 : [%s]", imageReqInfo.Id, result) - } - } - } - } -} - -*/ - func handleSecurity() { cblogger.Debug("Start Security Resource Test") @@ -368,25 +169,25 @@ func handleSecurity() { case 1: result, err := handler.ListSecurity() if err != nil { - cblogger.Infof(" Security 목록 조회 실패 : ", err) + cblogger.Infof("Result of Security list retrieval : ", err) } else { - cblogger.Info("Security 목록 조회 결과") - //cblogger.Info(result) + cblogger.Info("Result of Security list retrieval") + spew.Dump(result) if result != nil { - securityId = result[0].IId.SystemId // 조회 및 삭제를 위해 생성된 ID로 변경 + securityId = result[0].IId.SystemId // Changed to the ID created for retrieval and deletion } } case 2: - cblogger.Infof("[%s] Security 생성 테스트", securityName) + cblogger.Infof("[%s] Security creation test", securityName) tag1 := irs.KeyValue{Key: "", Value: ""} securityReqInfo := irs.SecurityReqInfo{ IId: irs.IID{NameId: securityName}, VpcIID: irs.IID{SystemId: vpcId}, TagList: []irs.KeyValue{tag1}, - SecurityRules: &[]irs.SecurityRuleInfo{ //보안 정책 설정 - //CIDR 테스트 + SecurityRules: &[]irs.SecurityRuleInfo{ // Security policy configuration + // CIDR Test /*{ FromPort: "20", ToPort: "22", @@ -445,7 +246,7 @@ func handleSecurity() { { //FromPort: "8443", //ToPort: "9999", - IPProtocol: "-1", // 모두 허용 (포트 정보 없음) + IPProtocol: "-1", // Allow all Direction: "inbound", },*/ { @@ -460,37 +261,36 @@ func handleSecurity() { result, err := handler.CreateSecurity(securityReqInfo) if err != nil { - cblogger.Infof(securityName, " Security 생성 실패 : ", err) + cblogger.Infof(securityName, "Security creation Failed : ", err) } else { - cblogger.Infof("[%s] Security 생성 결과 : [%v]", securityName, result) + cblogger.Infof("[%s] Result of Security creation : [%v]", securityName, result) securityId = result.IId.SystemId spew.Dump(result) } case 3: - cblogger.Infof("[%s] Security 조회 테스트", securityId) + cblogger.Infof("[%s] Security retrieval test", securityId) result, err := handler.GetSecurity(irs.IID{SystemId: securityId}) if err != nil { - cblogger.Infof(securityId, " Security 조회 실패 : ", err) + cblogger.Infof(securityId, "Failed to retrieve Security list : ", err) } else { - cblogger.Infof("[%s] Security 조회 결과 : [%v]", securityId, result) + cblogger.Infof("[%s] Result of Security retrieve : [%v]", securityId, result) spew.Dump(result) } case 4: - cblogger.Infof("[%s] Security 삭제 테스트", securityId) + cblogger.Infof("[%s] Security delete test", securityId) result, err := handler.DeleteSecurity(irs.IID{SystemId: securityId}) if err != nil { - cblogger.Infof(securityId, " Security 삭제 실패 : ", err) + cblogger.Infof(securityId, "Failed to deletion Security : ", err) } else { - cblogger.Infof("[%s] Security 삭제 결과 : [%s]", securityId, result) + cblogger.Infof("[%s] Result of Security delete : [%s]", securityId, result) } case 5: - cblogger.Infof("[%s] Rule 추가 테스트", securityId) + cblogger.Infof("[%s] Test of add Rule", securityId) securityRules := &[]irs.SecurityRuleInfo{ /*{ - //20-22 Prot로 등록 FromPort: "20", ToPort: "21", IPProtocol: "tcp", @@ -498,7 +298,6 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 FromPort: "20", ToPort: "21", IPProtocol: "tcp", @@ -506,46 +305,45 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - // 8080 Port로 등록 FromPort: "8080", - ToPort: "8080", //FromPort나 ToPort중 하나에 -1이 입력될 경우 -1이 입력된 경우 -1을 공백으로 처리 + ToPort: "8080", // If either FromPort or ToPort is set to -1, replace the -1 with a blank IPProtocol: "tcp", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ - /*{ // 1323 Prot로 등록 - FromPort: "1323", //FromPort나 ToPort중 하나에 -1이 입력될 경우 -1이 입력된 경우 -1을 공백으로 처리 + /*{ // + FromPort: "1323", // If either FromPort or ToPort is set to -1, replace the -1 with a blank ToPort: "1323", IPProtocol: "tcp", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ /*{ - // All Port로 등록 + // All Port FromPort: "", ToPort: "", - IPProtocol: "icmp", //icmp는 포트 정보가 없음 + IPProtocol: "icmp", // ICMP has no port information. Direction: "inbound", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "20", ToPort: "22", IPProtocol: "tcp", Direction: "inbound", },*/ /*{ - // 80 Port로 등록 + // 80 Port FromPort: "80", ToPort: "80", IPProtocol: "tcp", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ - /*{ // 모든 프로토콜 모든 포트로 등록 + /*{ // All port //FromPort: "", //ToPort: "", - IPProtocol: "all", // 모두 허용 (포트 정보 없음) + IPProtocol: "all", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ @@ -563,7 +361,7 @@ func handleSecurity() { Direction: "outbound", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "22", ToPort: "22", IPProtocol: "tcp", @@ -571,7 +369,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "1000", ToPort: "1000", IPProtocol: "tcp", @@ -579,7 +377,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "1", ToPort: "65535", IPProtocol: "udp", @@ -587,7 +385,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "-1", ToPort: "-1", IPProtocol: "icmp", @@ -595,7 +393,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "-1", ToPort: "-1", IPProtocol: "all", @@ -603,7 +401,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "22", ToPort: "22", IPProtocol: "tcp", @@ -611,7 +409,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "1000", ToPort: "1000", IPProtocol: "tcp", @@ -619,7 +417,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "1", ToPort: "65535", IPProtocol: "udp", @@ -627,7 +425,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "22", ToPort: "22", IPProtocol: "tcp", @@ -635,7 +433,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Prot FromPort: "1000", ToPort: "1000", IPProtocol: "tcp", @@ -643,7 +441,7 @@ func handleSecurity() { CIDR: "4.5.6.7/32", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "1", ToPort: "65535", IPProtocol: "udp", @@ -651,7 +449,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Prot FromPort: "-1", ToPort: "-1", IPProtocol: "icmp", @@ -659,7 +457,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ { - //20-22 Prot로 등록 + //20-22 Port FromPort: "22", ToPort: "22", IPProtocol: "tcp", @@ -667,7 +465,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "1000", ToPort: "1000", IPProtocol: "tcp", @@ -675,7 +473,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "1", ToPort: "65535", IPProtocol: "udp", @@ -683,7 +481,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "-1", ToPort: "-1", IPProtocol: "icmp", @@ -694,16 +492,16 @@ func handleSecurity() { result, err := handler.AddRules(irs.IID{SystemId: securityId}, securityRules) if err != nil { - cblogger.Infof(securityId, " Rule 추가 실패 : ", err) + cblogger.Infof(securityId, "Failed to add Rule : ", err) } else { - cblogger.Infof("[%s] Rule 추가 결과 : [%v]", securityId, result) + cblogger.Infof("[%s] Result of add Rule : [%v]", securityId, result) spew.Dump(result) } case 6: - cblogger.Infof("[%s] Rule 삭제 테스트", securityId) + cblogger.Infof("[%s] Test of delete Rule", securityId) securityRules := &[]irs.SecurityRuleInfo{ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "20", ToPort: "21", IPProtocol: "tcp", @@ -711,7 +509,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "20", ToPort: "21", IPProtocol: "tcp", @@ -726,7 +524,7 @@ func handleSecurity() { CIDR: "10.13.1.10/32", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "20", ToPort: "22", IPProtocol: "tcp", @@ -734,7 +532,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "20", ToPort: "21", IPProtocol: "udp", @@ -742,37 +540,37 @@ func handleSecurity() { CIDR: "0.0.0.0/0", },*/ /*{ - // 8080 Port로 등록 + // 8080 Port FromPort: "8080", - ToPort: "8080", //FromPort나 ToPort중 하나에 -1이 입력될 경우 -1이 입력된 경우 -1을 공백으로 처리 + ToPort: "8080", // If either FromPort or ToPort is set to -1, replace the -1 with a blank IPProtocol: "tcp", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ - /*{ // 1323 Prot로 등록 - FromPort: "1323", //FromPort나 ToPort중 하나에 -1이 입력될 경우 -1이 입력된 경우 -1을 공백으로 처리 + /*{ // 1323 Port + FromPort: "1323", // If either FromPort or ToPort is set to -1, replace the -1 with a blank ToPort: "1323", IPProtocol: "tcp", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ /*{ - // All Port로 등록 + // All Port FromPort: "", ToPort: "", - IPProtocol: "icmp", //icmp는 포트 정보가 없음 + IPProtocol: "icmp", // ICMP has no port information Direction: "inbound", CIDR: "0.0.0.0/0", },*/ - /*{ // 모든 프로토콜 모든 포트로 등록 + /*{ //FromPort: "", //ToPort: "", - IPProtocol: "all", // 모두 허용 (포트 정보 없음) + IPProtocol: "all", Direction: "inbound", CIDR: "0.0.0.0/0", },*/ { - //20-22 Prot로 등록 + //20-22 Port FromPort: "22", ToPort: "22", IPProtocol: "tcp", @@ -780,7 +578,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "1000", ToPort: "1000", IPProtocol: "tcp", @@ -788,7 +586,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "1", ToPort: "65535", IPProtocol: "udp", @@ -796,7 +594,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, { - //20-22 Prot로 등록 + //20-22 Port FromPort: "-1", ToPort: "-1", IPProtocol: "icmp", @@ -804,7 +602,7 @@ func handleSecurity() { CIDR: "0.0.0.0/0", }, /*{ - //20-22 Prot로 등록 + //20-22 Port FromPort: "-1", ToPort: "-1", IPProtocol: "all", @@ -815,9 +613,9 @@ func handleSecurity() { result, err := handler.RemoveRules(irs.IID{SystemId: securityId}, securityRules) if err != nil { - cblogger.Infof(securityId, " Rule 삭제 실패 : ", err) + cblogger.Infof(securityId, "Fail to delete Rule : ", err) } else { - cblogger.Infof("[%s] Rule 삭제 결과 : [%v]", securityId, result) + cblogger.Infof("[%s] Result of delete Rule : [%v]", securityId, result) } } } @@ -862,74 +660,52 @@ func handleKeyPair() { case 1: result, err := handler.ListKey() if err != nil { - cblogger.Infof(" 키 페어 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve Keypair list : ", err) } else { - cblogger.Info("키 페어 목록 조회 결과") + cblogger.Info("Result of retrieve Keypair list") //cblogger.Info(result) spew.Dump(result) if result != nil { - keyPairName = result[0].IId.SystemId // 조회 및 삭제를 위해 생성된 ID로 변경 + keyPairName = result[0].IId.SystemId // Changed to the ID created for retrieval and deletion } - cblogger.Info("키 페어 수 : ", len(result)) + cblogger.Info("Number of Keypair : ", len(result)) } case 2: - cblogger.Infof("[%s] 키 페어 생성 테스트", keyPairName) + cblogger.Infof("[%s] Test of creation Keypair", keyPairName) keyPairReqInfo := irs.KeyPairReqInfo{ IId: irs.IID{NameId: keyPairName}, TagList: []irs.KeyValue{tag1}, } result, err := handler.CreateKey(keyPairReqInfo) if err != nil { - cblogger.Infof(keyPairName, " 키 페어 생성 실패 : ", err) + cblogger.Infof(keyPairName, "Fail to create Keypair : ", err) } else { - cblogger.Infof("[%s] 키 페어 생성 결과 : [%s]", keyPairName, result) + cblogger.Infof("[%s] Result of create Keypair : [%s]", keyPairName, result) spew.Dump(result) } case 3: - cblogger.Infof("[%s] 키 페어 조회 테스트", keyPairName) + cblogger.Infof("[%s] Test of retrieve Keypair", keyPairName) result, err := handler.GetKey(irs.IID{SystemId: keyPairName}) if err != nil { - cblogger.Infof(keyPairName, " 키 페어 조회 실패 : ", err) + cblogger.Infof(keyPairName, " Fail to retrieve Keypair : ", err) } else { - cblogger.Infof("[%s] 키 페어 조회 결과 : [%s]", keyPairName, result) + cblogger.Infof("[%s] Result of Keypair : [%s]", keyPairName, result) spew.Dump(result) } case 4: - cblogger.Infof("[%s] 키 페어 삭제 테스트", keyPairName) + cblogger.Infof("[%s] Test of delete Keypair", keyPairName) result, err := handler.DeleteKey(irs.IID{SystemId: keyPairName}) if err != nil { - cblogger.Infof(keyPairName, " 키 페어 삭제 실패 : ", err) + cblogger.Infof(keyPairName, "Fail to delete Keypair : ", err) } else { - cblogger.Infof("[%s] 키 페어 삭제 결과 : [%s]", keyPairName, result) + cblogger.Infof("[%s] Result of delete Keypair : [%s]", keyPairName, result) } } } } } -/* -func TestMain() { - cblogger.Debug("Start ImageHandler Resource Test") - - ResourceHandler, err := testconf.GetResourceHandler("Image") - if err != nil { - panic(err) - } - handler := ResourceHandler.(irs.ImageHandler) - - result, err := handler.ListImage() - if err != nil { - cblogger.Infof(" Image 목록 조회 실패 : ", err) - } else { - cblogger.Info("Image 목록 조회 결과") - cblogger.Info(result) - cblogger.Info("출력 결과 수 : ", len(result)) - spew.Dump(result) - } -} -*/ - func handleVPC() { cblogger.Debug("Start VPC Resource Test") ResourceHandler, err := testconf.GetResourceHandler("VPC") @@ -943,8 +719,8 @@ func handleVPC() { IPv4_CIDR: "10.0.3.0/24", } - subnetReqVpcInfo := irs.IID{SystemId: "vpc-6wex2mrx1fovfecsl44mx"} - reqSubnetId := irs.IID{SystemId: "vsw-6we4h4n4wp9xdtakrno15"} + subnetReqVpcInfo := irs.IID{SystemId: ""} + reqSubnetId := irs.IID{SystemId: ""} cblogger.Debug(subnetReqInfo) cblogger.Debug(subnetReqVpcInfo) cblogger.Debug(reqSubnetId) @@ -968,13 +744,13 @@ func handleVPC() { }, }, // TagList: []irs.KeyValue{tag1}, - //Id: "subnet-044a2b57145e5afc5", - //Name: "CB-VNet-Subnet", // 웹 도구 등 외부에서 전달 받지 않고 드라이버 내부적으로 자동 구현때문에 사용하지 않음. + //Id: "", + //Name: "CB-VNet-Subnet", // Not used due to internal automatic implementation within the driver, without relying on external web tools //CidrBlock: "10.0.0.0/16", //CidrBlock: "192.168.0.0/16", } - reqVpcId := irs.IID{SystemId: "vpc-j6c64o9vym4zqqmvx3j3c"} + reqVpcId := irs.IID{SystemId: ""} for { fmt.Println("Handler Management") @@ -1000,69 +776,68 @@ func handleVPC() { case 1: result, err := handler.ListVPC() if err != nil { - cblogger.Infof(" VPC 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve VPC list : ", err) } else { - cblogger.Info("VPC 목록 조회 결과") - //cblogger.Info(result) - spew.Dump(result) + cblogger.Info("Result of retrieve VPC list") - // 내부적으로 1개만 존재함. - //조회및 삭제 테스트를 위해 리스트의 첫번째 서브넷 ID를 요청ID로 자동 갱신함. + spew.Dump(result) + // Only one exists internally + // Automatically updated the request ID to the first subnet ID in the list for retrieval and deletion tests if result != nil { - reqVpcId = result[0].IId // 조회 및 삭제를 위해 생성된 ID로 변경 - subnetReqVpcInfo = reqVpcId //Subnet 추가/삭제 테스트용 + reqVpcId = result[0].IId // Changed to the ID created for retrieval and deletion. + subnetReqVpcInfo = reqVpcId // For testing subnet addition/deletion. } } case 2: - cblogger.Infof("[%s] VPC 생성 테스트", vpcReqInfo.IId.NameId) + cblogger.Infof("[%s] Test of create VPC", vpcReqInfo.IId.NameId) //vpcReqInfo := irs.VPCReqInfo{} result, err := handler.CreateVPC(vpcReqInfo) if err != nil { - cblogger.Infof(reqVpcId.NameId, " VPC 생성 실패 : ", err) + cblogger.Infof(reqVpcId.NameId, "Fail to create VPC : ", err) } else { - cblogger.Infof("VPC 생성 결과 : ", result) - reqVpcId = result.IId // 조회 및 삭제를 위해 생성된 ID로 변경 + cblogger.Infof("Result of create VPC : ", result) + reqVpcId = result.IId spew.Dump(result) } case 3: - cblogger.Infof("[%s] VPC 조회 테스트", reqVpcId) + cblogger.Infof("[%s] Test of retrieve VPC", reqVpcId) result, err := handler.GetVPC(reqVpcId) if err != nil { - cblogger.Infof("[%s] VPC 조회 실패 : ", reqVpcId, err) + cblogger.Infof("[%s] Fail to retrieve VPC : ", reqVpcId, err) } else { - cblogger.Infof("[%s] VPC 조회 결과 : [%s]", reqVpcId, result) + cblogger.Infof("[%s] Result of retrieve VPC : [%s]", reqVpcId, result) spew.Dump(result) } case 4: - cblogger.Infof("[%s] VPC 삭제 테스트", reqVpcId) + cblogger.Infof("[%s] Test of delete VPC", reqVpcId) result, err := handler.DeleteVPC(reqVpcId) if err != nil { - cblogger.Infof("[%s] VPC 삭제 실패 : ", reqVpcId, err) + cblogger.Infof("[%s] Fail to delete VPC : ", reqVpcId, err) } else { - cblogger.Infof("[%s] VPC 삭제 결과 : [%s]", reqVpcId, result) + cblogger.Infof("[%s] Result of delete VPC : [%s]", reqVpcId, result) } case 5: - cblogger.Infof("[%s] Subnet 추가 테스트", vpcReqInfo.IId.NameId) + cblogger.Infof("[%s] Test of add Subnet", vpcReqInfo.IId.NameId) result, err := handler.AddSubnet(subnetReqVpcInfo, subnetReqInfo) if err != nil { - cblogger.Infof(reqSubnetId.NameId, " Subnet 추가 실패 : ", err) + cblogger.Infof(reqSubnetId.NameId, "Fail to add Subnet : ", err) } else { - cblogger.Infof("Subnet 추가 결과 : ", result) - reqSubnetId = result.IId // 조회 및 삭제를 위해 생성된 ID로 변경 + cblogger.Infof("Result of ad Subnet : ", result) + reqSubnetId = result.IId spew.Dump(result) } case 6: - cblogger.Infof("[%s] Subnet 삭제 테스트", reqSubnetId.SystemId) + cblogger.Infof("[%s] Test of delete Subnet", reqSubnetId.SystemId) result, err := handler.RemoveSubnet(subnetReqVpcInfo, reqSubnetId) if err != nil { - cblogger.Infof("[%s] Subnet 삭제 실패 : ", reqSubnetId.SystemId, err) + cblogger.Infof("[%s] Fail to delete Subnet : ", reqSubnetId.SystemId, err) } else { - cblogger.Infof("[%s] Subnet 삭제 결과 : [%s]", reqSubnetId.SystemId, result) + cblogger.Infof("[%s] Result of delete Subnet : [%s]", reqSubnetId.SystemId, result) } } } @@ -1081,8 +856,8 @@ func handleImage() { //imageReqInfo := irs2.ImageReqInfo{ imageReqInfo := irs.ImageReqInfo{ - IId: irs.IID{NameId: "Test OS Image", SystemId: "ami-047f7b46bd6dd5d84"}, - //Id: "ami-047f7b46bd6dd5d84", + IId: irs.IID{NameId: "Test OS Image", SystemId: ""}, + //Id: "", //Name: "Test OS Image", } @@ -1108,50 +883,49 @@ func handleImage() { case 1: result, err := handler.ListImage() if err != nil { - cblogger.Infof(" Image 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve Image list : ", err) } else { - cblogger.Info("Image 목록 조회 결과") + cblogger.Info("Result of retrieve Image list") cblogger.Debug(result) - cblogger.Info("출력 결과 수 : ", len(result)) + cblogger.Info("Number of result : ", len(result)) if cblogger.Level.String() == "debug" { spew.Dump(result) } - //조회및 삭제 테스트를 위해 리스트의 첫번째 정보의 ID를 요청ID로 자동 갱신함. if result != nil { - imageReqInfo.IId = result[0].IId // 조회 및 삭제를 위해 생성된 ID로 변경 + imageReqInfo.IId = result[0].IId } } case 2: - cblogger.Infof("[%s] Image 생성 테스트", imageReqInfo.IId.NameId) + cblogger.Infof("[%s] Test of create Image", imageReqInfo.IId.NameId) result, err := handler.CreateImage(imageReqInfo) if err != nil { - cblogger.Infof(imageReqInfo.IId.NameId, " Image 생성 실패 : ", err) + cblogger.Infof(imageReqInfo.IId.NameId, "Fail to create Image : ", err) } else { - cblogger.Infof("Image 생성 결과 : ", result) + cblogger.Infof("Result of create Image : ", result) imageReqInfo.IId = result.IId // 조회 및 삭제를 위해 생성된 ID로 변경 spew.Dump(result) } case 3: - cblogger.Infof("[%s] Image 조회 테스트", imageReqInfo.IId) + cblogger.Infof("[%s] Test of retrieve Image", imageReqInfo.IId) result, err := handler.GetImage(imageReqInfo.IId) if err != nil { - cblogger.Infof("[%s] Image 조회 실패 : ", imageReqInfo.IId.NameId, err) + cblogger.Infof("[%s] Fail to retrieve Image : ", imageReqInfo.IId.NameId, err) } else { - cblogger.Infof("[%s] Image 조회 결과 : [%s]", imageReqInfo.IId.NameId, result) + cblogger.Infof("[%s] Result of retrieve Image : [%s]", imageReqInfo.IId.NameId, result) spew.Dump(result) } case 4: - cblogger.Infof("[%s] Image 삭제 테스트", imageReqInfo.IId.NameId) + cblogger.Infof("[%s] Test of delete Image", imageReqInfo.IId.NameId) result, err := handler.DeleteImage(imageReqInfo.IId) if err != nil { - cblogger.Infof("[%s] Image 삭제 실패 : ", imageReqInfo.IId.NameId, err) + cblogger.Infof("[%s] Fail to delete Image : ", imageReqInfo.IId.NameId, err) } else { - cblogger.Infof("[%s] Image 삭제 결과 : [%s]", imageReqInfo.IId.NameId, result) + cblogger.Infof("[%s] Result of delete Image : [%s]", imageReqInfo.IId.NameId, result) } } } @@ -1202,23 +976,20 @@ func handleVM() { vmReqInfo := irs.VMReqInfo{ // IId: irs.IID{NameId: ""}, - // ImageIID: irs.IID{SystemId: "aliyun_3_x64_20G_alibase_20210425.vhd"}, - ImageIID: irs.IID{SystemId: "aliyun_2_1903_x64_20G_dengbao_alibase_20240705.vhd"}, - //ImageIID: irs.IID{SystemId: "aliyun_2_1903_x64_20G_alibase_20200324.vhd"}, - //ImageIID: irs.IID{SystemId: "ubuntu_18_04_x64_20G_alibase_20210318.vhd"}, - // ImageIID: irs.IID{SystemId: "ubuntu_18_04_x64_20G_alibase_20210420.vhd"}, - VpcIID: irs.IID{SystemId: "vpc-j6cjneevz77bun1f0hodv"}, - //SubnetIID: irs.IID{SystemId: "vsw-0jlj155cbwhjumtipnm6d"}, + + ImageIID: irs.IID{SystemId: ""}, + VpcIID: irs.IID{SystemId: ""}, + //SubnetIID: irs.IID{SystemId: ""}, // SubnetIID: irs.IID{SystemId: ""}, //Tokyo Zone B - SubnetIID: irs.IID{SystemId: "vsw-j6c37ennotvnfcvuw23ku"}, //hongkong-c + SubnetIID: irs.IID{SystemId: ""}, //hongkong-c //SecurityGroupIIDs: []irs.IID{{SystemId: ""}, {SystemId: ""}}, - SecurityGroupIIDs: []irs.IID{{SystemId: "sg-j6cauy6gbpy26deg8iz9"}}, // 홍콩 리전 + SecurityGroupIIDs: []irs.IID{{SystemId: ""}}, // 홍콩 리전 //VMSpecName: "ecs.t5-lc2m1.nano", //VMSpecName: "ecs.g6.large", //cn-wulanchabu 리전 // VMSpecName: "ecs.t5-lc2m1.nano", //도쿄리전 VMSpecName: "ecs.t5-lc2m1.nano", //홍콩리전 // KeyPairIID: irs.IID{SystemId: ""}, - KeyPairIID: irs.IID{SystemId: "keypair-honkong-cqbnlg6iuvoi0eb89lq0"}, //홍콩리전 + KeyPairIID: irs.IID{SystemId: ""}, //홍콩리전 //VMUserId: "root", //root만 가능 //VMUserPasswd: "Cbuser!@#", //대문자 소문자 모두 사용되어야 함. 그리고 숫자나 특수 기호 중 하나가 포함되어야 함. @@ -1232,10 +1003,10 @@ func handleVM() { vmInfo, err := vmHandler.StartVM(vmReqInfo) if err != nil { //panic(err) - cblogger.Error("VM 생성 실패 - 실패 이유") + cblogger.Error("Fail to create VM") cblogger.Error(err) } else { - cblogger.Info("VM 생성 완료!!", vmInfo) + cblogger.Info("Result of create VM", vmInfo) spew.Dump(vmInfo) VmID = vmInfo.IId } @@ -1246,10 +1017,10 @@ func handleVM() { case 2: vmInfo, err := vmHandler.GetVM(VmID) if err != nil { - cblogger.Errorf("[%s] VM 정보 조회 실패", VmID) + cblogger.Errorf("[%s] Fail to retrieve VM", VmID) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM 정보 조회 결과", VmID) + cblogger.Infof("[%s] Result of retrieve VM", VmID) cblogger.Info(vmInfo) spew.Dump(vmInfo) } @@ -1258,60 +1029,60 @@ func handleVM() { cblogger.Info("Start Suspend VM ...") result, err := vmHandler.SuspendVM(VmID) if err != nil { - cblogger.Errorf("[%s] VM Suspend 실패 - [%s]", VmID, result) + cblogger.Errorf("[%s] VM Suspend fail - [%s]", VmID, result) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM Suspend 성공 - [%s]", VmID, result) + cblogger.Infof("[%s] VM Suspend success - [%s]", VmID, result) } case 4: cblogger.Info("Start Resume VM ...") result, err := vmHandler.ResumeVM(VmID) if err != nil { - cblogger.Errorf("[%s] VM Resume 실패 - [%s]", VmID, result) + cblogger.Errorf("[%s] VM Resume fail - [%s]", VmID, result) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM Resume 성공 - [%s]", VmID, result) + cblogger.Infof("[%s] VM Resume success - [%s]", VmID, result) } case 5: cblogger.Info("Start Reboot VM ...") result, err := vmHandler.RebootVM(VmID) if err != nil { - cblogger.Errorf("[%s] VM Reboot 실패 - [%s]", VmID, result) + cblogger.Errorf("[%s] VM Reboot fail - [%s]", VmID, result) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM Reboot 성공 - [%s]", VmID, result) + cblogger.Infof("[%s] VM Reboot success - [%s]", VmID, result) } case 6: cblogger.Info("Start Terminate VM ...") result, err := vmHandler.TerminateVM(VmID) if err != nil { - cblogger.Errorf("[%s] VM Terminate 실패 - [%s]", VmID, result) + cblogger.Errorf("[%s] VM Terminate fail - [%s]", VmID, result) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM Terminate 성공 - [%s]", VmID, result) + cblogger.Infof("[%s] VM Terminate success - [%s]", VmID, result) } case 7: cblogger.Info("Start Get VM Status...") vmStatus, err := vmHandler.GetVMStatus(VmID) if err != nil { - cblogger.Errorf("[%s] VM Get Status 실패", VmID) + cblogger.Errorf("[%s] VM Get Status fail", VmID) cblogger.Error(err) } else { - cblogger.Infof("[%s] VM Get Status 성공 : [%s]", VmID, vmStatus) + cblogger.Infof("[%s] VM Get Status success : [%s]", VmID, vmStatus) } case 8: cblogger.Info("Start ListVMStatus ...") vmStatusInfos, err := vmHandler.ListVMStatus() if err != nil { - cblogger.Error("ListVMStatus 실패") + cblogger.Error("ListVMStatus fail") cblogger.Error(err) } else { - cblogger.Info("ListVMStatus 성공") + cblogger.Info("ListVMStatus success") cblogger.Info(vmStatusInfos) spew.Dump(vmStatusInfos) } @@ -1320,11 +1091,11 @@ func handleVM() { cblogger.Info("Start ListVM ...") vmList, err := vmHandler.ListVM() if err != nil { - cblogger.Error("ListVM 실패") + cblogger.Error("ListVM fail") cblogger.Error(err) } else { - cblogger.Info("ListVM 성공") - cblogger.Info("=========== VM 목록 ================") + cblogger.Info("ListVM success") + cblogger.Info("=========== VM List ================") cblogger.Info(vmList) spew.Dump(vmList) if len(vmList) > 0 { @@ -1351,7 +1122,7 @@ func handleNLB() { nlbReqInfo := irs.NLBInfo{ // TCP IId: irs.IID{NameId: ""}, - VpcIID: irs.IID{SystemId: "j6cjneevz77bun1f0hodv"}, + VpcIID: irs.IID{SystemId: ""}, Type: "PUBLIC", Listener: irs.ListenerInfo{Protocol: "TCP", Port: "80"}, HealthChecker: irs.HealthCheckerInfo{Protocol: "TCP", Port: "80", Interval: 5, Timeout: 2, Threshold: 3}, @@ -1359,7 +1130,7 @@ func handleNLB() { Protocol: "TCP", Port: "80", - VMs: &[]irs.IID{{SystemId: "i-j6camjyolcjjhbs3ack7"}, {SystemId: "i-j6cgtrzdfo2tvrjzjw34"}}, + VMs: &[]irs.IID{{SystemId: ""}, {SystemId: ""}}, }, TagList: []irs.KeyValue{tag1}, // UDP @@ -1406,104 +1177,104 @@ func handleNLB() { case 1: result, err := handler.ListNLB() if err != nil { - cblogger.Infof(" NLB 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve NLB list : ", err) } else { - cblogger.Info("NLB 목록 조회 결과") - //cblogger.Info(result) + cblogger.Info("Result of retrieve NLB list") + spew.Dump(result) } case 2: - cblogger.Infof("[%s] NLB 생성 테스트", nlbReqInfo.IId.NameId) + cblogger.Infof("[%s] Test of create NLB", nlbReqInfo.IId.NameId) //vpcReqInfo := irs.VPCReqInfo{} result, err := handler.CreateNLB(nlbReqInfo) if err != nil { - cblogger.Infof(nlbReqInfo.IId.NameId, " NLB 생성 실패 : ", err) + cblogger.Infof(nlbReqInfo.IId.NameId, "Fail to create NLB : ", err) } else { - cblogger.Infof("NLB 생성 결과 : ", result) + cblogger.Infof("Result of create NLB : ", result) //reqNLBId = result.IId // 조회 및 삭제를 위해 생성된 ID로 변경 spew.Dump(result) } case 3: reqNLBId = irs.IID{SystemId: ""} - cblogger.Infof("[%s] NLB 조회 테스트", reqNLBId) + cblogger.Infof("[%s] Test of retrieve NLB", reqNLBId) result, err := handler.GetNLB(reqNLBId) if err != nil { - cblogger.Infof("[%s] NLB 조회 실패 : ", reqNLBId, err) + cblogger.Infof("[%s] Fail to retrieve NLB : ", reqNLBId, err) } else { - cblogger.Infof("[%s] NLB 조회 결과 : [%s]", reqNLBId, result) + cblogger.Infof("[%s] Result of retrieve NLB : [%s]", reqNLBId, result) spew.Dump(result) } case 4: reqNLBId.SystemId = "" - cblogger.Infof("[%s] NLB 삭제 테스트", reqNLBId) + cblogger.Infof("[%s] Test of delete NLB", reqNLBId) result, err := handler.DeleteNLB(reqNLBId) if err != nil { - cblogger.Infof("[%s] NLB 삭제 실패 : ", reqNLBId, err) + cblogger.Infof("[%s] Fail to delete NLB : ", reqNLBId, err) } else { - cblogger.Infof("[%s] NLB 삭제 결과 : [%s]", reqNLBId, result) + cblogger.Infof("[%s] Result of delete NLB : [%s]", reqNLBId, result) } case 5: - cblogger.Infof("[%s] VM 추가 테스트", reqNLBId) + cblogger.Infof("[%s] Test of add VM", reqNLBId) reqNLBId.SystemId = "" vmIID := irs.IID{SystemId: ""} result, err := handler.AddVMs(reqNLBId, &[]irs.IID{vmIID}) if err != nil { - cblogger.Infof("VM 추가 실패 : ", err) + cblogger.Infof("Fail to add VM : ", err) } else { - cblogger.Infof("VM 추가 결과 : ", result) + cblogger.Infof("Result of add VM : ", result) //reqSubnetId = result.SubnetInfoList[0].IId // 조회 및 삭제를 위해 생성된 ID로 변경 spew.Dump(result) } case 6: - cblogger.Infof("[%s] VM 삭제 테스트", reqNLBId.SystemId) + cblogger.Infof("[%s] Test of delete VM", reqNLBId.SystemId) reqNLBId.SystemId = "" vmIID := irs.IID{SystemId: ""} result, err := handler.RemoveVMs(reqNLBId, &[]irs.IID{vmIID}) if err != nil { - cblogger.Infof("VM 삭제 실패 : ", err) + cblogger.Infof("Fail to delete VM : ", err) } else { - cblogger.Infof("VM 삭제 결과 : [%s]", result) + cblogger.Infof("Result of delete VM : [%s]", result) } case 7: - cblogger.Infof("[%s] NLB VM Health 조회 테스트", reqNLBId) - cblogger.Infof("[%s] VM 추가 테스트", reqNLBId) + cblogger.Infof("[%s] Test of retrieve NLB VM", reqNLBId) + cblogger.Infof("[%s] Test of add VM", reqNLBId) reqNLBId.SystemId = "" result, err := handler.GetVMGroupHealthInfo(reqNLBId) if err != nil { - cblogger.Infof("[%s] NLB VM Health 조회 실패 : ", reqNLBId.SystemId, err) + cblogger.Infof("[%s] Fail to retrieve NLB VM : ", reqNLBId.SystemId, err) } else { - cblogger.Infof("[%s] NLB VM Health 조회 결과 : [%s]", reqNLBId.SystemId, result) + cblogger.Infof("[%s] Result of retrieve NLB VM Health : [%s]", reqNLBId.SystemId, result) spew.Dump(result) } case 8: - cblogger.Infof("[%s] NLB Listener 변경 테스트", reqNLBId) + cblogger.Infof("[%s] Test of change NLB Listener", reqNLBId) reqNLBId.SystemId = "" changeListener := irs.ListenerInfo{} changeListener.Protocol = "tcp" - changeListener.Port = "8080" // 포트만 변경 + changeListener.Port = "8080" result, err := handler.ChangeListener(reqNLBId, changeListener) if err != nil { - cblogger.Infof("[%s] NLB Listener 변경 실패 : ", reqNLBId.SystemId, err) + cblogger.Infof("[%s] Fail to change NLB Listener : ", reqNLBId.SystemId, err) } else { - cblogger.Infof("[%s] NLB Listener 변경 결과 : [%s]", reqNLBId.SystemId, result) + cblogger.Infof("[%s] Result of change NLB Listener : [%s]", reqNLBId.SystemId, result) spew.Dump(result) } case 9: - cblogger.Infof("[%s] NLB VM Group 변경 테스트", reqNLBId) + cblogger.Infof("[%s] Test of change NLB VM Group", reqNLBId) result, err := handler.ChangeVMGroupInfo(reqNLBId, irs.VMGroupInfo{ Protocol: "TCP", Port: "8080", }) if err != nil { - cblogger.Infof("[%s] NLB VM Group 변경 실패 : ", reqNLBId.SystemId, err) + cblogger.Infof("[%s] Fail to change NLB VM Group : ", reqNLBId.SystemId, err) } else { - cblogger.Infof("[%s] NLB VM Group 변경 결과 : [%s]", reqNLBId.SystemId, result) + cblogger.Infof("[%s] Result of change NLB VM Group : [%s]", reqNLBId.SystemId, result) spew.Dump(result) } case 10: @@ -1515,12 +1286,12 @@ func handleNLB() { Timeout: 30, Threshold: 9, } - cblogger.Infof("[%s] NLB Health Checker 변경 테스트", reqNLBId) + cblogger.Infof("[%s] Test of change NLB Health Checker", reqNLBId) result, err := handler.ChangeHealthCheckerInfo(reqNLBId, reqHealthCheckInfo) if err != nil { - cblogger.Infof("[%s] NLB Health Checker 변경 실패 : ", reqNLBId.SystemId, err) + cblogger.Infof("[%s] Fail to change NLB Health Checker : ", reqNLBId.SystemId, err) } else { - cblogger.Infof("[%s] NLB Health Checker 변경 결과 : [%s]", reqNLBId.SystemId, result) + cblogger.Infof("[%s] Resutl of change NLB Health Checker : [%s]", reqNLBId.SystemId, result) spew.Dump(result) } @@ -1561,36 +1332,36 @@ func handleRegionZone() { case 1: result, err := handler.ListRegionZone() if err != nil { - cblogger.Infof(" RegionZone 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve RegionZone list : ", err) } else { - cblogger.Info("RegionZone 목록 조회 결과") + cblogger.Info("Result of retrieve RegionZone list") spew.Dump(result) } case 2: result, err := handler.ListOrgRegion() if err != nil { - cblogger.Infof(" ListOrgRegion 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve ListOrgRegion list : ", err) } else { - cblogger.Info("ListOrgRegion 목록 조회 결과") + cblogger.Info("Result of retrieve ListOrgRegion list") spew.Dump(result) } case 3: result, err := handler.ListOrgZone() if err != nil { - cblogger.Infof(" ListOrgZone 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve ListOrgZone list : ", err) } else { - cblogger.Info("ListOrgZone 목록 조회 결과") + cblogger.Info("Result of retrieve ListOrgZone list") spew.Dump(result) } case 4: regionId := "ap-northeast-2" result, err := handler.GetRegionZone(regionId) if err != nil { - cblogger.Infof(" GetRegionZone 조회 실패 : ", regionId, err) + cblogger.Infof("Fail to retrieve GetRegionZone : ", regionId, err) } else { - cblogger.Info("GetRegionZone 조회 결과", regionId) + cblogger.Info("Result of retrieve GetRegionZone", regionId) spew.Dump(result) } @@ -1629,9 +1400,9 @@ func handlePriceInfo() { regionName := "cn-hongkong" result, err := handler.ListProductFamily(regionName) if err != nil { - cblogger.Infof(" ProductFamily 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve ProductFamily list : ", err) } else { - cblogger.Info("ProductFamily 목록 조회 결과") + cblogger.Info("Result of retrieve ProductFamily list") spew.Dump(result) } @@ -1641,10 +1412,10 @@ func handlePriceInfo() { result, err := handler.GetPriceInfo(productFamily, regionName, []irs.KeyValue{}) if err != nil { - cblogger.Info(" PriceInfo 조회 실패 : ", err) + cblogger.Info("Fail to retrieve PriceInfo : ", err) } else { - cblogger.Info("PriceInfo 조회 결과") - //spew.Dump(result) + cblogger.Info("Result of retrieve PriceInfo") + cblogger.Info(result) } } @@ -1680,7 +1451,7 @@ func handleTagInfo() { // resourceType := irs.RSType("VM") resourceType := irs.ALL - resourceIID := irs.IID{NameId: "", SystemId: "i-j6cd7rv72uwjyx8qy304"} + resourceIID := irs.IID{NameId: "", SystemId: ""} // resourceType := irs.RSType("CLUSTER") // resourceIID := irs.IID{NameId: "cs-issue-test", SystemId: ""} @@ -1692,9 +1463,9 @@ func handleTagInfo() { result, err := handler.ListTag(resourceType, resourceIID) if err != nil { - cblogger.Infof(" Tag 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve Tag list : ", err) } else { - cblogger.Info("Tag 목록 조회 결과") + cblogger.Info("Result of Tag list") spew.Dump(result) } @@ -1703,9 +1474,9 @@ func handleTagInfo() { tagName = "" result, err := handler.GetTag(resourceType, resourceIID, tagName) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to retrieve Tag : ", err) } else { - cblogger.Info("GetTag 조회 결과") + cblogger.Info("Result of retrieve GetTag") //spew.Dump(result) cblogger.Info(result) } @@ -1714,9 +1485,9 @@ func handleTagInfo() { result, err := handler.FindTag(resourceType, tagName) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to retrieve Tag : ", err) } else { - cblogger.Info("FindTag 조회 결과") + cblogger.Info("Result of retrieve FindTag") spew.Dump(result) // cblogger.Info(result) } @@ -1726,9 +1497,9 @@ func handleTagInfo() { newTag.Value = "addValueT1" result, err := handler.AddTag(resourceType, resourceIID, newTag) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to add Tag : ", err) } else { - cblogger.Info("AddTag 조회 결과") + cblogger.Info("Result of add Tag") //spew.Dump(result) cblogger.Info(result) } @@ -1736,9 +1507,9 @@ func handleTagInfo() { tagName := "addKeyT1" result, err := handler.RemoveTag(resourceType, resourceIID, tagName) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to remove Tag : ", err) } else { - cblogger.Info("RemoveTag 조회 결과") + cblogger.Info("Result of remove Tag") //spew.Dump(result) cblogger.Info(result) } @@ -1778,7 +1549,7 @@ func handleDisk() { panic(err) } // resourceType := irs.RSType("disk") - resourceIID := irs.IID{NameId: "", SystemId: "i-j6cd7rv72uwjyx8qy304"} + resourceIID := irs.IID{NameId: "", SystemId: ""} // resourceType := irs.RSType("CLUSTER") // resourceIID := irs.IID{NameId: "cs-issue-test", SystemId: ""} @@ -1790,9 +1561,9 @@ func handleDisk() { result, err := handler.ListDisk() if err != nil { - cblogger.Infof(" Tag 목록 조회 실패 : ", err) + cblogger.Infof("Fail to retrieve Disk list : ", err) } else { - cblogger.Info("Tag 목록 조회 결과") + cblogger.Info("Result of Disk list") spew.Dump(result) } @@ -1801,9 +1572,9 @@ func handleDisk() { // tagName = "" result, err := handler.GetDisk(resourceIID) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to get Disk : ", err) } else { - cblogger.Info("GetTag 조회 결과") + cblogger.Info("Result of get Disk") //spew.Dump(result) cblogger.Info(result) } @@ -1812,34 +1583,12 @@ func handleDisk() { // tagName = "" result, err := handler.CreateDisk(diskReqInfo) if err != nil { - cblogger.Info(" Tag 조회 실패 : ", err) + cblogger.Info("Fail to create Disk : ", err) } else { - cblogger.Info("FindTag 조회 결과") + cblogger.Info("Result of create Disk") //spew.Dump(result) cblogger.Info(result) } - // case 4: - // newTag := irs.KeyValue{} - // newTag.Key = "addKeyT1" - // newTag.Value = "addValueT1" - // result, err := handler.AddTag(resourceType, resourceIID, newTag) - // if err != nil { - // cblogger.Info(" Tag 조회 실패 : ", err) - // } else { - // cblogger.Info("AddTag 조회 결과") - // //spew.Dump(result) - // cblogger.Info(result) - // } - // case 5: - // tagName := "addKeyT1" - // result, err := handler.RemoveTag(resourceType, resourceIID, tagName) - // if err != nil { - // cblogger.Info(" Tag 조회 실패 : ", err) - // } else { - // cblogger.Info("RemoveTag 조회 결과") - // //spew.Dump(result) - // cblogger.Info(result) - // } } } } @@ -2066,7 +1815,7 @@ func main() { // handleDisk() // handleMyImage() // handleCluster() - //handlePublicIP() // PublicIP 생성 후 conf + //handlePublicIP() //handleVNic() //Lancard //handleRegionZone() @@ -2076,13 +1825,13 @@ func main() { //StartTime := "2020-05-07T01:35:00Z" StartTime := "2020-05-07T01:35Z" timeLen := len(StartTime) - cblogger.Infof("======> 생성시간 길이 [%s]", timeLen) + cblogger.Infof("======> create time length [%s]", timeLen) if timeLen > 7 { - cblogger.Infof("======> 생성시간 마지막 문자열 [%s]", StartTime[timeLen-1:]) + cblogger.Infof("======> create time last string [%s]", StartTime[timeLen-1:]) if StartTime[timeLen-1:] == "Z" { - cblogger.Infof("======> 문자열 변환 : [%s]", StartTime[:timeLen-1]) + cblogger.Infof("======> change string : [%s]", StartTime[:timeLen-1]) NewStartTime := StartTime[:timeLen-1] + ":00Z" - cblogger.Infof("======> 최종 문자열 변환 : [%s]", NewStartTime) + cblogger.Infof("======> return result string : [%s]", NewStartTime) } } diff --git a/cloud-control-manager/cloud-driver/drivers/alibaba/resources/CommonAlibabaFunc.go b/cloud-control-manager/cloud-driver/drivers/alibaba/resources/CommonAlibabaFunc.go index 94ed1317f..93ac6e28c 100644 --- a/cloud-control-manager/cloud-driver/drivers/alibaba/resources/CommonAlibabaFunc.go +++ b/cloud-control-manager/cloud-driver/drivers/alibaba/resources/CommonAlibabaFunc.go @@ -286,26 +286,26 @@ func GetAlibabaApiVPCEndpoint(regionId string, productCode string) string { // Alibaba에서 사용되는 리소스별 api product type func GetAlibabaProductCode(resType irs.RSType) (string, error) { switch resType { - case irs.RSType("VM"), irs.VM: + case irs.VM: return "ecs", nil - case irs.RSType("VPC"), irs.VPC: + case irs.VPC: return "vpc", nil - case irs.RSType("SUBNET"), irs.SUBNET: + case irs.SUBNET: // return "ecs", nil return "vpc", nil - case irs.RSType("SG"), irs.SG: + case irs.SG: return "ecs", nil - case irs.RSType("KEY"), irs.KEY: + case irs.KEY: return "ecs", nil - case irs.RSType("NLB"), irs.NLB: + case irs.NLB: return "slb", nil - case irs.RSType("DISK"), irs.DISK: + case irs.DISK: return "ecs", nil - case irs.RSType("MYIMAGE"), irs.MYIMAGE: + case irs.MYIMAGE: return "ecs", nil - case irs.RSType("CLUSTER"), irs.CLUSTER: + case irs.CLUSTER: return "ack", nil - case irs.RSType("NODEGROUP"), irs.NODEGROUP: + case irs.NODEGROUP: return "ack", nil default: //return "", nil @@ -316,29 +316,29 @@ func GetAlibabaProductCode(resType irs.RSType) (string, error) { // cb-spider의 resourceType 을 alibaba의 resourceType으로 func GetAlibabaResourceType(resType irs.RSType) (string, error) { switch resType { - case irs.RSType("VM"), irs.VM: + case irs.VM: return "instance", nil - case irs.RSType("VPC"), irs.VPC: + case irs.VPC: return "vpc", nil - case irs.RSType("SUBNET"), irs.SUBNET: + case irs.SUBNET: // return "ecs", nil return "vpc", nil - case irs.RSType("SG"), irs.SG: + case irs.SG: return "securitygroup", nil - case irs.RSType("KEY"), irs.KEY: + case irs.KEY: return "keypair", nil - // case irs.RSType("NLB"): + // case irs.NLB: // return "slb", nil - case irs.RSType("DISK"), irs.DISK: + case irs.DISK: return "disk", nil - case irs.RSType("MYIMAGE"), irs.MYIMAGE: + case irs.MYIMAGE: // return "snapshot", nil return "ecs", nil - case irs.RSType("CLUSTER"), irs.CLUSTER: + case irs.CLUSTER: return "CLUSTER", nil - case irs.RSType("ALL"), irs.ALL: + case irs.ALL: return "", nil - // case irs.RSType("NODEGROUP"): + // case irs.NODEGROUP" // return "", nil default: //return "", nil @@ -356,27 +356,27 @@ func GetAlibabaResourceType(resType irs.RSType) (string, error) { // resource Type별로 바라보는 api가 다름. ( ecs, bss, ... ) func GetAliTargetApi(resType irs.RSType) (string, error) { switch resType { - case irs.RSType("VM"): + case irs.VM: return "ecs", nil - case irs.RSType("VPC"): + case irs.VPC: return "vpc", nil - case irs.RSType("SUBNET"): + case irs.SUBNET: return "vpc", nil - case irs.RSType("SG"): + case irs.SG: return "ecs", nil - case irs.RSType("KEY"): + case irs.KEY: return "ecs", nil - case irs.RSType("NLB"): + case irs.NLB: return "slb", nil - case irs.RSType("DISK"): + case irs.DISK: return "ecs", nil - case irs.RSType("MYIMAGE"): + case irs.MYIMAGE: return "ecs", nil - case irs.RSType("CLUSTER"): + case irs.CLUSTER: return "cs", nil - case irs.RSType("ALL"): + case irs.ALL: return "all", nil - // case irs.RSType("NODEGROUP"): + // case NODEGROUP"): // return "", nil default: //return "", nil diff --git a/cloud-control-manager/cloud-driver/drivers/alibaba/resources/TagHandler.go b/cloud-control-manager/cloud-driver/drivers/alibaba/resources/TagHandler.go index eb85b4463..cf1678629 100644 --- a/cloud-control-manager/cloud-driver/drivers/alibaba/resources/TagHandler.go +++ b/cloud-control-manager/cloud-driver/drivers/alibaba/resources/TagHandler.go @@ -77,87 +77,106 @@ type DescribeTagsResponse struct { PageNumber int `json:"PageNumber" xml:"PageNumber"` Tags ecs.TagsInDescribeTags `json:"Tags" xml:"Tags"` } +type VSwitchIds struct { + VSwitchId []string `json:"VSwitchId"` +} + +type SecondaryCidrBlocks struct { + SecondaryCidrBlock []string `json:"SecondaryCidrBlock"` +} + +type RouterTableIds struct { + RouterTableIds []string `json:"RouterTableIds"` +} + +type UserCidrs struct { + UserCidr []string `json:"UserCidr"` +} + +type NatGatewayIds struct { + NatGatewayIds []string `json:"NatGatewayIds"` +} + +type Vpc struct { + Status string `json:"Status"` + IsDefault bool `json:"IsDefault"` + CenStatus string `json:"CenStatus"` + Description string `json:"Description"` + ResourceGroupId string `json:"ResourceGroupId"` + VSwitchIds VSwitchIds `json:"VSwitchIds"` + SecondaryCidrBlocks SecondaryCidrBlocks `json:"SecondaryCidrBlocks"` + CidrBlock string `json:"CidrBlock"` + RouterTableIds RouterTableIds `json:"RouterTableIds"` + UserCidrs UserCidrs `json:"UserCidrs"` + NetworkAclNum int `json:"NetworkAclNum"` + AdvancedResource bool `json:"AdvancedResource"` + VRouterId string `json:"VRouterId"` + NatGatewayIds NatGatewayIds `json:"NatGatewayIds"` + VpcId string `json:"VpcId"` + OwnerId int64 `json:"OwnerId"` + CreationTime string `json:"CreationTime"` + VpcName string `json:"VpcName"` + EnabledIpv6 bool `json:"EnabledIpv6"` + RegionId string `json:"RegionId"` + Ipv6CidrBlock string `json:"Ipv6CidrBlock"` + Tags Tags `json:"Tags"` +} + +type Vpcs struct { + Vpc []Vpc `json:"Vpc"` +} + type DescribeVpcsResponse struct { TotalCount int `json:"TotalCount"` PageSize int `json:"PageSize"` RequestId string `json:"RequestId"` PageNumber int `json:"PageNumber"` - Vpcs struct { - Vpc []struct { - Status string `json:"Status"` - IsDefault bool `json:"IsDefault"` - CenStatus string `json:"CenStatus"` - Description string `json:"Description"` - ResourceGroupId string `json:"ResourceGroupId"` - VSwitchIds struct { - VSwitchId []string `json:"VSwitchId"` - } `json:"VSwitchIds"` - SecondaryCidrBlocks struct { - SecondaryCidrBlock []string `json:"SecondaryCidrBlock"` - } `json:"SecondaryCidrBlocks"` - CidrBlock string `json:"CidrBlock"` - RouterTableIds struct { - RouterTableIds []string `json:"RouterTableIds"` - } `json:"RouterTableIds"` - UserCidrs struct { - UserCidr []string `json:"UserCidr"` - } `json:"UserCidrs"` - NetworkAclNum int `json:"NetworkAclNum"` - AdvancedResource bool `json:"AdvancedResource"` - VRouterId string `json:"VRouterId"` - NatGatewayIds struct { - NatGatewayIds []string `json:"NatGatewayIds"` - } `json:"NatGatewayIds"` - VpcId string `json:"VpcId"` - OwnerId int64 `json:"OwnerId"` - CreationTime string `json:"CreationTime"` - VpcName string `json:"VpcName"` - EnabledIpv6 bool `json:"EnabledIpv6"` - RegionId string `json:"RegionId"` - Ipv6CidrBlock string `json:"Ipv6CidrBlock"` - Tags struct { - Tag []struct { - Value string `json:"Value"` - Key string `json:"Key"` - } `json:"Tag"` - } `json:"Tags"` - } `json:"Vpc"` - } `json:"Vpcs"` + Vpcs Vpcs `json:"Vpcs"` +} + +type Tag struct { + Value string `json:"Value"` + Key string `json:"Key"` +} + +type Tags struct { + Tag []Tag `json:"Tag"` +} + +type RouteTable struct { + RouteTableId string `json:"RouteTableId"` + RouteTableType string `json:"RouteTableType"` +} + +type VSwitch struct { + Status string `json:"Status"` + IsDefault bool `json:"IsDefault"` + Description string `json:"Description"` + ResourceGroupId string `json:"ResourceGroupId"` + ZoneId string `json:"ZoneId"` + NetworkAclId string `json:"NetworkAclId"` + AvailableIpAddressCount int `json:"AvailableIpAddressCount"` + VSwitchId string `json:"VSwitchId"` + CidrBlock string `json:"CidrBlock"` + RouteTable RouteTable `json:"RouteTable"` + VpcId string `json:"VpcId"` + OwnerId int64 `json:"OwnerId"` + CreationTime string `json:"CreationTime"` + VSwitchName string `json:"VSwitchName"` + Ipv6CidrBlock string `json:"Ipv6CidrBlock"` + Tags Tags `json:"Tags"` + ShareType string `json:"ShareType"` +} + +type VSwitches struct { + VSwitch []VSwitch `json:"VSwitch"` } type DescribeVSwitchesResponse struct { - TotalCount int `json:"TotalCount"` - PageSize int `json:"PageSize"` - RequestId string `json:"RequestId"` - PageNumber int `json:"PageNumber"` - VSwitches struct { - VSwitch []struct { - Status string `json:"Status"` - IsDefault bool `json:"IsDefault"` - Description string `json:"Description"` - ResourceGroupId string `json:"ResourceGroupId"` - ZoneId string `json:"ZoneId"` - NetworkAclId string `json:"NetworkAclId"` - AvailableIpAddressCount int `json:"AvailableIpAddressCount"` - VSwitchId string `json:"VSwitchId"` - CidrBlock string `json:"CidrBlock"` - RouteTable struct { - RouteTableId string `json:"RouteTableId"` - RouteTableType string `json:"RouteTableType"` - } `json:"RouteTable"` - VpcId string `json:"VpcId"` - OwnerId int64 `json:"OwnerId"` - CreationTime string `json:"CreationTime"` - VSwitchName string `json:"VSwitchName"` - Ipv6CidrBlock string `json:"Ipv6CidrBlock"` - Tags struct { - Tag []struct { - Value string `json:"Value"` - Key string `json:"Key"` - } `json:"Tag"` - } `json:"Tags"` - ShareType string `json:"ShareType"` - } `json:"VSwitch"` - } `json:"VSwitches"` + TotalCount int `json:"TotalCount"` + PageSize int `json:"PageSize"` + RequestId string `json:"RequestId"` + PageNumber int `json:"PageNumber"` + VSwitches VSwitches `json:"VSwitches"` } /*