infraConfig

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const CPULimReqErrorCompErr = "cpu limit should not be less than cpu request"
View Source
const DEFAULT_PROFILE_EXISTS = "default profile exists"
View Source
const DEFAULT_PROFILE_NAME = "default"
View Source
const InvalidProfileName = "profile name is invalid"
View Source
const InvalidUnit = "invalid %s unit found in %s "
View Source
const MEMLimReqErrorCompErr = "memory limit should not be less than memory request"
View Source
const NO_PROPERTIES_FOUND = "no properties found"
View Source
const PayloadValidationError = "payload validation failed"

Variables

This section is empty.

Functions

func GetDefaultConfigKeysMap

func GetDefaultConfigKeysMap() map[ConfigKeyStr]bool

GetDefaultConfigKeysMap returns a map of default config keys

func GetUnitSuffix

func GetUnitSuffix(unitKey ConfigKeyStr, unitStr string) units.UnitSuffix

GetUnitSuffix loosely typed method to get the unit suffix using the unitKey type

func GetUnitSuffixStr

func GetUnitSuffixStr(unitKey ConfigKey, unit units.UnitSuffix) string

GetUnitSuffixStr loosely typed method to get the unit suffix using the unitKey type

Types

type ConfigKey

type ConfigKey int
const CPULimit ConfigKey = 1
const CPURequest ConfigKey = 2
const MemoryLimit ConfigKey = 3
const MemoryRequest ConfigKey = 4
const TimeOut ConfigKey = 5

func GetConfigKey

func GetConfigKey(configKeyStr ConfigKeyStr) ConfigKey

type ConfigKeyStr

type ConfigKeyStr string
const CPU_LIMIT ConfigKeyStr = "cpu_limit"
const CPU_REQUEST ConfigKeyStr = "cpu_request"
const MEMORY_LIMIT ConfigKeyStr = "memory_limit"
const MEMORY_REQUEST ConfigKeyStr = "memory_request"
const TIME_OUT ConfigKeyStr = "timeout"

func GetConfigKeyStr

func GetConfigKeyStr(configKey ConfigKey) ConfigKeyStr

type ConfigurationBean

type ConfigurationBean struct {
	Id          int          `json:"id"`
	Key         ConfigKeyStr `json:"key"`
	Value       float64      `json:"value" validate:"required,gt=0"`
	Unit        string       `json:"unit" validate:"required,gt=0"`
	ProfileName string       `json:"profileName"`
	ProfileId   int          `json:"profileId"`
	Active      bool         `json:"active"`
}

func (*ConfigurationBean) ConvertToInfraProfileConfigurationEntity

func (configurationBean *ConfigurationBean) ConvertToInfraProfileConfigurationEntity() *InfraProfileConfigurationEntity

type InfraConfig

type InfraConfig struct {
	// currently only for ci
	CiLimitCpu       string `env:"LIMIT_CI_CPU" envDefault:"0.5"`
	CiLimitMem       string `env:"LIMIT_CI_MEM" envDefault:"3G"`
	CiReqCpu         string `env:"REQ_CI_CPU" envDefault:"0.5"`
	CiReqMem         string `env:"REQ_CI_MEM" envDefault:"3G"`
	CiDefaultTimeout int64  `env:"DEFAULT_TIMEOUT" envDefault:"3600"`
}

InfraConfig is used for read only purpose outside this package

func (InfraConfig) GetCiDefaultTimeout

func (infraConfig InfraConfig) GetCiDefaultTimeout() int64

func (InfraConfig) GetCiLimitCpu

func (infraConfig InfraConfig) GetCiLimitCpu() string

func (InfraConfig) GetCiLimitMem

func (infraConfig InfraConfig) GetCiLimitMem() string

func (InfraConfig) GetCiReqCpu

func (infraConfig InfraConfig) GetCiReqCpu() string

func (InfraConfig) GetCiReqMem

func (infraConfig InfraConfig) GetCiReqMem() string

func (InfraConfig) LoadCiLimitCpu

func (infraConfig InfraConfig) LoadCiLimitCpu() (*InfraProfileConfigurationEntity, error)

func (InfraConfig) LoadCiLimitMem

