@@ -9,6 +9,7 @@ package api
99
1010import (
1111 "bytes"
12+ "crypto/tls"
1213 "encoding/json"
1314 "fmt"
1415 "net/http"
@@ -43,6 +44,7 @@ type ScalewayAPI struct {
4344 // Cache is used to quickly resolve identifiers from names
4445 Cache * ScalewayCache
4546
47+ client * http.Client
4648 anonuuid anonuuid.AnonUUID
4749}
4850
@@ -543,13 +545,23 @@ func NewScalewayAPI(apiEndPoint, accountEndPoint, organization, token string) (*
543545 return nil , err
544546 }
545547 s := & ScalewayAPI {
548+ // exposed
546549 ComputeAPI : apiEndPoint ,
547550 AccountAPI : accountEndPoint ,
548551 APIUrl : apiEndPoint ,
549552 Organization : organization ,
550553 Token : token ,
551554 Cache : cache ,
552- anonuuid : * anonuuid .New (),
555+
556+ // internal
557+ anonuuid : * anonuuid .New (),
558+ client : & http.Client {},
559+ }
560+
561+ if os .Getenv ("SCALEWAY_TLSVERIFY" ) == "0" {
562+ s .client .Transport = & http.Transport {
563+ TLSClientConfig : & tls.Config {InsecureSkipVerify : true },
564+ }
553565 }
554566
555567 return s , nil
@@ -564,20 +576,18 @@ func (s *ScalewayAPI) Sync() {
564576func (s * ScalewayAPI ) GetResponse (resource string ) (* http.Response , error ) {
565577 uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
566578 log .Debugf ("GET %s" , uri )
567- client := & http.Client {}
568579 req , err := http .NewRequest ("GET" , uri , nil )
569580 if err != nil {
570581 return nil , err
571582 }
572583 req .Header .Set ("X-Auth-Token" , s .Token )
573584 req .Header .Set ("Content-Type" , "application/json" )
574- return client .Do (req )
585+ return s . client .Do (req )
575586}
576587
577588// PostResponse returns an http.Response object for the updated resource
578589func (s * ScalewayAPI ) PostResponse (resource string , data interface {}) (* http.Response , error ) {
579590 uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
580- client := & http.Client {}
581591 payload := new (bytes.Buffer )
582592 encoder := json .NewEncoder (payload )
583593 if err := encoder .Encode (data ); err != nil {
@@ -596,13 +606,12 @@ func (s *ScalewayAPI) PostResponse(resource string, data interface{}) (*http.Res
596606 }
597607 req .Header .Set ("X-Auth-Token" , s .Token )
598608 req .Header .Set ("Content-Type" , "application/json" )
599- return client .Do (req )
609+ return s . client .Do (req )
600610}
601611
602612// PatchResponse returns an http.Response object for the updated resource
603613func (s * ScalewayAPI ) PatchResponse (resource string , data interface {}) (* http.Response , error ) {
604614 uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
605- client := & http.Client {}
606615 payload := new (bytes.Buffer )
607616 encoder := json .NewEncoder (payload )
608617 if err := encoder .Encode (data ); err != nil {
@@ -621,13 +630,12 @@ func (s *ScalewayAPI) PatchResponse(resource string, data interface{}) (*http.Re
621630 }
622631 req .Header .Set ("X-Auth-Token" , s .Token )
623632 req .Header .Set ("Content-Type" , "application/json" )
624- return client .Do (req )
633+ return s . client .Do (req )
625634}
626635
627636// PutResponse returns an http.Response object for the updated resource
628637func (s * ScalewayAPI ) PutResponse (resource string , data interface {}) (* http.Response , error ) {
629638 uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
630- client := & http.Client {}
631639 payload := new (bytes.Buffer )
632640 encoder := json .NewEncoder (payload )
633641 if err := encoder .Encode (data ); err != nil {
@@ -646,21 +654,20 @@ func (s *ScalewayAPI) PutResponse(resource string, data interface{}) (*http.Resp
646654 }
647655 req .Header .Set ("X-Auth-Token" , s .Token )
648656 req .Header .Set ("Content-Type" , "application/json" )
649- return client .Do (req )
657+ return s . client .Do (req )
650658}
651659
652660// DeleteResponse returns an http.Response object for the deleted resource
653661func (s * ScalewayAPI ) DeleteResponse (resource string ) (* http.Response , error ) {
654662 uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
655- client := & http.Client {}
656663 log .Debugf ("DELETE %s" , uri )
657664 req , err := http .NewRequest ("DELETE" , uri , nil )
658665 if err != nil {
659666 return nil , err
660667 }
661668 req .Header .Set ("X-Auth-Token" , s .Token )
662669 req .Header .Set ("Content-Type" , "application/json" )
663- return client .Do (req )
670+ return s . client .Do (req )
664671}
665672
666673// GetServers gets the list of servers from the ScalewayAPI
0 commit comments