You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2016/10/25 19:10:56 UTC

[02/19] brooklyn-client git commit: Add catalog list

Add catalog list


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-client/commit/16eff1b0
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-client/tree/16eff1b0
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-client/diff/16eff1b0

Branch: refs/heads/master
Commit: 16eff1b0b2290eea1d3d1bd1b8907637197bc974
Parents: 7db8e15
Author: Geoff Macartney <ge...@cloudsoftcorp.com>
Authored: Wed Oct 12 14:07:59 2016 +0100
Committer: Geoff Macartney <ge...@cloudsoftcorp.com>
Committed: Wed Oct 12 14:07:59 2016 +0100

----------------------------------------------------------------------
 cli/app/app.go                 |  3 +-
 cli/command_factory/factory.go |  2 +-
 cli/commands/catalog-list.go   | 63 +++++++++++++++++++++++++++++++++++++
 cli/commands/catalog.go        | 42 +++++++++++++++++--------
 4 files changed, 94 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/16eff1b0/cli/app/app.go
----------------------------------------------------------------------
diff --git a/cli/app/app.go b/cli/app/app.go
index 4fb39a2..ad96fa3 100644
--- a/cli/app/app.go
+++ b/cli/app/app.go
@@ -19,7 +19,6 @@
 package app
 
 import (
-	"fmt"
 	"github.com/apache/brooklyn-client/cli/command_metadata"
 	"github.com/apache/brooklyn-client/cli/command_runner"
 	"github.com/apache/brooklyn-client/cli/error_handler"
@@ -111,7 +110,7 @@ func subCommandAction(command string, operand string, runner command_runner.Runn
 	return func(context *cli.Context) {
 		err := runner.RunSubCmdByName(command, operand, context)
 		if err != nil {
-			fmt.Fprintln(os.Stderr, err)
+			error_handler.ErrorExit(err)
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/16eff1b0/cli/command_factory/factory.go
----------------------------------------------------------------------
diff --git a/cli/command_factory/factory.go b/cli/command_factory/factory.go
index ae1634d..399014f 100644
--- a/cli/command_factory/factory.go
+++ b/cli/command_factory/factory.go
@@ -55,7 +55,7 @@ func NewFactory(network *net.Network, config *io.Config) (factory concreteFactor
 	factory.simpleCommand(commands.NewAddChildren(network))
 	factory.simpleCommand(commands.NewApplication(network))
 	//factory.simpleCommand(commands.NewApplications(network))
-	factory.simpleCommand(commands.NewCatalog(network))
+	factory.superCommand(commands.NewCatalog(network))
 	factory.simpleCommand(commands.NewConfig(network))
 	factory.simpleCommand(commands.NewDeploy(network))
 	factory.simpleCommand(commands.NewDelete(network))

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/16eff1b0/cli/commands/catalog-list.go
----------------------------------------------------------------------
diff --git a/cli/commands/catalog-list.go b/cli/commands/catalog-list.go
new file mode 100644
index 0000000..bb6efe3
--- /dev/null
+++ b/cli/commands/catalog-list.go
@@ -0,0 +1,63 @@
+/*
+ * 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 commands
+
+import (
+	"github.com/apache/brooklyn-client/cli/api/catalog"
+	"github.com/apache/brooklyn-client/cli/command_metadata"
+	"github.com/apache/brooklyn-client/cli/error_handler"
+	"github.com/apache/brooklyn-client/cli/net"
+	"github.com/apache/brooklyn-client/cli/scope"
+	"github.com/apache/brooklyn-client/cli/terminal"
+	"github.com/urfave/cli"
+)
+
+type CatalogList struct {
+	network *net.Network
+}
+
+func NewCatalogList(network *net.Network) (cmd *CatalogList) {
+	cmd = new(CatalogList)
+	cmd.network = network
+	return
+}
+
+func (cmd *CatalogList) Metadata() command_metadata.CommandMetadata {
+	return command_metadata.CommandMetadata{
+		Name:        "list",
+		Description: "* List the available catalog applications",
+		Usage:       "BROOKLYN_NAME catalog list",
+		Flags:       []cli.Flag{},
+	}
+}
+
+func (cmd *CatalogList) Run(scope scope.Scope, c *cli.Context) {
+	if err := net.VerifyLoginURL(cmd.network); err != nil {
+		error_handler.ErrorExit(err)
+	}
+	catalog, err := catalog.Catalog(cmd.network)
+	if nil != err {
+		error_handler.ErrorExit(err)
+	}
+	table := terminal.NewTable([]string{"Id", "Name", "Description"})
+	for _, app := range catalog {
+		table.Add(app.Id, app.Name, app.Description)
+	}
+	table.Print()
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/16eff1b0/cli/commands/catalog.go
----------------------------------------------------------------------
diff --git a/cli/commands/catalog.go b/cli/commands/catalog.go
index eab08b8..6cfc324 100644
--- a/cli/commands/catalog.go
+++ b/cli/commands/catalog.go
@@ -19,31 +19,54 @@
 package commands
 
 import (
-	"github.com/apache/brooklyn-client/cli/api/catalog"
+	"github.com/apache/brooklyn-client/cli/command"
 	"github.com/apache/brooklyn-client/cli/command_metadata"
 	"github.com/apache/brooklyn-client/cli/error_handler"
 	"github.com/apache/brooklyn-client/cli/net"
 	"github.com/apache/brooklyn-client/cli/scope"
-	"github.com/apache/brooklyn-client/cli/terminal"
 	"github.com/urfave/cli"
+	"strings"
+	"fmt"
 )
 
 type Catalog struct {
 	network *net.Network
+	catalogCommands map[string]command.Command
 }
 
 func NewCatalog(network *net.Network) (cmd *Catalog) {
 	cmd = new(Catalog)
 	cmd.network = network
+	cmd.catalogCommands = map[string]command.Command {
+		ListCatalogCommand: NewCatalogList(cmd.network),
+	}
 	return
 }
 
+const ListCatalogCommand = "list"
+
+var catalogCommands = []string{
+	ListCatalogCommand,
+}
+var catalogCommandsUsage = strings.Join(catalogCommands, " | ")
+
+func (cmd *Catalog) SubCommandNames() []string {
+	return catalogCommands
+}
+
+func (cmd *Catalog) SubCommand(name string) command.Command {
+	return cmd.catalogCommands[name]
+}
+
 func (cmd *Catalog) Metadata() command_metadata.CommandMetadata {
 	return command_metadata.CommandMetadata{
 		Name:        "catalog",
-		Description: "* List the available catalog applications",
-		Usage:       "BROOKLYN_NAME catalog",
+		Description: "Catalog operations",
+		Usage:       "BROOKLYN_NAME catalog (" + catalogCommandsUsage + ")",
 		Flags:       []cli.Flag{},
+		Operands:    []command_metadata.CommandMetadata{
+			cmd.SubCommand(ListCatalogCommand).Metadata(),
+		},
 	}
 }
 
@@ -51,13 +74,6 @@ func (cmd *Catalog) Run(scope scope.Scope, c *cli.Context) {
 	if err := net.VerifyLoginURL(cmd.network); err != nil {
 		error_handler.ErrorExit(err)
 	}
-	catalog, err := catalog.Catalog(cmd.network)
-	if nil != err {
-		error_handler.ErrorExit(err)
-	}
-	table := terminal.NewTable([]string{"Id", "Name", "Description"})
-	for _, app := range catalog {
-		table.Add(app.Id, app.Name, app.Description)
-	}
-	table.Print()
+	fmt.Printf("Unrecognised instruction, please use one of (%s)\n", catalogCommandsUsage)
+
 }