Skip to content

Commit

Permalink
Adding ballooning support
Browse files Browse the repository at this point in the history
  • Loading branch information
Janos Bonic committed May 24, 2022
1 parent 8dc9ff2 commit 646429e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
29 changes: 29 additions & 0 deletions vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -1120,6 +1120,7 @@ func (v vmPlacementPolicyParameters) MustWithHostIDs(hostIDs []HostID) Buildable
type MemoryPolicyParameters interface {
Guaranteed() *int64
Max() *int64
Ballooning() *bool
}

// BuildableMemoryPolicyParameters is a buildable version of MemoryPolicyParameters.
Expand All @@ -1131,6 +1132,9 @@ type BuildableMemoryPolicyParameters interface {

WithMax(max int64) (BuildableMemoryPolicyParameters, error)
MustWithMax(max int64) BuildableMemoryPolicyParameters

WithBallooning(ballooning bool) (BuildableMemoryPolicyParameters, error)
MustWithBallooning(ballooning bool) BuildableMemoryPolicyParameters
}

// NewMemoryPolicyParameters creates a new instance of BuildableMemoryPolicyParameters.
Expand All @@ -1141,6 +1145,24 @@ func NewMemoryPolicyParameters() BuildableMemoryPolicyParameters {
type memoryPolicyParameters struct {
guaranteed *int64
max *int64
ballooning *bool
}

func (m *memoryPolicyParameters) Ballooning() *bool {
return m.ballooning
}

func (m *memoryPolicyParameters) WithBallooning(ballooning bool) (BuildableMemoryPolicyParameters, error) {
m.ballooning = &ballooning
return m, nil
}

func (m *memoryPolicyParameters) MustWithBallooning(ballooning bool) BuildableMemoryPolicyParameters {
builder, err := m.WithBallooning(ballooning)
if err != nil {
panic(err)
}
return builder
}

func (m *memoryPolicyParameters) MustWithGuaranteed(guaranteed int64) BuildableMemoryPolicyParameters {
Expand Down Expand Up @@ -1188,6 +1210,7 @@ type MemoryPolicy interface {
type memoryPolicy struct {
guaranteed *int64
max *int64
ballooning *bool
}

func (m memoryPolicy) Max() *int64 {
Expand Down Expand Up @@ -2093,6 +2116,12 @@ func vmMemoryPolicyConverter(object *ovirtsdk.Vm, v *vm) error {
}
resultMemPolicy.guaranteed = &guaranteed
}
if max, ok := memPolicy.Max(); ok {
resultMemPolicy.max = &max
}
if ballooning, ok := memPolicy.Ballooning(); ok {
resultMemPolicy.ballooning = &ballooning
}
v.memoryPolicy = resultMemPolicy
}
return nil
Expand Down
12 changes: 12 additions & 0 deletions vm_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,9 @@ func vmBuilderMemoryPolicy(params OptionalVMParameters, builder *ovirtsdk.VmBuil
if max := (*memPolicyParams).Max(); max != nil {
memoryPolicyBuilder.Max(*max)
}
if ballooning := (*memPolicyParams).Ballooning(); ballooning != nil {
memoryPolicyBuilder.Ballooning(*ballooning)
}
builder.MemoryPolicyBuilder(memoryPolicyBuilder)
}
}
Expand Down Expand Up @@ -418,14 +421,23 @@ func (m *mockClient) createVMMemoryPolicy(params OptionalVMParameters) *memoryPo
if guaranteedMemory := (*memoryPolicyParams).Guaranteed(); guaranteedMemory != nil {
guaranteed = guaranteedMemory
}

var max *int64
if maxMemory := (*memoryPolicyParams).Max(); maxMemory != nil {
max = maxMemory
}

var ballooning *bool
if memBallooning := (*memoryPolicyParams).Ballooning(); memBallooning != nil {
ballooning = memBallooning
}

memPolicy = &memoryPolicy{
guaranteed,
max,
ballooning,
}

}
return memPolicy
}
Expand Down

0 comments on commit 646429e

Please sign in to comment.