Fix AutoUpdateAnnotationKey, NominalConcurrencyShares

Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
This commit is contained in:
Mike Spreitzer
2023-07-10 21:26:39 +00:00
parent 3d3240c8b4
commit a9d8cace1f
14 changed files with 142 additions and 9 deletions

View File

@@ -33,5 +33,16 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
obj.LendablePercent = &i
}
},
func(obj *flowcontrol.ExemptPriorityLevelConfiguration, c fuzz.Continue) {
c.FuzzNoCustom(obj) // fuzz self without calling this function again
if obj.NominalConcurrencyShares == nil {
i := int32(0)
obj.NominalConcurrencyShares = &i
}
if obj.LendablePercent == nil {
i := int32(0)
obj.LendablePercent = &i
}
},
}
}

View File

@@ -475,7 +475,7 @@ type ExemptPriorityLevelConfiguration struct {
// at the expense of every other priority level.
// This field has a default value of zero.
// +optional
NominalConcurrencyShares int32
NominalConcurrencyShares *int32
// `lendablePercent` prescribes the fraction of the level's NominalCL that
// can be borrowed by other priority levels. This value of this
// field must be between 0 and 100, inclusive, and it defaults to 0.

View File

@@ -40,6 +40,17 @@ func SetDefaults_FlowSchemaSpec(spec *v1alpha1.FlowSchemaSpec) {
}
}
func SetDefaults_ExemptPriorityLevelConfiguration(eplc *v1alpha1.ExemptPriorityLevelConfiguration) {
if eplc.NominalConcurrencyShares == nil {
eplc.NominalConcurrencyShares = new(int32)
*eplc.NominalConcurrencyShares = 0
}
if eplc.LendablePercent == nil {
eplc.LendablePercent = new(int32)
*eplc.LendablePercent = 0
}
}
func SetDefaults_LimitedPriorityLevelConfiguration(lplc *v1alpha1.LimitedPriorityLevelConfiguration) {
if lplc.AssuredConcurrencyShares == 0 {
lplc.AssuredConcurrencyShares = PriorityLevelConfigurationDefaultAssuredConcurrencyShares

View File

@@ -33,6 +33,24 @@ func TestDefaultWithPriorityLevelConfiguration(t *testing.T) {
original runtime.Object
expected runtime.Object
}{
{
name: "Defaulting for Exempt",
original: &flowcontrolv1alpha1.PriorityLevelConfiguration{
Spec: flowcontrolv1alpha1.PriorityLevelConfigurationSpec{
Type: flowcontrolv1alpha1.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1alpha1.ExemptPriorityLevelConfiguration{},
},
},
expected: &flowcontrolv1alpha1.PriorityLevelConfiguration{
Spec: flowcontrolv1alpha1.PriorityLevelConfigurationSpec{
Type: flowcontrolv1alpha1.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1alpha1.ExemptPriorityLevelConfiguration{
NominalConcurrencyShares: pointer.Int32(0),
LendablePercent: pointer.Int32(0),
},
},
},
},
{
name: "LendablePercent is not specified, should default to zero",
original: &flowcontrolv1alpha1.PriorityLevelConfiguration{

View File

@@ -40,6 +40,17 @@ func SetDefaults_FlowSchemaSpec(spec *v1beta1.FlowSchemaSpec) {
}
}
func SetDefaults_ExemptPriorityLevelConfiguration(eplc *v1beta1.ExemptPriorityLevelConfiguration) {
if eplc.NominalConcurrencyShares == nil {
eplc.NominalConcurrencyShares = new(int32)
*eplc.NominalConcurrencyShares = 0
}
if eplc.LendablePercent == nil {
eplc.LendablePercent = new(int32)
*eplc.LendablePercent = 0
}
}
func SetDefaults_LimitedPriorityLevelConfiguration(lplc *v1beta1.LimitedPriorityLevelConfiguration) {
if lplc.AssuredConcurrencyShares == 0 {
lplc.AssuredConcurrencyShares = PriorityLevelConfigurationDefaultAssuredConcurrencyShares

View File

@@ -33,6 +33,24 @@ func TestDefaultWithPriorityLevelConfiguration(t *testing.T) {
original runtime.Object
expected runtime.Object
}{
{
name: "Defaulting for Exempt",
original: &flowcontrolv1beta1.PriorityLevelConfiguration{
Spec: flowcontrolv1beta1.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta1.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta1.ExemptPriorityLevelConfiguration{},
},
},
expected: &flowcontrolv1beta1.PriorityLevelConfiguration{
Spec: flowcontrolv1beta1.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta1.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta1.ExemptPriorityLevelConfiguration{
NominalConcurrencyShares: pointer.Int32(0),
LendablePercent: pointer.Int32(0),
},
},
},
},
{
name: "LendablePercent is not specified, should default to zero",
original: &flowcontrolv1beta1.PriorityLevelConfiguration{

View File

@@ -40,6 +40,17 @@ func SetDefaults_FlowSchemaSpec(spec *v1beta2.FlowSchemaSpec) {
}
}
func SetDefaults_ExemptPriorityLevelConfiguration(eplc *v1beta2.ExemptPriorityLevelConfiguration) {
if eplc.NominalConcurrencyShares == nil {
eplc.NominalConcurrencyShares = new(int32)
*eplc.NominalConcurrencyShares = 0
}
if eplc.LendablePercent == nil {
eplc.LendablePercent = new(int32)
*eplc.LendablePercent = 0
}
}
func SetDefaults_LimitedPriorityLevelConfiguration(lplc *v1beta2.LimitedPriorityLevelConfiguration) {
if lplc.AssuredConcurrencyShares == 0 {
lplc.AssuredConcurrencyShares = PriorityLevelConfigurationDefaultAssuredConcurrencyShares

View File

@@ -33,6 +33,24 @@ func TestDefaultWithPriorityLevelConfiguration(t *testing.T) {
original runtime.Object
expected runtime.Object
}{
{
name: "Defaulting for Exempt",
original: &flowcontrolv1beta2.PriorityLevelConfiguration{
Spec: flowcontrolv1beta2.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta2.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta2.ExemptPriorityLevelConfiguration{},
},
},
expected: &flowcontrolv1beta2.PriorityLevelConfiguration{
Spec: flowcontrolv1beta2.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta2.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta2.ExemptPriorityLevelConfiguration{
NominalConcurrencyShares: pointer.Int32(0),
LendablePercent: pointer.Int32(0),
},
},
},
},
{
name: "LendablePercent is not specified, should default to zero",
original: &flowcontrolv1beta2.PriorityLevelConfiguration{

View File

@@ -40,6 +40,17 @@ func SetDefaults_FlowSchemaSpec(spec *v1beta3.FlowSchemaSpec) {
}
}
func SetDefaults_ExemptPriorityLevelConfiguration(eplc *v1beta3.ExemptPriorityLevelConfiguration) {
if eplc.NominalConcurrencyShares == nil {
eplc.NominalConcurrencyShares = new(int32)
*eplc.NominalConcurrencyShares = 0
}
if eplc.LendablePercent == nil {
eplc.LendablePercent = new(int32)
*eplc.LendablePercent = 0
}
}
func SetDefaults_LimitedPriorityLevelConfiguration(lplc *v1beta3.LimitedPriorityLevelConfiguration) {
if lplc.NominalConcurrencyShares == 0 {
lplc.NominalConcurrencyShares = PriorityLevelConfigurationDefaultNominalConcurrencyShares

View File

@@ -34,7 +34,25 @@ func TestDefaultWithPriorityLevelConfiguration(t *testing.T) {
expected runtime.Object
}{
{
name: "LendablePercent is not specified, should default to zero",
name: "Defaulting for Exempt",
original: &flowcontrolv1beta3.PriorityLevelConfiguration{
Spec: flowcontrolv1beta3.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta3.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta3.ExemptPriorityLevelConfiguration{},
},
},
expected: &flowcontrolv1beta3.PriorityLevelConfiguration{
Spec: flowcontrolv1beta3.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta3.PriorityLevelEnablementExempt,
Exempt: &flowcontrolv1beta3.ExemptPriorityLevelConfiguration{
NominalConcurrencyShares: pointer.Int32(0),
LendablePercent: pointer.Int32(0),
},
},
},
},
{
name: "LendablePercent is not specified in Limited, should default to zero",
original: &flowcontrolv1beta3.PriorityLevelConfiguration{
Spec: flowcontrolv1beta3.PriorityLevelConfigurationSpec{
Type: flowcontrolv1beta3.PriorityLevelEnablementLimited,