Handle duplicate archive and package specs; handle multifile archives better (#1018)
Archives with multiple files should have all files in the inputs. Also clean up some inconsistent variable naming -- archive name, archive file path, and archive input files were all stored in incorrectly-named variables.
This commit is contained in:
committed by
Ta-Ching Chen
parent
f0c0936b87
commit
2699aa6069
+16
-15
@@ -193,6 +193,7 @@ func fnCreate(c *cli.Context) error {
|
||||
spec = true
|
||||
specFile = fmt.Sprintf("function-%v.yaml", fnName)
|
||||
}
|
||||
specDir := getSpecDir(c)
|
||||
|
||||
// check for unique function names within a namespace
|
||||
fnList, err := client.FunctionList(fnNamespace)
|
||||
@@ -252,25 +253,25 @@ func fnCreate(c *cli.Context) error {
|
||||
}
|
||||
}
|
||||
|
||||
srcArchiveName := c.StringSlice("src")
|
||||
var deployArchiveName []string
|
||||
codeFlag := false
|
||||
srcArchiveFiles := c.StringSlice("src")
|
||||
var deployArchiveFiles []string
|
||||
noZip := false
|
||||
code := c.String("code")
|
||||
if len(code) == 0 {
|
||||
deployArchiveName = c.StringSlice("deploy")
|
||||
deployArchiveFiles = c.StringSlice("deploy")
|
||||
} else {
|
||||
deployArchiveName = append(deployArchiveName, c.String("code"))
|
||||
codeFlag = true
|
||||
deployArchiveFiles = append(deployArchiveFiles, c.String("code"))
|
||||
noZip = true
|
||||
}
|
||||
// fatal when both src & deploy archive are empty
|
||||
if len(srcArchiveName) == 0 && len(deployArchiveName) == 0 {
|
||||
if len(srcArchiveFiles) == 0 && len(deployArchiveFiles) == 0 {
|
||||
log.Fatal("Need --deploy or --src argument.")
|
||||
}
|
||||
|
||||
buildcmd := c.String("buildcmd")
|
||||
|
||||
// create new package in the same namespace as the function.
|
||||
pkgMetadata = createPackage(client, fnNamespace, envName, envNamespace, srcArchiveName, deployArchiveName, buildcmd, specFile, codeFlag)
|
||||
pkgMetadata = createPackage(client, fnNamespace, envName, envNamespace, srcArchiveFiles, deployArchiveFiles, buildcmd, specDir, specFile, noZip)
|
||||
|
||||
fmt.Printf("package '%v' created\n", pkgMetadata.Name)
|
||||
}
|
||||
@@ -471,17 +472,17 @@ func fnUpdate(c *cli.Context) error {
|
||||
envNamespace = ""
|
||||
}
|
||||
|
||||
var deployArchiveName []string
|
||||
var deployArchiveFiles []string
|
||||
codeFlag := false
|
||||
code := c.String("code")
|
||||
if len(code) == 0 {
|
||||
deployArchiveName = c.StringSlice("deploy")
|
||||
deployArchiveFiles = c.StringSlice("deploy")
|
||||
} else {
|
||||
deployArchiveName = append(deployArchiveName, c.String("code"))
|
||||
deployArchiveFiles = append(deployArchiveFiles, c.String("code"))
|
||||
codeFlag = true
|
||||
}
|
||||
|
||||
srcArchiveName := c.StringSlice("src")
|
||||
srcArchiveFiles := c.StringSlice("src")
|
||||
pkgName := c.String("pkg")
|
||||
entrypoint := c.String("entrypoint")
|
||||
buildcmd := c.String("buildcmd")
|
||||
@@ -490,7 +491,7 @@ func fnUpdate(c *cli.Context) error {
|
||||
secretName := c.String("secret")
|
||||
cfgMapName := c.String("configmap")
|
||||
|
||||
if len(srcArchiveName) > 0 && len(deployArchiveName) > 0 {
|
||||
if len(srcArchiveFiles) > 0 && len(deployArchiveFiles) > 0 {
|
||||
log.Fatal("Need either of --src or --deploy and not both arguments.")
|
||||
}
|
||||
|
||||
@@ -566,7 +567,7 @@ func fnUpdate(c *cli.Context) error {
|
||||
|
||||
pkgMetadata := &pkg.Metadata
|
||||
|
||||
if len(deployArchiveName) != 0 || len(srcArchiveName) != 0 || len(buildcmd) != 0 || len(envName) != 0 || len(envNamespace) != 0 {
|
||||
if len(deployArchiveFiles) != 0 || len(srcArchiveFiles) != 0 || len(buildcmd) != 0 || len(envName) != 0 || len(envNamespace) != 0 {
|
||||
fnList, err := getFunctionsByPackage(client, pkg.Metadata.Name, pkg.Metadata.Namespace)
|
||||
util.CheckErr(err, "get function list")
|
||||
|
||||
@@ -574,7 +575,7 @@ func fnUpdate(c *cli.Context) error {
|
||||
log.Fatal("Package is used by multiple functions, use --force to force update")
|
||||
}
|
||||
|
||||
pkgMetadata, err = updatePackage(client, pkg, envName, envNamespace, srcArchiveName, deployArchiveName, buildcmd, false, codeFlag)
|
||||
pkgMetadata, err = updatePackage(client, pkg, envName, envNamespace, srcArchiveFiles, deployArchiveFiles, buildcmd, false, codeFlag)
|
||||
util.CheckErr(err, fmt.Sprintf("update package '%v'", pkgName))
|
||||
|
||||
fmt.Printf("package '%v' updated\n", pkgMetadata.GetName())
|
||||
|
||||
Reference in New Issue
Block a user