@@ -9,6 +9,7 @@ package api
9
9
10
10
import (
11
11
"bytes"
12
+ "crypto/tls"
12
13
"encoding/json"
13
14
"fmt"
14
15
"net/http"
@@ -43,6 +44,7 @@ type ScalewayAPI struct {
43
44
// Cache is used to quickly resolve identifiers from names
44
45
Cache * ScalewayCache
45
46
47
+ client * http.Client
46
48
anonuuid anonuuid.AnonUUID
47
49
}
48
50
@@ -543,13 +545,23 @@ func NewScalewayAPI(apiEndPoint, accountEndPoint, organization, token string) (*
543
545
return nil , err
544
546
}
545
547
s := & ScalewayAPI {
548
+ // exposed
546
549
ComputeAPI : apiEndPoint ,
547
550
AccountAPI : accountEndPoint ,
548
551
APIUrl : apiEndPoint ,
549
552
Organization : organization ,
550
553
Token : token ,
551
554
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
+ }
553
565
}
554
566
555
567
return s , nil
@@ -564,20 +576,18 @@ func (s *ScalewayAPI) Sync() {
564
576
func (s * ScalewayAPI ) GetResponse (resource string ) (* http.Response , error ) {
565
577
uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
566
578
log .Debugf ("GET %s" , uri )
567
- client := & http.Client {}
568
579
req , err := http .NewRequest ("GET" , uri , nil )
569
580
if err != nil {
570
581
return nil , err
571
582
}
572
583
req .Header .Set ("X-Auth-Token" , s .Token )
573
584
req .Header .Set ("Content-Type" , "application/json" )
574
- return client .Do (req )
585
+ return s . client .Do (req )
575
586
}
576
587
577
588
// PostResponse returns an http.Response object for the updated resource
578
589
func (s * ScalewayAPI ) PostResponse (resource string , data interface {}) (* http.Response , error ) {
579
590
uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
580
- client := & http.Client {}
581
591
payload := new (bytes.Buffer )
582
592
encoder := json .NewEncoder (payload )
583
593
if err := encoder .Encode (data ); err != nil {
@@ -596,13 +606,12 @@ func (s *ScalewayAPI) PostResponse(resource string, data interface{}) (*http.Res
596
606
}
597
607
req .Header .Set ("X-Auth-Token" , s .Token )
598
608
req .Header .Set ("Content-Type" , "application/json" )
599
- return client .Do (req )
609
+ return s . client .Do (req )
600
610
}
601
611
602
612
// PatchResponse returns an http.Response object for the updated resource
603
613
func (s * ScalewayAPI ) PatchResponse (resource string , data interface {}) (* http.Response , error ) {
604
614
uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
605
- client := & http.Client {}
606
615
payload := new (bytes.Buffer )
607
616
encoder := json .NewEncoder (payload )
608
617
if err := encoder .Encode (data ); err != nil {
@@ -621,13 +630,12 @@ func (s *ScalewayAPI) PatchResponse(resource string, data interface{}) (*http.Re
621
630
}
622
631
req .Header .Set ("X-Auth-Token" , s .Token )
623
632
req .Header .Set ("Content-Type" , "application/json" )
624
- return client .Do (req )
633
+ return s . client .Do (req )
625
634
}
626
635
627
636
// PutResponse returns an http.Response object for the updated resource
628
637
func (s * ScalewayAPI ) PutResponse (resource string , data interface {}) (* http.Response , error ) {
629
638
uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
630
- client := & http.Client {}
631
639
payload := new (bytes.Buffer )
632
640
encoder := json .NewEncoder (payload )
633
641
if err := encoder .Encode (data ); err != nil {
@@ -646,21 +654,20 @@ func (s *ScalewayAPI) PutResponse(resource string, data interface{}) (*http.Resp
646
654
}
647
655
req .Header .Set ("X-Auth-Token" , s .Token )
648
656
req .Header .Set ("Content-Type" , "application/json" )
649
- return client .Do (req )
657
+ return s . client .Do (req )
650
658
}
651
659
652
660
// DeleteResponse returns an http.Response object for the deleted resource
653
661
func (s * ScalewayAPI ) DeleteResponse (resource string ) (* http.Response , error ) {
654
662
uri := fmt .Sprintf ("%s/%s" , strings .TrimRight (s .APIUrl , "/" ), resource )
655
- client := & http.Client {}
656
663
log .Debugf ("DELETE %s" , uri )
657
664
req , err := http .NewRequest ("DELETE" , uri , nil )
658
665
if err != nil {
659
666
return nil , err
660
667
}
661
668
req .Header .Set ("X-Auth-Token" , s .Token )
662
669
req .Header .Set ("Content-Type" , "application/json" )
663
- return client .Do (req )
670
+ return s . client .Do (req )
664
671
}
665
672
666
673
// GetServers gets the list of servers from the ScalewayAPI
0 commit comments