softlayer-client:无法通过REST API为User_Customer更新VPN

时间:2018-11-05 14:04:15

标签: node.js rest express ibm-cloud-infrastructure

我正在Node Express应用程序中尝试使用softlayer-client api包装器。我的目标是通过在特定用户上调用updateVpnPassword方法来更新User_Customer的VPN密码。

我可以使用request构造一个呼叫来实现VPN密码更新,但是我不确定这是达到预期结果的最佳方法。

是否可以使用softlayer-client模块对此进行类似的调用:

function updateVpnPassword(req, res, next) {

    // Construct URL to update VPN
    myURL = 'https://' + <userIDAdmin> + ':' + <apiKeyAdmin> + '@api.softlayer.com/rest/v3/SoftLayer_User_Customer/' + <softLayerID> + '/updateVpnPassword/' + <newPassword> + '.json';

    request.get({url: myURL}, function (error, response, body) {
        console.log('error:', error); 
        console.log('statusCode:', response && response.statusCode);
        console.log('body:', body); 
    });

    next();
}

我最初的尝试是尝试对此进行变化:

function updateVpnPassword(req, res, next) {

    // Assuming var client = new SoftLayer();
    client
        .auth(<userIDAdmin>, <apiKeyAdmin>)
        .path('User_Customer', <softLayerID>,'updateVpnPassword')
        .parameters(<newPassword>)
        .put(function(err,result){

         console.log(result);
            if (err) {
                next(err); // Pass errors to Express.
            }
            else {  
                // update successful
            }
        });
    next();
}

但是控制台日志给出了类似的错误响应      { message: { error: 'Internal Error', code: 'SoftLayer_Exception_Public' } }

我期望TRUE或FALSE响应,以指示更新是否成功。

here可以找到类似的python客户端,但是我需要用JS实现。

1 个答案:

答案 0 :(得分:0)

我对nodejs不熟悉,但是我安装了软件包softlayer-node并运行您的第二个代码即可。

我还创建了以下脚本,并获得TRUE

var username = 'set me';
var apikey = 'set me';
var userId = 1111111;

var SoftLayer = require('softlayer-node');
var client = new SoftLayer();

client
  .auth(username, apikey)
  .path('User_Custome', userId, 'updateVpnPassword')
  .parameters('P@ssword123')
  .put()
  .then(function(result) {
    console.log(result);
  }, function(error) {
    console.log(error);
  });

节点命令:

$ node updateVpnPassword.js
true

您是否尝试过使用curl或邮递员等其他REST客户端发送该请求?

如果遇到相同的错误,则建议您提交票证并提供信息,例如您试图更新vpn密码的用户ID和发送请求的用户。