Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions const.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ const (
SupportedEphemeralOSDiskPlacements = "SupportedEphemeralOSDiskPlacements"
// NvmeDiskSizeInMiB identifies the NVMe disk size in MiB.
NvmeDiskSizeInMiB = "NvmeDiskSizeInMiB"
// LowPriorityCapable identifies the capability for low priority VM support.
LowPriorityCapable = "LowPriorityCapable"
)

const (
Expand Down
5 changes: 5 additions & 0 deletions sku.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ func (s *SKU) IsPremiumIO() bool {
return s.HasCapability(CapabilityPremiumIO)
}

// IsLowPriorityCapable returns true when the VM size supports low priority VMs.
func (s *SKU) IsLowPriorityCapable() bool {
return s.HasCapability(LowPriorityCapable)
}

// IsHyperVGen1Supported returns true when the VM size supports
// accelerated networking.
func (s *SKU) IsHyperVGen1Supported() bool {
Expand Down
42 changes: 42 additions & 0 deletions sku_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -778,3 +778,45 @@ func Test_SKU_Includes(t *testing.T) {
})
}
}

func Test_SKU_IsLowPriorityCapable(t *testing.T) {
cases := map[string]struct {
sku compute.ResourceSku
expect bool
}{
"should return false when no capabilities": {
sku: compute.ResourceSku{},
},
"should return false when capability is False": {
sku: compute.ResourceSku{
Capabilities: &[]compute.ResourceSkuCapabilities{
{
Name: to.StringPtr(LowPriorityCapable),
Value: to.StringPtr("False"),
},
},
},
},
"should return true when capability is True": {
sku: compute.ResourceSku{
Capabilities: &[]compute.ResourceSkuCapabilities{
{
Name: to.StringPtr(LowPriorityCapable),
Value: to.StringPtr("True"),
},
},
},
expect: true,
},
}

for name, tc := range cases {
tc := tc
t.Run(name, func(t *testing.T) {
sku := SKU(tc.sku)
if diff := cmp.Diff(tc.expect, sku.IsLowPriorityCapable()); diff != "" {
t.Error(diff)
}
})
}
}
2 changes: 2 additions & 0 deletions v2/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ const (
SupportedEphemeralOSDiskPlacements = "SupportedEphemeralOSDiskPlacements"
// NvmeDiskSizeInMiB identifies the NVMe disk size in MiB.
NvmeDiskSizeInMiB = "NvmeDiskSizeInMiB"
// LowPriorityCapable identifies the capability for low priority VM support.
LowPriorityCapable = "LowPriorityCapable"
)

const (
Expand Down
5 changes: 5 additions & 0 deletions v2/sku.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ func (s *SKU) IsPremiumIO() bool {
return s.HasCapability(CapabilityPremiumIO)
}

// IsLowPriorityCapable returns true when the VM size supports low priority VMs.
func (s *SKU) IsLowPriorityCapable() bool {
return s.HasCapability(LowPriorityCapable)
}

// IsHyperVGen1Supported returns true when the VM size supports
// accelerated networking.
func (s *SKU) IsHyperVGen1Supported() bool {
Expand Down
42 changes: 42 additions & 0 deletions v2/sku_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -776,3 +776,45 @@ func Test_SKU_Includes(t *testing.T) {
})
}
}

func Test_SKU_IsLowPriorityCapable(t *testing.T) {
cases := map[string]struct {
sku armcompute.ResourceSKU
expect bool
}{
"should return false when no capabilities": {
sku: armcompute.ResourceSKU{},
},
"should return false when capability is False": {
sku: armcompute.ResourceSKU{
Capabilities: []*armcompute.ResourceSKUCapabilities{
{
Name: to.Ptr(LowPriorityCapable),
Value: to.Ptr("False"),
},
},
},
},
"should return true when capability is True": {
sku: armcompute.ResourceSKU{
Capabilities: []*armcompute.ResourceSKUCapabilities{
{
Name: to.Ptr(LowPriorityCapable),
Value: to.Ptr("True"),
},
},
},
expect: true,
},
}

for name, tc := range cases {
tc := tc
t.Run(name, func(t *testing.T) {
sku := SKU(tc.sku)
if diff := cmp.Diff(tc.expect, sku.IsLowPriorityCapable()); diff != "" {
t.Error(diff)
}
})
}
}
Loading