README.md
1# Infoblox Go Client
2
3An Infoblox NIOS WAPI client library in Golang.
4The library enables us to do a CRUD oprations on NIOS Objects.
5
6This library is compatible with Go 1.2+
7
8- [Prerequisites](#Prerequisites)
9- [Installation](#Installation)
10- [Usage](#Usage)
11
12## Build Status
13
14| Master | Develop |
15| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
16| [![Build Status](https://travis-ci.org/infobloxopen/infoblox-go-client.svg?branch=master)](https://travis-ci.org/infobloxopen/infoblox-go-client) | [![Build Status](https://travis-ci.org/infobloxopen/infoblox-go-client.svg?branch=develop)](https://travis-ci.org/infobloxopen/infoblox-go-client) |
17
18
19## Prerequisites
20 * Infoblox GRID with 2.5 or above WAPI support
21 * Go 1.2 or above
22
23## Installation
24 go get github.com/infobloxopen/infoblox-go-client
25
26## Usage
27
28 The following is a very simple example for the client usage:
29
30 package main
31 import (
32 "fmt"
33 ibclient "github.com/infobloxopen/infoblox-go-client"
34 )
35
36 func main() {
37 hostConfig := ibclient.HostConfig{
38 Host: "<NIOS grid IP>",
39 Version: "<WAPI version>",
40 Port: "PORT",
41 Username: "username",
42 Password: "password",
43 }
44 transportConfig := ibclient.NewTransportConfig("false", 20, 10)
45 requestBuilder := &ibclient.WapiRequestBuilder{}
46 requestor := &ibclient.WapiHttpRequestor{}
47 conn, err := ibclient.NewConnector(hostConfig, transportConfig, requestBuilder, requestor)
48 if err != nil {
49 fmt.Println(err)
50 }
51 defer conn.Logout()
52 objMgr := ibclient.NewObjectManager(conn, "myclient", "")
53 //Fetches grid information
54 fmt.Println(objMgr.GetLicense())
55 }
56
57## Supported NIOS operations
58
59 * AllocateIP
60 * AllocateNetwork
61 * CreateARecord
62 * CreateZoneAuth
63 * CreateCNAMERecord
64 * CreateDefaultNetviews
65 * CreateEADefinition
66 * CreateHostRecord
67 * CreateNetwork
68 * CreateNetworkContainer
69 * CreateNetworkView
70 * CreatePTRRecord
71 * DeleteARecord
72 * DeleteZoneAuth
73 * DeleteCNAMERecord
74 * DeleteFixedAddress
75 * DeleteHostRecord
76 * DeleteNetwork
77 * DeleteNetworkView
78 * DeletePTRRecord
79 * GetAllMembers
80 * GetARecordByRef
81 * GetCapacityReport
82 * GetCNAMERecordByRef
83 * GetEADefinition
84 * GetFixedAddress
85 * GetFixedAddressByRef
86 * GetHostRecord
87 * GetHostRecordByRef
88 * GetIpAddressFromHostRecord
89 * GetNetwork
90 * GetNetworkContainer
91 * GetNetworkView
92 * GetPTRRecordByRef
93 * GetUpgradeStatus (2.7 or above)
94 * GetZoneAuthByRef
95 * ReleaseIP
96 * UpdateFixedAddress
97 * UpdateHostRecord
98 * UpdateNetworkViewEA
99 * UpdateARecord
100 * UpdateCNAMERecord
101
102The newly developed features will be available under `develop` branch. After validation they would be merged to `master`.
103