1
0
Fork 0

add netbox client

master
q3k 2018-10-05 16:35:01 -07:00
parent 0d3a6cc3ad
commit 88b572d74f
2 changed files with 199 additions and 3 deletions

182
Gopkg.lock generated
View File

@ -1,6 +1,141 @@
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[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"
@ -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",

20
main.go
View File

@ -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 @@ import (
)
var (
flagConfigPath string
flagConfigPath string
flagNetboxHost string
flagNetboxAPIKey string
)
func init() {
@ -20,6 +27,8 @@ func init() {
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 @@ func main() {
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)
}