2016-04-25 4 views
0

Ich versuche, ein Passwort/Benutzername des Betriebssystems mit Java-API in Softlayer zu aktualisieren. Aber nach dem Ausführen der API wird das Passwort nicht geändert. Hier ist der Code, den ich getestet habe. Bitte Kommentar mich, wenn Sie irgendwelche Zweifel finden. DankPasswort Update in SL

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"); 
       } 
      } 

     } 
    } 

Antwort

1

Bitte versuchen Sie folgendes: SoftLayer_Software_Component_Password::editObject

Unten ist ein REST Beispiel:

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" 
    } 
    ] 
} 

Auch zu bekommen Passwörter von Server-Software-Komponenten finden Sie unter:

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

Method: GET 
+0

Als Beispiel habe ich "editObject" erstellt, um es mit Passwort-Vorlage zu aktualisieren und es funktioniert gut. Lassen Sie mich aufschreiben, was ich als Referenz in Java für andere getan habe. Danke für Ihre Hilfe :) –

+0

Gern geschehen. – mcruz

0

Hier ist Java Beispielcode, um Software im Gerät zu aktualisieren.

 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);