Regarding to your first question, change root password from vm, follow these steps:
Retrieves the password's identifier from the vm
https://$user:$apiKey@api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/$vsiId/getSoftwareComponents?objectMask=mask[passwords]
Method: Get
Replace $user, $apiKey and $vsiId with you own information
You will get a result like this:
hardwareId": null
"id": 345676755
"manufacturerLicenseInstance": "C412F72A-1BB1-4C07-9467-E55729234F8E"
"passwords": [1]
0: {
"createDate": "2016-06-09T11:10:28-03:00"
"id": 122333
"modifyDate": "2016-09-06T11:19:18-03:00"
"password": "Cochabamba"
"port": null
"softwareId": 11209641
"username": "Ruber"
"software": null
}
}
Then you can update using the following call:
https://$user:$apiKey@api.softlayer.com/rest/v3.1/SoftLayer_Software_Component_Password/$passwordId/editObject
Method: Post
{
"parameters":[
{
"username":"usernameTest",
"password":"Password*-"
}
]
}
Replace: $user, $apiKey and $passwordId with you own information, in this case the $passwordId is: 122333
Regarding to your second and third question, unfortunately it's not possible to do this through SoftLayer API, it is necessary to do an OS Reload