cloudmesh_client.shell.plugins package

Submodules

cloudmesh_client.shell.plugins.AkeyCommand module

class cloudmesh_client.shell.plugins.AkeyCommand.AkeyCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_akey(instance, args)
Usage:
akey
akey list
akey add --name=key-name --pub=pub-key-path --cert=certificate-file-path --pfx=pfx-file-path
topics = {'akey': 'security'}

cloudmesh_client.shell.plugins.Bar module

class cloudmesh_client.shell.plugins.Bar.BarCommand(context)[source]

Bases: object

do_bar(instance, args)
Usage:
      bar -f FILE
      bar FILE
      bar list

This command does some useful things.

Arguments:
    FILE   a file name

Options:
    -f      specify the file
topics = {'bar': 'example'}

cloudmesh_client.shell.plugins.CheckCommand module

class cloudmesh_client.shell.plugins.CheckCommand.CheckCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_check(instance, args)
Usage:
    check --cloud=CLOUD
    check

    checks some elementary setting for cloudmesh

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name

Examples:
    cm check
    cm check --cloud=kilo
topics = {'check': 'notimplemented'}

cloudmesh_client.shell.plugins.CloudCommand module

class cloudmesh_client.shell.plugins.CloudCommand.CloudCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_cloud(instance, args)
Usage:
    cloud list [--cloud=CLOUD] [--format=FORMAT]
    cloud logon CLOUD
    cloud logout CLOUD
    cloud activate CLOUD
    cloud deactivate CLOUD
    cloud info CLOUD

managing the admins test test test test

Arguments:
  KEY    the name of the admin
  VALUE  the value to set the key to

Options:
   --cloud=CLOUD    the name of the cloud
   --format=FORMAT  the output format [default: table]

Description:
   Cloudmesh contains a cloudmesh.yaml file that contains
   templates for multiple clouds that you may or may not have
   access to. Hence it is useful to activate and deactivate clouds
   you like to use in other commands.

   To activate a cloud a user can simply use the activate
   command followed by the name of the cloud to be
   activated. To find out which clouds are available you can
   use the list command that will provide you with some
   basic information. As default it will print a table. Thus
   the commands::

     cloud activate india
     cloud deactivate aws

   Will result in

      +----------------------+--------+-------------------+
      | Cloud name           | Active | Type              |
      +----------------------+--------+-------------------+
      | india                | True   | Openstack         |
      +----------------------+--------+-------------------+
      | aws                  | False  | AWS               |
      +----------------------+--------+-------------------+

   To get ore information about the cloud you can use the command

      cloud info CLOUD

   It will call internally also the command uses in register

See also:
   register
topics = {'cloud': 'cloud'}

cloudmesh_client.shell.plugins.ClusterCommand module

class cloudmesh_client.shell.plugins.ClusterCommand.ClusterCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_cluster(instance, args)
Usage:
    cluster list [--format=FORMAT]
    cluster list NAME
                 [--format=FORMAT]
                 [--column=COLUMN]
                 [--short]
    cluster create NAME
                   [--count=COUNT]
                   [--login=USERNAME]
                   [--cloud=CLOUD]
                   [--image=IMAGE]
                   [--flavor=FLAVOR]
                   [--add]
    cluster delete NAME
    cluster setup NAME [--username]
    cluster inventory NAME

Description:
    with the help of the cluster command you can create a number
    of virtual machines that are integrated in a named virtual cluster.
    You will be able to login between the nodes of the virtual cluster
    while using public keys.

    cluster setup NAME
      sets up the keys between the cluster node as well as the machine that
      executes the cm command

    cluster inventory NAME
      creates an inventory.txt file to be used by ansible in the current directory

    cluster create NAME
       creates the virtual machines used for the cluster

    cluster list NAME
       lists selected details of the vms for the cluster

    cluster delete NAME
        remove the cluster and its VMs

Examples:
    cluster list
        list the clusters

    cluster create NAME --count=COUNT --login=USERNAME [options...]
        Start a cluster of VMs, and each of them can log into each other.
        CAUTION: you should specify defaults before using this command:
        1. select cloud to work on, e.g. cloud select kilo
             default cloud=kilo
        2. test if you can create a single VM on the cloud to see if
           everything is set up
        3. set the default key to start VMs, e.g. key default [USERNAME-key]
        5. set image of VMs, e.g. default image
        6. set flavor of VMs, e.g. default flavor
        7. Make sure to use a new unused group name

Arguments:
    NAME              cluster name or group name

Options:
    --count=COUNT     give the number of VMs to add into the cluster
    --login=USERNAME  give a login name for the VMs, e.g. ubuntu
    --cloud=CLOUD     give a cloud to work on
    --flavor=FLAVOR   give the name of the flavor or flavor id
    --image=IMAGE     give the name of the image or image id
    --add             if a group exists and there are VMs in it
                      additional vms will be added to this cluster and the
                      keys will be added to each other so one can login between
                      them
    FORMAT            output format: table, json, csv
    COLUMN            customize what information to display, for example:
                      --column=status,addresses prints the columns status
                      and addresses
    --detail          for table print format, a brief version
                      is used as default, use this flag to print
                      detailed table
topics = {'cluster': 'notimplemented'}
cloudmesh_client.shell.plugins.ClusterCommand.boot_from_args(arg)[source]

cloudmesh_client.shell.plugins.ClusterCommand2 module

