@@ -374,32 +374,39 @@ func (vmHandler *KtCloudVMHandler) StartVM(vmReqInfo irs.VMReqInfo) (irs.VMInfo,
374374 // cblogger.Infof("==> \n### result : [%s]", result.Listvirtualmachinesresponse.Virtualmachine[0])
375375 // spew.Dump(result)
376376
377- publicIp , publicIpId , err := vmHandler .associateIpAddress ()
378- if err != nil {
379- cblogger .Errorf ("Failed to Create New Public IP : [%v]" , err )
380- return irs.VMInfo {}, err
381- }
382- cblogger .Infof ("==> The Public IP and Public ID : [%s], [%s]" , publicIp , publicIpId )
377+ var publicIp , publicIpId string
378+ if vmReqInfo .AssignPublicIP == nil || * vmReqInfo .AssignPublicIP {
379+ publicIp , publicIpId , err = vmHandler .associateIpAddress ()
380+ if err != nil {
381+ cblogger .Errorf ("Failed to Create New Public IP : [%v]" , err )
382+ return irs.VMInfo {}, err
383+ }
384+ cblogger .Infof ("==> The Public IP and Public ID : [%s], [%s]" , publicIp , publicIpId )
383385
384- // Caution!!) If execute DeleteFirewall(), PortFording rule also deleted via KT Cloud API
385- // Delete Firewall Rule(Open : tcp/22) created when setting PORT Forwarding.
386- // The port No. 22 is opened already when the PortFording rule is created.
386+ // Caution!!) If execute DeleteFirewall(), PortFording rule also deleted via KT Cloud API
387+ // Delete Firewall Rule(Open : tcp/22) created when setting PORT Forwarding.
388+ // The port No. 22 is opened already when the PortFording rule is created.
387389
388- // _, error := vmHandler.deleteFirewall(publicIpId)
389- // if error != nil {
390- // cblogger.Error(error.Error())
390+ // _, error := vmHandler.deleteFirewall(publicIpId)
391+ // if error != nil {
392+ // cblogger.Error(error.Error())
391393
392- // return irs.VMInfo{}, err
393- // } else {
394- // cblogger.Info("Succeeded in Deleting the Firewall rules!!")
395- // }
394+ // return irs.VMInfo{}, err
395+ // } else {
396+ // cblogger.Info("Succeeded in Deleting the Firewall rules!!")
397+ // }
396398
397- _ , ruleErr := vmHandler .createPortForwardingFirewallRules (sgSystemIDs , publicIpId , newVM .Deployvirtualmachineresponse .ID )
398- if ruleErr != nil {
399- newErr := fmt .Errorf ("Failed to Create PortForwarding Rules and Firewall Rules : [%v]" , ruleErr )
400- cblogger .Error (newErr .Error ())
401- LoggingError (callLogInfo , newErr )
402- return irs.VMInfo {}, newErr
399+ _ , ruleErr := vmHandler .createPortForwardingFirewallRules (sgSystemIDs , publicIpId , newVM .Deployvirtualmachineresponse .ID )
400+ if ruleErr != nil {
401+ newErr := fmt .Errorf ("Failed to Create PortForwarding Rules and Firewall Rules : [%v]" , ruleErr )
402+ cblogger .Error (newErr .Error ())
403+ LoggingError (callLogInfo , newErr )
404+ return irs.VMInfo {}, newErr
405+ }
406+ } else {
407+ cblogger .Info ("# AssignPublicIP=false: skipping Public IP creation and PortForwarding/Firewall rule setup. " +
408+ "KT Cloud Classic enforces Security Groups only via per-PublicIP Firewall/PortForwarding rules, " +
409+ "so the requested SecurityGroups will NOT be enforced at the network level for this VM." )
403410 }
404411
405412 // Converts string slice to string
0 commit comments