Perhaps we could have an “alias” command for applications etc, something like
br application list ….// view the list of applications br application alias myserver ID12ab br application myserver add abc.yaml br application myserver add def.yaml br application myserver add xyz.yaml ———————————————————— Gnu PGP key - http://is.gd/TTTTuI > On 20 Nov 2015, at 12:59, Aled Sage <[email protected]> wrote: > > Thanks, > > This looks really good. > > It will be great to have this, and to have a getting started guide that is > based on this new CLI. Many other tools in the devops space focus on this > kind of client CLI (e.g. Docker, Cloud Foundry, etc). > > --- > I'm not sure about the "br application cache <ID>", which sets the app id to > be used for subsequent calls such as "br entity ...". If using IDs they are > globally unique, so we could just miss out the app id (we'd need to add to > the REST api to support that). > > Would we want to support logical names for apps/entities, rather than just > IDs? The REST api supports looking up the app by its display name. I'm not > convinced we want to do that, but it certainly is simple/useful sometimes to > use logical names. > > Aled > > > On 20/11/2015 12:14, David Lloyd wrote: >> Hi All, >> >> We’ve been thinking that it would be really useful for Brooklyn to have a >> tool that provides a Command Line Interface (CLI) to augment the current >> web based GUI and REST API. The proposal below outlines what we are >> thinking of. We request comments from the community on the idea, and would >> very much welcome suggestions for developing it. >> >> Comments can be made by replying to this email or by adding >> comment/suggestions to this document: >> https://docs.google.com/document/d/1KNCHG--ExGevcGoJ3cRzcrjh3mWsZOzyCzRM_TpoGGo/edit?usp=sharing >> >> (and there are two comments on the document already) >> >> >> Description of Proposal >> >> The current REST API provides a powerful way for controlling Brooklyn, but >> it is difficult to combine operations (using the output of a command as >> input to a second command) using the GUI or using the REST API on a command >> line. We think that having a dedicated command line tool would make it >> easier for beginners and advanced users to control Brooklyn. >> >> Robert Moss has already done some excellent work on the ‘Go CLI client for >> Brooklyn REST API’ which can be found at brooklyncentral/brooklyn-cli. Our >> intention with this proposal would be to build upon this work and implement >> a set of commands that go beyond mirroring the REST API. We feel it would >> be best to keep the CLI in its own repo (so it can follow the Go >> conventions), for example with the name brooklyn-cli. >> >> We think that it is important for a CLI to be portable and to have as few >> (if any) dependencies on other tools as possible. Go has the advantages of >> compiling to native OS specific binaries that are statically linked, so >> avoids the need for installing dependencies (and getting the right >> combination of versions!). It can also be compiled for multiple operating >> systems, enabling a CLI to be built for servers and typical end user >> systems. >> >> Some possible commands that the CLI may provide include: >> >> br login >> >> cache login credentials for the Brooklyn instance >> >> br application list >> >> show the list of applications >> >> br application show <ID> >> >> show details of application <ID> >> >> br application cache <ID> >> >> cache the application <ID> to be used with subsequent commands that require >> an application ID. >> >> br application add <file|url> >> >> add (deploy) the specified application blueprint >> >> br entity list [-r] >> >> list the entities for an application, recursively if ‘-r’ specified >> (having previously used ‘br application cache <ID>’) >> >> br entity show <ID> >> >> show the details for an entity >> >> br entity cache <ID> >> >> cache the entity <ID> to be used with subsequent commands that require an >> entity ID (to be discarded if a new application ID is set). >> >> br sensor list >> >> list the sensors for an application / entity >> >> (having previously used ‘br application cache <ID>’ and ‘br entity cache >> <ID>’) >> >> br sensor show <Name> >> >> show the sensor value >> >> br sensor show service.isUp >> >> show the value of the service.isUp sensor on the previously specified >> application / entity >> >> br effector list >> >> list the effectors for an application / entity >> >> br effector invoke <Name> "{<parameter map>}" >> >> run the effector <Name> for a previously cached application <ID> / entity >> <ID> >> >> br catalog list >> >> show the list of available catalog items >> >> br catalog add <file|url> >> >> add the specified catalog entries >> >> br location list >> >> list the available locations >> >> br location show <ID> >> >> show details for location <ID> >> >> br location add "{locationSpec}" >> >> add the specified location >> >> It is intended that further commands would be added later such as: >> >> - >> >> br policy … >> - >> >> br activity … >> - >> >> etc. >> >> >> Existing CLI >> >> For reference the implemented commands for the existing brooklyn-cli are: >> >> USAGE: >> >> br [global options] command [command options] [arguments...] >> >> VERSION: >> >> 0.0.0 >> >> COMMANDS: >> >> access Show access control >> >> activity Show the activity for an entity >> >> activity-children Show the child activities for an entity >> >> activity-stream Show the stream for a given activity >> >> add-catalog Add a new catalog item from the supplied YAML >> >> add-children Add a child or children to this entity from the supplied YAML >> >> application Show the status and location of a running application >> >> applications Show the status and location of running applications >> >> catalog List the available catalog applications >> >> config Show the config for an application and entity >> >> create Create a new brooklyn application from the supplied YAML >> >> delete Delete a brooklyn application >> >> destroy-policy Destroy a policy >> >> effectors Show the list of effectors for an application and entity >> >> entities Show the entites for an application >> >> entity-children Show the children of an application's entity >> >> locations List the available locations >> >> login Login to brooklyn >> >> policies Show the list of policies for an application and entity >> >> policy Show the status of a policy for an application and entity >> >> rename-entity Rename an entity >> >> sensor Show the value of a sensor for an application and entity >> >> sensors Show the sensors for an application and entity >> >> set-config Set config for an entity >> >> spec Get the YAML spec used to create the entity, if available >> >> start-policy Start or resume a policy >> >> stop-policy Suspends a policy >> >> tree Show the tree of all applications >> version Display the version of the connected Brooklyn >> >> >> Geoff Macartney ([email protected]) >> David Lloyd ([email protected]) >> >
