Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #10 from lavanya-f5/update_iprange
Browse files Browse the repository at this point in the history
handle invalid provider param
  • Loading branch information
lavanya-f5 authored Feb 9, 2021
2 parents 7ab79f3 + 0ae2b85 commit 79e512e
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
10 changes: 6 additions & 4 deletions cmd/f5-ipam-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (
"strings"
"syscall"

flag "github.com/spf13/pflag"
"github.com/f5devcentral/f5-ipam-controller/pkg/controller"
"github.com/f5devcentral/f5-ipam-controller/pkg/manager"
"github.com/f5devcentral/f5-ipam-controller/pkg/orchestration"
log "github.com/f5devcentral/f5-ipam-controller/pkg/vlogger"
clog "github.com/f5devcentral/f5-ipam-controller/pkg/vlogger/console"
flag "github.com/spf13/pflag"
)

const (
Expand Down Expand Up @@ -95,7 +95,6 @@ func verifyArgs() error {

*orch = strings.ToLower(*orch)
*provider = strings.ToLower(*provider)

if len(*iprange) == 0 && *provider == DefaultProvider {
return fmt.Errorf("IP Range not provider for Provider: %v", DefaultProvider)
}
Expand Down Expand Up @@ -127,9 +126,12 @@ func main() {
IPAMManagerParams: manager.IPAMManagerParams{Range: *iprange},
}
mgrParams.Range = *iprange
mgr := manager.NewManager(mgrParams)
mgr, err := manager.NewManager(mgrParams)
if err != nil {
log.Errorf("Unable to initialize manager: %v", err)
os.Exit(1)
}
stopCh := make(chan struct{})

ctlr := controller.NewController(
controller.Spec{
Orchestrator: orcr,
Expand Down
2 changes: 1 addition & 1 deletion next-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0
0.1.1
8 changes: 4 additions & 4 deletions pkg/manager/f5ipammanager.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package manager

import (
"fmt"
"net"
"strings"

Expand All @@ -16,14 +17,13 @@ type IPAMManager struct {
provider *provider.IPAMProvider
}

func NewIPAMManager(params IPAMManagerParams) *IPAMManager {
func NewIPAMManager(params IPAMManagerParams) (*IPAMManager, error) {
provParams := provider.Params{Range: params.Range}
prov := provider.NewProvider(provParams)
if prov == nil {
log.Error("[IPMG] Unable to create Provider")
return nil
return nil, fmt.Errorf("[IPMG] Unable to create Provider")
}
return &IPAMManager{provider: prov}
return &IPAMManager{provider: prov}, nil
}

// Creates an A record
Expand Down
9 changes: 6 additions & 3 deletions pkg/manager/manager.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package manager

import log "github.com/f5devcentral/f5-ipam-controller/pkg/vlogger"
import (
"fmt"
log "github.com/f5devcentral/f5-ipam-controller/pkg/vlogger"
)

// Manager defines the interface that the IPAM system should implement
type Manager interface {
Expand All @@ -25,7 +28,7 @@ type Params struct {
IPAMManagerParams
}

func NewManager(params Params) Manager {
func NewManager(params Params) (Manager, error) {
switch params.Provider {
case F5IPAMProvider:
log.Debugf("[MGR] Creating Manager with Provider: %v", F5IPAMProvider)
Expand All @@ -34,5 +37,5 @@ func NewManager(params Params) Manager {
default:
log.Errorf("[MGR] Unknown Provider: %v", params.Provider)
}
return nil
return nil, fmt.Errorf("manager cannot be initialized")
}

0 comments on commit 79e512e

Please sign in to comment.