Closed SchwarzM closed 6 years ago
You must pass a https capable transport to the client.
E.g. (see transport := httptransport.New(netboxHost, client.DefaultBasePath, []string{"https"})
)
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/digitalocean/go-netbox/netbox/client"
"github.com/digitalocean/go-netbox/netbox/client/tenancy"
"github.com/go-openapi/runtime"
httptransport "github.com/go-openapi/runtime/client"
"github.com/go-openapi/strfmt"
)
type TokenAuth struct {
token string
}
func (t TokenAuth) AuthenticateRequest(req runtime.ClientRequest, _ strfmt.Registry) error {
req.SetHeaderParam("Authorization", fmt.Sprintf("Token %s", t.token))
return nil
}
func main() {
token := os.Getenv("NETBOX_TOKEN")
if token == "" {
log.Fatal("No such NETBOX_TOKEN")
}
netboxHost := os.Getenv("NETBOX_HOST")
if netboxHost == "" {
log.Fatal("No such NETBOX_HOST")
}
keyTransport := TokenAuth{token: token}
transport := httptransport.New(netboxHost, client.DefaultBasePath, []string{"https"})
c := client.New(transport, nil)
limit := int64(2)
offset := int64(4)
x, err := c.Tenancy.TenancyTenantsList(&tenancy.TenancyTenantsListParams{
Limit: &limit,
Offset: &offset,
Context: context.Background(),
}, keyTransport)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Next: %s\n", x.Payload.Next)
fmt.Printf("Prev: %s\n", x.Payload.Previous)
for i, tx := range x.Payload.Results {
fmt.Printf("%d. %d - %s\n", i, tx.ID, tx.Name)
}
}
going to try this out thanks.
The snippet above does not work. Here is a working solution:
package main
import (
"os"
httptransport "github.com/go-openapi/runtime/client"
"github.com/netbox-community/go-netbox/netbox/client"
"github.com/netbox-community/go-netbox/netbox/client/dcim"
log "github.com/sirupsen/logrus"
)
func main() {
token := os.Getenv("NETBOX_TOKEN")
if token == "" {
log.Fatalf("Please provide netbox API token via env var NETBOX_TOKEN")
}
netboxHost := os.Getenv("NETBOX_HOST")
if netboxHost == "" {
log.Fatalf("Please provide netbox host via env var NETBOX_HOST")
}
transport := httptransport.New(netboxHost, client.DefaultBasePath, []string{"https"})
transport.DefaultAuthentication = httptransport.APIKeyAuth("Authorization", "header", "Token "+token)
c := client.New(transport, nil)
req := dcim.NewDcimSitesListParams()
res, err := c.Dcim.DcimSitesList(req, nil)
if err != nil {
log.Fatalf("Cannot get sites list: %v", err)
}
log.Infof("res: %v", res)
}
Hi,
love the new generated client but I am struggling to get this to make an https call: https://github.com/digitalocean/go-netbox/blob/master/netbox/client/ipam/ip_am_client.go#L56
Am I holding it wrong?