通过REST使用动态网络搜索从Infoblox WAPI服务器获取next_available_ip

时间:2016-01-06 17:10:19

标签: rest

我的Infoblox(IPAM)服务器中有一组网络对象,并希望根据对 extattr 的搜索,从其中一个分配IP地址字段。

每个网络对象都有一个名为 CITYCODE 的扩展属性,并且许多网络对该代码具有相同的值。我想从任何一个网络分配IP地址。

如何使用next_available_ip函数创建记录:host 对象,其中 IPV4ADDR 由next_available_ip函数决定?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,因为我花了一些其他的示例代码,我找到了一个完全适合我的代码。

首先,您需要一个JSON主体,它指定新记录的完全限定的名称:host 。为了我的目的,我只是生成随机值。请注意,该域必须已存在(可能是 zone:auth 对象)。

如果该域名尚不存在,您将收到错误消息:“不允许该操作。未找到父级。”

而不是指定实际的 ipv4addr ,而是指定目标对象以及将针对它运行的函数。由于我们要运行next_available_ip函数,因此对象是 network

我们想要进行的搜索是针对可扩展属性的,因此_object_parameters设置为“查找具有可扩展属性的网络,名为-CITYCODE-,值为-MZAPPKAK-。星号很重要,必须保留。” / p>

BODY='
{
    "name" : "staticip-d4260ed7-3101-4034-0f79-056b72b2c5f0.some-domain-that-exists.com",
    "ipv4addrs : [
        {
            "ipv4addr" : {
                "_object" : "network",
                "_object_function" : "next_available_ip",
                "_object_parameters" : {"*CITYCODE" : "MZAPPKAK"},
                "_object_field" : "value",
                "_result_field" : "ips",
                "_parameters" : {"num" : 1}
            }
        }
    ]
}

curl \
    'https://1.2.3.4/wapi/v2.2.1/record:host' \
    -H 'Content-Type: application/json' \
    -d "$BODY"

结果代码应为201,结果正文将是创建的记录:host 的REF。在返回的REF上进行标准GET,以了解找到的IP并将其放在记录中。