class cloudmesh_client.shell.plugins.ClusterCommand2.Cluster2Command(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_cluster(instance, args)
::
Usage:
cluster define [-n NAME] [-c COUNT] [-C CLOUD] [-u NAME] [-i IMAGE] [-f FLAVOR] [-k KEY] [-s NAME] [-AI] cluster undefine [–all] [NAME]… cluster avail cluster use <NAME> cluster allocate cluster cross_ssh cluster list cluster nodes [CLUSTER] cluster delete [–all] [–force] [NAME]… cluster get [-n NAME] PROPERTY cluster inventory [-F NAME] [-o PATH] [NAME]

Commands:

define Create a cluster specification undefine Delete the active or given specifications avail Show available cluster specifications use Activate the specification with the given name allocate Create a cluster from the active specification nodes Show the nodes of the cluster list List the available clusters inventory Obtain an inventory file delete Delete clusters and associated instances get Get properties of a cluster/nodes in a cluster

Arguments:

NAME Alphanumeric name COUNT Integer > 0 PATH Path to entry on the filesystem

Options:

-A –no-activate Don’t activate this cluster -I –no-floating-ip Don’t assign floating IPs -n NAME –name=NAME Name of the cluster -c COUNT –count=COUNT Number of nodes in the cluster -C NAME –cloud=NAME Name of the cloud -u NAME –username=NAME Name of the image login user -i NAME –image=NAME Name of the image -f NAME –flavor=NAME Name of the flavor -k NAME –key=NAME Name of the key -s NAME –secgroup=NAME NAME of the security group -F NAME –format=NAME Name of the output format -o PATH –path=PATH Output to this path –force –all

Inventory File Format:

ansible [default] Ansible-compatible inventory
topics = {'cluster': 'cluster'}
class cloudmesh_client.shell.plugins.ClusterCommand2.Command[source]

Bases: object

allocate(clustername=None)[source]
avail()[source]

Show the available cluster specifications

cross_ssh(clustername=None)[source]
define(clustername=None, **kwargs)[source]

Define a cluster.

kwargs are passed to Cluster

Returns:a cluster
Return type:Cluster
delete(clusternames=None, force=False, all=False)[source]

Delete clusters that have these names.

If not specified, delete the active cluster. If there is no active cluster, delete the first cluster.

Parameters:clusternames (list) – list of cluster names to delete
get(property, cluster=None)[source]

Retrieve the property for a cluster/nodes in a cluster.

If no cluster is specified, use the currently active cluster.

Parameters:
  • property (str) – name of the property
  • cluster (Cluster) – the cluster (default: currently active)
Returns:

a list of the values

Return type:

list

inventory(cluster=None, format=None, path=None)[source]
list()[source]

List the clusters created

The currently active cluster is given as the first element in the tuple, while the remainder are listed in the second position.

Returns:a pair: (active, [clusters])
Return type:tuple (Cluster, list of Cluster)
Raises:NoActiveClusterException if no cluster is active, meaning there are no clusters
nodes(cluster=None)[source]

Retrieve the nodes of a cluster

If no cluster is specified, use the currently active cluster.

Parameters:cluster (Cluster) – the cluster (default: currently active)
Returns:a list of instances
Return type:a VM instance
undefine(specname=None, all=False)[source]
use(specname)[source]

Activate the given specification

Parameters:specname – namne of the specification

cloudmesh_client.shell.plugins.ColorCommand module

class cloudmesh_client.shell.plugins.ColorCommand.ColorCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_color(instance, args)
Usage:
    color FLAG

Arguments:

    FLAG    color mode flag ON/OFF

Description:

    Global switch for the console color mode.
    One can switch the color mode on/off with
        cm color ON
        cm color OFF

    By default, the color mode is ON

Examples:
    color ON
    color OFF
topics = {'color': 'shell'}

cloudmesh_client.shell.plugins.CometCommand module

class cloudmesh_client.shell.plugins.CometCommand.CometCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_comet(instance, args)
Usage:
   comet init
   comet active [ENDPOINT]
   comet ll [CLUSTERID] [--format=FORMAT] [--endpoint=ENDPOINT]
   comet cluster [--concise|--status] [CLUSTERID]
                 [--format=FORMAT]
                 [--sort=SORTKEY]
                 [--endpoint=ENDPOINT]
   comet computeset [COMPUTESETID]
                [--allocation=ALLOCATION]
                [--cluster=CLUSTERID]
                [--state=COMPUTESESTATE]
                [--endpoint=ENDPOINT]
   comet start CLUSTERID [--count=NUMNODES] [COMPUTENODEIDS]
                [--allocation=ALLOCATION]
                [--reservation=RESERVATION]
                [--walltime=WALLTIME]
                [--endpoint=ENDPOINT]
   comet terminate COMPUTESETID [--endpoint=ENDPOINT]
   comet power (on|off|reboot|reset|shutdown) CLUSTERID [NODESPARAM]
                [--endpoint=ENDPOINT]
   comet console [--link] CLUSTERID [COMPUTENODEID]
                [--endpoint=ENDPOINT]
   comet node info CLUSTERID [COMPUTENODEID] [--format=FORMAT]
                [--endpoint=ENDPOINT]
   comet node rename CLUSTERID OLDNAMES NEWNAMES
                [--endpoint=ENDPOINT]
   comet iso list [--endpoint=ENDPOINT]
   comet iso upload [--isoname=ISONAME] PATHISOFILE
                [--endpoint=ENDPOINT]
   comet iso attach ISOIDNAME CLUSTERID [COMPUTENODEIDS]
                [--endpoint=ENDPOINT]
   comet iso detach CLUSTERID [COMPUTENODEIDS]
                [--endpoint=ENDPOINT]
   comet reservation (list|create|update|delete)

Options:
    --endpoint=ENDPOINT     Specify the comet nucleus service
                            endpoint to work with, e.g., dev
                            or production
    --format=FORMAT         Format is either table, json, yaml,
                            csv, rest
                            [default: table]
    --sort=SORTKEY          Sorting key for the table view
    --count=NUMNODES        Number of nodes to be powered on.
                            When this option is used, the comet system
                            will find a NUMNODES number of arbitrary nodes
                            that are available to boot as a computeset
    --allocation=ALLOCATION     Allocation to charge when power on
                                node(s)
    --reservation=RESERVATION   Submit the request to an existing reservation
    --walltime=WALLTIME     Walltime requested for the node(s).
                            Walltime could be an integer value followed
                            by a unit (m, h, d, w, for minute, hour, day,
                            and week, respectively). E.g., 3h, 2d
    --isoname=ISONAME       Name of the iso image after being stored remotely.
                            If not specified, use the original filename
    --state=COMPUTESESTATE  List only computeset with the specified state.
                            The state could be submitted, running, completed
    --link                  Whether to open the console url or just show the link
    --concise               Concise table view for cluster info
    --status                Cluster table view displays only those columns showing state of nodes

Arguments:
    ENDPOINT        Service endpoint based on the yaml config file.
                    By default it's either dev or production.
    CLUSTERID       The assigned name of a cluster, e.g. vc1
    COMPUTESETID    An integer identifier assigned to a computeset
    COMPUTENODEID   A compute node name, e.g., vm-vc1-0
                    If not provided, the requested action will be taken
                    on the frontend node of the specified cluster
    COMPUTENODEIDS  A set of compute node names in hostlist format,
                    e.g., vm-vc1-[0-3]
                    One single node is also acceptable: vm-vc1-0
                    If not provided, the requested action will be taken
                    on the frontend node of the specified cluster
    NODESPARAM      Specifying the node/nodes/computeset to act on.
                    In case of integer, will be intepreted as a computesetid;
                    in case of a hostlist format, e.g., vm-vc1-[0-3], a group
                    of nodes; or a single host is also acceptable,
                    e.g., vm-vc1-0
    ISONAME         Name of an iso image at remote server
    ISOIDNAME       Index or name of an iso image at the remote server.
                    The index is based on the list from 'comet iso list'.
    PATHISOFILE     The full path to the iso image file to be uploaded
    OLDNAMES        The list of current node names to be renamed, in hostlist
                    format. A single host is also acceptable.
    NEWNAMES        The list of new names to rename to, in hostlist format.
                    A single host is also acceptable.
topics = {'comet': 'comet'}

cloudmesh_client.shell.plugins.DebugCommand module

class cloudmesh_client.shell.plugins.DebugCommand.DebugCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_debug(instance, args)
Usage:
    debug on
    debug off
    debug list

    switches on and off the debug messages
topics = {'debug': 'shell'}

cloudmesh_client.shell.plugins.DefaultCommand module

class cloudmesh_client.shell.plugins.DefaultCommand.DefaultCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_default(instance, args)
Usage:
    default
    default list [--cloud=CLOUD] [--format=FORMAT] [--all]
    default delete KEY [--cloud=CLOUD]
    default KEY [--cloud=CLOUD]
    default KEY=VALUE [--cloud=CLOUD]

Arguments:
  KEY    the name of the default
  VALUE  the value to set the key to

Options:
   --cloud=CLOUD    the name of the cloud
   --format=FORMAT  the output format. Values include
                    table, json, csv, yaml.
   --all            lists all the default values
Description:

Cloudmesh has the ability to manage easily multiple clouds. One of the key concepts to manage multiple clouds is to use defaults for the cloud, the images, flavors, and other values. The default command is used to manage such default values. These defaults are used in other commands if they are not overwritten by a command parameter.

The current default values can by listed with

default list –all

Via the default command you can list, set, get and delete default values. You can list the defaults with

default list

A default can be set with

default KEY=VALUE

To look up a default value you can say

default KEY

A default can be deleted with

default delete KEY

To be specific to a cloud you can specify the name of the cloud with the –cloud=CLOUD option. The list command can print the information in various formats iv specified.

Examples:
default
lists the default for the current default cloud
default list –all
lists all default values
default list –cloud=kilo
lists the defaults for the cloud with the name kilo
default image=xyz
sets the default image for the default cloud to xyz
default image=abc –cloud=kilo
sets the default image for the cloud kilo to xyz
default image
list the default image of the default cloud
default image –cloud=kilo
list the default image of the cloud kilo
default delete image
deletes the value for the default image in the default cloud
default delete image –cloud=kilo
deletes the value for the default image in the cloud kilo
topics = {'default': 'cloud'}

cloudmesh_client.shell.plugins.DeployCommand module

class cloudmesh_client.shell.plugins.DeployCommand.AnsibleCommand[source]

Bases: object

playbook(cluster=None, path=None)[source]
role(cluster=None, uris=None, hostsPattern='all', become=True, username=None, modifyKnownHosts=True)[source]

Deploy a role to all the nodes in the cluster

Parameters:
  • cluster (str) – cluster name (default is the active cluster)
  • path (str) – path to the role (default is current working directory)
  • username (str) – login username of the nodes (overrides autodetected value)
  • modifyKnownHosts – whether to update ~/.ssh/known_hosts
class cloudmesh_client.shell.plugins.DeployCommand.DeployCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_deploy(instance, args)
::
Usage:
deploy ansible role [-c CLUSTER] [-u NAME] [-N] [-H HOST] [-b] URI…

Commands:

ansible Ansible deployment
Ansible Commands:
playbook Deploy a pre-prepared playbook role Deploy a role to all nodes

Arguments:

CLUSTER Cluster name to deploy to NAME Alphanumeric name COUNT Integer > 0 URI Location of the item as a uri HOST Host matching pattern

Options:

-c –cluster=CLUSTER Cluster name to operate on (defaults to active) -N –no-modify-known-hosts Don’t let ssh update ~/.ssh/known_hosts -u –username=NAME Username of the nodes to manage -H HOST –hosts=HOST Host matching pattern [default: all] -b –no-become Don’t become privileged user
topics = {'deploy': 'cluster'}

cloudmesh_client.shell.plugins.FlavorCommand module

class cloudmesh_client.shell.plugins.FlavorCommand.FlavorCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_flavor(instance, args)
Usage:
    flavor refresh [--cloud=CLOUD] [-v]
    flavor list [ID] [--cloud=CLOUD] [--format=FORMAT] [--refresh] [-v]

    This lists out the flavors present for a cloud

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --refresh        refreshes the data before displaying it
                    from the cloud

Examples:
    cm flavor refresh
    cm flavor list
    cm flavor list --format=csv
    cm flavor show 58c9552c-8d93-42c0-9dea-5f48d90a3188 --refresh
topics = {'flavor': 'cloud'}

cloudmesh_client.shell.plugins.GroupCommand module

class cloudmesh_client.shell.plugins.GroupCommand.GroupCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_group(instance, args)
Usage:
    group list [GROUPNAME] [--format=FORMAT]
    group remove NAMES [--group=GROUPNAME]
    group add NAMES [--type=TYPE] [--group=GROUPNAME]
    group delete GROUPS
    group copy FROM TO
    group merge GROUPA GROUPB MERGEDGROUP

manage the groups

Arguments:

    NAMES        names of object to be added
    GROUPS       names of a groups
    FROM         name of a group
    TO           name of a group
    GROUPA       name of a group
    GROUPB       name of a group
    MERGEDGROUP  name of a group

Options:
    --format=FORMAT     the output format
    --type=TYPE         the resource type
    --name=NAME         the name of the group
    --id=IDS            the ID(s) to add to the group


Description:

    Todo: design parameters that are useful and match
    description
    Todo: discuss and propose command

    cloudmesh can manage groups of resource related
    objects. As it would be cumbersome to for example delete
    many virtual machines or delete VMs that are in the same
    group, but are running in different clouds.

    Hence it is possible to add a virtual machine to a
    specific group. The group name to be added to can be set
    as a default. This way all subsequent commands use this
    default group. It can also be set via a command parameter.
    Another convenience function is that the group command can
    use the last used virtual machine. If a vm is started it
    will be automatically added to the default group if it is set.

    If finer grained deletion is needed, it can be achieved
    with the delete command that supports deletion by name

    It is also possible to remove a VM from the group using the
    remove command, by supplying the ID

Note:

    The type is internally called for the group species, we may
    eliminate the species column and just use the type column for it,

Example:
    default group mygroup

    group add --type=vm --id=albert-[001-003]
        adds the vms with the given name using the Parameter
        see base

    group add --type=vm
     adds the last vm to the group

    group delete --name=mygroup
        deletes all objects in the group
topics = {'group': 'cloud'}

cloudmesh_client.shell.plugins.HadoopCommand module

class cloudmesh_client.shell.plugins.HadoopCommand.Command[source]

Bases: object

addons()[source]

List the addons available

Returns:list of addons
Return type:list
avail()[source]
define(name=None, **kwargs)[source]

Define a hadoop stack.

deploy(clustername=None, stackname=None)[source]
sync(stackname=None)[source]
use(specname)[source]

Activate the given specification

Parameters:specname – namne of the specification
class cloudmesh_client.shell.plugins.HadoopCommand.HadoopCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_hadoop(instance, args)
Usage:
  hadoop sync
  hadoop addons
  hadoop define [-r REPO] [-b NAME] [-d COUNT] [ADDON]...
  hadoop undefine [NAME]...
  hadoop avail
  hadoop use NAME
  hadoop deploy

Arguments:

  REPO            Repository location
  CLUSTER         Name of a cluster
  ADDON           Big Data Stack addon (eg: spark, hbase, pig)
  NAME            Alphanumeric name
  COUNT           Integer greater than zero

Commands:

  sync       Checkout / synchronize the Big Data Stack
  addons     List available addons
  define     Create a deployment specification
  undefine   Delete the active or given specifications
  avail      Show available deployment specifications
  use        Activate the specification with the given name
  deploy     Deploy the active specification onto the active cluster

Options:

  -r --repo=REPO        Location of the repository
  -b --branch=NAME      Branch to use
  -d --depth=COUNT      Clone depth
topics = {'hadoop': 'cluster'}

cloudmesh_client.shell.plugins.HpcCommand module

class cloudmesh_client.shell.plugins.HpcCommand.HpcCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.HPCPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_hpc(instance, args)
Usage:
    hpc queue [--job=NAME][--cluster=CLUSTER][--format=FORMAT]
    hpc info [--cluster=CLUSTER][--format=FORMAT]
    hpc run list [ID] [--cluster=CLUSTER]
    hpc run output [ID] [--cluster=CLUSTER]
    hpc run rm [ID] [--cluster=CLUSTER]
    hpc run SCRIPT [--queue=QUEUE] [--t=TIME] [--N=nodes] [--name=NAME] [--cluster=CLUSTER][--dir=DIR][--group=GROUP][--format=FORMAT]
    hpc delete --job=NAME [--cluster=CLUSTER][--group=GROUP]
    hpc delete all [--cluster=CLUSTER][--group=GROUP][--format=FORMAT]
    hpc status [--job=name] [--cluster=CLUSTER] [--group=GROUP]
    hpc test --cluster=CLUSTER [--time=SECONDS]

Options:
   --format=FORMAT  the output format [default: table]

Examples:

    Special notes

       if the group is specified only jobs from that group are
       considered. Otherwise the default group is used. If the
       group is set to None, all groups are used.

    cm hpc queue
        lists the details of the queues of the hpc cluster

    cm hpc queue --job=NAME
        lists the details of the job in the queue of the hpc cluster

    cm hpc info
        lists the details of the hpc cluster

    cm hpc run SCRIPT
        submits the script to the cluster. The script will be
        copied prior to execution into the home directory on the
        remote machine. If a DIR is specified it will be copied
        into that dir.
        The name of the script is either specified in the script
        itself, or if not the default naming scheme of
        cloudmesh is used using the same index incremented name
        as in vms fro clouds: cloudmes husername-index

    cm hpc delete all
        kills all jobs on the default hpc group

    cm hpc delete --job=NAME
        kills a job with a given name or job id

    cm default cluster=NAME
        sets the default hpc cluster

    cm hpc status
        returns the status of all jobs

    cm hpc status job=ID
        returns the status of the named job

    cm hpc test --cluster=CLUSTER --time=SECONDS
        submits a simple test job to the named cluster and returns
        if the job could be successfully executed. This is a
        blocking call and may take a long time to complete
        dependent on if the queuing system of that cluster is
        busy. It will only use one node/core and print the message

        #CLOUDMESH: Test ok

        in that is being looked for to identify if the test is
        successful. If time is used, the job is terminated
        after the time is elapsed.

Examples:
    cm hpc queue
    cm hpc queue --job=xxx
    cm hpc info
    cm hpc delete --job=6
    cm hpc delete all
    cm hpc status
    cm hpc status --job=6
    cm hpc run uname
    cm hpc run ~/test.sh --cluster=india
topics = {'hpc': 'system'}

cloudmesh_client.shell.plugins.ImageCommand module

class cloudmesh_client.shell.plugins.ImageCommand.ImageCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_image(instance, args)
Usage:
    image refresh [--cloud=CLOUD]
    image list [ID] [--cloud=CLOUD] [--format=FORMAT] [--refresh]

    This lists out the images present for a cloud

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --refresh        live data taken from the cloud

Examples:
    cm image refresh
    cm image list
    cm image list --format=csv
    cm image list 58c9552c-8d93-42c0-9dea-5f48d90a3188 --refresh
topics = {'image': 'cloud'}

cloudmesh_client.shell.plugins.InfoCommand module

class cloudmesh_client.shell.plugins.InfoCommand.InfoCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_info(instance, args)
Usage:
    info [--cloud=CLOUD] [--format=FORMAT]

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name

Examples:
    cm info
topics = {'info': 'cloud'}

cloudmesh_client.shell.plugins.InventoryCommand module

class cloudmesh_client.shell.plugins.InventoryCommand.InventoryCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_inventory(instance, args)
Usage:
    inventory add NAMES [--label=LABEL]
                        [--service=SERVICES]
                        [--project=PROJECT]
                        [--owners=OWNERS]
                        [--comment=COMMENT]
                        [--cluster=CLUSTER]
                        [--ip=IP]
    inventory set NAMES for ATTRIBUTE to VALUES
    inventory delete NAMES
    inventory clone NAMES from SOURCE
    inventory list [NAMES] [--format=FORMAT] [--columns=COLUMNS]
    inventory info

Arguments:

  NAMES     Name of the resources (example i[10-20])

  FORMAT    The format of the output is either txt,
            yaml, dict, table [default: table].

  OWNERS    a comma separated list of owners for this resource

  LABEL     a unique label for this resource

  SERVICE   a string that identifies the service

  PROJECT   a string that identifies the project

  SOURCE    a single host name to clone from

  COMMENT   a comment

Options:

   -v       verbose mode

Description:

      add -- adds a resource to the resource inventory

      list -- lists the resources in the given format

      delete -- deletes objects from the table

      clone -- copies the content of an existing object
               and creates new once with it

      set   -- sets for the specified objects the attribute
               to the given value or values. If multiple values
               are used the values are assigned to the and
               objects in order. See examples

      map   -- allows to set attibutes on a set of objects
               with a set of values

Examples:

  cm inventory add x[0-3] --service=openstack

      adds hosts x0, x1, x2, x3 and puts the string
      openstack into the service column

  cm lists

      lists the repository

  cm x[3-4] set temperature to 32

      sets for the resources x3, x4 the value of the
      temperature to 32

  cm x[7-8] set ip 128.0.0.[0-1]

      sets the value of x7 to 128.0.0.0
      sets the value of x8 to 128.0.0.1

  cm clone x[5-6] from x3

      clones the values for x5, x6 from x3
topics = {'inventory': 'todo'}

cloudmesh_client.shell.plugins.KeyCommand module

class cloudmesh_client.shell.plugins.KeyCommand.KeyCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_key(instance, args)
Usage:
  key  -h | --help
  key list --cloud=CLOUD
  key list --source=db [--format=FORMAT]
  key list --source=yaml [--format=FORMAT]
  key list --source=ssh [--dir=DIR] [--format=FORMAT]
  key list --source=git [--format=FORMAT] [--username=USERNAME]
  key list
  key load [--format=FORMAT]
  key add [NAME] [--source=FILENAME]
  key add [NAME] [--git]
  key add [NAME] [--ssh]
  key get NAME
  key default --select
  key delete (NAME | --select | --all)
  key delete NAME --cloud=CLOUD
  key upload [NAME] [--cloud=CLOUD]
  key upload [NAME] --active

Manages the keys

Arguments:

  CLOUD          The cloud
  NAME           The name of the key.
  SOURCE         db, ssh, all
  KEYNAME        The name of a key. For key upload it defaults to the default key name.
  FORMAT         The format of the output (table, json, yaml)
  FILENAME       The filename with full path in which the key
                 is located
  NAME_ON_CLOUD  Typically the name of the keypair on the cloud.

Options:

   --dir=DIR                     the directory with keys [default: ~/.ssh]
   --format=FORMAT               the format of the output [default: table]
   --source=SOURCE               the source for the keys [default: db]
   --username=USERNAME           the source for the keys [default: none]
   --name=KEYNAME                The name of a key
   --all                         delete all keys
   --force                       delete the key form the cloud
   --name_on_cloud=NAME_ON_CLOUD Typically the name of the keypair on the cloud.

Description:

key list --source=git  [--username=USERNAME]

   lists all keys in git for the specified user. If the
   name is not specified it is read from cloudmesh.yaml

key list --source=ssh  [--dir=DIR] [--format=FORMAT]

   lists all keys in the directory. If the directory is not
   specified the default will be ~/.ssh

key list --source=yaml  [--dir=DIR] [--format=FORMAT]

   lists all keys in cloudmesh.yaml file in the specified directory.
    dir is by default ~/.cloudmesh

key list [--format=FORMAT]

    list the keys in the giiven format: json, yaml,
    table. table is default

key list

     Prints list of keys. NAME of the key can be specified

key add ssh

    adds the default key with the name id_rsa.pub

key add NAME  --source=FILENAME

    adds the key specifid by the filename to the key
    database

key get NAME

    Retrieves the key indicated by the NAME parameter from database
    and prints its fingerprint.

key default --select

     Select the default key interactively

key delete NAME

     deletes a key. In yaml mode it can delete only key that
     are not saved in the database

key rename NAME NEW

     renames the key from NAME to NEW.
topics = {'key': 'security'}

cloudmesh_client.shell.plugins.LauncherCommand module

class cloudmesh_client.shell.plugins.LauncherCommand.LauncherCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_launcher(instance, args)
Usage:
    launcher repo add NAME URL
    launcher repo delete NAME
    launcher repo list
    launcher repo
    launcher list [NAMES] [--cloud=CLOUD] [--format=FORMAT] [--source=db|dir]
    launcher add NAME SOURCE
    launcher delete [NAMES] [--cloud=CLOUD]
    launcher clear
    launcher run [NAME]
    launcher resume [NAME]
    launcher suspend [NAME]
    launcher refresh
    launcher log [NAME]
    launcher status [NAME]


Arguments:

  KEY    the name of the launcher

Options:

   --cloud=CLOUD    the name of the cloud
   --format=FORMAT  the output format [launcher: table]
   --all            lists all the launcher values

Description:

Launcher is a command line tool to test the portal launch functionalities through command line.

The current launcher values can by listed with –all option:( if you have a launcher cloud specified. You can also add a cloud parameter to apply the command to a specific cloud)

launcher list

A launcher can be deleted with

launcher delete KEY
Examples:
launcher list –all launcher list –cloud=general launcher delete <KEY>
topics = {'launcher': 'todo'}

cloudmesh_client.shell.plugins.LimitsCommand module

class cloudmesh_client.shell.plugins.LimitsCommand.LimitsCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_limits(instance, args)
Usage:
    limits list [--cloud=CLOUD] [--tenant=TENANT] [--format=FORMAT]

    Current list data with limits on a selected project/tenant.
    The --tenant option can be used by admin only

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --tenant=TENANT  the tenant name

Examples:
    cm limits list
    cm limits list --cloud=kilo --format=csv
topics = {'limits': 'cloud'}

cloudmesh_client.shell.plugins.ListCommand module

class cloudmesh_client.shell.plugins.ListCommand.ListCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_list(instance, args)
Usage:
    list [--cloud=CLOUD] [--format=FORMAT] [--user=USER] [--tenant=TENANT] default
    list [--cloud=CLOUD] [--format=FORMAT] [--user=USER] [--tenant=TENANT] vm
    list [--cloud=CLOUD] [--format=FORMAT] [--user=USER] [--tenant=TENANT] flavor
    list [--cloud=CLOUD] [--format=FORMAT] [--user=USER] [--tenant=TENANT] image

List the items stored in the database

Options:
    --cloud=CLOUD    the name of the cloud
    --format=FORMAT  the output format
    --tenant=TENANT     Name of the tenant, e.g. fg82.

Description:
    List command prints the values stored in the database
    for [default/vm/flavor/image].
    Result can be filtered based on the cloud, user & tenant arguments.
    If these arguments are not specified, it reads the default

Examples:
    $ list --cloud india default
    $ list --cloud india --format table flavor
    $ list --cloud india --user albert --tenant fg82 flavor
topics = {'list': 'cloud'}

cloudmesh_client.shell.plugins.LoadCommand module

class cloudmesh_client.shell.plugins.LoadCommand.LoadCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_load(instance, args)
Usage:
    load MODULE [PYPI]


ARGUMENTS:
   MODULE  The name of the module

PREDEFINED MODULE NAMES:
   vbox    loads vbox command

Examples:
    cm load cloudmesh_vagrant.cm_vbox.do_vbox
        lists the plugins currently loaded
topics = {'load': 'shell'}

cloudmesh_client.shell.plugins.LogLevelCommand module

class cloudmesh_client.shell.plugins.LogLevelCommand.LogLevelCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand, cloudmesh_client.shell.command.ShellPluginCommand

do_loglevel(instance, args)
Usage:
    loglevel set MODE [--cloud=CLOUD]
    loglevel get [--cloud=CLOUD]
    loglevel save [--cloud=CLOUD]

Arguments:
    MODE    log level mode [DEBUG/INFO/WARNING/CRITICAL/ERROR]

Options:
    --cloud=CLOUD    the name of the cloud
Description:
loglevel command sets the default logging level for a cloud.
Examples:
loglevel set DEBUG –cloud=kilo
sets the default log level to DEBUG for kilo.
loglevel get –cloud=kilo
retreives the default log level for kilo cloud.
loglevel save –cloud=kilo
saves the log level preference to the db & yaml file.
topics = {'loglevel': 'shell'}

cloudmesh_client.shell.plugins.ManCommand module

class cloudmesh_client.shell.plugins.ManCommand.ManCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_man(instance, args)
Usage:
       man COMMAND
       man [--noheader]

Options:
       --norule   no rst header

Arguments:
       COMMAND   the command to be printed 

Description:
    man 
        Prints out the help pages

    man COMMAND
        Prints out the help page for a specific command
topics = {'man': 'shell'}

cloudmesh_client.shell.plugins.NetworkCommand module

class cloudmesh_client.shell.plugins.NetworkCommand.NetworkCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_network(instance, args)
Usage:
    network get fixed [ip] [--cloud=CLOUD] FIXED_IP
    network get floating [ip] [--cloud=CLOUD] FLOATING_IP_ID
    network reserve fixed [ip] [--cloud=CLOUD] FIXED_IP
    network unreserve fixed [ip] [--cloud=CLOUD] FIXED_IP
    network associate floating [ip] [--cloud=CLOUD] [--group=GROUP]
                               [--instance=INS_ID_OR_NAME] [FLOATING_IP]
    network disassociate floating [ip] [--cloud=CLOUD] [--group=GROUP]
                                  [--instance=INS_ID_OR_NAME] [FLOATING_IP]
    network create floating [ip] [--cloud=CLOUD] [--pool=FLOATING_IP_POOL]
    network delete floating [ip] [--cloud=CLOUD] [--unused] [FLOATING_IP]
    network list floating pool [--cloud=CLOUD]
    network list floating [ip] [--cloud=CLOUD] [--unused] [--instance=INS_ID_OR_NAME] [IP_OR_ID]
    network create cluster --group=demo_group
    network -h | --help

Options:
    -h                          help message
    --unused                    unused floating ips
    --cloud=CLOUD               Name of the IaaS cloud e.g. india_openstack_grizzly.
    --group=GROUP               Name of the group in Cloudmesh
    --pool=FLOATING_IP_POOL     Name of Floating IP Pool
    --instance=INS_ID_OR_NAME   ID or Name of the vm instance

Arguments:
    IP_OR_ID        IP Address or ID of IP Address
    FIXED_IP        Fixed IP Address, e.g. 10.1.5.2
    FLOATING_IP     Floating IP Address, e.g. 192.1.66.8
    FLOATING_IP_ID  ID associated with Floating IP, e.g. 185c5195-e824-4e7b-8581-703abec4bc01

Examples:
    network get fixed ip --cloud=india 10.1.2.5
    network get fixed --cloud=india 10.1.2.5
    network get floating ip --cloud=india 185c5195-e824-4e7b-8581-703abec4bc01
    network get floating --cloud=india 185c5195-e824-4e7b-8581-703abec4bc01
    network reserve fixed ip --cloud=india 10.1.2.5
    network reserve fixed --cloud=india 10.1.2.5
    network unreserve fixed ip --cloud=india 10.1.2.5
    network unreserve fixed --cloud=india 10.1.2.5
    network associate floating ip --cloud=india --instance=albert-001 192.1.66.8
    network associate floating --cloud=india --instance=albert-001
    network associate floating --cloud=india --group=albert_group
    network disassociate floating ip --cloud=india --instance=albert-001 192.1.66.8
    network disassociate floating --cloud=india --instance=albert-001 192.1.66.8
    network create floating ip --cloud=india --pool=albert-f01
    network create floating --cloud=india --pool=albert-f01
    network delete floating ip --cloud=india 192.1.66.8 192.1.66.9
    network delete floating --cloud=india 192.1.66.8 192.1.66.9
    network list floating ip --cloud=india
    network list floating --cloud=india
    network list floating --cloud=india --unused
    network list floating --cloud=india 192.1.66.8
    network list floating --cloud=india --instance=323c5195-7yy34-4e7b-8581-703abec4b
    network list floating pool --cloud=india
    network create cluster --group=demo_group
classmethod refresh_vm(cloudname)[source]
topics = {'network': 'cloud'}

cloudmesh_client.shell.plugins.NistCommand module

class cloudmesh_client.shell.plugins.NistCommand.Command[source]

Bases: object

fingerprint(workdir=None, clustername=None, username=None, provision=True)[source]
class cloudmesh_client.shell.plugins.NistCommand.NistCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_nist(instance, args)
Usage:
  nist fingerprint [-c CLUSTER] [-u TEXT] [-N]

Arguments:

  CLUSTER         Name of a cluster
  TEXT            String

Commands:

  fingerprint     Run the fingerprint example

Options:

  -c --cluster=CLUSTER  Name of a defined cluster
  -u --username=TEXT    Username to log in with
  -N --no-provision     Do not provision
topics = {'nist': 'nist'}

cloudmesh_client.shell.plugins.NovaCommand module

class cloudmesh_client.shell.plugins.NovaCommand.NovaCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_nova(instance, args)
Usage:
    nova set CLOUD
    nova info [CLOUD] [--password]
    nova help
    nova [--group=GROUP] ARGUMENTS...

A simple wrapper for the openstack nova command

Arguments:
    GROUP           The group to add vms to
    ARGUMENTS       The arguments passed to nova
    help            Prints the nova manual
    set             reads the information from the current cloud
                    and updates the environment variables if
                    the cloud is an openstack cloud
    info            the environment values for OS

Options:
    --group=GROUP   Add VM to GROUP group
    --password      Prints the password
    -v              verbose mode
topics = {'nova': 'cloud'}

cloudmesh_client.shell.plugins.OpenCommand module

class cloudmesh_client.shell.plugins.OpenCommand.OpenCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_open(instance, args)
Usage:
        open FILENAME

ARGUMENTS:
    FILENAME  the file to open in the cwd if . is
              specified. If file in in cwd
              you must specify it with ./FILENAME

Opens the given URL in a browser window.
topics = {'open': 'shell'}

cloudmesh_client.shell.plugins.PortalCommand module

class cloudmesh_client.shell.plugins.PortalCommand.PortalCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_portal(instance, args)
Usage:
    portal start
    portal stop

Examples:
    portal start
        starts the portal and opens the default web page

    portal stop
        stops the portal
get_conf()[source]
topics = {'portal': 'cloud'}

cloudmesh_client.shell.plugins.PyCommand module

exception cloudmesh_client.shell.plugins.PyCommand.EmbeddedConsoleExit[source]

Bases: exceptions.SystemExit

class cloudmesh_client.shell.plugins.PyCommand.PyCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_py(arg)[source]
Usage:
    py
    py COMMAND

Arguments:
    COMMAND   the command to be executed

Description:

    The command without a parameter will be executed and the
    interactive python mode is entered. The python mode can be
    ended with ``Ctrl-D`` (Unix) / ``Ctrl-Z`` (Windows),
    ``quit()``,'`exit()``. Non-python commands can be issued with
    ``cmd("your command")``.  If the python code is located in an
    external file it can be run with ``run("filename.py")``.

    In case a COMMAND is provided it will be executed and the
    python interpreter will return to the command shell.

    This code is copied from Cmd2.
locals_in_py = True
pystate = {}
topics = {'open': 'shell'}
class cloudmesh_client.shell.plugins.PyCommand.Statekeeper(obj, attribs)[source]

Bases: object

restore()[source]
save()[source]

cloudmesh_client.shell.plugins.QuotaCommand module

class cloudmesh_client.shell.plugins.QuotaCommand.QuotaCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_quota(instance, args)
Usage:
    quota list [--cloud=CLOUD] [--tenant=TENANT] [--format=FORMAT]

    Prints quota limit on a current project/tenant

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --tenant=TENANT  the tenant id

Examples:
    cm quota list
    cm quota list --cloud=india --format=csv
topics = {'quota': 'cloud'}

cloudmesh_client.shell.plugins.RefreshCommand module

class cloudmesh_client.shell.plugins.RefreshCommand.RefreshCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_refresh(instance, args)
Usage:
    refresh on
    refresh off
    refresh [list]

    switches on and off the refresh for clouds
topics = {'refresh': 'shell'}

cloudmesh_client.shell.plugins.RegisterCommand module

class cloudmesh_client.shell.plugins.RegisterCommand.RegisterCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_register(instance, args)
Usage:
    register info
    register backup
    register new [--force] [--dryrun]
    register clean [--force]
    register list ssh [--format=FORMAT]
    register list [--yaml=FILENAME][--info][--format=FORMAT]
    register cat [--yaml=FILENAME]
    register edit [--yaml=FILENAME]
    register user [USERNAME]
    register cloud [CLOUD] [--force]
    register remote [CLOUD] [--force]
    register export HOST [--password] [--format=FORMAT]
    register source HOST
    register merge FILEPATH
    register form [--yaml=FILENAME]
    register check [--yaml=FILENAME]
    register test [--yaml=FILENAME]
    register json HOST
    register env [--provider=PROVIDER]
    register ec2 CLOUD EC2ZIP
    register ENTRY

managing the registered clouds in the cloudmesh.yaml file.
It looks for it in the current directory, and than in
~/.cloudmesh.  If the file with the cloudmesh.yaml name is
there it will use it.  If neither location has one a new
file will be created in ~/.cloudmesh/cloudmesh.yaml. Some
defaults will be provided.  However you will still need to
fill it out with valid entries.

Arguments:

  HOST   the host name
  USER   the user name
  FILEPATH the path of the file
  CLOUD the cloud name
  PROVIDER the provider or type of cloud [Default: openstack]
  USERNAME  Username that would be registered in yaml. Defaults to OS username.

Options:

  --provider=PROVIDER     Provider to be used for cloud. Values are:
                          openstack, azure, ec2.
  --version=VERSION       Version of the openstack cloud.
  --openrc=OPENRC         The location of the openrc file
  --password              Prints the password
  --force                 ignore interactive questions and execute
                          the action

Description:

    register info
        lists the clouds specified in the cloudmesh.yaml
        file in the current directory, and then in ~/.cloudmesh

    register list [--yaml=FILENAME] [--name] [--info]
        lists the clouds specified in the cloudmesh.yaml file. If
        info is specified it also prints the location of the yaml
        file.

    register list ssh
        lists hosts from ~/.ssh/config

    register cat [--yaml=FILENAME]
        outputs the cloudmesh.yaml file

    register edit [--yaml=FILENAME]
        edits the cloudmesh.yaml file

    register export HOST [--format=FORMAT]

          prints the contents of an openrc.sh file based on the
          information found in the cloudmesh.yaml file.

    register remote CLOUD [--force]

          reads the Openstack OPENRC file from a remote host that
          is described in cloudmesh.yaml file. We assume that
          the file has already a template for this host. If
          not it can be created from other examples before
          you run this command.

          It uses the OS_OPENRC variable to locate the file and
          copy it onto your computer.

    register merge FILENAME
        Replaces the TBD in cloudmesh.yaml with the contents
        present in the named file

    register form [--yaml=FILENAME]
        interactively fills out the form wherever we find TBD.

    register check [--yaml=FILENAME]
        checks the yaml file for completness

    register test [--yaml=FILENAME]
        checks the yaml file and executes tests to check if
        we can use the cloud. TODO: maybe this should be in
        a test command

    register json host
        displays the host details in json format

    register remote CLOUD
        registers a remote cloud and copies the openrc file
        specified in the credentials of the cloudmesh.yaml

    register CLOUD --dir
        Copies the entire directory from the cloud and puts it in
        ~/.cloudmesh/clouds/host
        For kilo, The directory would be copied to
        ~/.cloudmesh/clouds/kilo

    register env [--provider=PROVIDER] [HOSTNAME]
        Reads env OS_* variables and registers a new cloud in yaml,
        interactively. Default PROVIDER is openstack and HOSTNAME
        is localhost.

    register user [USERNAME]
        Sets the user in yaml with the value provided.
topics = {'register': 'cloud'}

cloudmesh_client.shell.plugins.ReservationCommand module

class cloudmesh_client.shell.plugins.ReservationCommand.ReservationCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_reservation(instance, args)
Usage:
    reservation info --user=USER --project=PROJECT
    reservation list [--name=NAME]
                     [--user=USER]
                     [--project=PROJECT]
                     [--hosts=HOSTS]
                     [--start=TIME_START]
                     [--end=TIME_END]
                     [--format=FORMAT]
    reservation delete [all]
                       [--user=USER]
                       [--project=PROJECT]
                       [--name=NAME]
                       [--start=TIME_START]
                       [--end=TIME_END]
                       [--hosts=HOSTS]
    reservation delete --file=FILE
    reservation update --name=NAME
                      [--start=TIME_START]
                      [--end=TIME_END]
                      [--user=USER]
                      [--project=PROJECT]
                      [--hosts=HOSTS]
                      [--description=DESCRIPTION]
    reservation add --name=NAME
                    [--start=TIME_START]
                    [--end=TIME_END]
                    [--user=USER]
                    [--project=PROJECT]
                    [--hosts=HOSTS]
                    [--description=DESCRIPTION]
    reservation add --file=FILE

Arguments:

    NAME            Name of the reservation
    USER            Registration will be done for this user
    PROJECT         Project to be used
    HOSTS           Hosts to reserve
    TIME_START      Start time of reservation
    TIME_END        End time of reservation
    FORMAT          Format of output
    DESCRIPTION     Description for reservation
    FILE            File that contains reservation data to be added/ deleted

Options:

    --name=NAME           Names of the reservation
    --user=USER           user name
    --project=PROJECT     project id
    --start=TIME_START    Start time of the reservation, in
                          MM/DD/YYYY at hh:mm aa format. (default value: 01/01/1901 at 12:00 am])
    --end=TIME_END        End time of the reservation, in
                          MM/DD/YYYY at hh:mm aa format. (default value: 12/31/2100 at 11:59 pm])
    --host=HOSTS          host name
    --description=DESCRIPTION  description summary of the reservation
    --file=FILE           Adding multiple reservations from one file
    --format=FORMAT       Format is either table, json, yaml or csv
                          [default: table]

