Password Update in SL

喜夏-厌秋 提交于 2019-12-04 06:32:50

问题


I am trying to update a password/Username of OS using Java API in Softlayer. But after executing API, Password is not modified. Here is the code i've tested. Please comment me if you find any doubts. Thanks

import com.softlayer.api.ApiClient;
import com.softlayer.api.RestApiClient;
import com.softlayer.api.service.Hardware;
import com.softlayer.api.service.hardware.Server;
import com.softlayer.api.service.software.Component;
import com.softlayer.api.service.software.Description;
import com.softlayer.api.service.virtual.Guest;


        public void deviceSoftcomp_BM_reName() throws Exception {

        Server.Service bmService = Server.service(client, 8045737l);

        bmService.withMask().softwareComponents().passwords().username().password();
        bmService.withMask().softwareComponents().softwareDescription().name();

        Hardware hd = bmService.getObject();

        List<Component> compList =  hd.getSoftwareComponents();

        for (Component comp : compList) {
            Description desc = comp.getSoftwareDescription();
            System.out.println(" software name : " + desc.getName());
            Long softId = comp.getId();
            System.out.println(" software id : " + softId);


            List<com.softlayer.api.service.software.component.Password> passList = comp.getPasswords();

            for (com.softlayer.api.service.software.component.Password password : passList) {

                System.out.println(" Username : " + password.getUsername());
                System.out.println(" Password : " + password.getPassword());

                if(softId == 9824519){
                    System.out.println("--- Rename OS name " );
                    password.setUsername("newUser");
                    password.setPassword("xfdgasdf123");
                }
            }

        }
    }

回答1:


Please try the following: SoftLayer_Software_Component_Password::editObject

Below is a REST example:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Software_Component_Password/[comp_pass_id]/editObject

Method: POST

Json Payload:
{
  "parameters": [
    {
      "password": "myPassEdited",
      "username": "myUserEdited"
    }
  ]
}

Also, to get passwords of server software components, please see:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Hardware/[server_id]/getSoftwareComponents?objectMask=mask[passwords]

Method: GET



回答2:


Here is java sample code to update software in device.

     com.softlayer.api.service.software.component.Password passtemplate =
     new com.softlayer.api.service.software.component.Password();
     passtemplate.setUsername("newUserName");
     passtemplate.setPassword("123456abcDF");

    com.softlayer.api.service.software.component.Password.Service passService = com.softlayer.api.service.software.component.Password
            .service(client, 10000000l); // Client and password ID
    passService.editObject(passtemplate);


来源:https://stackoverflow.com/questions/36841283/password-update-in-sl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!