fix: [CDE-706]: add ip-config for generating pool identifier (#3612)

* fix: [CDE-706]: lint
* fix: [CDE-706]: add ip-config for generating pool identifier
main
Deepak Bhatt 2025-04-02 12:55:00 +00:00 committed by Harness
parent 17473844e3
commit edcad7b744
6 changed files with 18 additions and 9 deletions

View File

@ -100,7 +100,7 @@ func (c *Controller) CreateResources(
return nil, fmt.Errorf("failed to find infraprovider config by ref: %q %w", configIdentifier, err) return nil, fmt.Errorf("failed to find infraprovider config by ref: %q %w", configIdentifier, err)
} }
resources := c.MapToResourceEntity(in, space, now) resources := c.MapToResourceEntity(in, space, now)
err = c.infraproviderSvc.CreateResources(ctx, space.ID, resources, infraProviderConfig.ID) err = c.infraproviderSvc.CreateResources(ctx, space.ID, resources, infraProviderConfig.ID, configIdentifier)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -35,7 +35,8 @@ func (c *Service) CreateConfigAndResources(
if err != nil { if err != nil {
return fmt.Errorf("could not create the config: %q %w", infraProviderConfig.Identifier, err) return fmt.Errorf("could not create the config: %q %w", infraProviderConfig.Identifier, err)
} }
err = c.createMissingResources(ctx, infraProviderConfig.Resources, configID, infraProviderConfig.SpaceID) err = c.createMissingResources(ctx, infraProviderConfig.Resources, configID,
infraProviderConfig.SpaceID, infraProviderConfig.Identifier)
if err != nil { if err != nil {
return fmt.Errorf("could not create the resources: %v %w", infraProviderConfig.Resources, err) return fmt.Errorf("could not create the resources: %v %w", infraProviderConfig.Resources, err)
} }

View File

@ -30,9 +30,10 @@ func (c *Service) CreateResources(
spaceID int64, spaceID int64,
resources []types.InfraProviderResource, resources []types.InfraProviderResource,
configID int64, configID int64,
configIdentifier string,
) error { ) error {
err := c.tx.WithTx(ctx, func(ctx context.Context) error { err := c.tx.WithTx(ctx, func(ctx context.Context) error {
return c.createMissingResources(ctx, resources, configID, spaceID) return c.createMissingResources(ctx, resources, configID, spaceID, configIdentifier)
}) })
if err != nil { if err != nil {
return fmt.Errorf("failed to complete create txn for the infraprovider resource %w", err) return fmt.Errorf("failed to complete create txn for the infraprovider resource %w", err)
@ -45,6 +46,7 @@ func (c *Service) createMissingResources(
resources []types.InfraProviderResource, resources []types.InfraProviderResource,
configID int64, configID int64,
spaceID int64, spaceID int64,
configIdentifier string,
) error { ) error {
emptyStr := "" emptyStr := ""
for idx := range resources { for idx := range resources {
@ -61,7 +63,7 @@ func (c *Service) createMissingResources(
resource.Network = &emptyStr resource.Network = &emptyStr
} }
// updating metadata based on infra provider type // updating metadata based on infra provider type
updatedMetadata, err := c.updateResourceMetadata(resource) updatedMetadata, err := c.updateResourceMetadata(resource, configIdentifier)
if err != nil { if err != nil {
return fmt.Errorf("creating missing infra resources: %w", err) return fmt.Errorf("creating missing infra resources: %w", err)
} }
@ -82,13 +84,16 @@ func (c *Service) createMissingResources(
return nil return nil
} }
func (c *Service) updateResourceMetadata(resource *types.InfraProviderResource) (map[string]string, error) { func (c *Service) updateResourceMetadata(
resource *types.InfraProviderResource,
configIdentifier string,
) (map[string]string, error) {
infraProvider, err := c.infraProviderFactory.GetInfraProvider(resource.InfraProviderType) infraProvider, err := c.infraProviderFactory.GetInfraProvider(resource.InfraProviderType)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to fetch infra impl for type : %q %w", resource.InfraProviderType, err) return nil, fmt.Errorf("failed to fetch infra impl for type : %q %w", resource.InfraProviderType, err)
} }
params, err := infraProvider.UpdateParams(toResourceParams(resource.Metadata)) params, err := infraProvider.UpdateParams(toResourceParams(resource.Metadata), configIdentifier)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -71,7 +71,8 @@ func (c *Service) upsertConfigAndResources(
} }
log.Info().Msgf("updated infraconfig %s", infraProviderConfig.Identifier) log.Info().Msgf("updated infraconfig %s", infraProviderConfig.Identifier)
if err = c.createMissingResources(ctx, infraProviderResources, infraProviderConfigID, space.ID); err != nil { if err = c.createMissingResources(ctx, infraProviderResources, infraProviderConfigID, space.ID,
infraProviderConfig.Identifier); err != nil {
return err return err
} }
return nil return nil

View File

@ -288,7 +288,8 @@ func (d DockerProvider) ValidateParams(_ []types.InfraProviderParameter) error {
return nil return nil
} }
func (d DockerProvider) UpdateParams(ip []types.InfraProviderParameter) ([]types.InfraProviderParameter, error) { func (d DockerProvider) UpdateParams(ip []types.InfraProviderParameter,
_ string) ([]types.InfraProviderParameter, error) {
return ip, nil return ip, nil
} }

View File

@ -71,7 +71,8 @@ type InfraProvider interface {
AvailableParams() []types.InfraProviderParameterSchema AvailableParams() []types.InfraProviderParameterSchema
// UpdateParams updates input Parameters to add or modify given inputParameters. // UpdateParams updates input Parameters to add or modify given inputParameters.
UpdateParams(inputParameters []types.InfraProviderParameter) ([]types.InfraProviderParameter, error) UpdateParams(inputParameters []types.InfraProviderParameter,
configIdentifier string) ([]types.InfraProviderParameter, error)
// ValidateParams validates the supplied params before defining the infrastructure resource . // ValidateParams validates the supplied params before defining the infrastructure resource .
ValidateParams(inputParameters []types.InfraProviderParameter) error ValidateParams(inputParameters []types.InfraProviderParameter) error