Description:

    reservation info
        lists the resources that support reservation for
        a given user or project.
topics = {'reservation': 'todo'}

cloudmesh_client.shell.plugins.ResetCommand module

class cloudmesh_client.shell.plugins.ResetCommand.ResetCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_reset(instance, args)
Usage:
    reset

Description:

DANGER: This method erases the database and quits the shell.
Examples:
clean
topics = {'reset': 'cloud'}

cloudmesh_client.shell.plugins.SecgroupCommand module

class cloudmesh_client.shell.plugins.SecgroupCommand.SecgroupCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_secgroup(instance, args)
Usage:
    secgroup list [--format=FORMAT]
    secgroup list --cloud=CLOUD [--format=FORMAT]
    secgroup list GROUP [--format=FORMAT]
    secgroup add GROUP RULE FROMPORT TOPORT PROTOCOL CIDR
    secgroup delete GROUP [--cloud=CLOUD]
    secgroup delete GROUP RULE
    secgroup upload [GROUP] [--cloud=CLOUD]

Options:
    --format=FORMAT Specify output format, in one of the following:
                    table, csv, json, yaml, dict. The default value
                    is 'table'.
    --cloud=CLOUD   Name of the IaaS cloud e.g. kilo,chameleoon.
                    The clouds are defined in the yaml file.
                    If the name "all" is used for the cloud all
                    clouds will be selected.

