mirror of https://github.com/k3s-io/k3s
Metadata order search tests
parent
870195ad59
commit
0e81cac328
|
@ -156,6 +156,7 @@ func getMetadata(order string) (*Metadata, error) {
|
|||
|
||||
elements := strings.Split(order, ",")
|
||||
for _, id := range elements {
|
||||
id = strings.TrimSpace(id)
|
||||
switch id {
|
||||
case configDriveID:
|
||||
md, err = getMetadataFromConfigDrive()
|
||||
|
|
|
@ -253,6 +253,10 @@ func checkOpenStackOpts(openstackOpts *OpenStack) error {
|
|||
}
|
||||
}
|
||||
|
||||
if err := checkMetadataSearchOrder(openstackOpts.metadataOpts.SearchOrder); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -282,8 +286,6 @@ func newOpenStack(cfg Config) (*OpenStack, error) {
|
|||
err = openstack.Authenticate(provider, cfg.toAuthOptions())
|
||||
}
|
||||
|
||||
err = validateMetadataSearchOrder(cfg.Metadata.SearchOrder)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -753,7 +755,7 @@ func (os *OpenStack) volumeService(forceVersion string) (volumeService, error) {
|
|||
}
|
||||
}
|
||||
|
||||
func validateMetadataSearchOrder(order string) error {
|
||||
func checkMetadataSearchOrder(order string) error {
|
||||
if order == "" {
|
||||
return errors.New("Invalid value in section [Metadata] with key `search-order`. Value cannot be empty")
|
||||
}
|
||||
|
@ -763,14 +765,15 @@ func validateMetadataSearchOrder(order string) error {
|
|||
return errors.New("Invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements")
|
||||
}
|
||||
|
||||
for _, o := range elements {
|
||||
switch o {
|
||||
for _, id := range elements {
|
||||
id = strings.TrimSpace(id)
|
||||
switch id {
|
||||
case configDriveID:
|
||||
case metadataID:
|
||||
default:
|
||||
errTxt := "Invalid element '%s' found in section [Metadata] with key `search-order`." +
|
||||
"Supported elements include '%s' and '%s'"
|
||||
return fmt.Errorf(errTxt, o, configDriveID, metadataID)
|
||||
return fmt.Errorf(errTxt, id, configDriveID, metadataID)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -101,7 +101,8 @@ func TestReadConfig(t *testing.T) {
|
|||
[BlockStorage]
|
||||
bs-version = auto
|
||||
trust-device-path = yes
|
||||
|
||||
[Metadata]
|
||||
search-order = configDrive, metadataService
|
||||
`))
|
||||
if err != nil {
|
||||
t.Fatalf("Should succeed when a valid config is provided: %s", err)
|
||||
|
@ -128,6 +129,9 @@ func TestReadConfig(t *testing.T) {
|
|||
if cfg.BlockStorage.BSVersion != "auto" {
|
||||
t.Errorf("incorrect bs.bs-version: %v", cfg.BlockStorage.BSVersion)
|
||||
}
|
||||
if cfg.Metadata.SearchOrder != "configDrive, metadataService" {
|
||||
t.Errorf("incorrect md.search-order: %v", cfg.Metadata.SearchOrder)
|
||||
}
|
||||
}
|
||||
|
||||
func TestToAuthOptions(t *testing.T) {
|
||||
|
@ -169,6 +173,9 @@ func TestCheckOpenStackOpts(t *testing.T) {
|
|||
ManageSecurityGroups: true,
|
||||
NodeSecurityGroupID: "b41d28c2-d02f-4e1e-8ffb-23b8e4f5c144",
|
||||
},
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: configDriveID,
|
||||
},
|
||||
},
|
||||
expectedError: nil,
|
||||
},
|
||||
|
@ -187,6 +194,9 @@ func TestCheckOpenStackOpts(t *testing.T) {
|
|||
ManageSecurityGroups: true,
|
||||
NodeSecurityGroupID: "b41d28c2-d02f-4e1e-8ffb-23b8e4f5c144",
|
||||
},
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: configDriveID,
|
||||
},
|
||||
},
|
||||
expectedError: nil,
|
||||
},
|
||||
|
@ -203,6 +213,9 @@ func TestCheckOpenStackOpts(t *testing.T) {
|
|||
ManageSecurityGroups: true,
|
||||
NodeSecurityGroupID: "b41d28c2-d02f-4e1e-8ffb-23b8e4f5c144",
|
||||
},
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: configDriveID,
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Errorf("monitor-delay not set in cloud provider config"),
|
||||
},
|
||||
|
@ -221,9 +234,43 @@ func TestCheckOpenStackOpts(t *testing.T) {
|
|||
MonitorMaxRetries: uint(3),
|
||||
ManageSecurityGroups: true,
|
||||
},
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: configDriveID,
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Errorf("node-security-group not set in cloud provider config"),
|
||||
},
|
||||
{
|
||||
name: "test5",
|
||||
openstackOpts: &OpenStack{
|
||||
provider: nil,
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: "",
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Errorf("Invalid value in section [Metadata] with key `search-order`. Value cannot be empty"),
|
||||
},
|
||||
{
|
||||
name: "test6",
|
||||
openstackOpts: &OpenStack{
|
||||
provider: nil,
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: "value1,value2,value3",
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Errorf("Invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements"),
|
||||
},
|
||||
{
|
||||
name: "test7",
|
||||
openstackOpts: &OpenStack{
|
||||
provider: nil,
|
||||
metadataOpts: MetadataOpts{
|
||||
SearchOrder: "value1",
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Errorf("Invalid element '%s' found in section [Metadata] with key `search-order`."+
|
||||
"Supported elements include '%s' and '%s'", "value1", configDriveID, metadataID),
|
||||
},
|
||||
}
|
||||
|
||||
for _, testcase := range tests {
|
||||
|
@ -374,6 +421,8 @@ func configFromEnv() (cfg Config, ok bool) {
|
|||
(cfg.Global.TenantId != "" || cfg.Global.TenantName != "" ||
|
||||
cfg.Global.DomainId != "" || cfg.Global.DomainName != ""))
|
||||
|
||||
cfg.Metadata.SearchOrder = fmt.Sprintf("%s,%s", configDriveID, metadataID)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue