Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sriov: adjust return consistency #866

Merged
merged 1 commit into from
Jan 10, 2025
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
32 changes: 14 additions & 18 deletions pkg/sriov/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func NewNetworkBuilder(
return nil
}

builder := NetworkBuilder{
builder := &NetworkBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovNetwork{
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -68,21 +68,29 @@ func NewNetworkBuilder(

if name == "" {
builder.errorMsg = "SrIovNetwork 'name' cannot be empty"

return builder
}

if nsname == "" {
builder.errorMsg = "SrIovNetwork 'nsname' cannot be empty"

return builder
}

if targetNsname == "" {
builder.errorMsg = "SrIovNetwork 'targetNsname' cannot be empty"

return builder
}

if resName == "" {
builder.errorMsg = "SrIovNetwork 'resName' cannot be empty"

return builder
}

return &builder
return builder
}

// WithVLAN sets vlan id in the SrIovNetwork definition. Allowed vlanId range is between 0-4094.
Expand All @@ -93,9 +101,7 @@ func (builder *NetworkBuilder) WithVLAN(vlanID uint16) *NetworkBuilder {

if vlanID > 4094 {
builder.errorMsg = "invalid vlanID, allowed vlanID values are between 0-4094"
}

if builder.errorMsg != "" {
return builder
}

Expand Down Expand Up @@ -145,10 +151,6 @@ func (builder *NetworkBuilder) WithMetaPluginAllMultiFlag(allMultiFlag bool) *Ne

builder.Definition.Spec.MetaPluginsConfig = fmt.Sprintf(`{ "type": "tuning", "allmulti": %t }`, allMultiFlag)

if builder.errorMsg != "" {
return builder
}

return builder
}

Expand All @@ -173,9 +175,7 @@ func (builder *NetworkBuilder) WithLinkState(linkState string) *NetworkBuilder {

if !slices.Contains(allowedLinkStates, linkState) {
builder.errorMsg = "invalid 'linkState' parameters"
}

if builder.errorMsg != "" {
return builder
}

Expand Down Expand Up @@ -232,9 +232,7 @@ func (builder *NetworkBuilder) WithVlanQoS(qoSClass uint16) *NetworkBuilder {

if qoSClass > 7 {
builder.errorMsg = "Invalid QoS class. Supported vlan QoS class values are between 0...7"
}

if builder.errorMsg != "" {
return builder
}

Expand Down Expand Up @@ -322,7 +320,7 @@ func PullNetwork(apiClient *clients.Settings, name, nsname string) (*NetworkBuil
return nil, err
}

builder := NetworkBuilder{
builder := &NetworkBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovNetwork{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -350,7 +348,7 @@ func PullNetwork(apiClient *clients.Settings, name, nsname string) (*NetworkBuil

builder.Definition = builder.Object

return &builder, nil
return builder, nil
}

// Get returns CatalogSource object if found.
Expand Down Expand Up @@ -559,9 +557,7 @@ func (builder *NetworkBuilder) withIpam(ipamType string) *NetworkBuilder {
glog.V(100).Infof("sriov network 'ipamType' parameter can not be empty")

builder.errorMsg = "failed to configure IPAM, 'ipamType' parameter is empty"
}

if builder.errorMsg != "" {
return builder
}

Expand All @@ -584,13 +580,13 @@ func (builder *NetworkBuilder) validate() (bool, error) {
if builder.Definition == nil {
glog.V(100).Infof("The %s is undefined", resourceCRD)

builder.errorMsg = msg.UndefinedCrdObjectErrString(resourceCRD)
return false, fmt.Errorf(msg.UndefinedCrdObjectErrString(resourceCRD))
}

if builder.apiClient == nil {
glog.V(100).Infof("The %s builder apiclient is nil", resourceCRD)

builder.errorMsg = fmt.Sprintf("%s builder cannot have nil apiClient", resourceCRD)
return false, fmt.Errorf("%s builder cannot have nil apiClient", resourceCRD)
}

if builder.errorMsg != "" {
Expand Down
12 changes: 8 additions & 4 deletions pkg/sriov/networknodestate.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,16 @@ func NewNetworkNodeStateBuilder(apiClient *clients.Settings, nodeName, nsname st
glog.V(100).Infof("The name of the nodeName is empty")

builder.errorMsg = "SriovNetworkNodeState 'nodeName' is empty"

return builder
}

if nsname == "" {
glog.V(100).Infof("The namespace of the SriovNetworkNodeState is empty")

builder.errorMsg = "SriovNetworkNodeState 'nsname' is empty"

return builder
}

return builder
Expand Down Expand Up @@ -226,16 +230,16 @@ func (builder *NetworkNodeStateBuilder) findInterfaceByName(sriovInterfaceName s
glog.V(100).Infof("Error to discover sriov network node state for node %s", builder.nodeName)

builder.errorMsg = "failed to discover sriov network node state"

return nil, err
}

if sriovInterfaceName == "" {
glog.V(100).Infof("The sriovInterface can not be empty string")

builder.errorMsg = "the sriovInterface is an empty sting"
}

if builder.errorMsg != "" {
return nil, fmt.Errorf(builder.errorMsg)
return nil, fmt.Errorf("sriovInterface can not be empty string")
}

for _, interf := range builder.Objects.Status.Interfaces {
Expand All @@ -261,7 +265,7 @@ func (builder *NetworkNodeStateBuilder) validate() (bool, error) {
if builder.apiClient == nil {
glog.V(100).Infof("The %s builder apiclient is nil", resourceCRD)

builder.errorMsg = fmt.Sprintf("%s builder cannot have nil apiClient", resourceCRD)
return false, fmt.Errorf("%s builder cannot have nil apiClient", resourceCRD)
}

if builder.errorMsg != "" {
Expand Down
6 changes: 4 additions & 2 deletions pkg/sriov/operatorconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ func NewOperatorConfigBuilder(apiClient *clients.Settings, nsname string) *Opera
glog.V(100).Infof("The namespace of the SriovOperatorConfig is empty")

builder.errorMsg = "SriovOperatorConfig 'nsname' is empty"

return builder
}

return builder
Expand Down Expand Up @@ -114,7 +116,7 @@ func PullOperatorConfig(apiClient *clients.Settings, nsname string) (*OperatorCo
return nil, err
}

builder := OperatorConfigBuilder{
builder := &OperatorConfigBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovOperatorConfig{
ObjectMeta: metaV1.ObjectMeta{
Expand All @@ -137,7 +139,7 @@ func PullOperatorConfig(apiClient *clients.Settings, nsname string) (*OperatorCo

builder.Definition = builder.Object

return &builder, nil
return builder, nil
}

// Get returns CatalogSource object if found.
Expand Down
32 changes: 22 additions & 10 deletions pkg/sriov/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func NewPolicyBuilder(
return nil
}

builder := PolicyBuilder{
builder := &PolicyBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovNetworkNodePolicy{
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -76,29 +76,41 @@ func NewPolicyBuilder(

if name == "" {
builder.errorMsg = "SriovNetworkNodePolicy 'name' cannot be empty"

return builder
}

if nsname == "" {
builder.errorMsg = "SriovNetworkNodePolicy 'nsname' cannot be empty"

return builder
}

if resName == "" {
builder.errorMsg = "SriovNetworkNodePolicy 'resName' cannot be empty"

return builder
}

if len(nicNames) == 0 {
builder.errorMsg = "SriovNetworkNodePolicy 'nicNames' cannot be empty list"

return builder
}

if len(nodeSelector) == 0 {
builder.errorMsg = "SriovNetworkNodePolicy 'nodeSelector' cannot be empty map"

return builder
}

if vfsNumber <= 0 {
builder.errorMsg = "SriovNetworkNodePolicy 'vfsNumber' cannot be zero of negative"

return builder
}

return &builder
return builder
}

// WithDevType sets device type in the SriovNetworkNodePolicy definition. Allowed devTypes are vfio-pci and netdevice.
Expand Down Expand Up @@ -128,17 +140,19 @@ func (builder *PolicyBuilder) WithVFRange(firstVF, lastVF int) *PolicyBuilder {

if firstVF < 0 || lastVF < 0 {
builder.errorMsg = "firstPF or lastVF can not be less than 0"

return builder
}

if firstVF > lastVF {
builder.errorMsg = "firstPF argument can not be greater than lastPF"

return builder
}

if lastVF > 63 {
builder.errorMsg = "lastVF can not be greater than 63"
}

if builder.errorMsg != "" {
return builder
}

Expand All @@ -160,9 +174,7 @@ func (builder *PolicyBuilder) WithMTU(mtu int) *PolicyBuilder {

if 1 > mtu || mtu > 9192 {
builder.errorMsg = fmt.Sprintf("invalid mtu size %d allowed mtu should be in range 1...9192", mtu)
}

if builder.errorMsg != "" {
return builder
}

Expand Down Expand Up @@ -252,7 +264,7 @@ func PullPolicy(apiClient *clients.Settings, name, nsname string) (*PolicyBuilde
return nil, err
}

builder := PolicyBuilder{
builder := &PolicyBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovNetworkNodePolicy{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -280,7 +292,7 @@ func PullPolicy(apiClient *clients.Settings, name, nsname string) (*PolicyBuilde

builder.Definition = builder.Object

return &builder, nil
return builder, nil
}

// Get returns CatalogSource object if found.
Expand Down Expand Up @@ -382,13 +394,13 @@ func (builder *PolicyBuilder) validate() (bool, error) {
if builder.Definition == nil {
glog.V(100).Infof("The %s is undefined", resourceCRD)

builder.errorMsg = msg.UndefinedCrdObjectErrString(resourceCRD)
return false, fmt.Errorf(msg.UndefinedCrdObjectErrString(resourceCRD))
}

if builder.apiClient == nil {
glog.V(100).Infof("The %s builder apiclient is nil", resourceCRD)

builder.errorMsg = fmt.Sprintf("%s builder cannot have nil apiClient", resourceCRD)
return false, fmt.Errorf("%s builder cannot have nil apiClient", resourceCRD)
}

if builder.errorMsg != "" {
Expand Down
12 changes: 6 additions & 6 deletions pkg/sriov/poolconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func NewPoolConfigBuilder(apiClient *clients.Settings, name, nsname string) *Poo
return nil
}

builder := PoolConfigBuilder{
builder := &PoolConfigBuilder{
apiClient: apiClient.Client,
Definition: &srIovV1.SriovNetworkPoolConfig{
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -62,16 +62,16 @@ func NewPoolConfigBuilder(apiClient *clients.Settings, name, nsname string) *Poo
if name == "" {
builder.errorMsg = "SriovNetworkPoolConfig 'name' cannot be empty"

return &builder
return builder
}

if nsname == "" {
builder.errorMsg = "SriovNetworkPoolConfig 'nsname' cannot be empty"

return &builder
return builder
}

return &builder
return builder
}

// Create generates an SriovNetworkPoolConfig in the cluster and stores the created object in struct.
Expand Down Expand Up @@ -344,13 +344,13 @@ func (builder *PoolConfigBuilder) validate() (bool, error) {
if builder.Definition == nil {
glog.V(100).Infof("The %s is undefined", resourceCRD)

builder.errorMsg = msg.UndefinedCrdObjectErrString(resourceCRD)
return false, fmt.Errorf(msg.UndefinedCrdObjectErrString(resourceCRD))
}

if builder.apiClient == nil {
glog.V(100).Infof("The %s builder apiclient is nil", resourceCRD)

builder.errorMsg = fmt.Sprintf("%s builder cannot have nil apiClient", resourceCRD)
return false, fmt.Errorf("%s builder cannot have nil apiClient", resourceCRD)
}

if builder.errorMsg != "" {
Expand Down
Loading