@@ -587,14 +587,19 @@ func resourceTencentCloudAsScalingConfigRead(d *schema.ResourceData, meta interf
587587 _ = d .Set ("cam_role_name" , * config .CamRoleName )
588588
589589 if config .HostNameSettings != nil {
590+ isEmptySettings := true
590591 settings := map [string ]interface {}{}
591592 if config .HostNameSettings .HostName != nil {
593+ isEmptySettings = false
592594 settings ["host_name" ] = config .HostNameSettings .HostName
593595 }
594596 if config .HostNameSettings .HostNameStyle != nil {
597+ isEmptySettings = false
595598 settings ["host_name_style" ] = config .HostNameSettings .HostNameStyle
596599 }
597- _ = d .Set ("host_name_settings" , []interface {}{settings })
600+ if ! isEmptySettings {
601+ _ = d .Set ("host_name_settings" , []interface {}{settings })
602+ }
598603 }
599604
600605 if config .InstanceNameSettings != nil {
@@ -705,23 +710,6 @@ func resourceTencentCloudAsScalingConfigUpdate(d *schema.ResourceData, meta inte
705710 request .InternetAccessible .PublicIpAssigned = & publicIpAssigned
706711 }
707712
708- request .LoginSettings = & as.LoginSettings {}
709- if v , ok := d .GetOk ("password" ); ok {
710- request .LoginSettings .Password = helper .String (v .(string ))
711- }
712- if v , ok := d .GetOk ("key_ids" ); ok {
713- keyIds := v .([]interface {})
714- request .LoginSettings .KeyIds = make ([]* string , 0 , len (keyIds ))
715- for i := range keyIds {
716- keyId := keyIds [i ].(string )
717- request .LoginSettings .KeyIds = append (request .LoginSettings .KeyIds , & keyId )
718- }
719- }
720- if v , ok := d .GetOk ("keep_image_login" ); ok {
721- keepImageLogin := v .(bool )
722- request .LoginSettings .KeepImageLogin = & keepImageLogin
723- }
724-
725713 if v , ok := d .GetOk ("security_group_ids" ); ok {
726714 securityGroups := v .([]interface {})
727715 request .SecurityGroupIds = make ([]* string , 0 , len (securityGroups ))
@@ -846,6 +834,34 @@ func resourceTencentCloudAsScalingConfigUpdate(d *schema.ResourceData, meta inte
846834 logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
847835 }
848836
837+ loginSettingRequest := as .NewModifyLaunchConfigurationAttributesRequest ()
838+ loginSettingRequest .LaunchConfigurationId = & configurationId
839+ loginSettingRequest .LoginSettings = & as.LoginSettings {}
840+ if v , ok := d .GetOk ("password" ); ok {
841+ loginSettingRequest .LoginSettings .Password = helper .String (v .(string ))
842+ }
843+ if v , ok := d .GetOk ("key_ids" ); ok {
844+ keyIds := v .([]interface {})
845+ loginSettingRequest .LoginSettings .KeyIds = make ([]* string , 0 , len (keyIds ))
846+ for i := range keyIds {
847+ keyId := keyIds [i ].(string )
848+ loginSettingRequest .LoginSettings .KeyIds = append (loginSettingRequest .LoginSettings .KeyIds , & keyId )
849+ }
850+ }
851+ if v , ok := d .GetOk ("keep_image_login" ); ok {
852+ keepImageLogin := v .(bool )
853+ loginSettingRequest .LoginSettings .KeepImageLogin = & keepImageLogin
854+ }
855+ loginSettingResponse , err := meta .(* TencentCloudClient ).apiV3Conn .UseAsClient ().ModifyLaunchConfigurationAttributes (loginSettingRequest )
856+ if err != nil {
857+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
858+ logId , loginSettingRequest .GetAction (), loginSettingRequest .ToJsonString (), err .Error ())
859+ return err
860+ } else {
861+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
862+ logId , loginSettingRequest .GetAction (), loginSettingRequest .ToJsonString (), loginSettingResponse .ToJsonString ())
863+ }
864+
849865 return nil
850866}
851867
0 commit comments