Arguments:
    RULE          The security group rule name
    GROUP         The label/name of the security group
    FROMPORT      Staring port of the rule, e.g. 22
    TOPORT        Ending port of the rule, e.g. 22
    PROTOCOL      Protocol applied, e.g. TCP,UDP,ICMP
    CIDR          IP address range in CIDR format, e.g.,
                  129.79.0.0/16

Description:
    security_group command provides list/add/delete
    security_groups for a tenant of a cloud, as well as
    list/add/delete of rules for a security group from a
    specified cloud and tenant.


Examples:
    secgroup list
    secgroup list --cloud=kilo
    secgroup add my_new_group webapp 8080 8080 tcp 0.0.0.0/0
    seggroup delete my_group my_rule
    secgroup delete my_unused_group --cloud=kilo
    secgroup upload --cloud=kilo

Description:

    Security groups are first assembled in a local database.
    Once they are defined they can be added to the clouds.

    secgroup list [--format=FORMAT]
        lists all security groups and rules in the database

    secgroup list GROUP [--format=FORMAT]
        lists a given security group and its rules defined
        locally in the database

    secgroup list --cloud=CLOUD [--format=FORMAT]
        lists the security groups and rules on the specified clouds.

    secgroup add GROUP RULE FROMPORT TOPORT PROTOCOL CIDR
        adds a security rule with the given group and the details
        of the security ruls

    secgroup delete GROUP [--cloud=CLOUD]
        Deletes a security group from the local database. To make
        the change on the remote cloud, using the 'upload' command
        afterwards.
        If the --cloud parameter is specified, the change would be
        made directly on the specified cloud

    secgroup delete GROUP RULE
        deletes the given rule from the group. To make this change
        on the remote cloud, using 'upload' command.

    secgroup upload [GROUP] [--cloud=CLOUD...]
        uploads a given group to the given cloud. If the cloud is
        not specified the default cloud is used.
        If the parameter for cloud is "all" the rules and groups
        will be uploaded to all active clouds.
        This will synchronize the changes (add/delete on security
        groups, rules) made locally to the remote cloud(s).
