add netbox client
diff --git a/Gopkg.lock b/Gopkg.lock
index 2cecb7a..cebc34e 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -2,6 +2,141 @@
[[projects]]
+ digest = "1:d1665c44bd5db19aaee18d1b6233c99b0b9a986e8bccb24ef54747547a48027f"
+ name = "github.com/PuerkitoBio/purell"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4"
+ version = "v1.1.0"
+
+[[projects]]
+ branch = "master"
+ digest = "1:c739832d67eb1e9cc478a19cc1a1ccd78df0397bf8a32978b759152e205f644b"
+ name = "github.com/PuerkitoBio/urlesc"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "de5bf2ad457846296e2031421a34e2568e304e35"
+
+[[projects]]
+ digest = "1:320e7ead93de9fd2b0e59b50fd92a4d50c1f8ab455d96bc2eb083267453a9709"
+ name = "github.com/asaskevich/govalidator"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "ccb8e960c48f04d6935e72476ae4a51028f9e22f"
+ version = "v9"
+
+[[projects]]
+ branch = "master"
+ digest = "1:08aeb20c1d146f9254126139f272865927b6db288145f88f0a3baacc24ddfa24"
+ name = "github.com/digitalocean/go-netbox"
+ packages = [
+ "netbox",
+ "netbox/client",
+ "netbox/client/circuits",
+ "netbox/client/dcim",
+ "netbox/client/extras",
+ "netbox/client/ipam",
+ "netbox/client/secrets",
+ "netbox/client/tenancy",
+ "netbox/client/virtualization",
+ "netbox/models",
+ ]
+ pruneopts = "UT"
+ revision = "29433ec527e78486ea0a5758817ab672d977f90e"
+
+[[projects]]
+ digest = "1:50d6bc4aa3e70803230bb98a4b0e0f1331fefc2eb324e087adf7e986b8da082e"
+ name = "github.com/go-openapi/analysis"
+ packages = [
+ ".",
+ "internal",
+ ]
+ pruneopts = "UT"
+ revision = "7c1bef8f6d9fa6148ce0d8a0ebf5339a084a6639"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:7a90552bf0ad97b41a4ac036d42aad77956c19b28398188ff7a5cc70b0c8bbf4"
+ name = "github.com/go-openapi/errors"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "b2b2befaf267d082d779bcef52d682a47c779517"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:2997679181d901ac8aaf4330d11138ecf3974c6d3334995ff36f20cbd597daf8"
+ name = "github.com/go-openapi/jsonpointer"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "3a0015ad55fa9873f41605d3e8f28cd279c32ab2"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:1ae3f233d75a731b164ca9feafd8ed646cbedf1784095876ed6988ce8aa88b1f"
+ name = "github.com/go-openapi/jsonreference"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "3fb327e6747da3043567ee86abd02bb6376b6be2"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:ff04019588fc028ac28c3c565ce5316461a4641df197555041ee66cf45d213e3"
+ name = "github.com/go-openapi/loads"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "2a2b323bab96e6b1fdee110e57d959322446e9c9"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:c25a920b07bc286d3cf03cf32bfdf97c3281ec3638dac77658b6bbbb4c8c61a8"
+ name = "github.com/go-openapi/runtime"
+ packages = [
+ ".",
+ "client",
+ "logger",
+ "middleware",
+ "middleware/denco",
+ "middleware/header",
+ "middleware/untyped",
+ "security",
+ ]
+ pruneopts = "UT"
+ revision = "9a3091f566c0811ef4d54b535179bc0fc484a11f"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:3e5bdbd2a071c72c778c28fd7b5dfde95cdfbcef412f364377e031877205e418"
+ name = "github.com/go-openapi/spec"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "384415f06ee238aae1df5caad877de6ceac3a5c4"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:c19e41854708ff52816cff12f30d454135f350a1e4fe6ab62a8be8df75458eb0"
+ name = "github.com/go-openapi/strfmt"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "913ee058e387ac83a67e2d9f13acecdcd5769fc6"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:c80984d4a9bb79539743aff5af91b595d84f513700150b0ed73c1697d1200d54"
+ name = "github.com/go-openapi/swag"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "becd2f08beafcca035645a8a101e0e3e18140458"
+ version = "0.16.0"
+
+[[projects]]
+ digest = "1:b0fa3721f1aeaf3aca9678376b393dffdfdd7415d65db9207ca7bcaf3f893f7f"
+ name = "github.com/go-openapi/validate"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "7c1911976134d3a24d0c03127505163c9f16aa3b"
+ version = "0.16.0"
+
+[[projects]]
branch = "master"
digest = "1:1ba1d79f2810270045c328ae5d674321db34e3aae468eb4233883b473c5c0467"
name = "github.com/golang/glog"
@@ -25,10 +160,31 @@
[[projects]]
branch = "master"
- digest = "1:505dbee0833715a72a529bb57c354826ad42a4496fad787fa143699b4de1a6d0"
+ digest = "1:84a5a2b67486d5d67060ac393aa255d05d24ed5ee41daecd5635ec22657b6492"
+ name = "github.com/mailru/easyjson"
+ packages = [
+ "buffer",
+ "jlexer",
+ "jwriter",
+ ]
+ pruneopts = "UT"
+ revision = "60711f1a8329503b04e1c88535f419d0bb440bff"
+
+[[projects]]
+ digest = "1:53bc4cd4914cd7cd52139990d5170d6dc99067ae31c56530621b18b35fc30318"
+ name = "github.com/mitchellh/mapstructure"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "3536a929edddb9a5b34bd6861dc4a9647cb459fe"
+ version = "v1.1.2"
+
+[[projects]]
+ branch = "master"
+ digest = "1:1ae047ded1ddcbe0eca8b0772e3ff2c10e354db4c42c65b96d0386883e63904d"
name = "golang.org/x/net"
packages = [
"context",
+ "context/ctxhttp",
"http/httpguts",
"http2",
"http2/hpack",
@@ -48,7 +204,7 @@
revision = "4497e2df6f9e69048a54498c7affbbec3294ad47"
[[projects]]
- digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18"
+ digest = "1:0c56024909189aee3364b7f21a95a27459f718aa7c199a5c111c36cfffd9eaef"
name = "golang.org/x/text"
packages = [
"collate",
@@ -65,6 +221,7 @@
"unicode/cldr",
"unicode/norm",
"unicode/rangetable",
+ "width",
]
pruneopts = "UT"
revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"
@@ -113,10 +270,31 @@
revision = "8dea3dc473e90c8179e519d91302d0597c0ca1d1"
version = "v1.15.0"
+[[projects]]
+ branch = "v2"
+ digest = "1:2642fd0b6900c77247d61d80cf2eb59a374ef4ffc2d25a1b95b87dc355b2894e"
+ name = "gopkg.in/mgo.v2"
+ packages = [
+ "bson",
+ "internal/json",
+ ]
+ pruneopts = "UT"
+ revision = "9856a29383ce1c59f308dd1cf0363a79b5bef6b5"
+
+[[projects]]
+ digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202"
+ name = "gopkg.in/yaml.v2"
+ packages = ["."]
+ pruneopts = "UT"
+ revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
+ version = "v2.2.1"
+
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
input-imports = [
+ "github.com/digitalocean/go-netbox/netbox",
+ "github.com/digitalocean/go-netbox/netbox/client/dcim",
"github.com/golang/glog",
"github.com/golang/protobuf/proto",
"golang.org/x/net/context",
diff --git a/main.go b/main.go
index 0314b7d..7d213f3 100644
--- a/main.go
+++ b/main.go
@@ -1,9 +1,14 @@
package main
import (
+ "context"
"flag"
"io/ioutil"
+ "github.com/digitalocean/go-netbox/netbox"
+ "github.com/digitalocean/go-netbox/netbox/client"
+ "github.com/digitalocean/go-netbox/netbox/client/dcim"
+ "github.com/go-openapi/swag"
"github.com/golang/glog"
"github.com/golang/protobuf/proto"
@@ -11,7 +16,9 @@
)
var (
- flagConfigPath string
+ flagConfigPath string
+ flagNetboxHost string
+ flagNetboxAPIKey string
)
func init() {
@@ -20,6 +27,8 @@
func main() {
flag.StringVar(&flagConfigPath, "config_path", "./topo.pb.text", "Text proto configuration of Topo (per config.proto)")
+ flag.StringVar(&flagNetboxHost, "netbox_host", "nebtox.bgp.wtf", "Netbox host")
+ flag.StringVar(&flagNetboxAPIKey, "netbox_api_key", "", "Netbox API key")
flag.Parse()
data, err := ioutil.ReadFile(flagConfigPath)
@@ -30,4 +39,13 @@
config := confpb.Config{}
proto.UnmarshalText(string(data), &config)
glog.Infof("%+v", config)
+
+ client.DefaultSchemes = []string{"https"}
+ nb := netbox.NewNetboxWithAPIKey(flagNetboxHost, flagNetboxAPIKey)
+ req := &dcim.DcimInterfaceConnectionsListParams{
+ Device: swag.String("bc01n01"),
+ Context: context.Background(),
+ }
+ res, err := nb.Dcim.DcimInterfaceConnectionsList(req, nil)
+ glog.Infof("%+v, %v", res, err)
}