Are you interested in our Early Access Program (EAP)? This program allows you to preview code, test in your lab and provide feedback prior to General Availability (GA) release of all Infoblox products. If so, please click the link here.

API & Integration, DevOps,NetOps,SecOps

Reply

Golang Infoblox API

Member
Posts: 1
2199     0

Hi,

I'm a newbie to infoblox and trying to use the official (?!) go library "github.com/infobloxopen/infoblox-go-client"

to interact with infoblox WAPI.

Are there any examples of creating/fetching Infoblox objects (eg. record host etc). 

I am trying things like below:

 

transportConfig := ibclient.NewTransportConfig("false", 20, 10)
	requestBuilder := &ibclient.WapiRequestBuilder{}
	requestor := &ibclient.WapiHttpRequestor{}
	conn, err := ibclient.NewConnector(hostConfig, transportConfig, requestBuilder,
		requestor)
	if err != nil {
		fmt.Printf("ibclient.NewConnector(): %s", err)
	}
	defer conn.Logout()
	objMgr := ibclient.NewObjectManager(conn, "myclient", "")
	ibNtw, err := objMgr.CreateNetwork("", "10.10.0.0/16", "")

	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(ibNtw.Ref)

And I get error like so:

2019/06/19 17:38:08 WAPI request error: 400('400 Bad Request')
Contents:
{ "Error": "AdmConProtoError: Unknown extensible attribute: Cloud API Owned",
  "code": "Client.Ibap.Proto",
  "text": "Unknown extensible attribute: Cloud API Owned"
}

OR even trying to get a host record:

transportConfig := ibclient.NewTransportConfig("false", 20, 10)
	requestBuilder := &ibclient.WapiRequestBuilder{}
	requestor := &ibclient.WapiHttpRequestor{}
	conn, err := ibclient.NewConnector(hostConfig, transportConfig, requestBuilder,
		requestor)
	if err != nil {
		fmt.Printf("ibclient.NewConnector(): %s", err)
	}
	defer conn.Logout()
	objMgr := ibclient.NewObjectManager(conn, "myclient", "")
	
	hostRec, err := objMgr.GetHostRecord("record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNvbS56b25lLmhvc3Q:host.zone.com/default")

	if err != nil {
		fmt.Printf("objMgr.GetHostRecord(): %s", err)
	}

	fmt.Printf("Record Name: %s", hostRec.Name)

I get the following error:

 

2019/06/19 17:44:37 Cannot unmarshall to check empty value '{
    "_ref": "record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNvbS56b25lLmhvc3Q:host.zone.com/default",
    "extattrs": {},
    "ipv4addrs": [
        {
            "_ref": "record:host_ipv4addr/ZG5zLmhvc3RfYWRkcmVzcyQuX2RlZmF1bHQuY29tLnpvbmUuaG9zdC4xMC4yMjIuMC4xMi4:10.222.0.12/host.zone.com/default",
            "configure_for_dhcp": false,
            "host": "host.zone.com",
            "ipv4addr": "10.222.0.12"
        }
    ],
    "name": "host.zone.com",
    "view": "default",
    "zone": "zone.com"
}', err: 'json: cannot unmarshal object into Go value of type []map[string]interface {}'
Record Name: host.zone.com%
Showing results for 
Search instead for 
Did you mean: 

Recommended for You