mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
fnctl: Fix aws import (#212)
This commit is contained in:
committed by
C Cirello
parent
e9c0fb454a
commit
0bff16e765
@@ -28,10 +28,6 @@ type lambdaCmd struct {
|
||||
settings config.Settings
|
||||
token *string
|
||||
projectID *string
|
||||
}
|
||||
|
||||
type lambdaCreateCmd struct {
|
||||
lambdaCmd
|
||||
|
||||
functionName string
|
||||
runtime string
|
||||
@@ -47,16 +43,16 @@ type lambdaCreateCmd struct {
|
||||
awsRegion string
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) Config() error {
|
||||
func (lcc *lambdaCmd) Config() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type DockerJsonWriter struct {
|
||||
type dockerJsonWriter struct {
|
||||
under io.Writer
|
||||
w io.Writer
|
||||
}
|
||||
|
||||
func NewDockerJsonWriter(under io.Writer) *DockerJsonWriter {
|
||||
func newDockerJsonWriter(under io.Writer) *dockerJsonWriter {
|
||||
r, w := io.Pipe()
|
||||
go func() {
|
||||
err := jsonmessage.DisplayJSONMessagesStream(r, under, 1, true, nil)
|
||||
@@ -65,14 +61,14 @@ func NewDockerJsonWriter(under io.Writer) *DockerJsonWriter {
|
||||
os.Exit(1)
|
||||
}
|
||||
}()
|
||||
return &DockerJsonWriter{under, w}
|
||||
return &dockerJsonWriter{under, w}
|
||||
}
|
||||
|
||||
func (djw *DockerJsonWriter) Write(p []byte) (int, error) {
|
||||
func (djw *dockerJsonWriter) Write(p []byte) (int, error) {
|
||||
return djw.w.Write(p)
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) getFlags() []cli.Flag {
|
||||
func (lcc *lambdaCmd) getFlags() []cli.Flag {
|
||||
return []cli.Flag{
|
||||
cli.StringFlag{
|
||||
Name: "function-name",
|
||||
@@ -111,6 +107,7 @@ func (lcc *lambdaCreateCmd) getFlags() []cli.Flag {
|
||||
Name: "version",
|
||||
Usage: "Version of the function to import.",
|
||||
Destination: &lcc.version,
|
||||
Value: "$LATEST",
|
||||
},
|
||||
|
||||
cli.BoolFlag{
|
||||
@@ -134,7 +131,7 @@ func (lcc *lambdaCreateCmd) getFlags() []cli.Flag {
|
||||
}
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) downloadToFile(url string) (string, error) {
|
||||
func (lcc *lambdaCmd) downloadToFile(url string) (string, error) {
|
||||
downloadResp, err := http.Get(url)
|
||||
if err != nil {
|
||||
return "", err
|
||||
@@ -152,7 +149,7 @@ func (lcc *lambdaCreateCmd) downloadToFile(url string) (string, error) {
|
||||
return tmpFile.Name(), nil
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) unzipAndGetTopLevelFiles(dst, src string) (files []lambdaImpl.FileLike, topErr error) {
|
||||
func (lcc *lambdaCmd) unzipAndGetTopLevelFiles(dst, src string) (files []lambdaImpl.FileLike, topErr error) {
|
||||
files = make([]lambdaImpl.FileLike, 0)
|
||||
|
||||
zipReader, err := zip.OpenReader(src)
|
||||
@@ -212,7 +209,7 @@ func (lcc *lambdaCreateCmd) unzipAndGetTopLevelFiles(dst, src string) (files []l
|
||||
return
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) getFunction() (*aws_lambda.GetFunctionOutput, error) {
|
||||
func (lcc *lambdaCmd) getFunction() (*aws_lambda.GetFunctionOutput, error) {
|
||||
creds := aws_credentials.NewChainCredentials([]aws_credentials.Provider{
|
||||
&aws_credentials.EnvProvider{},
|
||||
&aws_credentials.SharedCredentialsProvider{
|
||||
@@ -232,7 +229,7 @@ func (lcc *lambdaCreateCmd) getFunction() (*aws_lambda.GetFunctionOutput, error)
|
||||
return resp, err
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) init(c *cli.Context) {
|
||||
func (lcc *lambdaCmd) init(c *cli.Context) {
|
||||
handler := c.String("handler")
|
||||
functionName := c.String("function-name")
|
||||
runtime := c.String("runtime")
|
||||
@@ -244,7 +241,13 @@ func (lcc *lambdaCreateCmd) init(c *cli.Context) {
|
||||
profile := c.String("profile")
|
||||
region := c.String("region")
|
||||
|
||||
lcc.fileNames = c.Args()
|
||||
if c.Command.Name == "aws-import" {
|
||||
if len(c.Args()) > 0 {
|
||||
lcc.arn = c.Args()[0]
|
||||
}
|
||||
} else {
|
||||
lcc.fileNames = c.Args()
|
||||
}
|
||||
lcc.handler = handler
|
||||
lcc.functionName = functionName
|
||||
lcc.runtime = runtime
|
||||
@@ -257,7 +260,7 @@ func (lcc *lambdaCreateCmd) init(c *cli.Context) {
|
||||
lcc.awsRegion = region
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) create(c *cli.Context) error {
|
||||
func (lcc *lambdaCmd) create(c *cli.Context) error {
|
||||
lcc.init(c)
|
||||
|
||||
files := make([]lambdaImpl.FileLike, 0, len(lcc.fileNames))
|
||||
@@ -266,7 +269,7 @@ func (lcc *lambdaCreateCmd) create(c *cli.Context) error {
|
||||
Base: fmt.Sprintf("iron/lambda-%s", lcc.runtime),
|
||||
Package: "",
|
||||
Handler: lcc.handler,
|
||||
OutputStream: NewDockerJsonWriter(os.Stdout),
|
||||
OutputStream: newDockerJsonWriter(os.Stdout),
|
||||
RawJSONStream: true,
|
||||
}
|
||||
|
||||
@@ -299,7 +302,7 @@ func (lcc *lambdaCreateCmd) create(c *cli.Context) error {
|
||||
return lambdaImpl.CreateImage(opts, files...)
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) runTest(c *cli.Context) error {
|
||||
func (lcc *lambdaCmd) runTest(c *cli.Context) error {
|
||||
lcc.init(c)
|
||||
exists, err := lambdaImpl.ImageExists(lcc.functionName)
|
||||
if err != nil {
|
||||
@@ -313,7 +316,7 @@ func (lcc *lambdaCreateCmd) runTest(c *cli.Context) error {
|
||||
return lambdaImpl.RunImageWithPayload(lcc.functionName, lcc.payload)
|
||||
}
|
||||
|
||||
func (lcc *lambdaCreateCmd) awsImport(c *cli.Context) error {
|
||||
func (lcc *lambdaCmd) awsImport(c *cli.Context) error {
|
||||
lcc.init(c)
|
||||
function, err := lcc.getFunction()
|
||||
if err != nil {
|
||||
@@ -362,7 +365,7 @@ func (lcc *lambdaCreateCmd) awsImport(c *cli.Context) error {
|
||||
Base: fmt.Sprintf("iron/lambda-%s", *function.Configuration.Runtime),
|
||||
Package: "",
|
||||
Handler: *function.Configuration.Handler,
|
||||
OutputStream: NewDockerJsonWriter(os.Stdout),
|
||||
OutputStream: newDockerJsonWriter(os.Stdout),
|
||||
RawJSONStream: true,
|
||||
}
|
||||
|
||||
@@ -382,7 +385,7 @@ func (lcc *lambdaCreateCmd) awsImport(c *cli.Context) error {
|
||||
}
|
||||
|
||||
func lambda() cli.Command {
|
||||
lcc := lambdaCreateCmd{}
|
||||
lcc := lambdaCmd{}
|
||||
var flags []cli.Flag
|
||||
|
||||
flags = append(flags, lcc.getFlags()...)
|
||||
|
||||
Reference in New Issue
Block a user