Skip to content

Commit d0ce2c4

Browse files
committed
add ht to cpu type model
Signed-off-by: Maksim Fedotov <maksim.fedotov@flant.com>
1 parent 1b5b704 commit d0ce2c4

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

images/virtualization-artifact/pkg/controller/kvbuilder/kvvm.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ func (b *KVVM) SetCPUModel(class *v1alpha2.VirtualMachineClass) error {
163163
cpu.Model = virtv1.CPUModeHostPassthrough
164164
case v1alpha2.CPUTypeModel:
165165
cpu.Model = class.Spec.CPU.Model
166+
cpu.Features = []virtv1.CPUFeature{{Name: HTCPUFeature, Policy: "require"}}
166167
case v1alpha2.CPUTypeDiscovery, v1alpha2.CPUTypeFeatures:
167168
cpu.Model = GenericCPUModel
168169
features := make([]virtv1.CPUFeature, 0, len(class.Status.CpuFeatures.Enabled)+2)

images/virtualization-artifact/pkg/controller/kvbuilder/kvvm_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,24 @@ func TestSetCPUModel(t *testing.T) {
229229
name := "test-name"
230230
namespace := "test-namespace"
231231

232+
t.Run("should add required ht feature for model cpu", func(t *testing.T) {
233+
builder := NewEmptyKVVM(types.NamespacedName{Name: name, Namespace: namespace}, KVVMOptions{})
234+
class := &v1alpha2.VirtualMachineClass{
235+
Spec: v1alpha2.VirtualMachineClassSpec{
236+
CPU: v1alpha2.CPU{Type: v1alpha2.CPUTypeModel, Model: "Nehalem"},
237+
},
238+
}
239+
240+
if err := builder.SetCPUModel(class); err != nil {
241+
t.Fatalf("SetCPUModel() failed: %v", err)
242+
}
243+
244+
features := builder.Resource.Spec.Template.Spec.Domain.CPU.Features
245+
if !containsCPUFeature(features, virtv1.CPUFeature{Name: HTCPUFeature, Policy: "require"}) {
246+
t.Fatalf("expected required ht feature to be added for model cpu, got %#v", features)
247+
}
248+
})
249+
232250
t.Run("should add required ht feature for discovery cpu", func(t *testing.T) {
233251
builder := NewEmptyKVVM(types.NamespacedName{Name: name, Namespace: namespace}, KVVMOptions{})
234252
class := &v1alpha2.VirtualMachineClass{

0 commit comments

Comments
 (0)