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
|
GetPricingsProfiles(peerID string, groups []string) []pricing.PricingProfileITF
|
||||||
GetPeerGroups() ([]ResourcePartnerITF, []map[string][]string)
|
GetPeerGroups() ([]ResourcePartnerITF, []map[string][]string)
|
||||||
ClearPeerGroups()
|
ClearPeerGroups()
|
||||||
|
GetSelectedPartnership(peerID string, groups []string) ResourcePartnerITF
|
||||||
GetPartnerships(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
|
GetPricingsProfiles(peerID string, groups []string) []pricing.PricingProfileITF
|
||||||
GetPeerGroups() map[string][]string
|
GetPeerGroups() map[string][]string
|
||||||
ClearPeerGroups()
|
ClearPeerGroups()
|
||||||
|
GetProfile(buying int, strategy int) pricing.PricingProfileITF
|
||||||
}
|
}
|
||||||
|
@ -145,14 +145,16 @@ type GeoPoint struct {
|
|||||||
|
|
||||||
type ResourceInstance[T ResourcePartnerITF] struct {
|
type ResourceInstance[T ResourcePartnerITF] struct {
|
||||||
utils.AbstractObject
|
utils.AbstractObject
|
||||||
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
||||||
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
||||||
AccessProtocol string `json:"access_protocol,omitempty" bson:"access_protocol,omitempty"`
|
AccessProtocol string `json:"access_protocol,omitempty" bson:"access_protocol,omitempty"`
|
||||||
Env []models.Param `json:"env,omitempty" bson:"env,omitempty"`
|
Env []models.Param `json:"env,omitempty" bson:"env,omitempty"`
|
||||||
Inputs []models.Param `json:"inputs,omitempty" bson:"inputs,omitempty"`
|
Inputs []models.Param `json:"inputs,omitempty" bson:"inputs,omitempty"`
|
||||||
Outputs []models.Param `json:"outputs,omitempty" bson:"outputs,omitempty"`
|
Outputs []models.Param `json:"outputs,omitempty" bson:"outputs,omitempty"`
|
||||||
SelectedPricing pricing.PricingProfileITF `json:"selected_pricing,omitempty" bson:"selected_pricing,omitempty"`
|
SelectedPartnershipIndex int `json:"selected_partnership_index,omitempty" bson:"selected_partnership_index,omitempty"`
|
||||||
Partnerships []T `json:"partnerships,omitempty" bson:"partnerships,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() {
|
func (ri *ResourceInstance[T]) ClearEnv() {
|
||||||
@ -162,7 +164,18 @@ func (ri *ResourceInstance[T]) ClearEnv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ri *ResourceInstance[T]) GetProfile() pricing.PricingProfileITF {
|
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 {
|
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
|
// 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 pricing doit être selectionné lors d'un scheduling...
|
||||||
le type de paiement défini le type de stratégie de paiement
|
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) GetName() string { return m.Name }
|
||||||
func (m *MockInstance) ClearEnv() {}
|
func (m *MockInstance) ClearEnv() {}
|
||||||
func (m *MockInstance) ClearPeerGroups() {}
|
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
|
return nil
|
||||||
}
|
}
|
||||||
func (m *MockInstance) GetPeerGroups() ([]resources.ResourcePartnerITF, []map[string][]string) {
|
func (m *MockInstance) GetPeerGroups() ([]resources.ResourcePartnerITF, []map[string][]string) {
|
||||||
@ -33,6 +36,10 @@ type MockPartner struct {
|
|||||||
groups map[string][]string
|
groups map[string][]string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *MockPartner) GetProfile(buying int, strategy int) pricing.PricingProfileITF {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *MockPartner) GetPeerGroups() map[string][]string {
|
func (m *MockPartner) GetPeerGroups() map[string][]string {
|
||||||
return m.groups
|
return m.groups
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user