func (infraConfig InfraConfig) LoadCiLimitMem() (*InfraProfileConfigurationEntity, error)

func (InfraConfig) LoadCiReqCpu

func (infraConfig InfraConfig) LoadCiReqCpu() (*InfraProfileConfigurationEntity, error)

func (InfraConfig) LoadCiReqMem

func (infraConfig InfraConfig) LoadCiReqMem() (*InfraProfileConfigurationEntity, error)

func (InfraConfig) LoadDefaultTimeout

func (infraConfig InfraConfig) LoadDefaultTimeout() (*InfraProfileConfigurationEntity, error)

func (InfraConfig) LoadInfraConfigInEntities

func (infraConfig InfraConfig) LoadInfraConfigInEntities() ([]*InfraProfileConfigurationEntity, error)

type InfraConfigMetaData

type InfraConfigMetaData struct {
	DefaultConfigurations []ConfigurationBean                    `json:"defaultConfigurations"`
	ConfigurationUnits    map[ConfigKeyStr]map[string]units.Unit `json:"configurationUnits"`
}

type InfraConfigRepository

type InfraConfigRepository interface {
	GetProfileByName(name string) (*InfraProfileEntity, error)
	GetConfigurationsByProfileName(profileName string) ([]*InfraProfileConfigurationEntity, error)
	GetConfigurationsByProfileId(profileId int) ([]*InfraProfileConfigurationEntity, error)

	CreateProfile(tx *pg.Tx, infraProfile *InfraProfileEntity) error
	CreateConfigurations(tx *pg.Tx, configurations []*InfraProfileConfigurationEntity) error

	UpdateConfigurations(tx *pg.Tx, configurations []*InfraProfileConfigurationEntity) error
	UpdateProfile(tx *pg.Tx, profileName string, profile *InfraProfileEntity) error
	sql.TransactionWrapper
}

type InfraConfigRepositoryImpl

type InfraConfigRepositoryImpl struct {
	*sql.TransactionUtilImpl
	// contains filtered or unexported fields
}

func NewInfraProfileRepositoryImpl

func NewInfraProfileRepositoryImpl(dbConnection *pg.DB, TransactionUtilImpl *sql.TransactionUtilImpl) *InfraConfigRepositoryImpl

func (*InfraConfigRepositoryImpl) CreateConfigurations

func (impl *InfraConfigRepositoryImpl) CreateConfigurations(tx *pg.Tx, configurations []*InfraProfileConfigurationEntity) error

func (*InfraConfigRepositoryImpl) CreateProfile

func (impl *InfraConfigRepositoryImpl) CreateProfile(tx *pg.Tx, infraProfile *InfraProfileEntity) error

CreateProfile saves the default profile in the database only once in a lifetime. If the default profile already exists, it will not be saved again.

func (*InfraConfigRepositoryImpl) GetConfigurationsByProfileId

func (impl *InfraConfigRepositoryImpl) GetConfigurationsByProfileId(profileId int) ([]*InfraProfileConfigurationEntity, error)

func (*InfraConfigRepositoryImpl) GetConfigurationsByProfileName

func (impl *InfraConfigRepositoryImpl) GetConfigurationsByProfileName(profileName string) ([]*InfraProfileConfigurationEntity, error)

func (*InfraConfigRepositoryImpl) GetProfileByName

func (impl *InfraConfigRepositoryImpl) GetProfileByName(name string) (*InfraProfileEntity, error)

func (*InfraConfigRepositoryImpl) UpdateConfigurations

func (impl *InfraConfigRepositoryImpl) UpdateConfigurations(tx *pg.Tx, configurations []*InfraProfileConfigurationEntity) error

func (*InfraConfigRepositoryImpl) UpdateProfile

func (impl *InfraConfigRepositoryImpl) UpdateProfile(tx *pg.Tx, profileName string, profile *InfraProfileEntity) error

type InfraConfigService

type InfraConfigService interface {

	// GetConfigurationUnits fetches all the units for the configurations.
	GetConfigurationUnits() map[ConfigKeyStr]map[string]units.Unit
	// GetProfileByName fetches the profile and its configurations matching the given profileName.
	GetProfileByName(name string) (*ProfileBean, error)
	// UpdateProfile updates the profile and its configurations matching the given profileName.
	// If profileName is empty, it will return an error.
	UpdateProfile(userId int32, profileName string, profileBean *ProfileBean) error

	GetInfraConfigurationsByScope(scope Scope) (*InfraConfig, error)
}

