From 37458a35ed30f7bbdc38c812738a9aec1b85e1c7 Mon Sep 17 00:00:00 2001 From: Kalle Carlbark Date: Wed, 11 Sep 2019 11:39:31 +0200 Subject: [PATCH] Fix ListInterfaces --- netbox_interfaces.go | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/netbox_interfaces.go b/netbox_interfaces.go index c5f6cbb..82ead2d 100644 --- a/netbox_interfaces.go +++ b/netbox_interfaces.go @@ -4,9 +4,10 @@ import ( "bytes" "crypto/tls" "encoding/json" - "fmt" + // "fmt" "github.com/gorilla/schema" "github.com/pkg/errors" + "io/ioutil" "net/http" "net/url" "time" @@ -117,7 +118,39 @@ func (i *Dcim_Interfaces_List) ListInterfaces(n *NetBox, f *InterfaceFilter) err return err } query := form.Encode() - fmt.Println(query) + + transport := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: n.InsecureSkipVerify}, + } + timeout := time.Duration(60 * time.Second) + client := &http.Client{ + Timeout: timeout, + Transport: transport, + } + request, err := http.NewRequest("GET", n.RootURL+"/api/dcim/interfaces/?"+query, nil) + if err != nil { + return err + } + request.Header.Add("Accept", "application/json") + request.Header.Add("Authorization", " Token "+n.Token) + response, err := client.Do(request) + if err != nil { + return err + } + + if response.StatusCode != http.StatusOK { + return errors.Errorf("Error: response was: %d should be %d\n", response.StatusCode, http.StatusOK) + } + + data, err := ioutil.ReadAll(response.Body) + if err != nil { + return err + } + + err = json.Unmarshal(data, &i) + if err != nil { + return err + } return nil } @@ -134,7 +167,6 @@ func (i *Dcim_Interfaces_Create) CreateInterfaces(n *NetBox) error { Timeout: timeout, Transport: transport, } - fmt.Println(bytes.NewBuffer(interfaceData)) request, err := http.NewRequest("POST", n.RootURL+"/api/dcim/interfaces/", bytes.NewBuffer(interfaceData)) if err != nil { return err