mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-01-10 15:14:09 +00:00
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
This commit is contained in:
commit
620b0d11b7
5 changed files with 23 additions and 23 deletions
|
@ -232,7 +232,7 @@ func getAWSAPIConfig(argIdx int) (*awsapi.Config, error) {
|
|||
roleARN := awsRoleARN.GetOptionalArg(argIdx)
|
||||
accessKey := awsAccessKey.GetOptionalArg(argIdx)
|
||||
secretKey := awsSecretKey.GetOptionalArg(argIdx)
|
||||
cfg, err := awsapi.NewConfig(region, roleARN, accessKey, secretKey, "")
|
||||
cfg, err := awsapi.NewConfig(region, roleARN, accessKey, secretKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -22,8 +22,6 @@ type Config struct {
|
|||
roleARN string
|
||||
webTokenPath string
|
||||
|
||||
filtersQueryString string
|
||||
|
||||
ec2Endpoint string
|
||||
stsEndpoint string
|
||||
|
||||
|
@ -45,17 +43,13 @@ type credentials struct {
|
|||
}
|
||||
|
||||
// NewConfig returns new AWS Config.
|
||||
//
|
||||
// filtersQueryString must contain an optional percent-encoded query string for aws filters.
|
||||
// See https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for examples.
|
||||
func NewConfig(region, roleARN, accessKey, secretKey, filtersQueryString string) (*Config, error) {
|
||||
func NewConfig(region, roleARN, accessKey, secretKey string) (*Config, error) {
|
||||
cfg := &Config{
|
||||
client: http.DefaultClient,
|
||||
region: region,
|
||||
roleARN: roleARN,
|
||||
filtersQueryString: filtersQueryString,
|
||||
defaultAccessKey: os.Getenv("AWS_ACCESS_KEY_ID"),
|
||||
defaultSecretKey: os.Getenv("AWS_SECRET_ACCESS_KEY"),
|
||||
client: http.DefaultClient,
|
||||
region: region,
|
||||
roleARN: roleARN,
|
||||
defaultAccessKey: os.Getenv("AWS_ACCESS_KEY_ID"),
|
||||
defaultSecretKey: os.Getenv("AWS_SECRET_ACCESS_KEY"),
|
||||
}
|
||||
cfg.region = region
|
||||
if cfg.region == "" {
|
||||
|
@ -91,14 +85,18 @@ func NewConfig(region, roleARN, accessKey, secretKey, filtersQueryString string)
|
|||
}
|
||||
|
||||
// GetEC2APIResponse performs EC2 API request with ghe given action.
|
||||
func (cfg *Config) GetEC2APIResponse(action, nextPageToken string) ([]byte, error) {
|
||||
//
|
||||
// filtersQueryString must contain an optional percent-encoded query string for aws filters.
|
||||
// See https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for examples.
|
||||
// See also https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html
|
||||
func (cfg *Config) GetEC2APIResponse(action, filtersQueryString, nextPageToken string) ([]byte, error) {
|
||||
ac, err := cfg.getFreshAPICredentials()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
apiURL := fmt.Sprintf("%s?Action=%s", cfg.ec2Endpoint, url.QueryEscape(action))
|
||||
if len(cfg.filtersQueryString) > 0 {
|
||||
apiURL += "&" + cfg.filtersQueryString
|
||||
if len(filtersQueryString) > 0 {
|
||||
apiURL += "&" + filtersQueryString
|
||||
}
|
||||
if len(nextPageToken) > 0 {
|
||||
apiURL += fmt.Sprintf("&NextToken=%s", url.QueryEscape(nextPageToken))
|
||||
|
|
|
@ -11,8 +11,9 @@ import (
|
|||
)
|
||||
|
||||
type apiConfig struct {
|
||||
awsConfig *awsapi.Config
|
||||
port int
|
||||
awsConfig *awsapi.Config
|
||||
filtersQueryString string
|
||||
port int
|
||||
|
||||
// A map from AZ name to AZ id.
|
||||
azMap map[string]string
|
||||
|
@ -35,13 +36,14 @@ func newAPIConfig(sdc *SDConfig) (*apiConfig, error) {
|
|||
if sdc.Port != nil {
|
||||
port = *sdc.Port
|
||||
}
|
||||
awsCfg, err := awsapi.NewConfig(sdc.Region, sdc.RoleARN, sdc.AccessKey, sdc.SecretKey.String(), fqs)
|
||||
awsCfg, err := awsapi.NewConfig(sdc.Region, sdc.RoleARN, sdc.AccessKey, sdc.SecretKey.String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cfg := &apiConfig{
|
||||
awsConfig: awsCfg,
|
||||
port: port,
|
||||
awsConfig: awsCfg,
|
||||
filtersQueryString: fqs,
|
||||
port: port,
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ func getAZMap(cfg *apiConfig) map[string]string {
|
|||
|
||||
func getAvailabilityZones(cfg *apiConfig) ([]AvailabilityZone, error) {
|
||||
// See https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html
|
||||
data, err := cfg.awsConfig.GetEC2APIResponse("DescribeAvailabilityZones", "")
|
||||
data, err := cfg.awsConfig.GetEC2APIResponse("DescribeAvailabilityZones", "", "")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot obtain availability zones: %w", err)
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ func getReservations(cfg *apiConfig) ([]Reservation, error) {
|
|||
var rs []Reservation
|
||||
pageToken := ""
|
||||
for {
|
||||
data, err := cfg.awsConfig.GetEC2APIResponse("DescribeInstances", pageToken)
|
||||
data, err := cfg.awsConfig.GetEC2APIResponse("DescribeInstances", cfg.filtersQueryString, pageToken)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot obtain instances: %w", err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue