diff --git a/vendor/github.com/denverdino/aliyungo/common/client.go b/vendor/github.com/denverdino/aliyungo/common/client.go
old mode 100755
new mode 100644
index 10dcd9000..436b239b2
--- a/vendor/github.com/denverdino/aliyungo/common/client.go
+++ b/vendor/github.com/denverdino/aliyungo/common/client.go
@@ -9,10 +9,10 @@ import (
"log"
"net/http"
"net/url"
- "strings"
- "time"
"os"
"strconv"
+ "strings"
+ "time"
"github.com/denverdino/aliyungo/util"
)
@@ -43,7 +43,11 @@ type Client struct {
// Initialize properties of a client instance
func (client *Client) Init(endpoint, version, accessKeyId, accessKeySecret string) {
client.AccessKeyId = accessKeyId
- client.AccessKeySecret = accessKeySecret + "&"
+ ak := accessKeySecret
+ if !strings.HasSuffix(ak, "&") {
+ ak += "&"
+ }
+ client.AccessKeySecret = ak
client.debug = false
handshakeTimeout, err := strconv.Atoi(os.Getenv("TLSHandshakeTimeout"))
if err != nil {
@@ -53,8 +57,8 @@ func (client *Client) Init(endpoint, version, accessKeyId, accessKeySecret strin
client.httpClient = &http.Client{}
} else {
t := &http.Transport{
- TLSHandshakeTimeout: time.Duration(handshakeTimeout) * time.Second,}
- client.httpClient = &http.Client{Transport: t,}
+ TLSHandshakeTimeout: time.Duration(handshakeTimeout) * time.Second}
+ client.httpClient = &http.Client{Transport: t}
}
client.endpoint = endpoint
client.version = version
@@ -65,7 +69,7 @@ func (client *Client) NewInit(endpoint, version, accessKeyId, accessKeySecret, s
client.Init(endpoint, version, accessKeyId, accessKeySecret)
client.serviceCode = serviceCode
client.regionID = regionID
- client.setEndpointByLocation(regionID, serviceCode, accessKeyId, accessKeySecret)
+ client.setEndpointByLocation(regionID, serviceCode, accessKeyId, accessKeySecret, client.securityToken)
}
// Intialize client object when all properties are ready
@@ -79,16 +83,21 @@ func (client *Client) InitClient() *Client {
client.httpClient = &http.Client{}
} else {
t := &http.Transport{
- TLSHandshakeTimeout: time.Duration(handshakeTimeout) * time.Second,}
- client.httpClient = &http.Client{Transport: t,}
+ TLSHandshakeTimeout: time.Duration(handshakeTimeout) * time.Second}
+ client.httpClient = &http.Client{Transport: t}
}
- client.setEndpointByLocation(client.regionID, client.serviceCode, client.AccessKeyId, client.AccessKeySecret)
+ client.setEndpointByLocation(client.regionID, client.serviceCode, client.AccessKeyId, client.AccessKeySecret, client.securityToken)
return client
}
+func (client *Client) NewInitForAssumeRole(endpoint, version, accessKeyId, accessKeySecret, serviceCode string, regionID Region, securityToken string) {
+ client.NewInit(endpoint, version, accessKeyId, accessKeySecret, serviceCode, regionID)
+ client.securityToken = securityToken
+}
+
//NewClient using location service
-func (client *Client) setEndpointByLocation(region Region, serviceCode, accessKeyId, accessKeySecret string) {
- locationClient := NewLocationClient(accessKeyId, accessKeySecret)
+func (client *Client) setEndpointByLocation(region Region, serviceCode, accessKeyId, accessKeySecret, securityToken string) {
+ locationClient := NewLocationClient(accessKeyId, accessKeySecret, securityToken)
ep := locationClient.DescribeOpenAPIEndpoint(region, serviceCode)
if ep == "" {
ep = loadEndpointFromFile(region, serviceCode)
@@ -218,11 +227,6 @@ func (client *Client) SetAccessKeySecret(secret string) {
client.AccessKeySecret = secret + "&"
}
-// SetAccessKeySecret sets securityToken
-func (client *Client) SetSecurityToken(securityToken string) {
- client.securityToken = securityToken
-}
-
// SetDebug sets debug mode to log the request/response message
func (client *Client) SetDebug(debug bool) {
client.debug = debug
@@ -242,6 +246,11 @@ func (client *Client) SetUserAgent(userAgent string) {
client.userAgent = userAgent
}
+//set SecurityToken
+func (client *Client) SetSecurityToken(securityToken string) {
+ client.securityToken = securityToken
+}
+
// Invoke sends the raw HTTP request for ECS services
func (client *Client) Invoke(action string, args interface{}, response interface{}) error {
if err := client.ensureProperties(); err != nil {
@@ -268,6 +277,7 @@ func (client *Client) Invoke(action string, args interface{}, response interface
// TODO move to util and add build val flag
httpReq.Header.Set("X-SDK-Client", `AliyunGO/`+Version+client.businessInfo)
+
httpReq.Header.Set("User-Agent", httpReq.UserAgent()+" "+client.userAgent)
t0 := time.Now()
@@ -341,6 +351,7 @@ func (client *Client) InvokeByFlattenMethod(action string, args interface{}, res
// TODO move to util and add build val flag
httpReq.Header.Set("X-SDK-Client", `AliyunGO/`+Version+client.businessInfo)
+
httpReq.Header.Set("User-Agent", httpReq.UserAgent()+" "+client.userAgent)
t0 := time.Now()
@@ -397,7 +408,6 @@ func (client *Client) InvokeByAnyMethod(method, action, path string, args interf
request := Request{}
request.init(client.version, action, client.AccessKeyId, client.securityToken, client.regionID)
-
data := util.ConvertToQueryValues(request)
util.SetQueryValues(args, &data)
diff --git a/vendor/github.com/denverdino/aliyungo/common/endpoint.go b/vendor/github.com/denverdino/aliyungo/common/endpoint.go
index 16bcbf9d6..786606cf3 100644
--- a/vendor/github.com/denverdino/aliyungo/common/endpoint.go
+++ b/vendor/github.com/denverdino/aliyungo/common/endpoint.go
@@ -18,6 +18,51 @@ const (
var (
endpoints = make(map[Region]map[string]string)
+
+ SpecailEnpoints = map[Region]map[string]string{
+ APNorthEast1: {
+ "ecs": "https://ecs.ap-northeast-1.aliyuncs.com",
+ "slb": "https://slb.ap-northeast-1.aliyuncs.com",
+ "rds": "https://rds.ap-northeast-1.aliyuncs.com",
+ "vpc": "https://vpc.ap-northeast-1.aliyuncs.com",
+ },
+ APSouthEast2: {
+ "ecs": "https://ecs.ap-southeast-2.aliyuncs.com",
+ "slb": "https://slb.ap-southeast-2.aliyuncs.com",
+ "rds": "https://rds.ap-southeast-2.aliyuncs.com",
+ "vpc": "https://vpc.ap-southeast-2.aliyuncs.com",
+ },
+ APSouthEast3: {
+ "ecs": "https://ecs.ap-southeast-3.aliyuncs.com",
+ "slb": "https://slb.ap-southeast-3.aliyuncs.com",
+ "rds": "https://rds.ap-southeast-3.aliyuncs.com",
+ "vpc": "https://vpc.ap-southeast-3.aliyuncs.com",
+ },
+ MEEast1: {
+ "ecs": "https://ecs.me-east-1.aliyuncs.com",
+ "slb": "https://slb.me-east-1.aliyuncs.com",
+ "rds": "https://rds.me-east-1.aliyuncs.com",
+ "vpc": "https://vpc.me-east-1.aliyuncs.com",
+ },
+ EUCentral1: {
+ "ecs": "https://ecs.eu-central-1.aliyuncs.com",
+ "slb": "https://slb.eu-central-1.aliyuncs.com",
+ "rds": "https://rds.eu-central-1.aliyuncs.com",
+ "vpc": "https://vpc.eu-central-1.aliyuncs.com",
+ },
+ Zhangjiakou: {
+ "ecs": "https://ecs.cn-zhangjiakou.aliyuncs.com",
+ "slb": "https://slb.cn-zhangjiakou.aliyuncs.com",
+ "rds": "https://rds.cn-zhangjiakou.aliyuncs.com",
+ "vpc": "https://vpc.cn-zhangjiakou.aliyuncs.com",
+ },
+ Huhehaote: {
+ "ecs": "https://ecs.cn-huhehaote.aliyuncs.com",
+ "slb": "https://slb.cn-huhehaote.aliyuncs.com",
+ "rds": "https://rds.cn-huhehaote.aliyuncs.com",
+ "vpc": "https://vpc.cn-huhehaote.aliyuncs.com",
+ },
+ }
)
//init endpoints from file
@@ -25,18 +70,39 @@ func init() {
}
-func NewLocationClient(accessKeyId, accessKeySecret string) *Client {
+type LocationClient struct {
+ Client
+}
+
+func NewLocationClient(accessKeyId, accessKeySecret, securityToken string) *LocationClient {
endpoint := os.Getenv("LOCATION_ENDPOINT")
if endpoint == "" {
endpoint = locationDefaultEndpoint
}
- client := &Client{}
+ client := &LocationClient{}
client.Init(endpoint, locationAPIVersion, accessKeyId, accessKeySecret)
+ client.securityToken = securityToken
return client
}
-func (client *Client) DescribeEndpoint(args *DescribeEndpointArgs) (*DescribeEndpointResponse, error) {
+func NewLocationClientWithSecurityToken(accessKeyId, accessKeySecret, securityToken string) *LocationClient {
+ endpoint := os.Getenv("LOCATION_ENDPOINT")
+ if endpoint == "" {
+ endpoint = locationDefaultEndpoint
+ }
+
+ client := &LocationClient{}
+ client.WithEndpoint(endpoint).
+ WithVersion(locationAPIVersion).
+ WithAccessKeyId(accessKeyId).
+ WithAccessKeySecret(accessKeySecret).
+ WithSecurityToken(securityToken).
+ InitClient()
+ return client
+}
+
+func (client *LocationClient) DescribeEndpoint(args *DescribeEndpointArgs) (*DescribeEndpointResponse, error) {
response := &DescribeEndpointResponse{}
err := client.Invoke("DescribeEndpoint", args, response)
if err != nil {
@@ -45,6 +111,15 @@ func (client *Client) DescribeEndpoint(args *DescribeEndpointArgs) (*DescribeEnd
return response, err
}
+func (client *LocationClient) DescribeEndpoints(args *DescribeEndpointsArgs) (*DescribeEndpointsResponse, error) {
+ response := &DescribeEndpointsResponse{}
+ err := client.Invoke("DescribeEndpoints", args, response)
+ if err != nil {
+ return nil, err
+ }
+ return response, err
+}
+
func getProductRegionEndpoint(region Region, serviceCode string) string {
if sp, ok := endpoints[region]; ok {
if endpoint, ok := sp[serviceCode]; ok {
@@ -61,34 +136,34 @@ func setProductRegionEndpoint(region Region, serviceCode string, endpoint string
}
}
-func (client *Client) DescribeOpenAPIEndpoint(region Region, serviceCode string) string {
+func (client *LocationClient) DescribeOpenAPIEndpoint(region Region, serviceCode string) string {
if endpoint := getProductRegionEndpoint(region, serviceCode); endpoint != "" {
return endpoint
}
defaultProtocols := HTTP_PROTOCOL
- args := &DescribeEndpointArgs{
+ args := &DescribeEndpointsArgs{
Id: region,
ServiceCode: serviceCode,
Type: "openAPI",
}
- endpoint, err := client.DescribeEndpoint(args)
- if err != nil || endpoint.Endpoint == "" {
+ endpoint, err := client.DescribeEndpoints(args)
+ if err != nil || len(endpoint.Endpoints.Endpoint) <= 0 {
return ""
}
- for _, protocol := range endpoint.Protocols.Protocols {
+ for _, protocol := range endpoint.Endpoints.Endpoint[0].Protocols.Protocols {
if strings.ToLower(protocol) == HTTPS_PROTOCOL {
defaultProtocols = HTTPS_PROTOCOL
break
}
}
- ep := fmt.Sprintf("%s://%s", defaultProtocols, endpoint.Endpoint)
+ ep := fmt.Sprintf("%s://%s", defaultProtocols, endpoint.Endpoints.Endpoint[0].Endpoint)
- setProductRegionEndpoint(region, serviceCode, ep)
+ //setProductRegionEndpoint(region, serviceCode, ep)
return ep
}
@@ -97,13 +172,11 @@ func loadEndpointFromFile(region Region, serviceCode string) string {
if err != nil {
return ""
}
-
var endpoints Endpoints
err = xml.Unmarshal(data, &endpoints)
if err != nil {
return ""
}
-
for _, endpoint := range endpoints.Endpoint {
if endpoint.RegionIds.RegionId == string(region) {
for _, product := range endpoint.Products.Product {
diff --git a/vendor/github.com/denverdino/aliyungo/common/endpoints.xml b/vendor/github.com/denverdino/aliyungo/common/endpoints.xml
index 4079bcd2b..21f3a0b2e 100644
--- a/vendor/github.com/denverdino/aliyungo/common/endpoints.xml
+++ b/vendor/github.com/denverdino/aliyungo/common/endpoints.xml
@@ -1346,4 +1346,14 @@
Slbslb.cn-zhangjiakou.aliyuncs.com
+
+ cn-huhehaote
+
+ Rdsrds.cn-huhehaote.aliyuncs.com
+ Ecsecs.cn-huhehaote.aliyuncs.com
+ Vpcvpc.cn-huhehaote.aliyuncs.com
+ Cmsmetrics.cn-hangzhou.aliyuncs.com
+ Slbslb.cn-huhehaote.aliyuncs.com
+
+
diff --git a/vendor/github.com/denverdino/aliyungo/common/regions.go b/vendor/github.com/denverdino/aliyungo/common/regions.go
index c87fe0691..38b14dd86 100644
--- a/vendor/github.com/denverdino/aliyungo/common/regions.go
+++ b/vendor/github.com/denverdino/aliyungo/common/regions.go
@@ -12,11 +12,15 @@ const (
Shenzhen = Region("cn-shenzhen")
Shanghai = Region("cn-shanghai")
Zhangjiakou = Region("cn-zhangjiakou")
+ Huhehaote = Region("cn-huhehaote")
APSouthEast1 = Region("ap-southeast-1")
APNorthEast1 = Region("ap-northeast-1")
APSouthEast2 = Region("ap-southeast-2")
APSouthEast3 = Region("ap-southeast-3")
+ APSouthEast5 = Region("ap-southeast-5")
+
+ APSouth1 = Region("ap-south-1")
USWest1 = Region("us-west-1")
USEast1 = Region("us-east-1")
@@ -24,12 +28,17 @@ const (
MEEast1 = Region("me-east-1")
EUCentral1 = Region("eu-central-1")
+
+ ShenZhenFinance = Region("cn-shenzhen-finance-1")
+ ShanghaiFinance = Region("cn-shanghai-finance-1")
)
var ValidRegions = []Region{
- Hangzhou, Qingdao, Beijing, Shenzhen, Hongkong, Shanghai, Zhangjiakou,
+ Hangzhou, Qingdao, Beijing, Shenzhen, Hongkong, Shanghai, Zhangjiakou, Huhehaote,
USWest1, USEast1,
- APNorthEast1, APSouthEast1, APSouthEast2, APSouthEast3,
+ APNorthEast1, APSouthEast1, APSouthEast2, APSouthEast3, APSouthEast5,
+ APSouth1,
MEEast1,
EUCentral1,
+ ShenZhenFinance, ShanghaiFinance,
}
diff --git a/vendor/github.com/denverdino/aliyungo/common/types.go b/vendor/github.com/denverdino/aliyungo/common/types.go
index a74e150e9..cf161f11b 100644
--- a/vendor/github.com/denverdino/aliyungo/common/types.go
+++ b/vendor/github.com/denverdino/aliyungo/common/types.go
@@ -36,6 +36,23 @@ type DescribeEndpointResponse struct {
EndpointItem
}
+type DescribeEndpointsArgs struct {
+ Id Region
+ ServiceCode string
+ Type string
+}
+
+type DescribeEndpointsResponse struct {
+ Response
+ Endpoints APIEndpoints
+ RequestId string
+ Success bool
+}
+
+type APIEndpoints struct {
+ Endpoint []EndpointItem
+}
+
type NetType string
const (
@@ -48,6 +65,7 @@ type TimeType string
const (
Hour = TimeType("Hour")
Day = TimeType("Day")
+ Week = TimeType("Week")
Month = TimeType("Month")
Year = TimeType("Year")
)
diff --git a/vendor/vendor.json b/vendor/vendor.json
index 1864e235c..b1b90163f 100644
--- a/vendor/vendor.json
+++ b/vendor/vendor.json
@@ -602,10 +602,10 @@
"revision": "6d212800a42e8ab5c146b8ace3490ee17e5225f9"
},
{
- "checksumSHA1": "2+1TPdvFj4W1QS5drkFr+ibM3G0=",
+ "checksumSHA1": "5k4kiVJsn0CilLDx+gMjglXY6vs=",
"path": "github.com/denverdino/aliyungo/common",
- "revision": "ec0e57291175fc9b06c62977f384756642285aab",
- "revisionTime": "2017-11-27T16:20:29Z"
+ "revision": "ebad04655e0385f021ed264c89ef4b93958e7204",
+ "revisionTime": "2018-04-17T07:55:37Z"
},
{
"checksumSHA1": "y4Ay4E5HqT25sweC/Bl9/odNWaI=",