topics = {'secgroup': 'security'}

cloudmesh_client.shell.plugins.SecureShellCommand module

class cloudmesh_client.shell.plugins.SecureShellCommand.SecureShellCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_ssh(instance, args)
Usage:
    ssh table
    ssh list [--format=FORMAT]
    ssh cat
    ssh register NAME PARAMETERS
    ssh ARGUMENTS


conducts a ssh login on a machine while using a set of
registered machines specified in ~/.ssh/config

Arguments:

  NAME        Name or ip of the machine to log in
  list        Lists the machines that are registered and
              the commands to login to them
  PARAMETERS  Register te resource and add the given
              parameters to the ssh config file.  if the
              resoource exists, it will be overwritten. The
              information will be written in /.ssh/config

Options:

   -v       verbose mode
   --format=FORMAT   the format in which this list is given
                     formats incluse table, json, yaml, dict
                     [default: table]

   --user=USER       overwrites the username that is
                     specified in ~/.ssh/config

   --key=KEY         The keyname as defined in the key list
                     or a location that contains a pblic key

Description:

    ssh list
        lists the hostsnames  that are present in the
        ~/.ssh/config file

    ssh cat
        prints the ~/.ssh/config file

    ssh table
        prints contents of the ~/.ssh/config file in table format

    ssh register NAME PARAMETERS
        registers a host i ~/.ssh/config file
        Parameters are attribute=value pairs
        Note: Note yet implemented

    ssh ARGUMENTS
        executes the ssh command with the given arguments
        Example:
            ssh myhost

                conducts an ssh login to myhost if it is defined in
                ~/.ssh/config file
