diff --git a/app/services/infraprovider/create_config_and_resources.go b/app/services/infraprovider/create_config_and_resources.go index debb0cd0a..e592dea8a 100644 --- a/app/services/infraprovider/create_config_and_resources.go +++ b/app/services/infraprovider/create_config_and_resources.go @@ -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) } diff --git a/app/services/infraprovider/create_resource.go b/app/services/infraprovider/create_resource.go index 546c90238..7692b850c 100644 --- a/app/services/infraprovider/create_resource.go +++ b/app/services/infraprovider/create_resource.go @@ -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 } diff --git a/app/services/infraprovider/upsert.go b/app/services/infraprovider/upsert.go index c7357c7a0..eac96e67c 100644 --- a/app/services/infraprovider/upsert.go +++ b/app/services/infraprovider/upsert.go @@ -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 diff --git a/infraprovider/docker_provider.go b/infraprovider/docker_provider.go index ab73f2e52..c97bd5ca0 100644 --- a/infraprovider/docker_provider.go +++ b/infraprovider/docker_provider.go @@ -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 } diff --git a/infraprovider/infra_provider.go b/infraprovider/infra_provider.go index 015cb604e..3aa494cdf 100644 --- a/infraprovider/infra_provider.go +++ b/infraprovider/infra_provider.go @@ -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