Openstack4J API初体验之浮动IP的查询,关联和删除

6 篇文章 3 订阅
4 篇文章 0 订阅

今天写一个Openstack4J API操作浮动IP的例子。

首先看看有哪些浮动IP池:
代码:

OSClientV3 os = OSFactory.builderV3().endpoint("http://10.0.0.11:5000/v3")
                .credentials("zph", "123456", Identifier.byName("default"))
List<String> pools = os.compute().floatingIps().getPoolNames();
System.out.println(pools);

输出:
[ext_zwn]

这里写图片描述
事实上就是只有一个浮动ip池

现在我们来给一台实例添加浮动ip地址,分两种情况
第一种情况是没有装Neutron的
我现在有这样一台实例
这里写图片描述

这里写图片描述

注意到这台实例的标识是:11e44f47-d802-425c-8f6e-825eb751d070
他的固定IP是: 192.168.10.46

代码如下:

        OSClientV3 os = OSFactory.builderV3().endpoint("http://10.0.0.11:5000/v3")
                .credentials("zph", "123456", Identifier.byName("default"))
                .scopeToProject(Identifier.byId("7e0ba2f4b7e74f0eb21fec7642d42544")).authenticate();

        FloatingIP ip = os.compute().floatingIps().allocateIP("ext_zwn");//从上面查出来的浮动IP池中分配分配一个浮动ip地址
        System.out.println(ip);//看看分配的这个浮动IP长什么样子。

        ActionResponse r = os.compute().floatingIps().addFloatingIP(
                os.compute().servers().get("11e44f47-d802-425c-8f6e-825eb751d070"), "192.168.10.46",
                ip.getFloatingIpAddress());
        System.out.println(r);

这里说一下这个:

ActionResponse r = os.compute().floatingIps().addFloatingIP(
                os.compute().servers().get("11e44f47-d802-425c-8f6e-825eb751d070"), "192.168.10.46",ip.getFloatingIpAddress());

他的原型是这样:
这里写图片描述

ActionResponse r = os.compute().floatingIps().addFloatingIP(
                os.compute().servers().get("11e44f47-d802-425c-8f6e-825eb751d070"), "192.168.10.46",ip.getFloatingIpAddress());

第一个参数是把server传进去,我通过os.compute().servers().get()传入刚刚上面的那个实例的标识号拿到要分配浮动IP的Server
第二个参数就是固定的IP地址。
第三个是刚刚通过FloatingIP ip = os.compute().floatingIps().allocateIP(“ext_zwn”);返回的浮动IP地址

执行结果:
这里写图片描述

这里写图片描述
看到了吗 这里成功添加上了浮动IP

如果你装了Neutron的话分配浮动IP会更加方便:

        FloatingIP ip = os.compute().floatingIps().allocateIP("ext_zwn");
        NetFloatingIP netFloatingIP = os.networking().floatingip().get(ip.getId());
        Server server = os.compute().servers().get("11e44f47-d802-425c-8f6e-825eb751d070");
        ActionResponse r = os.compute().floatingIps().addFloatingIP(server, netFloatingIP.getFloatingIpAddress());
        System.out.println(r);

取消关联浮动IP:

ActionResponse r = os.compute().floatingIps().removeFloatingIP(server, "浮动IP地址");

结束~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值