topics = {'ssh': 'security'}

cloudmesh_client.shell.plugins.SelectCommand module

class cloudmesh_client.shell.plugins.SelectCommand.SelectCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_select(instance, args)
Usage:
    select image [CLOUD] [--refresh]
    select flavor [CLOUD] [--refresh]
    select cloud [CLOUD]
    select key [CLOUD]

selects interactively the default values

Arguments:

  CLOUD    the name of the cloud

Options:

  --refresh   refreshes the data before displaying it
              from the cloud
topics = {'select': 'cloud'}

cloudmesh_client.shell.plugins.ServerCommand module

class cloudmesh_client.shell.plugins.ServerCommand.ServerCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_server(instance, args)
Usage:
server
Options:
-h –help -v verbose mode
Description:

Starts up a REST service and a WEB GUI so one can browse the data in an existing cloudmesh database.

The location of the database is supposed to be in

~/.cloud,esh/cloudmesh.db
topics = {'server': 'cloud'}

cloudmesh_client.shell.plugins.SetupCommand module

class cloudmesh_client.shell.plugins.SetupCommand.SetupCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_setup(instance, args)
Usage:
    setup

Examples:
    cm setup
topics = {'setup': 'cloud'}

cloudmesh_client.shell.plugins.StackCommand module

class cloudmesh_client.shell.plugins.StackCommand.Command[source]

