You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/02/27 23:47:55 UTC

[GitHub] mrutkows closed pull request #759: removing support for use-default flag

mrutkows closed pull request #759: removing support for use-default flag
URL: https://github.com/apache/incubator-openwhisk-wskdeploy/pull/759
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/cmd/root.go b/cmd/root.go
index 792a4b3f..aeec488c 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -124,7 +124,6 @@ func init() {
 	RootCmd.Flags().StringVarP(&utils.Flags.DeploymentPath, "deployment", "d", "", wski18n.T(wski18n.ID_CMD_FLAG_DEPLOYMENT))
 	RootCmd.PersistentFlags().BoolVarP(&utils.Flags.Strict, "strict", "s", false, wski18n.T(wski18n.ID_CMD_FLAG_STRICT))
 	RootCmd.PersistentFlags().BoolVarP(&utils.Flags.UseInteractive, "allow-interactive", "i", false, wski18n.T(wski18n.ID_CMD_FLAG_INTERACTIVE))
-	RootCmd.PersistentFlags().BoolVarP(&utils.Flags.UseDefaults, "allow-defaults", "a", false, wski18n.T(wski18n.ID_CMD_FLAG_DEFAULTS))
 	RootCmd.PersistentFlags().BoolVarP(&utils.Flags.Verbose, "verbose", "v", false, wski18n.T(wski18n.ID_CMD_FLAG_VERBOSE))
 	RootCmd.PersistentFlags().StringVarP(&utils.Flags.ApiHost, "apihost", "", "", wski18n.T(wski18n.ID_CMD_FLAG_API_HOST))
 	RootCmd.PersistentFlags().StringVarP(&utils.Flags.Namespace, "namespace", "n", "", wski18n.T(wski18n.ID_CMD_FLAG_NAMESPACE))
@@ -211,8 +210,6 @@ func Deploy() error {
 		deployer.ProjectPath = projectPath
 		deployer.ManifestPath = utils.Flags.ManifestPath
 		deployer.DeploymentPath = utils.Flags.DeploymentPath
-		deployer.IsDefault = utils.Flags.UseDefaults
-
 		deployer.IsInteractive = utils.Flags.UseInteractive
 
 		// master record of any dependency that has been downloaded
@@ -314,9 +311,7 @@ func Undeploy() error {
 		deployer.ProjectPath = utils.Flags.ProjectPath
 		deployer.ManifestPath = utils.Flags.ManifestPath
 		deployer.DeploymentPath = utils.Flags.DeploymentPath
-
 		deployer.IsInteractive = utils.Flags.UseInteractive
-		deployer.IsDefault = utils.Flags.UseDefaults
 
 		clientConfig, error := deployers.NewWhiskConfig(utils.Flags.CfgFile, utils.Flags.DeploymentPath, utils.Flags.ManifestPath, deployer.IsInteractive)
 		if error != nil {
diff --git a/cmd/root_test.go b/cmd/root_test.go
index 75c14696..c370e601 100644
--- a/cmd/root_test.go
+++ b/cmd/root_test.go
@@ -74,7 +74,6 @@ type Input struct {
 	ProjectPath    string
 	DeploymentPath string
 	ManifestPath   string
-	UseDefaults    bool
 	UseInteractive bool
 }
 
@@ -89,7 +88,6 @@ func initializeParameters() {
 
 	expected_input.CfgFile = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/dat/wskprops"
 	expected_input.Verbose = true
-	expected_input.UseDefaults = true
 	expected_input.UseInteractive = true
 	expected_input.ProjectPath = "fake_project_path"
 	expected_input.DeploymentPath = "fake_deployment_path"
@@ -105,7 +103,6 @@ func checkValidAuthInfo(t *testing.T, expected_auth_flags Auth_flags) {
 func checkValidInputInfo(t *testing.T, expected_input Input) {
 	assert.Equal(t, expected_input.CfgFile, utils.Flags.CfgFile, "CfgFile does not match.")
 	assert.Equal(t, expected_input.Verbose, utils.Flags.Verbose, "Verbose does not match.")
-	assert.Equal(t, expected_input.UseDefaults, utils.Flags.UseDefaults, "UseDefaults does not match.")
 	assert.Equal(t, expected_input.UseInteractive, utils.Flags.UseInteractive, "ApiHoUseInteractivest does not match.")
 	assert.Equal(t, expected_input.ProjectPath, utils.Flags.ProjectPath, "ProjectPath does not match.")
 	assert.Equal(t, expected_input.DeploymentPath, utils.Flags.DeploymentPath, "DeploymentPath does not match.")
@@ -138,9 +135,6 @@ func composeCommand(auth Auth_flags, input Input) string {
 	if input.Verbose {
 		cmd = cmd + "-v "
 	}
-	if input.UseDefaults {
-		cmd = cmd + "-a "
-	}
 	if input.UseInteractive {
 		cmd = cmd + "-i "
 	}
diff --git a/deployers/filesystemreader.go b/deployers/filesystemreader.go
deleted file mode 100644
index bc91a632..00000000
--- a/deployers/filesystemreader.go
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package deployers
-
-import (
-	"errors"
-	"os"
-	"path/filepath"
-	"strings"
-
-	"github.com/apache/incubator-openwhisk-client-go/whisk"
-	"github.com/apache/incubator-openwhisk-wskdeploy/parsers"
-	"github.com/apache/incubator-openwhisk-wskdeploy/utils"
-	"github.com/apache/incubator-openwhisk-wskdeploy/wskderrors"
-	"github.com/apache/incubator-openwhisk-wskdeploy/wski18n"
-	"github.com/apache/incubator-openwhisk-wskdeploy/wskprint"
-)
-
-// name of directory that can contain source code
-const FileSystemSourceDirectoryName = "actions"
-
-type FileSystemReader struct {
-	serviceDeployer *ServiceDeployer
-}
-
-func NewFileSystemReader(serviceDeployer *ServiceDeployer) *FileSystemReader {
-	var reader FileSystemReader
-	reader.serviceDeployer = serviceDeployer
-
-	return &reader
-}
-
-// TODO(#748) This function adds actions to a "Default" package which is not a concept we support
-func (reader *FileSystemReader) ReadProjectDirectory(manifest *parsers.YAML) ([]utils.ActionRecord, error) {
-
-	// Inform user of what reader is doing
-	dbgMsg := wski18n.T(wski18n.ID_DEBUG_PROJECT_SEARCH_X_path_X_key_X,
-		map[string]interface{}{
-			wski18n.KEY_PATH: reader.serviceDeployer.ProjectPath,
-			wski18n.KEY_KEY:  wski18n.ACTIONS})
-	wskprint.PrintlnOpenWhiskVerbose(utils.Flags.Verbose, dbgMsg)
-
-	projectPathCount, err := reader.getFilePathCount(reader.serviceDeployer.ProjectPath)
-	actions := make([]utils.ActionRecord, 0)
-
-	if err != nil {
-		return actions, err
-	}
-
-	err = filepath.Walk(reader.serviceDeployer.ProjectPath, func(fpath string, f os.FileInfo, err error) error {
-		if fpath != reader.serviceDeployer.ProjectPath {
-			pathCount, err := reader.getFilePathCount(fpath)
-			if err != nil {
-				return wskderrors.NewFileReadError(fpath, err.Error())
-			}
-
-			if !f.IsDir() {
-				if pathCount-projectPathCount == 1 || strings.HasPrefix(fpath, reader.serviceDeployer.ProjectPath+"/"+FileSystemSourceDirectoryName) {
-					ext := filepath.Ext(fpath)
-
-					// TODO(#692) do not hardcoded known extensions here, create a util that associates
-					// known extensions to runtime types
-					foundFile := false
-					switch ext {
-					case ".swift":
-						foundFile = true
-					case ".js":
-						foundFile = true
-					case ".py":
-						foundFile = true
-					}
-
-					if foundFile == true {
-						_, action, err := reader.CreateActionFromFile(reader.serviceDeployer.ManifestPath, fpath)
-						if err != nil {
-							return wskderrors.NewFileReadError(fpath, err.Error())
-						}
-
-						var record utils.ActionRecord
-						record.Action = action
-						// TODO(#748) This function adds actions to a "Default" package which is not a concept we support
-						//record.Packagename = manifest.Package.Packagename
-						record.Filepath = fpath
-
-						actions = append(actions, record)
-					}
-				}
-			} else if strings.HasPrefix(fpath, reader.serviceDeployer.ProjectPath+"/"+FileSystemSourceDirectoryName) {
-				// Inform user of what reader is doing
-				dbgMsg := wski18n.T(wski18n.ID_DEBUG_PROJECT_SEARCH_X_path_X_key_X,
-					map[string]interface{}{
-						wski18n.KEY_PATH: filepath.Base(fpath),
-						wski18n.KEY_KEY:  wski18n.ACTION_CODE})
-				wskprint.PrintlnOpenWhiskVerbose(utils.Flags.Verbose, dbgMsg)
-
-				// TODO(#694) It appears there is no code to do what the debug message suggests
-				// TODO(#694) continued: i.e., searching for Action code...
-
-			} else {
-				return filepath.SkipDir
-			}
-
-		}
-		return err
-	})
-
-	if err != nil {
-		return actions, err
-	}
-
-	return actions, nil
-
-}
-
-func (reader *FileSystemReader) CreateActionFromFile(manipath, filePath string) (string, *whisk.Action, error) {
-	ext := filepath.Ext(filePath)
-	baseName := filepath.Base(filePath)
-	name := strings.TrimSuffix(baseName, filepath.Ext(baseName))
-	action := new(whisk.Action)
-
-	// TODO(#692) same TODO as above, that is create util for matching exts. to runtimes in common util pkg.
-	// process source code files
-	if ext == ".swift" || ext == ".js" || ext == ".py" {
-
-		kind := "nodejs:default"
-
-		switch ext {
-		case ".swift":
-			kind = "swift:default"
-		case ".js":
-			kind = "nodejs:default"
-		case ".py":
-			kind = "python"
-		}
-
-		dat, err := new(utils.ContentReader).LocalReader.ReadLocal(filePath)
-		if err != nil {
-			return name, action, wskderrors.NewFileReadError(filePath, err.Error())
-		}
-
-		action.Exec = new(whisk.Exec)
-		code := string(dat)
-		action.Exec.Code = &code
-		action.Exec.Kind = kind
-		action.Name = name
-		pub := false
-		action.Publish = &pub
-		return name, action, nil
-	}
-
-	// TODO(#691) create new named error
-	// If the action is not supported, we better to return an error.
-	return "", nil, errors.New("Unsupported action type.")
-}
-
-func (reader *FileSystemReader) getFilePathCount(path string) (int, error) {
-	absPath, err := filepath.Abs(path)
-	if err != nil {
-		return 0, err
-	}
-
-	pathList := strings.Split(absPath, "/")
-	return len(pathList) - 1, nil
-}
-
-func (reader *FileSystemReader) SetFileActions(actions []utils.ActionRecord) error {
-
-	dep := reader.serviceDeployer
-
-	dep.mt.Lock()
-	defer dep.mt.Unlock()
-
-	for _, fileAction := range actions {
-		existAction, exists := reader.serviceDeployer.Deployment.Packages[fileAction.Packagename].Actions[fileAction.Action.Name]
-
-		if exists == true {
-			if existAction.Filepath == fileAction.Filepath || existAction.Filepath == "" {
-				// we're adding a filesystem detected action so just updated code and filepath if needed
-				existAction.Action.Exec.Code = fileAction.Action.Exec.Code
-				existAction.Filepath = fileAction.Filepath
-			} else {
-				// TODO(#691) create new named error
-				// Action exists, but references two different sources
-				return errors.New("Conflict detected for action named " + existAction.Action.Name + ". Found two locations for source file: " + existAction.Filepath + " and " + fileAction.Filepath)
-			}
-		} else {
-			// not a new action so to actions in package
-			reader.serviceDeployer.Deployment.Packages[fileAction.Packagename].Actions[fileAction.Action.Name] = fileAction
-		}
-	}
-
-	return nil
-}
diff --git a/deployers/manifestreader.go b/deployers/manifestreader.go
index a7d1c69a..f9fc5993 100644
--- a/deployers/manifestreader.go
+++ b/deployers/manifestreader.go
@@ -169,24 +169,12 @@ func (reader *ManifestReader) SetPackages(packages map[string]*whisk.Package) er
 	defer dep.mt.Unlock()
 
 	for _, pkg := range packages {
-		depPkg, exist := dep.Deployment.Packages[pkg.Name]
+		_, exist := dep.Deployment.Packages[pkg.Name]
 		if exist {
-			if dep.IsDefault == true {
-				existPkg := depPkg.Package
-				existPkg.Annotations = pkg.Annotations
-				existPkg.Namespace = pkg.Namespace
-				existPkg.Parameters = pkg.Parameters
-				existPkg.Publish = pkg.Publish
-				existPkg.Version = pkg.Version
-
-				dep.Deployment.Packages[pkg.Name].Package = existPkg
-				return nil
-			} else {
-				// TODO(): i18n of error message (or create a new named error)
-				// TODO(): Is there a better way to handle an existing dependency of same name?
-				err := errors.New("Package [" + pkg.Name + "] exists already.")
-				return wskderrors.NewYAMLParserErr(reader.serviceDeployer.ManifestPath, err)
-			}
+			// TODO(): i18n of error message (or create a new named error)
+			// TODO(): Is there a better way to handle an existing dependency of same name?
+			err := errors.New("Package [" + pkg.Name + "] exists already.")
+			return wskderrors.NewYAMLParserErr(reader.serviceDeployer.ManifestPath, err)
 		}
 		newPack := NewDeploymentPackage()
 		newPack.Package = pkg
diff --git a/deployers/servicedeployer.go b/deployers/servicedeployer.go
index 69f0baed..579d038d 100644
--- a/deployers/servicedeployer.go
+++ b/deployers/servicedeployer.go
@@ -86,7 +86,6 @@ type ServiceDeployer struct {
 	Client         *whisk.Client
 	mt             sync.RWMutex
 	IsInteractive  bool
-	IsDefault      bool
 	ManifestPath   string
 	ProjectPath    string
 	DeploymentPath string
@@ -155,15 +154,6 @@ func (deployer *ServiceDeployer) ConstructDeploymentPlan() error {
 
 	manifestReader.InitPackages(manifestParser, manifest, deployer.ManagedAnnotation)
 
-	if deployer.IsDefault == true {
-		fileReader := NewFileSystemReader(deployer)
-		fileActions, err := fileReader.ReadProjectDirectory(manifest)
-		if err != nil {
-			return err
-		}
-		fileReader.SetFileActions(fileActions)
-	}
-
 	// process manifest file
 	err = manifestReader.HandleYaml(deployer, manifestParser, manifest, deployer.ManagedAnnotation)
 	if err != nil {
@@ -236,21 +226,6 @@ func (deployer *ServiceDeployer) ConstructUnDeploymentPlan() (*DeploymentProject
 
 	manifestReader.InitPackages(manifestParser, manifest, whisk.KeyValue{})
 
-	// process file system
-	if deployer.IsDefault == true {
-		fileReader := NewFileSystemReader(deployer)
-		fileActions, err := fileReader.ReadProjectDirectory(manifest)
-		if err != nil {
-			return deployer.Deployment, err
-		}
-
-		err = fileReader.SetFileActions(fileActions)
-		if err != nil {
-			return deployer.Deployment, err
-		}
-
-	}
-
 	// process manifest file
 	err = manifestReader.HandleYaml(deployer, manifestParser, manifest, whisk.KeyValue{})
 	if err != nil {
diff --git a/tests/src/integration/common/wskdeploy.go b/tests/src/integration/common/wskdeploy.go
index eff1920a..e8d943b6 100644
--- a/tests/src/integration/common/wskdeploy.go
+++ b/tests/src/integration/common/wskdeploy.go
@@ -180,7 +180,6 @@ func (wskdeploy *Wskdeploy) GetDeploymentObjects(manifestPath string, deployment
 	deployer.ProjectPath = filepath.Dir(manifestPath)
 	deployer.ManifestPath = manifestPath
 	deployer.DeploymentPath = deploymentPath
-	deployer.IsDefault = false
 	deployer.DependencyMaster = make(map[string]utils.DependencyRecord)
 
 	//create client config with namespace, apihost, authkey and etc.
diff --git a/utils/flags.go b/utils/flags.go
index 4ec1a624..e55983e2 100644
--- a/utils/flags.go
+++ b/utils/flags.go
@@ -35,7 +35,6 @@ type WskDeployFlags struct {
 	ProjectPath      string
 	DeploymentPath   string
 	ManifestPath     string
-	UseDefaults      bool
 	UseInteractive   bool
 	Strict           bool // strict flag to support user defined runtime version.
 	Key              string


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services