Skip to content

Commit

Permalink
CloudPrepare and getController to use EdenSetupArgs as input parameter
Browse files Browse the repository at this point in the history
Previously, this functions used viper to fetch variables, since we want to
decouple openevec and viper, now they use EdenSetupArgs to fetch parameters

Signed-off-by: Pavel Abramov <[email protected]>
  • Loading branch information
uncleDecart committed Nov 21, 2023
1 parent f435517 commit 2cc2c55
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 35 deletions.
6 changes: 1 addition & 5 deletions pkg/controller/functions.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,7 @@ import (
)

// CloudPrepare is for init controller connection and obtain device list
func CloudPrepare() (Cloud, error) {
vars, err := utils.InitVars()
if err != nil {
return nil, fmt.Errorf("utils.InitVars: %s", err)
}
func CloudPrepare(vars *utils.ConfigVars) (Cloud, error) {
ctx := &CloudCtx{vars: vars, Controller: &adam.Ctx{}}
if err := ctx.InitWithVars(vars); err != nil {
return nil, fmt.Errorf("cloud.InitWithVars: %s", err)
Expand Down
23 changes: 12 additions & 11 deletions pkg/openevec/changers.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,13 @@ func (ctx *fileChanger) getControllerAndDevFromConfig(cfg *EdenSetupArgs) (contr
if _, err := os.Lstat(ctx.fileConfig); os.IsNotExist(err) {
return nil, nil, err
}
ctrl, err := controller.CloudPrepare()
vars, err := InitVarsFromConfig(cfg)
if err != nil {
return nil, nil, err
return nil, nil, fmt.Errorf("InitVarsFromConfig error: %w", err)
}
if cfg != nil {
vars, err := InitVarsFromConfig(cfg)
if err != nil {
return nil, nil, fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl.SetVars(vars)
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return nil, nil, err
}
data, err := os.ReadFile(ctx.fileConfig)
if err != nil {
Expand All @@ -108,16 +105,20 @@ type adamChanger struct {
adamURL string
}

func (ctx *adamChanger) getController() (controller.Cloud, error) {
ctrl, err := controller.CloudPrepare()
func (ctx *adamChanger) getController(cfg *EdenSetupArgs) (controller.Cloud, error) {
vars, err := InitVarsFromConfig(cfg)
if err != nil {
return nil, fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return nil, fmt.Errorf("CloudPrepare error: %w", err)
}
return ctrl, nil
}

func (ctx *adamChanger) getControllerAndDevFromConfig(cfg *EdenSetupArgs) (controller.Cloud, *device.Ctx, error) {
ctrl, err := ctx.getController()
ctrl, err := ctx.getController(cfg)
if err != nil {
return nil, nil, fmt.Errorf("getController error: %w", err)
}
Expand Down
6 changes: 5 additions & 1 deletion pkg/openevec/eden.go
Original file line number Diff line number Diff line change
Expand Up @@ -535,10 +535,14 @@ func (openEVEC *OpenEVEC) cleanContext(vmName string, configSaved string) (err e
if err != nil {
return fmt.Errorf("CleanContext: %s", err)
}
vars, err := InitVarsFromConfig(cfg)
if err != nil {
return fmt.Errorf("InitVarsFromConfig error: %w", err)
}

eveStatusFile := filepath.Join(edenDir, fmt.Sprintf("state-%s.yml", cfg.Eve.CertsUUID))
if _, err = os.Stat(eveStatusFile); !os.IsNotExist(err) {
ctrl, err := controller.CloudPrepare()
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return fmt.Errorf("CleanContext: error in CloudPrepare: %s", err)
}
Expand Down
27 changes: 12 additions & 15 deletions pkg/openevec/edgeNode.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,15 +273,14 @@ func (openEVEC *OpenEVEC) EdgeNodeGetConfig(controllerMode, fileWithConfig strin
}

func (openEVEC *OpenEVEC) EdgeNodeSetConfig(fileWithConfig string) error {
ctrl, err := controller.CloudPrepare()
if err != nil {
return fmt.Errorf("CloudPrepare: %w", err)
}
vars, err := InitVarsFromConfig(openEVEC.cfg)
if err != nil {
return fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl.SetVars(vars)
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return fmt.Errorf("CloudPrepare: %w", err)
}
devFirst, err := ctrl.GetDeviceCurrent()
if err != nil {
return fmt.Errorf("GetDeviceCurrent error: %w", err)
Expand Down Expand Up @@ -382,15 +381,14 @@ func (openEVEC *OpenEVEC) EdgeNodeSetOptions(controllerMode, fileWithConfig stri
}

func (openEVEC *OpenEVEC) ControllerGetOptions(fileWithConfig string) error {
ctrl, err := controller.CloudPrepare()
if err != nil {
return fmt.Errorf("CloudPrepare error: %w", err)
}
vars, err := InitVarsFromConfig(openEVEC.cfg)
if err != nil {
return fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl.SetVars(vars)
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return fmt.Errorf("CloudPrepare error: %w", err)
}
res, err := ctrl.GetGlobalOptions()
if err != nil {
return fmt.Errorf("GetGlobalOptions error: %w", err)
Expand All @@ -410,15 +408,14 @@ func (openEVEC *OpenEVEC) ControllerGetOptions(fileWithConfig string) error {
}

func (openEVEC *OpenEVEC) ControllerSetOptions(fileWithConfig string) error {
ctrl, err := controller.CloudPrepare()
if err != nil {
return fmt.Errorf("CloudPrepare error: %w", err)
}
vars, err := InitVarsFromConfig(openEVEC.cfg)
if err != nil {
return fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl.SetVars(vars)
ctrl, err := controller.CloudPrepare(vars)
if err != nil {
return fmt.Errorf("CloudPrepare error: %w", err)
}
var newOptionsBytes []byte
if fileWithConfig != "" {
newOptionsBytes, err = os.ReadFile(fileWithConfig)
Expand Down
4 changes: 1 addition & 3 deletions pkg/openevec/onboard.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
)

func (openEVEC *OpenEVEC) OnboardEve(eveUUID string) error {

edenDir, err := utils.DefaultEdenDir()
if err != nil {
return fmt.Errorf("error getting default eden dir %w", err)
Expand All @@ -19,15 +18,14 @@ func (openEVEC *OpenEVEC) OnboardEve(eveUUID string) error {
return fmt.Errorf("error getting file %w", err)
}
changer := &adamChanger{}
ctrl, err := changer.getController()
ctrl, err := changer.getController(openEVEC.cfg)
if err != nil {
return fmt.Errorf("error fetching controller %w", err)
}
vars, err := InitVarsFromConfig(openEVEC.cfg)
if err != nil {
return fmt.Errorf("InitVarsFromConfig error: %w", err)
}
ctrl.SetVars(vars)
dev, err := ctrl.GetDeviceCurrent()
if err != nil || dev == nil {
// create new one if not exists
Expand Down

0 comments on commit 2cc2c55

Please sign in to comment.