Bases: object

check()[source]
deploy(project_name=None, force=False)[source]
init(stackname='bds', activate=True, name=None, username=None, branch=None, overrides=None, playbooks=None, ips=None, force=False, update=False)[source]
project(list_projects=False, name=None)[source]
class cloudmesh_client.shell.plugins.StackCommand.StackCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_stack(instance, args)
 Usage:
   stack check
   stack init [-fU] [--no-activate] [-s STACK] [-n NAME] [-u NAME] [-b NAME] [-o DEFN]... [-p PLAY] <ip>...
   stack deploy [-f] [-n NAME]
   stack project [-l] [<name>]

 Commands:
   check     Sanity check
   init      Initialize a stack
   deploy    Deploy a stack
   project   List and activate projects

 Arguments:
   STACK  Name of the stack. Options: (bds)
   NAME   Alphanumeric name
   DEFN   In the form: play1:k1=v1,k2=v2,...
   PLAY   In the form: playbook,playbook,...

Options:

   -v --verbose
   --no-activate                 Do not activate a project upon creation
   -s STACK --stack=STACK        The stack name [default: bds]
   -n NAME --name=NAME           Name of the project (if not specified during creation, generated).
   -u NAME --username=NAME       Name of login user to cluster [default: $USER]
   -b NAME --branch=NAME         Name of the stack's branch to clone from [default: master]
   -o DEFN --overrides=DEFN      Overrides for a playbook, may be specified multiple times
   -p PLAY --playbooks=PLAY      Playbooks to run
   -f --force                    Force rerunning a command to continue
   -U --update                   Update the stack
   -l --list                     List

 Examples:

  The following example assumes that a cluster (Ubuntu
  14.04) has been launched already and can be accessed by
  the 'ubuntu` user at addresses 10.0.0.10, 10.0.0.11, and
  10.0.0.12.

     # verify the environment
     cm stack check

     # create a project for the cluster with given username and addresses
     cm stack init -u ubuntu -p play-hadoop.yml,addons/spark.yml 10.0.0.10 10.0.0.11 10.0.0.12

     # deploy hadoop, spark to the cluster
     cm stack deploy
topics = {'stack': 'cloud'}
cloudmesh_client.shell.plugins.StackCommand.cleanup_overrides(overrides)[source]

Cleanup shell-parameterized overrides definitions

Parameters:overrides – list of [(play:k1=v1,k2=v2)…]
Returns:
Return type:dict[play] -> dict[key] -> value

cloudmesh_client.shell.plugins.SubmitCommands module

class cloudmesh_client.shell.plugins.SubmitCommands.SubmitCommands(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand

do_submit(instance, args)
Usage:
    submit ARGUMENTS...

We do not yet know what this command will do ;-)

Arguments:
    ARGUMENTS       The arguments passed to nova

Options:
    -v              verbose mode
topics = {'submit': 'system'}

cloudmesh_client.shell.plugins.SyncCommand module

class cloudmesh_client.shell.plugins.SyncCommand.SyncCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_rsync(instance, args)
Usage:
    rsync ARGUMENTS...

A simple wrapper for rsync command

Arguments:
    ARGUMENTS       The arguments passed to nova

Options:
    -v              verbose mode
do_sync(instance, args)
Usage:
    sync put [--cloud=CLOUD] LOCALDIR [REMOTEDIR]
    sync get [--cloud=CLOUD] REMOTEDIR LOCALDIR

A simple wrapper for the openstack nova command

Arguments:
    LOCALDIR        A directory on local machine
    REMOTEDIR       A directory on remote machine

Options:
    --cloud=CLOUD   Sync with cloud
topics = {'rsync': 'system', 'sync': 'system'}

cloudmesh_client.shell.plugins.TerminalCommands module

