mirror of https://github.com/harness/drone.git
fix: [CDE-703]: use name metadata field to generate pool identifier (#3633)
* fix: [CDE-703]: use name metadata field to generate pool identifiermain
parent
f9c9766a1e
commit
80112d19fe
|
@ -36,7 +36,7 @@ func (c *Service) CreateConfigAndResources(
|
|||
return fmt.Errorf("could not create the config: %q %w", infraProviderConfig.Identifier, err)
|
||||
}
|
||||
err = c.createMissingResources(ctx, infraProviderConfig.Resources, configID,
|
||||
infraProviderConfig.SpaceID, infraProviderConfig.Identifier)
|
||||
infraProviderConfig.SpaceID, *infraProviderConfig)
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not create the resources: %v %w", infraProviderConfig.Resources, err)
|
||||
}
|
||||
|
|
|
@ -32,8 +32,13 @@ func (c *Service) CreateResources(
|
|||
configID int64,
|
||||
configIdentifier string,
|
||||
) error {
|
||||
err := c.tx.WithTx(ctx, func(ctx context.Context) error {
|
||||
return c.createMissingResources(ctx, resources, configID, spaceID, configIdentifier)
|
||||
config, err := c.infraProviderConfigStore.FindByIdentifier(ctx, spaceID, configIdentifier)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to find config: %w", err)
|
||||
}
|
||||
|
||||
err = c.tx.WithTx(ctx, func(ctx context.Context) error {
|
||||
return c.createMissingResources(ctx, resources, configID, spaceID, *config)
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to complete create txn for the infraprovider resource %w", err)
|
||||
|
@ -46,7 +51,7 @@ func (c *Service) createMissingResources(
|
|||
resources []types.InfraProviderResource,
|
||||
configID int64,
|
||||
spaceID int64,
|
||||
configIdentifier string,
|
||||
config types.InfraProviderConfig,
|
||||
) error {
|
||||
emptyStr := ""
|
||||
for idx := range resources {
|
||||
|
@ -63,7 +68,7 @@ func (c *Service) createMissingResources(
|
|||
resource.Network = &emptyStr
|
||||
}
|
||||
// updating metadata based on infra provider type
|
||||
updatedMetadata, err := c.updateResourceMetadata(resource, configIdentifier)
|
||||
updatedMetadata, err := c.updateResourceMetadata(resource, config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("creating missing infra resources: %w", err)
|
||||
}
|
||||
|
@ -86,14 +91,14 @@ func (c *Service) createMissingResources(
|
|||
|
||||
func (c *Service) updateResourceMetadata(
|
||||
resource *types.InfraProviderResource,
|
||||
configIdentifier string,
|
||||
config types.InfraProviderConfig,
|
||||
) (map[string]string, error) {
|
||||
infraProvider, err := c.infraProviderFactory.GetInfraProvider(resource.InfraProviderType)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to fetch infra impl for type : %q %w", resource.InfraProviderType, err)
|
||||
}
|
||||
|
||||
params, err := infraProvider.UpdateParams(toResourceParams(resource.Metadata), configIdentifier)
|
||||
params, err := infraProvider.UpdateParams(toResourceParams(resource.Metadata), config.Metadata)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ func (c *Service) upsertConfigAndResources(
|
|||
|
||||
log.Info().Msgf("updated infraconfig %s", infraProviderConfig.Identifier)
|
||||
if err = c.createMissingResources(ctx, infraProviderResources, infraProviderConfigID, space.ID,
|
||||
infraProviderConfig.Identifier); err != nil {
|
||||
*infraProviderConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -290,7 +290,7 @@ func (d DockerProvider) ValidateParams(_ []types.InfraProviderParameter) error {
|
|||
}
|
||||
|
||||
func (d DockerProvider) UpdateParams(ip []types.InfraProviderParameter,
|
||||
_ string) ([]types.InfraProviderParameter, error) {
|
||||
_ map[string]any) ([]types.InfraProviderParameter, error) {
|
||||
return ip, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ type InfraProvider interface {
|
|||
|
||||
// UpdateParams updates input Parameters to add or modify given inputParameters.
|
||||
UpdateParams(inputParameters []types.InfraProviderParameter,
|
||||
configIdentifier string) ([]types.InfraProviderParameter, error)
|
||||
configMetaData map[string]any) ([]types.InfraProviderParameter, error)
|
||||
|
||||
// ValidateParams validates the supplied params before defining the infrastructure resource .
|
||||
ValidateParams(inputParameters []types.InfraProviderParameter) error
|
||||
|
|
Loading…
Reference in New Issue