access to live storage
This commit is contained in:
parent
147c7bc3a1
commit
e600fedcab
@ -26,6 +26,7 @@ type ResourceInstanceITF interface {
|
||||
GetPricingsProfiles(peerID string, groups []string) []pricing.PricingProfileITF
|
||||
GetPeerGroups() ([]ResourcePartnerITF, []map[string][]string)
|
||||
ClearPeerGroups()
|
||||
GetSelectedPartnership(peerID string, groups []string) ResourcePartnerITF
|
||||
GetPartnerships(peerID string, groups []string) []ResourcePartnerITF
|
||||
}
|
||||
|
||||
@ -33,4 +34,5 @@ type ResourcePartnerITF interface {
|
||||
GetPricingsProfiles(peerID string, groups []string) []pricing.PricingProfileITF
|
||||
GetPeerGroups() map[string][]string
|
||||
ClearPeerGroups()
|
||||
GetProfile(buying int, strategy int) pricing.PricingProfileITF
|
||||
}
|
||||
|
@ -145,14 +145,16 @@ type GeoPoint struct {
|
||||
|
||||
type ResourceInstance[T ResourcePartnerITF] struct {
|
||||
utils.AbstractObject
|
||||
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
||||
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
||||
AccessProtocol string `json:"access_protocol,omitempty" bson:"access_protocol,omitempty"`
|
||||
Env []models.Param `json:"env,omitempty" bson:"env,omitempty"`
|
||||
Inputs []models.Param `json:"inputs,omitempty" bson:"inputs,omitempty"`
|
||||
Outputs []models.Param `json:"outputs,omitempty" bson:"outputs,omitempty"`
|
||||
SelectedPricing pricing.PricingProfileITF `json:"selected_pricing,omitempty" bson:"selected_pricing,omitempty"`
|
||||
Partnerships []T `json:"partnerships,omitempty" bson:"partnerships,omitempty"`
|
||||
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
||||
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
||||
AccessProtocol string `json:"access_protocol,omitempty" bson:"access_protocol,omitempty"`
|
||||
Env []models.Param `json:"env,omitempty" bson:"env,omitempty"`
|
||||
Inputs []models.Param `json:"inputs,omitempty" bson:"inputs,omitempty"`
|
||||
Outputs []models.Param `json:"outputs,omitempty" bson:"outputs,omitempty"`
|
||||
SelectedPartnershipIndex int `json:"selected_partnership_index,omitempty" bson:"selected_partnership_index,omitempty"`
|
||||
SelectedBuyingStrategy int `json:"selected_buying_strategy,omitempty" bson:"selected_buying_strategy,omitempty"`
|
||||
SelectedStrategy int `json:"selected_strategy,omitempty" bson:"selected_strategy,omitempty"`
|
||||
Partnerships []T `json:"partnerships,omitempty" bson:"partnerships,omitempty"`
|
||||
}
|
||||
|
||||
func (ri *ResourceInstance[T]) ClearEnv() {
|
||||
@ -162,7 +164,18 @@ func (ri *ResourceInstance[T]) ClearEnv() {
|
||||
}
|
||||
|
||||
func (ri *ResourceInstance[T]) GetProfile() pricing.PricingProfileITF {
|
||||
return ri.SelectedPricing
|
||||
if len(ri.Partnerships) > ri.SelectedPartnershipIndex {
|
||||
prts := ri.Partnerships[ri.SelectedPartnershipIndex]
|
||||
return prts.GetProfile(ri.SelectedBuyingStrategy, ri.SelectedBuyingStrategy)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ri *ResourceInstance[T]) GetSelectedPartnership(peerID string, groups []string) ResourcePartnerITF {
|
||||
if len(ri.Partnerships) > ri.SelectedPartnershipIndex {
|
||||
return ri.Partnerships[ri.SelectedPartnershipIndex]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ri *ResourceInstance[T]) GetPartnerships(peerID string, groups []string) []ResourcePartnerITF {
|
||||
@ -210,6 +223,15 @@ type ResourcePartnerShip[T pricing.PricingProfileITF] struct {
|
||||
// to upgrade pricing profiles. to be a map BuyingStrategy, map of Strategy
|
||||
}
|
||||
|
||||
func (ri *ResourcePartnerShip[T]) GetProfile(buying int, strategy int) pricing.PricingProfileITF {
|
||||
if strat, ok := ri.PricingProfiles[buying]; ok {
|
||||
if profile, ok := strat[strategy]; ok {
|
||||
return profile
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
Le pricing doit être selectionné lors d'un scheduling...
|
||||
le type de paiement défini le type de stratégie de paiement
|
||||
|
@ -20,7 +20,10 @@ func (m *MockInstance) GetID() string { return m.ID }
|
||||
func (m *MockInstance) GetName() string { return m.Name }
|
||||
func (m *MockInstance) ClearEnv() {}
|
||||
func (m *MockInstance) ClearPeerGroups() {}
|
||||
func (m *MockInstance) GetPricingsProfiles(string, []string) []pricing.PricingProfileITF {
|
||||
func (m *MockInstance) GetProfile() pricing.PricingProfileITF {
|
||||
return nil
|
||||
}
|
||||
func (m *MockInstance) GetPricingsProfiles(peerID string, groups []string) []pricing.PricingProfileITF {
|
||||
return nil
|
||||
}
|
||||
func (m *MockInstance) GetPeerGroups() ([]resources.ResourcePartnerITF, []map[string][]string) {
|
||||
@ -33,6 +36,10 @@ type MockPartner struct {
|
||||
groups map[string][]string
|
||||
}
|
||||
|
||||
func (m *MockPartner) GetProfile(buying int, strategy int) pricing.PricingProfileITF {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *MockPartner) GetPeerGroups() map[string][]string {
|
||||
return m.groups
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user