class cloudmesh_client.shell.plugins.TerminalCommands.TerminalCommands(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.ShellPluginCommand, cloudmesh_client.shell.command.CometPluginCommand

do_banner(instance, args)
Usage:
    banner [-c CHAR] [-n WIDTH] [-i INDENT] [-r COLOR] TEXT...

Arguments:
    TEXT...   The text message from which to create the banner
    CHAR   The character for the frame.
    WIDTH  Width of the banner
    INDENT indentation of the banner
    COLOR  the color

Options:
    -c CHAR   The character for the frame. [default: #]
    -n WIDTH  The width of the banner. [default: 70]
    -i INDENT  The width of the banner. [default: 0]
    -r COLOR  The color of the banner. [default: BLACK]

Prints a banner form a one line text message.
do_clear(instance, args)
Usage:
clear

Clears the screen.

do_echo(instance, args)
Usage:
    echo  [-r COLOR] TEXT

Arguments:
    TEXT   The text message to print
    COLOR  the color

Options:
    -r COLOR  The color of the text. [default: BLACK]

Prints a text in the given color
do_pause(instance, args)
Usage:
    pause [MESSAGE]

Displays the specified text then waits for the user to press RETURN.

Arguments:
   MESSAGE  message to be displayed
do_sleep(instance, args)
Usage:
sleep SECONDS

Clears the screen.

do_verbose(instance, args)
Usage:
verbose (True | False) verbose

NOTE: NOT YET IMPLEMENTED. If it sets to True, a command will be printed before execution. In the interactive mode, you may want to set it to False. When you use scripts, we recommend to set it to True.

The default is set to False

If verbose is specified without parameter the flag is toggled.

set_banner(banner)[source]
set_verbose(on)[source]
topics = {'clear': 'shell', 'puase': 'shell', 'banner': 'shell', 'echo': 'shell'}

cloudmesh_client.shell.plugins.TestCommand module

class cloudmesh_client.shell.plugins.TestCommand.TestCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_test(instance, args)
Usage:
   test list
   test [TEST] [NUMBER] [--test=TESTER]

This is an internal command and is ment for developers. If executed, in the source directory,
it will execute the specified series of tests in the tests directory.
managing the admins test test test test

Arguments:
  TEST     the name of the test directory
  NUMBER   the number of a specific test

Options:
  --test=TESTER   nosetests or py.test. [default: nosetests -v --nocapture]

Examples:
    cm test var
        finds the first test that contains var and than executes all tests in it

    cm test var 4
        finds the first test that contains var and than executes the test with number 004
topics = {'test': 'cloud'}

cloudmesh_client.shell.plugins.TimerCommand module

class cloudmesh_client.shell.plugins.TimerCommand.TimerCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_timer(instance, args)
Usage:
    timer on
    timer off
    timer list [NAME]
    timer start NAME
    timer stop NAME
    timer resume NAME
    timer reset [NAME]

Description:

     timer on | off
         switches timers on and off not yet implemented.
         If the timer is on each command will be timed and its
         time is printed after the command. Please note that
         background command times are not added.

    timer list
        list all timers

    timer start NAME
        starts the timer with the name. A start resets the timer to 0.

    timer stop NAME
        stops the timer

    timer resume NAME
        resumes the timer

    timer reset NAME
        resets the named timer to 0. If no name is specified all
        timers are reset
topics = {'timer': 'shell'}

cloudmesh_client.shell.plugins.UsageCommand module

class cloudmesh_client.shell.plugins.UsageCommand.UsageCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_usage(instance, args)
Usage:
    usage list [--cloud=CLOUD] [--start=START] [--end=END] [--tenant=TENANT] [--format=FORMAT]

    Show usage data.

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --tenant=TENANT  the tenant name
   --start=START    Usage range start date ex 2012-01-20, default is: 4 weeks ago
   --end=END        Usage range end date, ex 2012-01-20, default is: tomorrow


Examples:
    cm usage list
topics = {'usage': 'cloud'}

cloudmesh_client.shell.plugins.VcCommand module

class cloudmesh_client.shell.plugins.VcCommand.VcCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_vc(instance, args)
Usage:
    vc key add KEYFILE NAMES [--username=USERNAME] [--proxy=PROXY]
    vc key distribute NAMES [--username=USERNAME] [--proxy=PROXY]
    vc key list NAMES [--usort] [--username=USERNAME] [--proxy=PROXY] [--format=FORMAT]
    vc key proxy NAMES [--username=USERNAME] [--proxy=PROXY]

Options:
   --format=FORMAT  the output format [default: table]

Description:

    see examples

Examples:
    cm vc key add keys.txt gregor-[001-010]
        adds the keys in the file keys.txt to the authorized_keys file
        in the user that is registered for the vm

    cm vc key add keys.txt gregor-[001-010] --username=ubuntu
        adds the keys in the file keys.txt to the authorized_keys file
        in the user ubuntu for each of the vms

    vc key distribute gregor-[001-010]
        gathers the keys from the host gathers it into a single file
        and adds them to the authorized keys file. Duplicated keys will
        be ignored.

    vc key list gregor-[001-010] [--usort]
        creates a table with all keys in authorized_keys from all of the
        remote machines. If the parameter usort is specified it only lists
        the key once, but lists in the host column the list of all host on
        which the key is stored

    Proxy server

        vc key proxy NAMES
            sometimes you may not have enough floating IPs so it is possible to dedicate one machine
            as a proxy server that has such a floating ip. The way this is done is that you need to set
            up ssh tunnels via the proxy server in your  .ssh/config file. The command will print a
            template that you could include in your .ssh/config file to gain easily access to your other
            machines without floating ip. For example it will generate the following for a given PROXY host,
            USERNAME, and vm1 is the name of the first vm in NAMES

            Host vm1
                User  USERNAME
                Hostname PROXY
                ProxyCommand  ssh 10.1.1.2 nc %h %p
                ForwardX11 yes

            Note: this is just a draft and will be improved upon discussion with the team
topics = {'vc': 'todo'}

cloudmesh_client.shell.plugins.VmCommand module

class cloudmesh_client.shell.plugins.VmCommand.VmCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_vm(instance, args)
Usage:
    vm default [--cloud=CLOUD][--format=FORMAT]
    vm refresh [all][--cloud=CLOUD]
    vm boot [--name=NAME]
            [--cloud=CLOUD]
            [--username=USERNAME]
            [--image=IMAGE]
            [--flavor=FLAVOR]
            [--group=GROUP]
            [--public]
            [--secgroup=SECGROUP]
            [--key=KEY]
            [--dryrun]
    vm boot [--n=COUNT]
            [--cloud=CLOUD]
            [--username=USERNAME]
            [--image=IMAGE]
            [--flavor=FLAVOR]
            [--group=GROUP]
            [--public]
            [--secgroup=SECGROUP]
            [--key=KEY]
            [--dryrun]
    vm ping [NAME] [N]
    vm console [NAME]
             [--group=GROUP]
             [--cloud=CLOUD]
             [--force]
    vm start [NAMES]
             [--group=GROUP]
             [--cloud=CLOUD]
             [--force]
    vm stop [NAMES]
            [--group=GROUP]
            [--cloud=CLOUD]
            [--force]
    vm terminate [NAMES]
              [--group=GROUP]
              [--cloud=CLOUD]
              [--force]
    vm delete [NAMES]
              [--group=GROUP]
              [--cloud=CLOUD]
              [--keep]
              [--dryrun]
    vm ip assign [NAMES]
              [--cloud=CLOUD]
    vm ip show [NAMES]
               [--group=GROUP]
               [--cloud=CLOUD]
               [--format=FORMAT]
               [--refresh]
    vm ip inventory [NAMES]
                    [--header=HEADER]
                    [--file=FILE]
    vm ssh [NAME] [--username=USER]
             [--quiet]
             [--ip=IP]
             [--cloud=CLOUD]
             [--key=KEY]
             [--command=COMMAND]
             [--modify-knownhosts]
    vm rename [OLDNAMES] [NEWNAMES] [--force] [--dryrun]
    vm list [NAMES]
            [--cloud=CLOUDS|--active]
            [--group=GROUP]
            [--format=FORMAT]
            [--refresh]
    vm status [NAMES]
    vm wait [--cloud=CLOUD] [--interval=SECONDS]
    vm info [--cloud=CLOUD]
            [--format=FORMAT]
    vm check NAME
    vm username USERNAME [NAMES] [--cloud=CLOUD]

Arguments:
    COMMAND        positional arguments, the commands you want to
                   execute on the server(e.g. ls -a) separated by ';',
                   you will get a return of executing result instead of login to
                   the server, note that type in -- is suggested before
                   you input the commands
    NAME           server name. By default it is set to the name of last vm from database.
    NAMES          server name. By default it is set to the name of last vm from database.
    KEYPAIR_NAME   Name of the openstack keypair to be used to create VM. Note this is
                   not a path to key.
    NEWNAMES       New names of the VM while renaming.
    OLDNAMES       Old names of the VM while renaming.

Options:
  -H --modify-knownhosts  Do not modify ~/.ssh/known_hosts file when ssh'ing into a machine
    --username=USERNAME  the username to login into the vm. If not specified it will be guessed
                         from the image name and the cloud
    --ip=IP          give the public ip of the server
    --cloud=CLOUD    give a cloud to work on, if not given, selected
                     or default cloud will be used
    --count=COUNT    give the number of servers to start
    --detail         for table print format, a brief version
                     is used as default, use this flag to print
                     detailed table
    --flavor=FLAVOR  give the name or id of the flavor
    --group=GROUP          give the group name of server
    --secgroup=SECGROUP    security group name for the server
    --image=IMAGE    give the name or id of the image
    --key=KEY        specify a key to use, input a string which
                     is the full path to the private key file
    --keypair_name=KEYPAIR_NAME   Name of the openstack keypair to be used to create VM.
                                  Note this is not a path to key.
    --user=USER      give the user name of the server that you want
                     to use to login
    --name=NAME      give the name of the virtual machine
    --force          rename/ delete vms without user's confirmation
    --command=COMMAND
                     specify the commands to be executed


Description:
    commands used to boot, start or delete servers of a cloud

    vm default [options...]
        Displays default parameters that are set for vm boot either on the
        default cloud or the specified cloud.

    vm boot [options...]
        Boots servers on a cloud, user may specify flavor, image .etc, otherwise default values
        will be used, see how to set default values of a cloud: cloud help

    vm start [options...]
        Starts a suspended or stopped vm instance.

    vm stop [options...]
        Stops a vm instance .

    vm delete [options...]
        Delete servers of a cloud, user may delete a server by its name or id, delete servers
        of a group or servers of a cloud, give prefix and/or range to find servers by their names.
        Or user may specify more options to narrow the search

    vm floating_ip_assign [options...]
        assign a public ip to a VM of a cloud

    vm ip show [options...]
        show the ips of VMs

    vm ssh [options...]
        login to a server or execute commands on it

    vm list [options...]
        same as command "list vm", please refer to it

    vm status [options...]
        Retrieves status of last VM booted on cloud and displays it.

Tip:
    give the VM name, but in a hostlist style, which is very
    convenient when you need a range of VMs e.g. sample[1-3]
    => ['sample1', 'sample2', 'sample3']
    sample[1-3,18] => ['sample1', 'sample2', 'sample3', 'sample18']

Quoting commands:
    cm vm login gvonlasz-004 --command="uname -a"
topics = {'vm': 'cloud'}

cloudmesh_client.shell.plugins.WhoCommand module

class cloudmesh_client.shell.plugins.WhoCommand.WhoCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand

do_who(instance, args)
Usage:
   who  hostname
topics = {'Who ': 'system'}

cloudmesh_client.shell.plugins.WorkflowCommand module

class cloudmesh_client.shell.plugins.WorkflowCommand.WorkflowCommand(context)[source]

Bases: cloudmesh_client.shell.command.PluginCommand, cloudmesh_client.shell.command.CloudPluginCommand

do_workflow(instance, args)
Usage:
    workflow refresh [--cloud=CLOUD] [-v]
    workflow list [ID] [NAME] [--cloud=CLOUD] [--format=FORMAT] [--refresh] [-v]
    workflow add NAME LOCATION
    workflow delete ID
    workflow status [NAMES]
    workflow show ID
    workflow save NAME WORKFLOWSTR
    workflow run NAME
    workflow service start
    workflow service stop
    This lists out the workflows present for a cloud

Options:
   --format=FORMAT  the output format [default: table]
   --cloud=CLOUD    the cloud name
   --refresh        refreshes the data before displaying it
                    from the cloud

Examples:
    cm workflow refresh
    cm workflow list
    cm workflow list --format=csv
    cm workflow show 58c9552c-8d93-42c0-9dea-5f48d90a3188 --refresh
    cm workflow run workflow1
topics = {'workflow': 'todo'}

Module contents