Documentation ¶
Index ¶
- Constants
- Variables
- func GetKilowattPowerline(powerline int32) float64
- func PriceTrendListSave(pt PriceTrend) string
- func ServerDemandParsingNumbers(m map[string]interface{}) [2]int32
- type Actor
- type ActorAbstract
- func (self *ActorAbstract) AddOffer(offer *ServerOffer)
- func (actor *ActorAbstract) GetInventory() *Inventory
- func (actor *ActorAbstract) GetLedger() *accounting.Ledger
- func (actor *ActorAbstract) GetLocation() *LocationType
- func (actor *ActorAbstract) GetLocationName() string
- func (self *ActorAbstract) GetName() string
- func (self *ActorAbstract) GetOffers() []*ServerOffer
- func (self *ActorAbstract) GetReputationScore() float64
- func (actor *ActorAbstract) Init(timer *timer.GameTimer, locationname, name string)
- func (self *ActorAbstract) LoadOffer(offer map[string]interface{})
- func (self *ActorAbstract) RemoveOffer(offer *ServerOffer)
- type BannerWidget
- type CartItem
- type CartPageItemUi
- type CartPageWidget
- func (self *CartPageWidget) AddItem(productitem int32, conf *ServerConf, unitprice float64, nb int32)
- func (self *CartPageWidget) DeleteItem(cartitem *CartItem)
- func (self *CartPageWidget) Reset()
- func (self *CartPageWidget) SetBuyCallback(callback func())
- func (self *CartPageWidget) SetGame(inventory *Inventory)
- type CriteriaFilter
- func NewFilterDisk(i map[string]interface{}) CriteriaFilter
- func NewFilterNbcores(i map[string]interface{}) CriteriaFilter
- func NewFilterPrice(i map[string]interface{}) CriteriaFilter
- func NewFilterRam(i map[string]interface{}) CriteriaFilter
- func ServerDemandParsingFilters(m map[string]interface{}) []CriteriaFilter
- type CriteriaFilterDisk
- type CriteriaFilterNbcores
- type CriteriaFilterPrice
- type CriteriaFilterRam
- type DemandInstance
- type DemandTemplate
- type HardwareServerPool
- func (self *HardwareServerPool) AddPoolSubscriber(subscriber PoolSubscriber)
- func (self *HardwareServerPool) Allocate(nbcores, ramsize, disksize int32, vt bool) *InventoryItem
- func (self *HardwareServerPool) GetName() string
- func (self *HardwareServerPool) HowManyFit(nbcores, ramsize, disksize int32, vt bool) int32
- func (self *HardwareServerPool) IsAllocated(item *InventoryItem) bool
- func (self *HardwareServerPool) IsInside(item *InventoryItem) bool
- func (self *HardwareServerPool) IsVps() bool
- func (self *HardwareServerPool) Release(item *InventoryItem, nbcores, ramsize, disksize int32)
- func (self *HardwareServerPool) RemovePoolSubscriber(subscriber PoolSubscriber)
- type Inventory
- func (self *Inventory) AddInventoryPoolSubscriber(subscriber InventoryPoolSubscriber)
- func (self *Inventory) AddInventorySubscriber(subscriber InventorySubscriber)
- func (self *Inventory) AddPool(pool ServerPool)
- func (self *Inventory) AddPowerStatSubscriber(subscriber InventoryPowerChangeSubscriber)
- func (self *Inventory) AddServerBundle(bundle *ServerBundle)
- func (self *Inventory) AssignPool(item *InventoryItem, pool ServerPool)
- func (self *Inventory) BuyCart(buydate time.Time) []*InventoryItem
- func (self *Inventory) ComputeGlobalPower()
- func (self *Inventory) DecommissionServer(item *InventoryItem, smoothly bool) bool
- func (self *Inventory) DiscardItem(item *InventoryItem) bool
- func (self *Inventory) GeneratePowerlineOutage(probability float64) bool
- func (self *Inventory) GetDefaultPhysicalPool() ServerPool
- func (self *Inventory) GetDefaultPoolAllocation() int32
- func (self *Inventory) GetDefaultVpsPool() ServerPool
- func (self *Inventory) GetGlobalPower() (consumption, generation, cooler float64)
- func (self *Inventory) GetHotspotValue(y, x int32) float64
- func (self *Inventory) GetMonthlyPowerlinesPrice() float64
- func (self *Inventory) GetPools() []ServerPool
- func (self *Inventory) GetPowerlines() [3]int32
- func (self *Inventory) GetServerBundlePerItem(item *InventoryItem) *ServerBundle
- func (self *Inventory) GetServerBundles() []*ServerBundle
- func (self *Inventory) InstallItem(item *InventoryItem, x, y, z int32) bool
- func (self *Inventory) Load(conf map[string]interface{})
- func (self *Inventory) LoadItem(product map[string]interface{})
- func (self *Inventory) RemoveInventorySubscriber(subscriber InventorySubscriber)
- func (self *Inventory) RemovePool(pool ServerPool)
- func (self *Inventory) RemovePowerChangeSubscriber(subscriber InventoryPowerChangeSubscriber)
- func (self *Inventory) RemoveServerBundle(bundle *ServerBundle)
- func (self *Inventory) Save() string
- func (self *Inventory) ScrapItem(item *InventoryItem)
- func (self *Inventory) SetDefaultPoolAllocation(poolallocation int32)
- func (self *Inventory) SetPowerline(index, power int32)
- func (self *Inventory) UninstallItem(item *InventoryItem)
- type InventoryItem
- type InventoryPoolSubscriber
- type InventoryPowerChangeSubscriber
- type InventorySubscriber
- type LocationType
- type PoolManagementFilter
- type PoolManagementLineWidget
- func (self *PoolManagementLineWidget) AddChild(child sws.Widget)
- func (self *PoolManagementLineWidget) MousePressDown(x, y int32, button uint8)
- func (self *PoolManagementLineWidget) MousePressUp(x, y int32, button uint8)
- func (self *PoolManagementLineWidget) UpdateBgColor()
- func (self *PoolManagementLineWidget) UpdateStatus()
- type PoolManagementWidget
- func (self *PoolManagementWidget) InventoryItemAdd(*InventoryItem)
- func (self *PoolManagementWidget) InventoryItemAllocate(item *InventoryItem)
- func (self *PoolManagementWidget) InventoryItemRelease(item *InventoryItem)
- func (self *PoolManagementWidget) InventoryItemRemove(*InventoryItem)
- func (self *PoolManagementWidget) ItemChangedPool(*InventoryItem)
- func (self *PoolManagementWidget) ItemInStock(item *InventoryItem)
- func (self *PoolManagementWidget) ItemInTransit(*InventoryItem)
- func (self *PoolManagementWidget) ItemInstalled(item *InventoryItem)
- func (self *PoolManagementWidget) ItemRemoveFromStock(item *InventoryItem)
- func (self *PoolManagementWidget) ItemUninstalled(item *InventoryItem)
- func (self *PoolManagementWidget) Resize(width, height int32)
- func (self *PoolManagementWidget) Search(search string)
- func (self *PoolManagementWidget) SelectLine(line *PoolManagementLineWidget, selected bool)
- func (self *PoolManagementWidget) SetGame(inventory *Inventory, currenttime time.Time)
- type PoolSubscriber
- type PriceTrend
- type PriceTrendItem
- type PriceTrendList
- type PriorityAbstract
- type PriorityDisk
- type PriorityNbcores
- type PriorityPoint
- func NewPriorityDisk(value int32) PriorityPoint
- func NewPriorityNbcores(value int32) PriorityPoint
- func NewPriorityPrice(value int32) PriorityPoint
- func NewPriorityRam(value int32) PriorityPoint
- func NewPriorityReputation(value int32) PriorityPoint
- func ServerDemandParsingPriorities(m map[string]interface{}) []PriorityPoint
- type PriorityPrice
- type PriorityRam
- type PriorityReputation
- type Reputation
- func (self *Reputation) AddReputationSubscriber(subscriber ReputationSubscriber)
- func (self *Reputation) GetScore() float64
- func (self *Reputation) Load(data map[string]interface{})
- func (self *Reputation) RecordNegativePoint(time time.Time)
- func (self *Reputation) RecordPositivePoint(time time.Time)
- func (self *Reputation) RemoveReputationSubscriber(subscriber ReputationSubscriber)
- func (self *Reputation) Save() string
- type ReputationSubscriber
- type ServerBundle
- type ServerConf
- type ServerConfType
- type ServerContract
- type ServerDemandTemplate
- type ServerOffer
- type ServerPageBladeWidget
- type ServerPageConfigureWidget
- func (self *ServerPageConfigureWidget) GetConf() *ServerConf
- func (self *ServerPageConfigureWidget) GetNbUnit() int32
- func (self *ServerPageConfigureWidget) GetProductType() int32
- func (self *ServerPageConfigureWidget) GetUnitPrice() float64
- func (self *ServerPageConfigureWidget) SetAddCartCallback(callback func())
- func (self *ServerPageConfigureWidget) SetConfType(trend *Trend, conftypename string, today time.Time)
- func (self *ServerPageConfigureWidget) SetGame(trend *Trend)
- type ServerPageExploreWidget
- func (self *ServerPageExploreWidget) SetAcCallback(callback func())
- func (self *ServerPageExploreWidget) SetBladeCallback(callback func())
- func (self *ServerPageExploreWidget) SetGeneratorCallback(callback func())
- func (self *ServerPageExploreWidget) SetRackCallback(callback func())
- func (self *ServerPageExploreWidget) SetRackServerCallback(callback func())
- func (self *ServerPageExploreWidget) SetTowerCallback(callback func())
- type ServerPageRackWidget
- func (self *ServerPageRackWidget) SetConfigureRack1Callback(callback func())
- func (self *ServerPageRackWidget) SetConfigureRack2Callback(callback func())
- func (self *ServerPageRackWidget) SetConfigureRack4Callback(callback func())
- func (self *ServerPageRackWidget) SetConfigureRack6Callback(callback func())
- type ServerPageTowerWidget
- type ServerPageWidget
- func (self *ServerPageWidget) SetAcCallback(callback func())
- func (self *ServerPageWidget) SetBladeCallback(callback func())
- func (self *ServerPageWidget) SetGeneratorCallback(callback func())
- func (self *ServerPageWidget) SetRackCallback(callback func())
- func (self *ServerPageWidget) SetRackServerCallback(callback func())
- func (self *ServerPageWidget) SetTowerCallback(callback func())
- type ServerPool
- type SortedOffer
- type SortedOffers
- type TrackPageItemUi
- type TrackPageWidget
- func (self *TrackPageWidget) ItemChangedPool(*InventoryItem)
- func (self *TrackPageWidget) ItemInStock(item *InventoryItem)
- func (self *TrackPageWidget) ItemInTransit(item *InventoryItem)
- func (self *TrackPageWidget) ItemInstalled(*InventoryItem)
- func (self *TrackPageWidget) ItemRemoveFromStock(*InventoryItem)
- func (self *TrackPageWidget) ItemUninstalled(*InventoryItem)
- func (self *TrackPageWidget) SetGame(inventory *Inventory, currenttime time.Time)
- type Trend
- type TrendItem
- type TrendList
- type VpsServerPool
- func (self *VpsServerPool) AddPoolSubscriber(subscriber PoolSubscriber)
- func (self *VpsServerPool) Allocate(nbcores, ramsize, disksize int32, vt bool) *InventoryItem
- func (self *VpsServerPool) GetName() string
- func (self *VpsServerPool) HowManyFit(nbcores, ramsize, disksize int32, vt bool) int32
- func (self *VpsServerPool) IsAllocated(item *InventoryItem) bool
- func (self *VpsServerPool) IsInside(item *InventoryItem) bool
- func (self *VpsServerPool) IsVps() bool
- func (self *VpsServerPool) Release(item *InventoryItem, nbcores, ramsize, disksize int32)
- func (self *VpsServerPool) RemovePoolSubscriber(subscriber PoolSubscriber)
Constants ¶
const ( PRODUCT_SERVER = iota PRODUCT_RACK = iota PRODUCT_AC = iota PRODUCT_GENERATOR = iota PRODUCT_DECORATION = iota )
const ( POWERLINE_NONE = iota POWERLINE_10K = iota POWERLINE_50K = iota POWERLINE_200K = iota POWERLINE_1M = iota )
const ( ASSIGNED_UNASSIGNED = 0 ASSIGNED_PHYSICAL = 1 ASSIGNED_VPS = 2 )
const (
REPUTATION_NB_MONTH = 36
)
Variables ¶
var AvailableConfs = []ServerConfType{ ServerConfType{ ServerName: "T1000", NbProcessors: [2]int32{1, 2}, NbDisks: [2]int32{1, 2}, NbSlotRam: [2]int32{1, 4}, BackplanePrice: 200, ServerSprite: "tower", NbU: -1, Scrap: false, }, ServerConfType{ ServerName: "R100", NbProcessors: [2]int32{1, 2}, NbDisks: [2]int32{1, 1}, NbSlotRam: [2]int32{1, 2}, BackplanePrice: 1000, ServerSprite: "server.1u", NbU: 1, Scrap: false, }, ServerConfType{ ServerName: "R200", NbProcessors: [2]int32{1, 2}, NbDisks: [2]int32{1, 4}, NbSlotRam: [2]int32{1, 4}, BackplanePrice: 2000, ServerSprite: "server.2u", NbU: 2, Scrap: false, }, ServerConfType{ ServerName: "R400", NbProcessors: [2]int32{1, 2}, NbDisks: [2]int32{1, 10}, NbSlotRam: [2]int32{1, 8}, BackplanePrice: 3000, ServerSprite: "server.4u", NbU: 4, Scrap: false, }, ServerConfType{ ServerName: "R600", NbProcessors: [2]int32{2, 4}, NbDisks: [2]int32{1, 6}, NbSlotRam: [2]int32{1, 8}, BackplanePrice: 3000, ServerSprite: "server.4u", NbU: 4, Scrap: false, }, ServerConfType{ ServerName: "B100", NbProcessors: [2]int32{8, 8}, NbDisks: [2]int32{8, 8}, NbSlotRam: [2]int32{32, 32}, BackplanePrice: 6000, ServerSprite: "server.blade.8u", NbU: 8, Scrap: false, }, ServerConfType{ ServerName: "B200", NbProcessors: [2]int32{16, 16}, NbDisks: [2]int32{8, 8}, NbSlotRam: [2]int32{32, 32}, BackplanePrice: 8000, ServerSprite: "server.blade.8u", NbU: 8, Scrap: false, }, ServerConfType{ ServerName: "scrap1U", NbProcessors: [2]int32{0, 0}, NbDisks: [2]int32{0, 0}, NbSlotRam: [2]int32{0, 0}, BackplanePrice: 0, ServerSprite: "scrap.1u", NbU: 1, Scrap: true, }, ServerConfType{ ServerName: "scrap2U", NbProcessors: [2]int32{0, 0}, NbDisks: [2]int32{0, 0}, NbSlotRam: [2]int32{0, 0}, BackplanePrice: 0, ServerSprite: "scrap.2u", NbU: 2, Scrap: true, }, ServerConfType{ ServerName: "scrap4U", NbProcessors: [2]int32{0, 0}, NbDisks: [2]int32{0, 0}, NbSlotRam: [2]int32{0, 0}, BackplanePrice: 0, ServerSprite: "scrap.4u", NbU: 4, Scrap: true, }, ServerConfType{ ServerName: "scrap8U", NbProcessors: [2]int32{0, 0}, NbDisks: [2]int32{0, 0}, NbSlotRam: [2]int32{0, 0}, BackplanePrice: 0, ServerSprite: "scrap.8u", NbU: 8, Scrap: true, }, }
var AvailableLocation = map[string]*LocationType{ "siliconvalley": &LocationType{ Name: "Mountain View", Metersquareprice: 30, Internetfailrate: 0.005, Electricityfailrate: 0.010, Temperatureaverage: 16.11, Electricitycost: 0.1534, Taxrate: 0.12, Bankinterestrate: 0.03, Xmap: 772, Ymap: 1431, }, "newyork": &LocationType{ Name: "New York", Metersquareprice: 26, Internetfailrate: 0.003, Electricityfailrate: 0.005, Temperatureaverage: 12.77, Electricitycost: 0.13, Taxrate: 0.10, Bankinterestrate: 0.03, Xmap: 1228, Ymap: 1388, }, "london": &LocationType{ Name: "London", Metersquareprice: 36, Internetfailrate: 0.002, Electricityfailrate: 0.004, Temperatureaverage: 10.4, Electricitycost: 0.22, Taxrate: 0.19, Bankinterestrate: 0.03, Xmap: 1933, Ymap: 1233, }, "lulea": &LocationType{ Name: "Luleå", Metersquareprice: 1, Internetfailrate: 0.002, Electricityfailrate: 0.003, Temperatureaverage: 0, Electricitycost: 0.0833, Taxrate: 0.22, Bankinterestrate: 0.03, Xmap: 2146, Ymap: 1003, }, "shanghai": &LocationType{ Name: "Shanghai", Metersquareprice: 30, Internetfailrate: 0.002, Electricityfailrate: 0.003, Temperatureaverage: 22, Electricitycost: 0.042, Taxrate: 0.25, Bankinterestrate: 0.04, Xmap: 3085, Ymap: 1500, }, "sydney": &LocationType{ Name: "Sydney", Metersquareprice: 28, Internetfailrate: 0.002, Electricityfailrate: 0.003, Temperatureaverage: 23, Electricitycost: 0.23, Taxrate: 0.29, Bankinterestrate: 0.04, Xmap: 3369, Ymap: 2183, }, "bangalore": &LocationType{ Name: "Bangalore", Metersquareprice: 3.4, Internetfailrate: 0.003, Electricityfailrate: 0.004, Temperatureaverage: 30, Electricitycost: 0.07, Taxrate: 0.08, Bankinterestrate: 0.04, Xmap: 2673, Ymap: 1706, }, "moscow": &LocationType{ Name: "Moscow", Metersquareprice: 11, Internetfailrate: 0.003, Electricityfailrate: 0.005, Temperatureaverage: 9, Electricitycost: 0.08, Taxrate: 0.20, Bankinterestrate: 0.06, Xmap: 2294, Ymap: 1172, }, }
var GlobalLocation string
Functions ¶
func GetKilowattPowerline ¶
func PriceTrendListSave ¶
func PriceTrendListSave(pt PriceTrend) string
Types ¶
type Actor ¶
type Actor interface { GetInventory() *Inventory GetLedger() *accounting.Ledger GetName() string // "you" = player GetLocation() *LocationType GetReputationScore() float64 // 0.0 <= score <= 1.0 GetOffers() []*ServerOffer }
Actor -> Player or NPDatacenter
type ActorAbstract ¶
type ActorAbstract struct {
// contains filtered or unexported fields
}
func NewActorAbstract ¶
func NewActorAbstract() *ActorAbstract
func (*ActorAbstract) AddOffer ¶
func (self *ActorAbstract) AddOffer(offer *ServerOffer)
func (*ActorAbstract) GetInventory ¶
func (actor *ActorAbstract) GetInventory() *Inventory
GetInventory is part of the Actor interface
func (*ActorAbstract) GetLedger ¶
func (actor *ActorAbstract) GetLedger() *accounting.Ledger
GetLedger is part of the Actor interface
func (*ActorAbstract) GetLocation ¶
func (actor *ActorAbstract) GetLocation() *LocationType
func (*ActorAbstract) GetLocationName ¶
func (actor *ActorAbstract) GetLocationName() string
func (*ActorAbstract) GetName ¶
func (self *ActorAbstract) GetName() string
func (*ActorAbstract) GetOffers ¶
func (self *ActorAbstract) GetOffers() []*ServerOffer
func (*ActorAbstract) GetReputationScore ¶
func (self *ActorAbstract) GetReputationScore() float64
GetReputationScore is part of the Actor interface. 0.0 <= score <= 1.0
func (*ActorAbstract) Init ¶
func (actor *ActorAbstract) Init(timer *timer.GameTimer, locationname, name string)
func (*ActorAbstract) LoadOffer ¶
func (self *ActorAbstract) LoadOffer(offer map[string]interface{})
func (*ActorAbstract) RemoveOffer ¶
func (self *ActorAbstract) RemoveOffer(offer *ServerOffer)
type BannerWidget ¶
type BannerWidget struct { sws.CoreWidget // contains filtered or unexported fields }
ad widget
func NewBannerWidget ¶
func NewBannerWidget(width, height int32) *BannerWidget
type CartItem ¶
type CartItem struct { Typeitem int32 Serverconf *ServerConf // if it is an PRODUCT_SERVER Unitprice float64 Nb int32 }
type CartPageItemUi ¶
type CartPageItemUi struct { sws.CoreWidget // contains filtered or unexported fields }
func NewCartPageItemUi ¶
func NewCartPageItemUi(iconasset, desc string, price float64, qty int32, totalcallback func()) *CartPageItemUi
type CartPageWidget ¶
type CartPageWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Cart page
the cart inventory is stored into the GlobalInventory object
func NewCartPageWidget ¶
func NewCartPageWidget(width, height int32) *CartPageWidget
func (*CartPageWidget) AddItem ¶
func (self *CartPageWidget) AddItem(productitem int32, conf *ServerConf, unitprice float64, nb int32)
func (*CartPageWidget) DeleteItem ¶
func (self *CartPageWidget) DeleteItem(cartitem *CartItem)
func (*CartPageWidget) Reset ¶
func (self *CartPageWidget) Reset()
func (*CartPageWidget) SetBuyCallback ¶
func (self *CartPageWidget) SetBuyCallback(callback func())
func (*CartPageWidget) SetGame ¶
func (self *CartPageWidget) SetGame(inventory *Inventory)
type CriteriaFilter ¶
type CriteriaFilter interface {
Filter(offers []*ServerOffer) []*ServerOffer
}
func NewFilterDisk ¶
func NewFilterDisk(i map[string]interface{}) CriteriaFilter
func NewFilterNbcores ¶
func NewFilterNbcores(i map[string]interface{}) CriteriaFilter
func NewFilterPrice ¶
func NewFilterPrice(i map[string]interface{}) CriteriaFilter
func NewFilterRam ¶
func NewFilterRam(i map[string]interface{}) CriteriaFilter
func ServerDemandParsingFilters ¶
func ServerDemandParsingFilters(m map[string]interface{}) []CriteriaFilter
type CriteriaFilterDisk ¶
type CriteriaFilterDisk struct {
Disksize int32
}
func (*CriteriaFilterDisk) Filter ¶
func (self *CriteriaFilterDisk) Filter(offers []*ServerOffer) []*ServerOffer
type CriteriaFilterNbcores ¶
type CriteriaFilterNbcores struct {
Nbcores int32
}
func (*CriteriaFilterNbcores) Filter ¶
func (self *CriteriaFilterNbcores) Filter(offers []*ServerOffer) []*ServerOffer
type CriteriaFilterPrice ¶
type CriteriaFilterPrice struct {
Price float64
}
func (*CriteriaFilterPrice) Filter ¶
func (self *CriteriaFilterPrice) Filter(offers []*ServerOffer) []*ServerOffer
type CriteriaFilterRam ¶
type CriteriaFilterRam struct {
Ramsize int32
}
func (*CriteriaFilterRam) Filter ¶
func (self *CriteriaFilterRam) Filter(offers []*ServerOffer) []*ServerOffer
type DemandInstance ¶
type DemandInstance struct { Template *DemandTemplate Nb map[string]int32 // number of instance per specs }
func (*DemandInstance) FindOffer ¶
func (self *DemandInstance) FindOffer(actors []Actor, now time.Time) (*ServerBundle, Actor)
we should check across the inventory of different competitors
and from these inventory checks across all the offers
func (*DemandInstance) ToString ¶
func (self *DemandInstance) ToString() string
type DemandTemplate ¶
type DemandTemplate struct { Specs map[string]*ServerDemandTemplate Beginningdate time.Time Howoften int32 // per year Renewalfactor float64 // per year }
func DemandParsing ¶
func DemandParsing(j map[string]interface{}) *DemandTemplate
DemandParsing parse a complete demand template such as
{ "specs": { "app": { "filters": { "diskfilter": { "mindisk": 40} }, "priorities": { "price": 2, "disk": 1, "network":1, "reputation":1, "captive":2 }, "numbers": { "low": 1, "high": 1} }, "db": { "filters": { "diskfilter": { "mindisk": 40} }, "priorities": { "disk": 1, "network":1, "reputation":1 }, "numbers": { "low": 1, "high": 1} } }, "beginningdate": "1996-12-01", "howoften": 40 }
func DemandTemplateAssetLoad ¶
func DemandTemplateAssetLoad(assetname string) *DemandTemplate
func (*DemandTemplate) InstanciateDemand ¶
func (self *DemandTemplate) InstanciateDemand() *DemandInstance
this function is called every "howoften" per year
type HardwareServerPool ¶
type HardwareServerPool struct { Name string // contains filtered or unexported fields }
func NewHardwareServerPool ¶
func NewHardwareServerPool(name string) *HardwareServerPool
func (*HardwareServerPool) AddPoolSubscriber ¶
func (self *HardwareServerPool) AddPoolSubscriber(subscriber PoolSubscriber)
func (*HardwareServerPool) Allocate ¶
func (self *HardwareServerPool) Allocate(nbcores, ramsize, disksize int32, vt bool) *InventoryItem
func (*HardwareServerPool) GetName ¶
func (self *HardwareServerPool) GetName() string
func (*HardwareServerPool) HowManyFit ¶
func (self *HardwareServerPool) HowManyFit(nbcores, ramsize, disksize int32, vt bool) int32
func (*HardwareServerPool) IsAllocated ¶
func (self *HardwareServerPool) IsAllocated(item *InventoryItem) bool
func (*HardwareServerPool) IsInside ¶
func (self *HardwareServerPool) IsInside(item *InventoryItem) bool
func (*HardwareServerPool) IsVps ¶
func (self *HardwareServerPool) IsVps() bool
func (*HardwareServerPool) Release ¶
func (self *HardwareServerPool) Release(item *InventoryItem, nbcores, ramsize, disksize int32)
func (*HardwareServerPool) RemovePoolSubscriber ¶
func (self *HardwareServerPool) RemovePoolSubscriber(subscriber PoolSubscriber)
type Inventory ¶
type Inventory struct { Cart []*CartItem Items map[int32]*InventoryItem // contains filtered or unexported fields }
Inventory structure owns the inventory of - InventoryItems: servers, AC, rack, generator - pools
func NewInventory ¶
func (*Inventory) AddInventoryPoolSubscriber ¶
func (self *Inventory) AddInventoryPoolSubscriber(subscriber InventoryPoolSubscriber)
func (*Inventory) AddInventorySubscriber ¶
func (self *Inventory) AddInventorySubscriber(subscriber InventorySubscriber)
func (*Inventory) AddPool ¶
func (self *Inventory) AddPool(pool ServerPool)
func (*Inventory) AddPowerStatSubscriber ¶
func (self *Inventory) AddPowerStatSubscriber(subscriber InventoryPowerChangeSubscriber)
func (*Inventory) AddServerBundle ¶
func (self *Inventory) AddServerBundle(bundle *ServerBundle)
func (*Inventory) AssignPool ¶
func (self *Inventory) AssignPool(item *InventoryItem, pool ServerPool)
func (*Inventory) ComputeGlobalPower ¶
func (self *Inventory) ComputeGlobalPower()
GetGlobalPower list all machines on the map and compute - the power machines consumes (positive number) - the power generator can sustain (positive number) normaly called by Inventory only
func (*Inventory) DecommissionServer ¶
func (self *Inventory) DecommissionServer(item *InventoryItem, smoothly bool) bool
DecommissionServer try to relocate an offer on a given item to other servers. return true decomission was possible
func (*Inventory) DiscardItem ¶
func (self *Inventory) DiscardItem(item *InventoryItem) bool
to discard an item, it must not be placed or be a scrap item
func (*Inventory) GeneratePowerlineOutage ¶
PowerlineOutage is called everyday to see if we have an electricity outage return true if outage
func (*Inventory) GetDefaultPhysicalPool ¶
func (self *Inventory) GetDefaultPhysicalPool() ServerPool
func (*Inventory) GetDefaultPoolAllocation ¶
func (*Inventory) GetDefaultVpsPool ¶
func (self *Inventory) GetDefaultVpsPool() ServerPool
func (*Inventory) GetGlobalPower ¶
GetGlobalPower allow to get the current consumption and generator capacity
func (*Inventory) GetHotspotValue ¶
GetHotspotValue allow to get the heat map for each tile It returns the amount of wH
func (*Inventory) GetMonthlyPowerlinesPrice ¶
func (*Inventory) GetPools ¶
func (self *Inventory) GetPools() []ServerPool
func (*Inventory) GetPowerlines ¶
GetPowerlines is used to collect the current situation
func (*Inventory) GetServerBundlePerItem ¶
func (self *Inventory) GetServerBundlePerItem(item *InventoryItem) *ServerBundle
func (*Inventory) GetServerBundles ¶
func (self *Inventory) GetServerBundles() []*ServerBundle
func (*Inventory) InstallItem ¶
func (self *Inventory) InstallItem(item *InventoryItem, x, y, z int32) bool
func (*Inventory) RemoveInventorySubscriber ¶
func (self *Inventory) RemoveInventorySubscriber(subscriber InventorySubscriber)
func (*Inventory) RemovePool ¶
func (self *Inventory) RemovePool(pool ServerPool)
func (*Inventory) RemovePowerChangeSubscriber ¶
func (self *Inventory) RemovePowerChangeSubscriber(subscriber InventoryPowerChangeSubscriber)
func (*Inventory) RemoveServerBundle ¶
func (self *Inventory) RemoveServerBundle(bundle *ServerBundle)
func (*Inventory) ScrapItem ¶
func (self *Inventory) ScrapItem(item *InventoryItem)
ScrapItem replace a given item by a scrap part: - it decomission the server - transform the server into a scrap part
func (*Inventory) SetDefaultPoolAllocation ¶
func (*Inventory) SetPowerline ¶
ChangePowerline is used to adjust one of the 3 main power line arrival power = [POWERLINE_NONE,POWERLINE_10K,POWERLINE_100K,POWERLINE_1M,POWERLINE_10M] we call subscribers systematically
func (*Inventory) UninstallItem ¶
func (self *Inventory) UninstallItem(item *InventoryItem)
type InventoryItem ¶
type InventoryItem struct { Id int32 Typeitem int32 Serverconf *ServerConf // if it is a PRODUCT_SERVER Buydate time.Time // for the amortizement Deliverydate time.Time // to know when to show it Xplaced, Yplaced int32 // -1 if not placed (yet) Zplaced int32 //only for racking servers Pool ServerPool //allocation Coresallocated int32 Ramallocated int32 // in Mo Diskallocated int32 // in Mo }
InventoryItem is used: - to know what we have (immobilization) - where it is situated (rack) - which customer it is linked to
func (*InventoryItem) GetSprite ¶
func (self *InventoryItem) GetSprite() string
func (*InventoryItem) HasArrived ¶
func (self *InventoryItem) HasArrived(t time.Time) bool
HasArrived(time) is an helper method to know if a bough item arrived in the datacenter i.e. InnventoryItem.Deliverydate <= now
func (*InventoryItem) IsPlaced ¶
func (self *InventoryItem) IsPlaced() bool
IsPlaced() is an helper method to know if a given item is on the map (in a rack or placed)
func (*InventoryItem) Save ¶
func (self *InventoryItem) Save() string
func (*InventoryItem) ShortDescription ¶
func (self *InventoryItem) ShortDescription(condensed bool) string
type InventoryPoolSubscriber ¶
type InventoryPoolSubscriber interface { PoolCreate(ServerPool) PoolRemove(ServerPool) }
type InventoryPowerChangeSubscriber ¶
type InventoryPowerChangeSubscriber interface {
PowerChange(time time.Time, consumed, generated, delivered, cooler float64)
}
InventoryPowerChangeSubscriber interface is used to know when the comsumption or the number of generators have changed
type InventorySubscriber ¶
type InventorySubscriber interface { ItemInTransit(*InventoryItem) ItemInStock(*InventoryItem) ItemRemoveFromStock(*InventoryItem) ItemInstalled(*InventoryItem) ItemUninstalled(*InventoryItem) ItemChangedPool(*InventoryItem) }
The lifecycle of an InventoryItem is item is created -> ItemInTransit item arrived -> ItemInStock item is installed/racked -> ItemRemovedFromStock + ItemInstalled item is uninstall/unracked -> ItemUninstalled + ItemInStock
type LocationType ¶
type LocationType struct { Name string Metersquareprice float64 // renting price per month Internetfailrate float64 // per day Electricityfailrate float64 // per day Temperatureaverage float64 // in may? Electricitycost float64 // per kwh Taxrate float64 Bankinterestrate float64 // per year Xmap int32 // x worldmap Ymap int32 // y worldmap }
type PoolManagementFilter ¶
type PoolManagementFilter struct {
// contains filtered or unexported fields
}
type PoolManagementLineWidget ¶
type PoolManagementLineWidget struct { sws.CoreWidget Checkbox *sws.CheckboxWidget // contains filtered or unexported fields }
func NewPoolManagementLineWidget ¶
func NewPoolManagementLineWidget(item *InventoryItem) *PoolManagementLineWidget
func (*PoolManagementLineWidget) AddChild ¶
func (self *PoolManagementLineWidget) AddChild(child sws.Widget)
func (*PoolManagementLineWidget) MousePressDown ¶
func (self *PoolManagementLineWidget) MousePressDown(x, y int32, button uint8)
func (*PoolManagementLineWidget) MousePressUp ¶
func (self *PoolManagementLineWidget) MousePressUp(x, y int32, button uint8)
func (*PoolManagementLineWidget) UpdateBgColor ¶
func (self *PoolManagementLineWidget) UpdateBgColor()
Update the bg color depending on the pool the item belongs to
func (*PoolManagementLineWidget) UpdateStatus ¶
func (self *PoolManagementLineWidget) UpdateStatus()
type PoolManagementWidget ¶
type PoolManagementWidget struct { sws.CoreWidget // contains filtered or unexported fields }
func NewPoolManagementWidget ¶
func NewPoolManagementWidget(root *sws.RootWidget) *PoolManagementWidget
func (*PoolManagementWidget) InventoryItemAdd ¶
func (self *PoolManagementWidget) InventoryItemAdd(*InventoryItem)
is part of PoolSubscriber interface
func (*PoolManagementWidget) InventoryItemAllocate ¶
func (self *PoolManagementWidget) InventoryItemAllocate(item *InventoryItem)
InventoryItemAllocate is part of PoolSubscriber interface
func (*PoolManagementWidget) InventoryItemRelease ¶
func (self *PoolManagementWidget) InventoryItemRelease(item *InventoryItem)
InventoryItemRelease is part of PoolSubscriber interface
func (*PoolManagementWidget) InventoryItemRemove ¶
func (self *PoolManagementWidget) InventoryItemRemove(*InventoryItem)
InventoryItemRemove is part of PoolSubscriber interface
func (*PoolManagementWidget) ItemChangedPool ¶
func (self *PoolManagementWidget) ItemChangedPool(*InventoryItem)
func (*PoolManagementWidget) ItemInStock ¶
func (self *PoolManagementWidget) ItemInStock(item *InventoryItem)
func (*PoolManagementWidget) ItemInTransit ¶
func (self *PoolManagementWidget) ItemInTransit(*InventoryItem)
InventorySubscriber interface
func (*PoolManagementWidget) ItemInstalled ¶
func (self *PoolManagementWidget) ItemInstalled(item *InventoryItem)
func (*PoolManagementWidget) ItemRemoveFromStock ¶
func (self *PoolManagementWidget) ItemRemoveFromStock(item *InventoryItem)
func (*PoolManagementWidget) ItemUninstalled ¶
func (self *PoolManagementWidget) ItemUninstalled(item *InventoryItem)
func (*PoolManagementWidget) Resize ¶
func (self *PoolManagementWidget) Resize(width, height int32)
func (*PoolManagementWidget) Search ¶
func (self *PoolManagementWidget) Search(search string)
func (*PoolManagementWidget) SelectLine ¶
func (self *PoolManagementWidget) SelectLine(line *PoolManagementLineWidget, selected bool)
select the line, update action buttons to show
type PoolSubscriber ¶
type PoolSubscriber interface { InventoryItemAdd(*InventoryItem) InventoryItemRemove(*InventoryItem) InventoryItemAllocate(*InventoryItem) InventoryItemRelease(*InventoryItem) }
type PriceTrend ¶
type PriceTrend struct { Trend PriceTrendList Noise PriceTrendList }
func PriceTrendListLoad ¶
func PriceTrendListLoad(noise []interface{}, trend []PriceTrendItem) PriceTrend
func (*PriceTrend) CurrentValue ¶
func (self *PriceTrend) CurrentValue(now time.Time) float64
function to compute the price+noise for a given date
type PriceTrendItem ¶
Other type of trend: price trends (+noise):
- cpu price / core + noise.
- disk price / Go + noise.
- ram price / Go + noise.
type PriceTrendList ¶
type PriceTrendList []PriceTrendItem
func (PriceTrendList) Len ¶
func (self PriceTrendList) Len() int
func (PriceTrendList) Less ¶
func (self PriceTrendList) Less(i, j int) bool
func (PriceTrendList) Sort ¶
func (self PriceTrendList) Sort()
func (PriceTrendList) Swap ¶
func (self PriceTrendList) Swap(i, j int)
type PriorityAbstract ¶
type PriorityAbstract struct {
// contains filtered or unexported fields
}
PriorityAbstract is a base class for PriorityPrice, PriorityDisk, PriorityRam, ...
type PriorityDisk ¶
type PriorityDisk struct {
PriorityAbstract
}
func (*PriorityDisk) Score ¶
func (self *PriorityDisk) Score(offer []*ServerOffer, points *map[*ServerOffer]float64)
type PriorityNbcores ¶
type PriorityNbcores struct {
PriorityAbstract
}
func (*PriorityNbcores) Score ¶
func (self *PriorityNbcores) Score(offer []*ServerOffer, points *map[*ServerOffer]float64)
type PriorityPoint ¶
type PriorityPoint interface { // point = the bigger, the better Score(offer []*ServerOffer, points *map[*ServerOffer]float64) }
func NewPriorityDisk ¶
func NewPriorityDisk(value int32) PriorityPoint
func NewPriorityNbcores ¶
func NewPriorityNbcores(value int32) PriorityPoint
func NewPriorityPrice ¶
func NewPriorityPrice(value int32) PriorityPoint
func NewPriorityRam ¶
func NewPriorityRam(value int32) PriorityPoint
func NewPriorityReputation ¶
func NewPriorityReputation(value int32) PriorityPoint
func ServerDemandParsingPriorities ¶
func ServerDemandParsingPriorities(m map[string]interface{}) []PriorityPoint
type PriorityPrice ¶
type PriorityPrice struct {
PriorityAbstract
}
func (*PriorityPrice) Score ¶
func (self *PriorityPrice) Score(offer []*ServerOffer, points *map[*ServerOffer]float64)
type PriorityRam ¶
type PriorityRam struct {
PriorityAbstract
}
func (*PriorityRam) Score ¶
func (self *PriorityRam) Score(offer []*ServerOffer, points *map[*ServerOffer]float64)
type PriorityReputation ¶
type PriorityReputation struct {
PriorityAbstract
}
func (*PriorityReputation) Score ¶
func (self *PriorityReputation) Score(offer []*ServerOffer, points *map[*ServerOffer]float64)
type Reputation ¶
type Reputation struct {
// contains filtered or unexported fields
}
Reputation stores all positive and negative "review" and create a [0-1] score. we forget what is older than REPUTATION_NB_MONTH It means the score is only based on the last 36 months
func NewReputation ¶
func NewReputation() *Reputation
func (*Reputation) AddReputationSubscriber ¶
func (self *Reputation) AddReputationSubscriber(subscriber ReputationSubscriber)
func (*Reputation) GetScore ¶
func (self *Reputation) GetScore() float64
func (*Reputation) Load ¶
func (self *Reputation) Load(data map[string]interface{})
func (*Reputation) RecordNegativePoint ¶
func (self *Reputation) RecordNegativePoint(time time.Time)
func (*Reputation) RecordPositivePoint ¶
func (self *Reputation) RecordPositivePoint(time time.Time)
func (*Reputation) RemoveReputationSubscriber ¶
func (self *Reputation) RemoveReputationSubscriber(subscriber ReputationSubscriber)
func (*Reputation) Save ¶
func (self *Reputation) Save() string
type ReputationSubscriber ¶
ReputationSubscriber is mainly used by the MainStatsWidget
type ServerBundle ¶
type ServerBundle struct { Contracts []*ServerContract Renewalrate float64 Date time.Time }
func (*ServerBundle) PayMontlyFee ¶
func (self *ServerBundle) PayMontlyFee(ledger *accounting.Ledger, t time.Time)
func (*ServerBundle) Save ¶
func (self *ServerBundle) Save() string
type ServerConf ¶
type ServerConf struct { NbProcessors int32 //chosen NbCore int32 // depend on the current trend VtSupport bool // depend on the current trend NbDisks int32 // chosen NbSlotRam int32 // chosen DiskSize int32 // 3 options: Trend.Disksize: 1,1/2,1/4 RamSize int32 // 4 options: Trend.Ramsize: 1,1/2,1/4,1/8 ConfType *ServerConfType }
based on the different type of chassis available and the vendor(s) options, the final server conf will have these caracteristics
func (*ServerConf) PowerConsumption ¶
func (self *ServerConf) PowerConsumption() float64
PowerConsumption return the Wh consumption
type ServerConfType ¶
type ServerConfType struct { ServerName string NbProcessors [2]int32 NbDisks [2]int32 NbSlotRam [2]int32 BackplanePrice float64 ServerSprite string NbU int32 Scrap bool }
func GetServerConfTypeByName ¶
func GetServerConfTypeByName(name string) *ServerConfType
type ServerContract ¶
type ServerContract struct { Item *InventoryItem OfferName string Vps bool Nbcores int32 Ramsize int32 Disksize int32 Vt bool // only for non vps offer Price float64 // per month }
func (*ServerContract) Save ¶
func (self *ServerContract) Save() string
type ServerDemandTemplate ¶
type ServerDemandTemplate struct { Filters []CriteriaFilter // contains filtered or unexported fields }
json: demand: {
"spec":{ "app": { filters: { diskfilter: { mindisk: 40 // Go } }, priorities: [ {"price": 2}, {"disk": 1}, {"network":1}, {"image":1},{"captive":2} ] numbers: { low: 1, high: 4} // randomly? }, "db": ... },
"beginningdate": "2000-12-01" // when this demand begins to appear "howoften": 40 // /par an (modulo la courbe de penetration du marché?) "renewalfactorperyear": 0.7 // sur 1 } }
type ServerOffer ¶
type ServerOffer struct { Active bool Name string Actor Actor Pool ServerPool Vps bool Nbcores int32 Ramsize int32 Disksize int32 Vt bool // only for non vps offer Price float64 // per month }
func (*ServerOffer) Allocate ¶
func (self *ServerOffer) Allocate() *InventoryItem
func (*ServerOffer) Release ¶
func (self *ServerOffer) Release(item *InventoryItem)
func (*ServerOffer) Save ¶
func (self *ServerOffer) Save() string
type ServerPageBladeWidget ¶
type ServerPageBladeWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop>>Explore>>Blade servers
func NewServerPageBladeWidget ¶
func NewServerPageBladeWidget(width, height int32) *ServerPageBladeWidget
func (*ServerPageBladeWidget) SetConfigureBlade1Callback ¶
func (self *ServerPageBladeWidget) SetConfigureBlade1Callback(callback func())
func (*ServerPageBladeWidget) SetConfigureBlade2Callback ¶
func (self *ServerPageBladeWidget) SetConfigureBlade2Callback(callback func())
type ServerPageConfigureWidget ¶
type ServerPageConfigureWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop>>Explore>>xxx servers>>Configure
func NewServerPageConfigureWidget ¶
func NewServerPageConfigureWidget(width, height int32) *ServerPageConfigureWidget
func (*ServerPageConfigureWidget) GetConf ¶
func (self *ServerPageConfigureWidget) GetConf() *ServerConf
func (*ServerPageConfigureWidget) GetNbUnit ¶
func (self *ServerPageConfigureWidget) GetNbUnit() int32
func (*ServerPageConfigureWidget) GetProductType ¶
func (self *ServerPageConfigureWidget) GetProductType() int32
func (*ServerPageConfigureWidget) GetUnitPrice ¶
func (self *ServerPageConfigureWidget) GetUnitPrice() float64
func (*ServerPageConfigureWidget) SetAddCartCallback ¶
func (self *ServerPageConfigureWidget) SetAddCartCallback(callback func())
func (*ServerPageConfigureWidget) SetConfType ¶
func (self *ServerPageConfigureWidget) SetConfType(trend *Trend, conftypename string, today time.Time)
func (*ServerPageConfigureWidget) SetGame ¶
func (self *ServerPageConfigureWidget) SetGame(trend *Trend)
type ServerPageExploreWidget ¶
type ServerPageExploreWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop>>Explore
func NewServerPageExploreWidget ¶
func NewServerPageExploreWidget(width, height int32) *ServerPageExploreWidget
func (*ServerPageExploreWidget) SetAcCallback ¶
func (self *ServerPageExploreWidget) SetAcCallback(callback func())
func (*ServerPageExploreWidget) SetBladeCallback ¶
func (self *ServerPageExploreWidget) SetBladeCallback(callback func())
func (*ServerPageExploreWidget) SetGeneratorCallback ¶
func (self *ServerPageExploreWidget) SetGeneratorCallback(callback func())
func (*ServerPageExploreWidget) SetRackCallback ¶
func (self *ServerPageExploreWidget) SetRackCallback(callback func())
func (*ServerPageExploreWidget) SetRackServerCallback ¶
func (self *ServerPageExploreWidget) SetRackServerCallback(callback func())
func (*ServerPageExploreWidget) SetTowerCallback ¶
func (self *ServerPageExploreWidget) SetTowerCallback(callback func())
type ServerPageRackWidget ¶
type ServerPageRackWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop>>Explore>>Rack servers
func NewServerPageRackWidget ¶
func NewServerPageRackWidget(width, height int32) *ServerPageRackWidget
func (*ServerPageRackWidget) SetConfigureRack1Callback ¶
func (self *ServerPageRackWidget) SetConfigureRack1Callback(callback func())
func (*ServerPageRackWidget) SetConfigureRack2Callback ¶
func (self *ServerPageRackWidget) SetConfigureRack2Callback(callback func())
func (*ServerPageRackWidget) SetConfigureRack4Callback ¶
func (self *ServerPageRackWidget) SetConfigureRack4Callback(callback func())
func (*ServerPageRackWidget) SetConfigureRack6Callback ¶
func (self *ServerPageRackWidget) SetConfigureRack6Callback(callback func())
type ServerPageTowerWidget ¶
type ServerPageTowerWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop>>Explore>>Tower servers
func NewServerPageTowerWidget ¶
func NewServerPageTowerWidget(width, height int32) *ServerPageTowerWidget
func (*ServerPageTowerWidget) SetConfigureTower1Callback ¶
func (self *ServerPageTowerWidget) SetConfigureTower1Callback(callback func())
type ServerPageWidget ¶
type ServerPageWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Page Shop
func NewServerPageWidget ¶
func NewServerPageWidget(width, height int32) *ServerPageWidget
func (*ServerPageWidget) SetAcCallback ¶
func (self *ServerPageWidget) SetAcCallback(callback func())
func (*ServerPageWidget) SetBladeCallback ¶
func (self *ServerPageWidget) SetBladeCallback(callback func())
func (*ServerPageWidget) SetGeneratorCallback ¶
func (self *ServerPageWidget) SetGeneratorCallback(callback func())
func (*ServerPageWidget) SetRackCallback ¶
func (self *ServerPageWidget) SetRackCallback(callback func())
func (*ServerPageWidget) SetRackServerCallback ¶
func (self *ServerPageWidget) SetRackServerCallback(callback func())
func (*ServerPageWidget) SetTowerCallback ¶
func (self *ServerPageWidget) SetTowerCallback(callback func())
type ServerPool ¶
type ServerPool interface { GetName() string IsInside(item *InventoryItem) bool Allocate(nbcores, ramsize, disksize int32, vt bool) *InventoryItem IsAllocated(item *InventoryItem) bool Release(item *InventoryItem, nbcores, ramsize, disksize int32) IsVps() bool HowManyFit(nbcores, ramsize, disksize int32, vt bool) int32 AddPoolSubscriber(subscriber PoolSubscriber) RemovePoolSubscriber(subscriber PoolSubscriber) // contains filtered or unexported methods }
type SortedOffer ¶
type SortedOffer struct {
// contains filtered or unexported fields
}
helper structure for PriortyPoint objects
type SortedOffers ¶
type SortedOffers []*SortedOffer
func (SortedOffers) Len ¶
func (s SortedOffers) Len() int
func (SortedOffers) Less ¶
func (s SortedOffers) Less(i, j int) bool
func (SortedOffers) Swap ¶
func (s SortedOffers) Swap(i, j int)
type TrackPageItemUi ¶
type TrackPageItemUi struct { sws.CoreWidget // contains filtered or unexported fields }
func NewTrackPageItemUi ¶
func NewTrackPageItemUi(asseticon, desc string, deliveryDate time.Time) *TrackPageItemUi
type TrackPageWidget ¶
type TrackPageWidget struct { sws.CoreWidget // contains filtered or unexported fields }
Track page
the track inventory is stored into the GlobalInventory object
func NewTrackPageWidget ¶
func NewTrackPageWidget(width, height int32) *TrackPageWidget
func (*TrackPageWidget) ItemChangedPool ¶
func (self *TrackPageWidget) ItemChangedPool(*InventoryItem)
func (*TrackPageWidget) ItemInStock ¶
func (self *TrackPageWidget) ItemInStock(item *InventoryItem)
func (*TrackPageWidget) ItemInTransit ¶
func (self *TrackPageWidget) ItemInTransit(item *InventoryItem)
func (*TrackPageWidget) ItemInstalled ¶
func (self *TrackPageWidget) ItemInstalled(*InventoryItem)
func (*TrackPageWidget) ItemRemoveFromStock ¶
func (self *TrackPageWidget) ItemRemoveFromStock(*InventoryItem)
func (*TrackPageWidget) ItemUninstalled ¶
func (self *TrackPageWidget) ItemUninstalled(*InventoryItem)
type Trend ¶
type Trend struct { Corepercpu TrendList Vt TrendList Disksize TrendList Ramsize TrendList Cpuprice PriceTrend Diskprice PriceTrend Ramprice PriceTrend }
global structure to store all the trends
func (*Trend) Init ¶
func (self *Trend) Init(publishservice timer.EventPublisherService, timer *timer.GameTimer)
type TrendItem ¶
We will have different trends to follow:
- number of cores/CPU.
- vt.
- disk size / plateau.
- ram size / slot.
type VpsServerPool ¶
type VpsServerPool struct { Name string // contains filtered or unexported fields }
func NewVpsServerPool ¶
func NewVpsServerPool(name string, cpuoverallocation, ramoverallocation float64) *VpsServerPool
func (*VpsServerPool) AddPoolSubscriber ¶
func (self *VpsServerPool) AddPoolSubscriber(subscriber PoolSubscriber)
func (*VpsServerPool) Allocate ¶
func (self *VpsServerPool) Allocate(nbcores, ramsize, disksize int32, vt bool) *InventoryItem
func (*VpsServerPool) GetName ¶
func (self *VpsServerPool) GetName() string
func (*VpsServerPool) HowManyFit ¶
func (self *VpsServerPool) HowManyFit(nbcores, ramsize, disksize int32, vt bool) int32
func (*VpsServerPool) IsAllocated ¶
func (self *VpsServerPool) IsAllocated(item *InventoryItem) bool
func (*VpsServerPool) IsInside ¶
func (self *VpsServerPool) IsInside(item *InventoryItem) bool
func (*VpsServerPool) IsVps ¶
func (self *VpsServerPool) IsVps() bool
func (*VpsServerPool) Release ¶
func (self *VpsServerPool) Release(item *InventoryItem, nbcores, ramsize, disksize int32)
func (*VpsServerPool) RemovePoolSubscriber ¶
func (self *VpsServerPool) RemovePoolSubscriber(subscriber PoolSubscriber)
Source Files ¶
- actor.go
- bannerwidget.go
- cartpagewidget.go
- configurator.go
- criteriapriority.go
- historicaltrends.go
- inventory.go
- location.go
- poolandallocation.go
- poolmanagementwidget.go
- reputation.go
- serverpagebladewidget.go
- serverpageconfigurewidget.go
- serverpageexplorewidget.go
- serverpagerackwidget.go
- serverpagetowerwidget.go
- serverpagewidget.go
- trackpagewidget.go