首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openstack4j将请求发送到错误的主机

openstack4j将请求发送到错误的主机
EN

Stack Overflow用户
提问于 2019-04-20 04:39:09
回答 1查看 87关注 0票数 0

我有一个在Google Cloud Plataform VM上运行的OpenStack。尽管我创建了一个带有外部IP的openstack4j操作系统,但当我调用任何方法时,我都会得到connect timed out,因为openstack4j使用的是内部IP。在调用像os.compute().flavors().list()这样的方法时,我可以手动设置我的主机吗

代码语言:javascript
复制
        OSClient.OSClientV3 os = OSFactory.builderV3()
                .endpoint("http://external_ip:5000/v3")
                .credentials("admin", "pass", domain)
                .scopeToProject(project)
                .authenticate();

        os.compute().flavors().list();

使用OSFactory.enableHttpLoggingFilter(true);,我发现flavors.list正在调用http://internal_ip:8774/v2.1/.../flavors/detail

另一件奇怪的事情是,如果我删除.scopeToProject(project)并调用相同的flavors.list方法,则调用外部ip,但不返回任何风格(有问题,因为它应该坚持一个项目)。

为什么flavors.list呼叫我的GCP虚拟机的内部IP?我可以设置为external吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-20 13:27:23

正如@larsks建议的那样,我必须告诉openstak4j需要使用外部IP。为了解决这个问题,我用我的公网IP添加了一个指令:.withConfig(Config.newConfig().withEndpointNATResolution("x.x.x.x"))。新的验证码:

代码语言:javascript
复制
OSClient.OSClientV3 os = OSFactory.builderV3()
   .endpoint("http://external_ip:5000/v3")
   .credentials("admin", "pass", domain)
   .scopeToProject(project)
   .authenticate();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55767604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档