node.js - 使用 pkgcloud 在 OpenStack 中验证用户名和密码

标签 node.js openstack pkgcloud

我正在尝试调用 OpenStack 中的密码身份验证 API。这是我 curl 并获取访问 token 的 API: Password authentication with unscoped authorization

我想在 NodeJS 中做同样的事情,但我有点困惑。我可以这样做吗,因为我在想问题可能是不可能这样做;但这是我一直在尝试的代码:

var pkgcloud = require('pkgcloud');

var client = pkgcloud.compute.createClient({
    provider: 'openstack',
    username: <username>,
    password: <password>,
    authUrl: 'http://<ip>:<port>/',
    basePath: 'v3'
});
  client.getFlavors(function (err, flavors) {
    console.log("Error", err)
    console.log("Flavors", flavors)
})

client.getServers(function (err, servers) {
    console.log("Error", err)
    console.log("Servers", servers)
})

getFlavors 和 getServers 函数返回 405 不允许方法 - 所请求的 URL 不允许使用该方法。

我的代码有什么问题吗?如果我必须为 getFlavors 或任何其他函数使用另一个 URL,我应该把它放在哪里?

最佳答案

我按照 Iarsks 所说的做了,还添加了一个租户 ID,效果很好。

这是我使用的配置:

var config = {
    provider: 'openstack',
    keystoneAuthVersion: 'v3',
    authUrl: '...',
    domainId: 'default',
    username: <username>,
    password: <password>,
    region: <region name which is provided in the cloud.yaml file in OpenStack>,
    tenantId: <the same as the Project ID>
}

关于node.js - 使用 pkgcloud 在 OpenStack 中验证用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59909633/

相关文章:

node.js - 安装onchange和parallelshell node_modules后出现的以下错误有什么解决办法吗?

node.js - 如何创建早午餐插件?

javascript - 如何使用 Javascript 在网络中广播消息?

javascript - 如何查找Firestore( Node )中是否存在记录

ubuntu - 安装openstack的操作系统

ssl - kolla-ansible TLS 部署失败

openstack - 如何在不重启的情况下重新运行 cloud-init

node.js - 根据请求从缓冲区上传图像