This commit is contained in:
pb 2025-07-08 12:02:34 +02:00
commit 34f01e9740
8 changed files with 28 additions and 10 deletions

View File

@ -17,9 +17,9 @@ import (
*/ */
type Booking struct { type Booking struct {
utils.AbstractObject // AbstractObject contains the basic fields of an object (id, name) utils.AbstractObject // AbstractObject contains the basic fields of an object (id, name)
PricedItem pricing.PricedItemITF `json:"priced_item,omitempty" bson:"priced_item,omitempty" validate:"required"` PricedItem pricing.PricedItemITF `json:"priced_item,omitempty" bson:"priced_item,omitempty"` // We need to add the validate:"required" tag once the pricing feature is implemented, removed to avoid handling the error
ResumeMetrics map[string]map[string]models.MetricResume `json:"resume_metrics,omitempty" bson:"resume_metrics,omitempty"` ResumeMetrics map[string]map[string]models.MetricResume `json:"resume_metrics,omitempty" bson:"resume_metrics,omitempty"`
ExecutionMetrics map[string][]models.MetricsSnapshot `json:"metrics,omitempty" bson:"metrics,omitempty"` ExecutionMetrics map[string][]models.MetricsSnapshot `json:"metrics,omitempty" bson:"metrics,omitempty"`
ExecutionsID string `json:"executions_id,omitempty" bson:"executions_id,omitempty" validate:"required"` // ExecutionsID is the ID of the executions ExecutionsID string `json:"executions_id,omitempty" bson:"executions_id,omitempty" validate:"required"` // ExecutionsID is the ID of the executions

View File

@ -93,6 +93,10 @@ func (t TimePricingStrategy) String() string {
return [...]string{"ONCE", "PER SECOND", "PER MINUTE", "PER HOUR", "PER DAY", "PER WEEK", "PER MONTH"}[t] return [...]string{"ONCE", "PER SECOND", "PER MINUTE", "PER HOUR", "PER DAY", "PER WEEK", "PER MONTH"}[t]
} }
func TimePricingStrategyListStr() []string {
return []string{"ONCE", "PER SECOND", "PER MINUTE", "PER HOUR", "PER DAY", "PER WEEK", "PER MONTH"}
}
func TimePricingStrategyList() []TimePricingStrategy { func TimePricingStrategyList() []TimePricingStrategy {
return []TimePricingStrategy{ONCE, PER_SECOND, PER_MINUTE, PER_HOUR, PER_DAY, PER_WEEK, PER_MONTH} return []TimePricingStrategy{ONCE, PER_SECOND, PER_MINUTE, PER_HOUR, PER_DAY, PER_WEEK, PER_MONTH}
} }

View File

@ -36,7 +36,7 @@ func (a *orderMongoAccessor) UpdateOne(set utils.DBObject, id string) (utils.DBO
} }
func (a *orderMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) { func (a *orderMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) {
return nil, 404, errors.New("Not implemented") return utils.GenericStoreOne(data,a)
} }
func (a *orderMongoAccessor) CopyOne(data utils.DBObject) (utils.DBObject, int, error) { func (a *orderMongoAccessor) CopyOne(data utils.DBObject) (utils.DBObject, int, error) {

View File

@ -89,7 +89,9 @@ const (
) )
func (t DataResourcePricingStrategy) String() string { func (t DataResourcePricingStrategy) String() string {
return [...]string{"PER DOWNLOAD", "PER TB DOWNLOADED", "PER GB DOWNLOADED", "PER MB DOWNLOADED", "PER KB DOWNLOADED"}[t] l := pricing.TimePricingStrategyListStr()
l = append(l, []string{"PER DOWNLOAD", "PER TB DOWNLOADED", "PER GB DOWNLOADED", "PER MB DOWNLOADED", "PER KB DOWNLOADED"}...)
return l[t]
} }
func DataResourcePricingStrategyList() []DataResourcePricingStrategy { func DataResourcePricingStrategyList() []DataResourcePricingStrategy {
@ -101,7 +103,9 @@ func ToDataResourcePricingStrategy(i int) DataResourcePricingStrategy {
} }
func (t DataResourcePricingStrategy) GetStrategy() string { func (t DataResourcePricingStrategy) GetStrategy() string {
return [...]string{"PER_DOWNLOAD", "PER_GB", "PER_MB", "PER_KB"}[t] l := pricing.TimePricingStrategyListStr()
l = append(l, []string{"PER DATA STORED", "PER TB STORED", "PER GB STORED", "PER MB STORED", "PER KB STORED"}...)
return l[t]
} }
func (t DataResourcePricingStrategy) GetStrategyValue() int { func (t DataResourcePricingStrategy) GetStrategyValue() int {

View File

@ -46,6 +46,7 @@ func (abs *PricedResource) IsPurchasable() bool {
} }
func (abs *PricedResource) IsBooked() bool { func (abs *PricedResource) IsBooked() bool {
return true // For dev purposes, prevent that DB objects that don't have a Pricing are considered as not booked
if abs.SelectedPricing == nil { if abs.SelectedPricing == nil {
return false return false
} }

View File

@ -115,11 +115,15 @@ func StorageResourcePricingStrategyList() []StorageResourcePricingStrategy {
} }
func (t StorageResourcePricingStrategy) String() string { func (t StorageResourcePricingStrategy) String() string {
return [...]string{"PER DATA STORED", "PER TB STORED", "PER GB STORED", "PER MB STORED", "PER KB STORED"}[t] l := pricing.TimePricingStrategyListStr()
l = append(l, []string{"PER DATA STORED", "PER TB STORED", "PER GB STORED", "PER MB STORED", "PER KB STORED"}...)
return l[t]
} }
func (t StorageResourcePricingStrategy) GetStrategy() string { func (t StorageResourcePricingStrategy) GetStrategy() string {
return [...]string{"PER_DATA_STORED", "PER_GB_STORED", "PER_MB_STORED", "PER_KB_STORED"}[t] l := pricing.TimePricingStrategyListStr()
l = append(l, []string{"PER DATA STORED", "PER TB STORED", "PER GB STORED", "PER MB STORED", "PER KB STORED"}...)
return l[t]
} }
func (t StorageResourcePricingStrategy) GetStrategyValue() int { func (t StorageResourcePricingStrategy) GetStrategyValue() int {

View File

@ -240,9 +240,10 @@ func plan[T resources.ResourceInterface](
return resources, priceds, errors.New("could not load the processing resource") return resources, priceds, errors.New("could not load the processing resource")
} }
priced := realItem.ConvertToPricedResource(dt, request) priced := realItem.ConvertToPricedResource(dt, request)
if priced.SelectPricing() == nil { // Should be commented once the Pricing selection feature has been implemented, related to the commit d35ad440fa77763ec7f49ab34a85e47e75581b61
return resources, priceds, errors.New("no pricings are selected... can't proceed") // if priced.SelectPricing() == nil {
} // return resources, priceds, errors.New("no pricings are selected... can't proceed")
// }
started, duration := start(realItem, priced) started, duration := start(realItem, priced)
priced.SetLocationStart(started) priced.SetLocationStart(started)
if duration >= 0 { if duration >= 0 {

View File

@ -29,6 +29,7 @@ const (
LIVE_DATACENTER LIVE_DATACENTER
LIVE_STORAGE LIVE_STORAGE
BILL BILL
MINIO_SVCACC
) )
var NOAPI = "" var NOAPI = ""
@ -44,6 +45,7 @@ var ADMIRALTY_TARGETAPI = DATACENTERAPI + "/admiralty/target"
var ADMIRALTY_SECRETAPI = DATACENTERAPI + "/admiralty/secret" var ADMIRALTY_SECRETAPI = DATACENTERAPI + "/admiralty/secret"
var ADMIRALTY_KUBECONFIGAPI = DATACENTERAPI + "/admiralty/kubeconfig" var ADMIRALTY_KUBECONFIGAPI = DATACENTERAPI + "/admiralty/kubeconfig"
var ADMIRALTY_NODESAPI = DATACENTERAPI + "/admiralty/node" var ADMIRALTY_NODESAPI = DATACENTERAPI + "/admiralty/node"
var MINIO = DATACENTERAPI + "/minio"
// Bind the standard API name to the data type // Bind the standard API name to the data type
var DefaultAPI = [...]string{ var DefaultAPI = [...]string{
@ -72,6 +74,7 @@ var DefaultAPI = [...]string{
DATACENTERAPI, DATACENTERAPI,
DATACENTERAPI, DATACENTERAPI,
NOAPI, NOAPI,
MINIO,
} }
// Bind the standard data name to the data type // Bind the standard data name to the data type
@ -101,6 +104,7 @@ var Str = [...]string{
"live_datacenter", "live_datacenter",
"live_storage", "live_storage",
"bill", "bill",
"service_account",
} }
func FromInt(i int) string { func FromInt(i int) string {