type InfraConfigServiceImpl

type InfraConfigServiceImpl struct {
	// contains filtered or unexported fields
}

func NewInfraConfigServiceImpl

func NewInfraConfigServiceImpl(logger *zap.SugaredLogger,
	infraProfileRepo InfraConfigRepository,
	appService app.AppService,
	units *units.Units) (*InfraConfigServiceImpl, error)

func (*InfraConfigServiceImpl) GetConfigurationUnits

func (impl *InfraConfigServiceImpl) GetConfigurationUnits() map[ConfigKeyStr]map[string]units.Unit

func (*InfraConfigServiceImpl) GetInfraConfigurationsByScope

func (impl *InfraConfigServiceImpl) GetInfraConfigurationsByScope(scope Scope) (*InfraConfig, error)

func (*InfraConfigServiceImpl) GetProfileByName

func (impl *InfraConfigServiceImpl) GetProfileByName(name string) (*ProfileBean, error)

func (*InfraConfigServiceImpl) UpdateProfile

func (impl *InfraConfigServiceImpl) UpdateProfile(userId int32, profileName string, profileToUpdate *ProfileBean) error

func (*InfraConfigServiceImpl) Validate

func (impl *InfraConfigServiceImpl) Validate(profileToUpdate *ProfileBean, defaultProfile *ProfileBean) error

type InfraProfileConfigurationEntity

type InfraProfileConfigurationEntity struct {
	Id        int              `sql:"id"`
	Key       ConfigKey        `sql:"key"`
	Value     float64          `sql:"value"`
	Unit      units.UnitSuffix `sql:"unit"`
	ProfileId int              `sql:"profile_id"`
	Active    bool             `sql:"active"`
	sql.AuditLog
	// contains filtered or unexported fields
}

func (*InfraProfileConfigurationEntity) ConvertToConfigurationBean

func (infraProfileConfiguration *InfraProfileConfigurationEntity) ConvertToConfigurationBean() ConfigurationBean

type InfraProfileEntity

type InfraProfileEntity struct {
	Id          int    `sql:"id"`
	Name        string `sql:"name"`
	Description string `sql:"description"`
	Active      bool   `sql:"active"`
	sql.AuditLog
	// contains filtered or unexported fields
}

func (*InfraProfileEntity) ConvertToProfileBean

func (infraProfile *InfraProfileEntity) ConvertToProfileBean() ProfileBean

type ProfileBean

type ProfileBean struct {
	Id             int                 `json:"id"`
	Name           string              `json:"name" validate:"required,min=1,max=50"`
	Description    string              `json:"description" validate:"max=300"`
	Active         bool                `json:"active"`
	Configurations []ConfigurationBean `json:"configurations" validate:"dive"`
	Type           ProfileType         `json:"type"`
	AppCount       int                 `json:"appCount"`
	CreatedBy      int32               `json:"createdBy"`
	CreatedOn      time.Time           `json:"createdOn"`
	UpdatedBy      int32               `json:"updatedBy"`
	UpdatedOn      time.Time           `json:"updatedOn"`
}

func UpdateProfileMissingConfigurationsWithDefault

func UpdateProfileMissingConfigurationsWithDefault(profile ProfileBean, defaultConfigurations []ConfigurationBean) ProfileBean

func (*ProfileBean) ConvertToInfraProfileEntity

func (profileBean *ProfileBean) ConvertToInfraProfileEntity() *InfraProfileEntity

type ProfileResponse

type ProfileResponse struct {
	Profile ProfileBean `json:"profile"`
	InfraConfigMetaData
}

type ProfileType

type ProfileType string
const DEFAULT ProfileType = "DEFAULT"
const NORMAL ProfileType = "NORMAL"

type ProfilesResponse

type ProfilesResponse struct {
	Profiles []ProfileBean `json:"profiles"`
	InfraConfigMetaData
}

type Scope

type Scope struct {
	AppId int
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL