Cluster Manager CLI

Cluster Manager CLI is a command-line utility that works with the Mashery Local 5.0 registry API to:
  • Get all Clusters: `clustermanager list clusters`
  • Use one of the clusters: `clustermanager use cluster <cluster-id>`
  • Get all Zones: `clustermanager list zones`
  • Use one of the zones: `clustermanager use zone <zone-id>`
  • Get all nodes of different types in a zone: `clustermanager list nodes --type=<node-type>` or get all nodes in a zone: `clustermanager list nodes`

    The following are valid node types:

The Cluster Manager CLI is a binary that is aware of its own Cluster and Zone context.

The CLI container is also aware of how many "initial" set of components form the cluster:
  • How many zones in the cluster
  • How many NoSQL, SQL, Cache, Log Service, TrafficManager (TM) components in each zone
  • The Cassandra Data Centers (DCs) and the replication factor
  • The registry URL

The CLI acts as the client to the following set of services:

  1. The Registry APIs
    The CLI uses the Registry for most of its operations such as:
    • Listing of Clusters
    • Listing of Zones in a cluster
    • Listing of Components in a zone
    • Listing of Config properties for a Component ID
    • Listing of Config properties for all components of a Component Type in the zone, e.g. common properties across all SQL components in the zone
    • Listing of Config properties for all components of a Component Type in the cluster, e.g. common properties across all SQL components across all the zones in a cluster
    • Setting config properties on component/zone/cluster
    • Listing of Resource Bindings for a Component ID
    • Setting of Resource Bindings for all components of a Component Type in the zone, e.g. bind all TMs in a zone to a specific SQL component in the zone
  2. The Agent APIs
    The CLI uses the Agent APIs for some of its operations that affect the lifecycle of the Agent.
    • Set new config property - The CLI sets the Agent state to "UNSATISFIED" thereby causing the Agent to go through its lifecycle again.
    • Set new resource binding - The CLI sets the Agent state to "UNSATISFIED" thereby causing the Agent to go through its lifecycle again.
    • Set log level.
    • Set log sync interval.
    • Set verbose logging.
  3. Certificate Management Local APIs
    • Lists certificates/identities.
    • Sets certificates/identities with new certificates.

CLI Commands

Valid Usage:

Valid Cluster Manager Usage
[root@cm-deploy-0-856b6c784c-x278w builder]# clustermanager
A command-line application to manage the Mashery 5.0 topology
 
Usage:
  clustermanager [command]
 
Available Commands:
  deploy      Deploy Mashery cluster topology
  help        Help about any command
  inspect     Inspect the cluster deployment or configs of components in a zone
  list        List of [clusters|zones|components|loggers|config|bindings|identities|certificates] in the topology
  set         Set configuration, bindings, loggers, logsyncinterval, identities & trust certificates in the topology
  use         Use available cluster or zone
  version     Print the version number of clustermanager CLI
 
Flags:
  -h, --help   help for clustermanager
 
Use "clustermanager [command] --help" for more information about a command.
 
[root@cm-deploy-0-856b6c784c-x278w builder]# alias cm=clustermanager

Command Help:

Cluster Manager Help
[root@cm-deploy-0-856b6c784c-x278w builder]# cm --help
A command-line application to manage the Mashery 5.0 topology
 
Usage:
  clustermanager [command]
 
Available Commands:
  deploy      Deploy Mashery cluster topology
  help        Help about any command
  inspect     Inspect the cluster deployment or configs of components in a zone
  list        List of [clusters|zones|components|loggers|config|bindings|identities|certificates] in the topology
  set         Set configuration, bindings, loggers, logsyncinterval, identities & trust certificates in the topology
  use         Use available cluster or zone
  version     Print the version number of clustermanager CLI
 
Flags:
  -h, --help   help for clustermanager
 
Use "clustermanager [command] --help" for more information about a command.

Command Specific Help:

Cluster Manager Command Specific Help
[root@cm-deploy-0-856b6c784c-x278w builder]# cm deploy --help
Deploy Mashery cluster topology using the deployment file
 
Usage:
  clustermanager deploy [flags]
 
Flags:
      --file string   path to the cluster deployment descriptor file
  -h, --help          help for deploy
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm inspect --help
Inspect the cluster deployment or configs of components in a zone
 
Usage:
  clustermanager inspect [flags]
  clustermanager inspect [command]
 
Available Commands:
  cluster     Inspect the cluster
  configs     Inspect configs in a cluster
 
Flags:
  -h, --help   help for inspect
 
Use "clustermanager inspect [command] --help" for more information about a command.
 
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm list --help
List of [clusters|zones|components|loggers|config|bindings|identities|certificates] in the topology
 
Usage:
  clustermanager list [flags]
  clustermanager list [command]
 
Aliases:
  list, ls
 
Available Commands:
  bindings     List of resource bindings of a specific component
  certificates List of trust certificates available for the cluster & zone
  clusters     List of clusters in the topology
  components   List of Tibco Mashery Components in a zone
  config       List of configuration settings for a specific component
  identities   List of identities available for the cluster & zone
  loggers      List of loggers available for a specific component
  zones        List of zones in a cluster
 
Flags:
  -h, --help   help for list
 
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm set --help
Set configuration, bindings, loggers, logsyncinterval, identities & trust certificates in the topology
 
Usage:
  clustermanager set [flags]
  clustermanager set [command]
 
Available Commands:
  binding         Set resource binding for a component
  certificate     Set certificate in the scope of a cluster/zone
  config          Set configuration property in the scope of a cluster/zone/component
  identity        Set identity in the scope of a cluster/zone
  loglevel        Set log level in the scope of a cluster/zone/component
  logsyncinterval Set log sync interval in minutes [range 1-59] in the scope of a cluster/zone
  verboselog      Set verbose log for traffic manager(s) in the scope of a cluster/zone/component
 
Flags:
  -h, --help   help for set
 
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm use -h
Use available cluster or zone in the topology
 
Usage:
  clustermanager use [flags]
  clustermanager use [command]
 
Available Commands:
  cluster     Use available cluster
  zone        Use available zone in a cluster
 
Flags:
  -h, --help   help for use
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm version -h
All software has versions. This is Cluster Manager CLI's
 
Usage:
  clustermanager version [flags]

Command Objective: To get the current version of the Cluster Manager

Command Usage:

Version
[root@a9fc970f406e bin]# clustermanager version
Mashery Cluster Manager v1.0

Command Objective:To deploy a cluster topology using a deployment file

Command Help:

Deploy Help
[root@a9fc970f406e bin]# clustermanager deploy --help
Deploy Mashery cluster topology using the deployment file
 
Usage:
  clustermanager deploy [flags]
 
Flags:
      --file string   path to the cluster deployment descriptor file
  -h, --help          help for deploy

Command Valid Usage:

Deploy Valid Usage
[root@a9fc970f406e bin]# clustermanager deploy
Creating the deployment..
2018/11/20 23:23:03 Deploying
{
  "clusterName": "SampleCluster",
  "zoneNames": [
    {
      "name": "local"
    }
  ],
  "tmCount": 2,
  "dsCount": 1,
  "oauthCount": 1,
  "cacheCount": 1,
  "sqlCount": 1,
  "logCount": 1,
  "nosqlCount": 1
}
Successfully created the deployment for cluster [SampleCluster]

Command Objective: To allow the user to select the scope of subsequent operations. Valid scopes are Cluster

Command Help:

Use Help
[root@b6caa48479da builder]# clustermanager use --help
Use available cluster or zone in the topology
 
Usage:
  clustermanager use [flags]
  clustermanager use [command]
 
Available Commands:
  cluster     Use available cluster
  zone        Use available zone in a cluster
 
Flags:
  -h, --help   help for use

Command Valid Usage:

Select Cluster Scope
[root@cm-deploy-0-856b6c784c-x278w builder]# cm use cluster 8d6f22d1-8797-43d6-9f54-57533ab1d560
Using cluster [Tibco Mashery Local Reference Cluster]
Select Zone Scope
[root@cm-deploy-0-856b6c784c-x278w builder]# cm use zone 535db9aa-e58c-4939-9b14-e4e5746f3b44
Using cluster [Tibco Mashery Local Reference Cluster]
Using Zone [local]

Command Invalid Usage:

Invalid Usage: Select Cluster Scope
[root@cm-deploy-0-856b6c784c-x278w builder]# cm use cluster Tibco
No matching cluster found:  Tibco
Invalid Usage: Select Zone Scope
[root@cm-deploy-0-856b6c784c-x278w builder]# cm use zone local
No matching zone found:  local

Command Help:

List Help
[root@b6caa48479da builder]# clustermanager list --help
List of [clusters|zones|components|loggers|config|bindings|identities|certificates] in the topology
 
Usage:
  clustermanager list [flags]
  clustermanager list [command]
 
Aliases:
  list, ls
 
Available Commands:
  bindings     List of resource bindings of a specific component
  certificates List of trust certificates available for the cluster & zone
  clusters     List of clusters in the topology
  components   List of Tibco Mashery Components in a zone
  config       List of configuration settings for a specific component
  identities   List of identities available for the cluster & zone
  loggers      List of loggers available for a specific component
  zones        List of zones in a cluster
 
Flags:
  -h, --help   help for list

Subcommand Objective: To list all the available clusters.

The default list display format is "table

Subcommand Help:

List Clusters Help
[root@b6caa48479da builder]# clustermanager list clusters --help
List of clusters in the topology
 
Usage:
  clustermanager list clusters [flags]
 
Flags:
  -h, --help   help for clusters

Subcommand Valid Usage:

List of Clusters
[root@cm-deploy-0-856b6c784c-x278w builder]# cm list clusters
Cluster ID                            Cluster Name
------------------------------------- --------------------
8d6f22d1-8797-43d6-9f54-57533ab1d560  Tibco Mashery Gat...
 
Note: The cluster name displays the leading 20 characters of the Cluster name and truncates the rest in table display.
The display format can be changed to "json".
List of Clusters (JSON output)
[root@cm-deploy-0-856b6c784c-x278w builder]# TMG_CLI_OUTPUT=json eval 'cm ls clusters'
[
  {
    "clusterId": "8d6f22d1-8797-43d6-9f54-57533ab1d560",
    "name": "Tibco Mashery Local Reference Cluster",
    "createdTime": ""
  }
]

Subcommand Objective: To list all the available zones in the selected cluster. This command executes successfully only after selecting one of the available clusters via "use" command. (Please refer to "use" command section for details.)

Subcommand Help:
List Zones Help
[root@b6caa48479da builder]# clustermanager list zones --help
List of zones in a cluster in the topology
 
Usage:
  clustermanager list zones [flags]
 
Flags:
  -h, --help   help for zones

Subcommand Valid Usage:

List of Zones
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls zones
Using cluster [Tibco Mashery Local Reference Cluster]
Zone ID                               Zone Name
------------------------------------- --------------------
535db9aa-e58c-4939-9b14-e4e5746f3b44  local

Subcommand Objective: To list all the available components in a zone.

Subcommand Help:

List Components Help
[root@b6caa48479da builder]# clustermanager list components --help
List of Tibco Mashery Components in a zone a cluster in the topology
 
Usage:
  clustermanager list components [flags]
 
Flags:
      --clusterId string       cluster ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice]
  -h, --help                   help for components
      --zoneId string          zone ID of the component

Subcommand Valid Usage:

List of Components in a zone
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls components
Using cluster [Tibco Mashery Local Reference Cluster]
Using Zone [local]
Component ID                          Component Type       Component Name       Component Status     Component Host       Component Agent Port   Component Service Port(s)
------------------------------------- -------------------- -------------------- -------------------- -------------------- ---------------------- ---------------------------
5c01c72c-11a8-4bed-ba8f-2421bc931499  sql                  sql                  ACTIVE               10.244.1.5           9080                   3306
20580ccd-13b1-4662-8827-e07cf3fce567  nosql                nosql                ACTIVE               10.244.1.2           9080                   9042
b30b7141-29dc-4c6f-9bf6-fc0317e6f32e  cache                cache                ACTIVE               10.244.1.6           9080                   11212,11211,11213,11214,11215,11216
a08bba64-8a39-4fa6-9fba-4d99e82816e4  trafficmanager       tm                   ACTIVE               10.244.1.7           9080                   8080
ce22559e-d6b7-4501-8575-e83fa45f91a2  logservice           log                  ACTIVE               10.244.1.4           9080                   24224

Subcommand Objective: To list component configuration properties

Subcommand Help:

List Component Properties Configuration Help
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls config --help
List of configuration settings for a specific component in the topology
 
Usage:
  clustermanager list config [flags]
 
Flags:
      --all                    get all the configs from agent
      --clusterId string       cluster ID of the component
      --componentId string     ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice]
  -h, --help                   help for config
      --zoneId string          zone ID of the component

Subcommand Valid Usage:

Response prior to setting the configuration properties for a given component:

Empty Property Response
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls config --componentId 5c01c72c-11a8-4bed-ba8f-2421bc931499 --componentType sql
clusterId [8d6f22d1-8797-43d6-9f54-57533ab1d560] and zoneId [535db9aa-e58c-4939-9b14-e4e5746f3b44]
No settings found for the given componentId [5c01c72c-11a8-4bed-ba8f-2421bc931499] of type [sql]
Response after setting the configuration properties for a given component:
Valid Property List Response
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls config --componentId 5c01c72c-11a8-4bed-ba8f-2421bc931499 --componentType sql
clusterId [8d6f22d1-8797-43d6-9f54-57533ab1d560] and zoneId [535db9aa-e58c-4939-9b14-e4e5746f3b44]
Using cluster name [Tibco Mashery Local Reference Cluster]
Using Zone name [local]
Using Component ID [5c01c72c-11a8-4bed-ba8f-2421bc931499] of type [sql]
Property                       Value                Handler              Is Encoded?  File Destination
------------------------------ -------------------- -------------------- ------------ --------------------------------------------------
DUMMY_KEY                      DUMMY_VAL                                 false
List All Config Properties
[root@cm-deploy-0-67548f4d56-j5j45 builder]# cl ls config --componentId 27b445c3-6656-4548-aff1-30ff84d83ec9 --componentType sql --all
clusterId [3a199dba-c433-4a45-aec6-41983eccb3e8] and zoneId [a81a9fa1-834b-409d-9042-9b405c32a83e]
Agent config files are stored under /root/config-27b445c3-6656-4548-aff1-30ff84d83ec9.zip
Using cluster name [Tibco Mashery Local Example Cluster]
Using Zone name [Tibco Mashery Local Example Zone]
Using Component ID [27b445c3-6656-4548-aff1-30ff84d83ec9] of type [sql]
 
Property                       Value                Handler              Is Encoded?  File Destination                                 
------------------------------ -------------------- -------------------- ------------ --------------------------------------------------
apiKey                         testkey123           string               false         /etc/mashery/proxy.json                          
apiSecret                      testsecret345        string               false         /etc/proxy.json
Note: If no configs are set for a component using CLI then registry won't be having any configs and you will see following message.
 No settings found for the given componentId
<your_component_id > of type <your_component_type>

Subcommand Objective: To list Resource Bindings used by a component.

Subcommand Help:

Help for listing Resource Bindings for a Component
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls bindings --help
List of other components that a given component is using as its resource binding dependency
 
Usage:
  clustermanager list bindings [flags]
 
Flags:
      --clusterId string       cluster ID of the component
      --componentId string     ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice]
  -h, --help                   help for bindings
      --resourceType string    type of resource binding, valid types [sql, nosql, cache, trafficmanager, logservice]
      --zoneId string          zone ID of the component

Subcommand Valid Usage:

List All the Resource Bindings of a Component
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls bindings --componentId a08bba64-8a39-4fa6-9fba-4d99e82816e4 --componentType trafficmanager --resourceType sql
clusterId [8d6f22d1-8797-43d6-9f54-57533ab1d560] and zoneId [535db9aa-e58c-4939-9b14-e4e5746f3b44]
Using cluster name [Tibco Mashery Local Reference Cluster]
Using Zone name [local]
Using Component ID [a08bba64-8a39-4fa6-9fba-4d99e82816e4] of type [trafficmanager]
ComponentID                           Status
------------------------------------- --------------------
5c01c72c-11a8-4bed-ba8f-2421bc931499  connected
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm ls bindings --componentId a08bba64-8a39-4fa6-9fba-4d99e82816e4 --componentType trafficmanager --resourceType cache
clusterId [8d6f22d1-8797-43d6-9f54-57533ab1d560] and zoneId [535db9aa-e58c-4939-9b14-e4e5746f3b44]
Using cluster name [Tibco Mashery Local Reference Cluster]
Using Zone name [local]
Using Component ID [a08bba64-8a39-4fa6-9fba-4d99e82816e4] of type [trafficmanager]
ComponentID                           Status
------------------------------------- --------------------
b30b7141-29dc-4c6f-9bf6-fc0317e6f32e  connected

Command Objective: To update the existing component with various parameters.

Command Help:

Set Configuration Setting Help:

Set Config Help
[root@b6caa48479da builder]# clustermanager set config --help
Set configuration property in the scope of a cluster/zone/component
 
Usage:
  clustermanager set config [flags]
 
Flags:
      --clusterId string       cluster ID of the component
      --componentId string     ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice]
  -h, --help                   help for config
      --prop string            Config property name
      --value string           Config property value
      --zoneId string          zone ID of the component

Set Resource Binding Help:

Set Resource Binding Help
[root@cm-deploy-0-856b6c784c-x278w builder]# cm set binding --help
Set resource binding for a component
 
Usage:
  clustermanager set binding [flags]
 
Flags:
      --clusterId string       cluster ID of the component
      --componentId string     ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice]
  -h, --help                   help for binding
      --resourceId string      ID of the resource binding
      --resourceType string    type of resource binding, valid types [sql, nosql, cache, trafficmanager, logservice]
      --zoneId string          zone ID of the component
 
 
[root@cm-deploy-0-856b6c784c-x278w builder]# cm set binding --componentId a08bba64-8a39-4fa6-9fba-4d99e82816e4 --componentType trafficmanager --resourceId 5c01c72c-11a8-4bed-ba8f-2421bc931499--resourceType sql
Updating the TML after the change
Successfully updated the TML component a08bba64-8a39-4fa6-9fba-4d99e82816e4 for components of type trafficmanager
Successfully set the resource binding for the the component a08bba64-8a39-4fa6-9fba-4d99e82816e4 of type trafficmanager

Set Verbose Logging Help:

Set Verbose Logging Help
[root@37268c01c6dd builder]# cm set verbose -h
Set verbose log for traffic manager(s) in the scope of a cluster/zone/component
 
Usage:
  clustermanager set verboselog [flags]
 
Aliases:
  verboselog, verbose
 
Flags:
      --clusterId string     cluster ID of the component
      --componentId string   ID of the component
      --enable               Enable or disable verbose logging. 'enable=true' if the flag is empty (default true)
  -h, --help                 help for verboselog
      --interval int         Time interval to enable verbose logging. Value must be between 1-30 (minutes) (default -1)
      --zoneId string        zone ID of the component

Command Valid Usage:

Set Configuration Setting:

Set Config Property for a Component
[root@cm-deploy-0-856b6c784c-x278w builder]# cm set config --componentId 5c01c72c-11a8-4bed-ba8f-2421bc931499 --componentType sql --prop DUMMY_KEY --value DUMMY_VAL
Updating the TML after the change
Successfully updated the TML component 5c01c72c-11a8-4bed-ba8f-2421bc931499 for components of type sql
Successfully set configuration property for the scope map[cluster:Tibco Mashery Local Reference Cluster zone:local component:5c01c72c-11a8-4bed-ba8f-2421bc931499] for components of type sql

Set Verbose Logging Setting:

Set Verbose Logging (Valid Usage)
[root@37268c01c6dd builder]# cm set verbose --interval 5
Successfully set new log level verboselogging=INFO for component map[zone:local] of type trafficmanager

Command Invalid Usage:

Set Verbose logging (Invalid usage)
[root@37268c01c6dd builder]# cm set verbose --interval 100
Invalid verbose log interval [100], Please see the command help

Subcommand Objective:To inspect the cluster deployment or configs of all the components in a given zone

Subcommand Help:

Inspect Help
[root@cm-deploy-0-7744b57499-2mpq6 builder]# clustermanager inspect --help
Inspect the cluster deployment or configs of components in a zone
Usage:
  clustermanager inspect [flags]
  clustermanager inspect [command]
Available Commands:
  cluster     Inspect the cluster
  configs     Inspect configs in a cluster
Flags:
  -h, --help   help for inspect

Subcommand Valid Usage:

Inspect Cluster Usage
[root@cm-deploy-0-7744b57499-2mpq6 builder]# clustermanager inspect cluster
 
{
  "name": "Raj Cluster",
  "clusterId": "86db18a2-b28a-4724-96ca-faef6f5a078b",
  "zones": [
    {
      "name": "us-east-1e",
      "zoneId": "86665b5d-0919-4032-8ce0-805fd7e0e15f",
      "components": [
        {
          "type": "sql",
          "name": "sql",
          "id": "f2c92ee6-d083-471d-8bf6-950266f21ceb",
          "host": "100.96.1.5",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            3306
          ]
        },
        {
          "type": "nosql",
          "name": "nosql",
          "id": "b2a2b97e-9af6-4972-a914-d49dbb13cf82",
          "host": "100.96.3.9",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            9042
          ]
        },
        {
          "type": "nosql",
          "name": "nosql",
          "id": "b6cd77bf-92df-4633-898e-a365af329ade",
          "host": "100.96.2.5",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            9042
          ]
        },
        {
          "type": "cache",
          "name": "cache",
          "id": "d0358516-57f8-4d50-b684-2c0391fabe03",
          "host": "100.96.2.4",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            11212,
            11211,
            11213,
            11214,
            11215,
            11216
          ]
        },
        {
          "type": "trafficmanager",
          "name": "tm",
          "id": "1d1b2d14-d860-463e-b13f-34ca0ab49227",
          "host": "100.96.1.6",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            8080
          ]
        },
        {
          "type": "logservice",
          "name": "log",
          "id": "55c51531-4a69-4628-b5ad-4095728e0143",
          "host": "100.96.3.11",
          "agentPort": 9080,
          "status": "ACTIVE",
          "port": [
            24224
          ]
        }
      ]
    }
  ]
}

Subcommand Objective: To inspect the configs of all components in a given zone.

If zone_name parameter is not specified in the command then we use the current deployed zone. It collects the default and runtime configs from each Mashery Local agent and respective configs from registry. Compares default and runtime configs and if there is any change then compares the modified config with registry. If the config value in runtime is not same as registry(values might be set through cli and not null) then config is invalid else the config is valid.
Note: If a component was not in ACTIVE state at least once during it's lifecycle then there won't be runtime configs to inspect. So, validation of the configs won't be possible on that component.

Subcommand Valid Usage:

Inspect Configs for a Zone Output
[root@b6caa48479da builder]# clustermanager inspect configs
{
  "name": "Raj Cluster",
  "clusterId": "86db18a2-b28a-4724-96ca-faef6f5a078b",
  "zones": [
    {
      "name": "us-east-1e",
      "zoneId": "86665b5d-0919-4032-8ce0-805fd7e0e15f",
      "components": [
        {
          "type": "nosql",
          "name": "nosql",
          "id": "b6cd77bf-92df-4633-898e-a365af329ade",
          "host": "100.96.2.5",
          "validatedProperties": [
            {
              "property": "logserviceURL",
              "isValid": true,
              "registryValue": null,
              "runtimeValue": "100.96.3.11",
              "defaultValue": "log-set-0-0.log-svc-0.default.svc.cluster.local"
            }
          ]
        },
        {
          "type": "cache",
          "name": "cache",
          "id": "d0358516-57f8-4d50-b684-2c0391fabe03",
          "host": "100.96.2.4",
          "validatedProperties": [
            {
              "property": "logserviceURL",
              "isValid": true,
              "registryValue": null,
              "runtimeValue": "100.96.3.11",
              "defaultValue": "log-set-0-0.log-svc-0.default.svc.cluster.local"
            },
            {
              "property": "sqlURL",
              "isValid": true,
              "registryValue": null,
              "runtimeValue": "100.96.1.5",
              "defaultValue": "mysql-set-0-0.mysql-svc-0.default.svc.cluster.local"
            }
          ]
        },
        {
          "type": "sql",
          "name": "sql",
          "id": "f2c92ee6-d083-471d-8bf6-950266f21ceb",
          "host": "100.96.1.5",
          "validatedProperties": [
            {
              "property": "logserviceURL",
              "isValid": true,
              "registryValue": null,
              "runtimeValue": "100.96.3.11",
              "defaultValue": "log-set-0-0.log-svc-0.default.svc.cluster.local"
            },
            {
              "property": "apiSecret",
              "isValid": true,
              "registryValue": null,
              "runtimeValue": "8UN8j8BN6f",
              "defaultValue": ""
            },
            {
              "property": "apiKey",
              "isValid": false,
              "registryValue": "123KJGHGG",
              "runtimeValue": "8UJBAUIUf",
              "defaultValue": ""
            }
          ]
        }
      ]
    }
  ]
}

Subcommand Description: To list all the certificates in the selected zone within the cluster.

Subcommand Help:

List all Certificates Help
[root@aa5de66f2645 ~]# clustermanager ls certificates --help
List of trust certificates available for the cluster & zone
 
Usage:
  clustermanager list certificates [flags]
 
Flags:
      --clusterId string   cluster ID of the component
  -h, --help               help for certificates
      --zoneId string      zone ID of the component

Subcommand Valid Usage:

List All Certificates
[root@a9fc970f406e bin]# clustermanager ls certificates
clusterId [6026347d-5efe-4979-95d9-822b9404193d] and zoneId [b7806ac8-87fe-47c0-be4e-0ce4ba0928d5]
Using cluster name [Tibco Mashery Local Reference Cluster]
Using Zone name [local]
UUID                                     Name                                     Area ID    Expiration
---------------------------------------- ---------------------------------------- ---------- --------------------
32330473-69e5-4f93-a4c5-104601c416d7     acme.client.example.com                  0          2116-05-28

Subcommand Objective: To list all the identities in the selected zone within the cluster.

Subcommand Help:

List all Identities Help
[root@aa5de66f2645 ~]# clustermanager ls identities --help
List of identities available for the cluster & zone
 
Usage:
  clustermanager list identities [flags]
 
Flags:
      --clusterId string   cluster ID of the component
  -h, --help               help for identities
      --zoneId string      zone ID of the component

Subcommand Valid Usage:

List All Identities
[root@a9fc970f406e bin]# clustermanager ls identities
clusterId [6026347d-5efe-4979-95d9-822b9404193d] and zoneId [b7806ac8-87fe-47c0-be4e-0ce4ba0928d5]
Using cluster name [Tibco Mashery Local Reference Cluster]
Using Zone name [local]
UUID                                     Name                                     Area ID    Expiration
---------------------------------------- ---------------------------------------- ---------- --------------------
e147440d-0881-4484-84e2-f26a75a64d36     acme.client.example.com                  5488       2116-05-28

Subcommand Objective: To update a certificate in the selected zone within the cluster.

Subcommand Help:

Set and Update Certificate Help
[root@aa5de66f2645 ~]# clustermanager set certificate --help
Set certificate in the scope of a cluster/zone
 
Usage:
  clustermanager set certificate [flags]
 
Aliases:
  certificate, cert
 
Flags:
      --clusterId string   cluster ID of the component
      --file string        certificate file to upload, CER type
  -h, --help               help for certificate
      --uuid string        unique ID for the existing certificate that needs update
      --zoneId string      zone ID of the component
 
 
[root@a9fc970f406e bin]# clustermanager set certificate --file /usr/local/bin/samplecert.cer
Updating certificate for cluster ID 6026347d-5efe-4979-95d9-822b9404193d and zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Successfully updated certificate for cluster ID 6026347d-5efe-4979-95d9-822b9404193d of zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5

Subcommand Valid Usage:

Create New Certificate

Set New Certificate
[root@aa5de66f2645 ~]# clustermanager set certificate --file /usr/local/bin/sample-cert.cer

Update an existing Certificate:

Update Existing Certificate
[root@a9fc970f406e bin]# clustermanager set certificate --file /usr/local/bin/samplecert.cer --uuid 32330473-69e5-4f93-a4c5-104601c416d7
Updating certificate for cluster ID 6026347d-5efe-4979-95d9-822b9404193d and zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Successfully updated certificate for cluster ID 6026347d-5efe-4979-95d9-822b9404193d of zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5

Subcommand Invalid Usage:

Invalid Usage: file not set
[root@aa5de66f2645 ~]# clustermanager set certificate
Error: required flag(s) "file" not set
Usage:
  clustermanager set certificate [flags]
 
Aliases:
  certificate, cert
 
Flags:
      --clusterId string   cluster ID of the component
      --file string        certificate file to upload, CER type
  -h, --help               help for certificate
      --uuid string        unique ID for the existing certificate that needs update
      --zoneId string      zone ID of the component
 
required flag(s) "file" not set
Invalid Usage: certificate file not present
[root@aa5de66f2645 ~]# clustermanager set certificate --file sample.cer
No such certificate sample.cer

Subcommand Objective: To update an identity in the selected zone within the cluster.

Subcommand Help:

Set and Update Identity Help
[root@01294de80b3d ~builder]# clustermanager set identity help
Error: required flag(s) "file", "password", "uuid" not set
Usage:
  clustermanager set identity [flags]
 
Aliases:
  identity, idty
 
Flags:
      --clusterId string   cluster ID of the component
      --file string        identity file to upload, P12 / JKS type
  -h, --help               help for identity
      --password string    password for the identity file
      --uuid string        unique ID for the existing identity that needs update
      --verifyHostname     required for mutual SSL. If set to true, hostname inside client and server identity & trust files should be same. 'verifyHostname=false' if the flag is empty
      --zoneId string      zone ID of the component

required flag(s) "file", "password", "uuid" not set

Subcommand Valid Usage:

Set New Identity
[root@a9fc970f406e bin]# clustermanager set identity --file /usr/local/bin/sample-identity.p12 --password 1.tibco
Updating identity for cluster ID 6026347d-5efe-4979-95d9-822b9404193d and zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Successfully updated identity for cluster ID 6026347d-5efe-4979-95d9-822b9404193d of zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Update an Existing Identity
[root@a9fc970f406e bin]# clustermanager set identity --file /usr/local/bin/sample-identity.p12 --password 1.tibco --uuid e147440d-0881-4484-84e2-f26a75a64d36
Updating identity for cluster ID 6026347d-5efe-4979-95d9-822b9404193d and zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Successfully updated identity for cluster ID 6026347d-5efe-4979-95d9-822b9404193d of zone ID b7806ac8-87fe-47c0-be4e-0ce4ba0928d5
Setting verifyHostname values
*Flag: true*
 
{code:java}
 
[root@2f3252898633 builder]# cm set identity --file sample.p12 --password password --uuid cb4d2bc2-f863-440b-0020-1d11369404d8 --verifyHostname true
 
Updating identity for cluster ID 6a8bf4d8-810f-417b-8900-cb3acf2caff0 and zone ID e2844a28-2d61-4dcc-97d8-6f56a641b7a6
 
Successfully updated identity for cluster ID 6a8bf4d8-810f-417b-8900-cb3acf2caff0 of zone ID e2844a28-2d61-4dcc-97d8-6f56a641b7a6
 
{code}
 
 
*Flag: false*
 
{code:java}
 
[root@2f3252898633 builder]# cm set identity --file sample.p12 --password password --uuid cb4d2bc2-f863-440b-0020-1d11369404d8 --verifyHostname=false
 
Updating identity for cluster ID 6a8bf4d8-810f-417b-8900-cb3acf2caff0 and zone ID e2844a28-2d61-4dcc-97d8-6f56a641b7a6
 
Successfully updated identity for cluster ID 6a8bf4d8-810f-417b-8900-cb3acf2caff0 of zone ID e2844a28-2d61-4dcc-97d8-6f56a641b7a6
 
{code}

Subcommand Invalid Usage:

Invalid Usage: file & password not set
[root@aa5de66f2645 ~]# clustermanager set identity
Error: required flag(s) "file", "password" not set
Usage:
  clustermanager set identity [flags]
 
Aliases:
  identity, idty
 
Flags:
      --clusterId string   cluster ID of the component
      --file string        identity file to upload, P12 / JKS type
  -h, --help               help for identity
      --password string    password for the identity file
      --uuid string        unique ID for the existing identity that needs update
      --zoneId string      zone ID of the component
 
required flag(s) "file", "password" not set
Invalid usage: password not set
[root@aa5de66f2645 ~]# clustermanager set identity --file sample.p12
Error: required flag(s) "password" not set
Usage:
  clustermanager set identity [flags]
 
Aliases:
  identity, idty
 
Flags:
      --clusterId string   cluster ID of the component
      --file string        identity file to upload, P12 / JKS type
  -h, --help               help for identity
      --password string    password for the identity file
      --uuid string        unique ID for the existing identity that needs update
      --zoneId string      zone ID of the component
 
required flag(s) "password" not set
Invalid Usage: identity file not present
[root@aa5de66f2645 ~]# clustermanager set identity --file sample.p12 --password 1.tibco
No such identity sample.p12

CLI Help

[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager -h
A command-line application to manage the Mashery 5.0 topology

Usage:
  clustermanager [command]

Available Commands:
  cluster                     Execute commands against the deployment in a cluster zone
  create                      Create identity or certificate in available cluster or zone
  deploy                      Deploy Mashery cluster topology
  help                        Help about any command
  import                      Import properties configuration in the topology
  inspect                     Inspect the cluster deployment or configs of components in a zone
  list                        List of [clusters|zones|components|loggers|config|bindings|identities|certificates] in the topology
  set                         Set configuration, bindings, loggers, logsyncinterval, identities & trust certificates in the topology
  stage-portal-customizations Decompress and upload portal customizations from given file location
  use                         Use available cluster or zone
  version                     Print the version number of clustermanager CLI

Flags:
  -h, --help   help for clustermanager

Use "clustermanager [command] --help" for more information about a command.

CLI Command for Cluster Status

[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager cluster status
*** Checking the status of Cluster 'reference-tml-cluster-single-host' ***
*** Checking the status of zone 'us-west1-a' ***
TML component [a3d8c76b-7b01-401a-b2d8-32363a3af913] of type [nosql] found with status [ACTIVE] on Host IP [10.60.0.23]. See details below
Component ID                          Component Name       Component IP         Component Status     Pending Activity     Error
------------------------------------- -------------------- -------------------- -------------------- -------------------- ------------------------------
a3d8c76b-7b01-401a-b2d8-32363a3af913  nosql                10.60.0.23           Not Ready
Sample for the cluster status command as the cluster gets healthy:
[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager cluster status
*** Checking the status of Cluster 'reference-tml-cluster-single-host' ***
*** Checking the status of zone 'us-west1-a' ***
TML component [a3d8c76b-7b01-401a-b2d8-32363a3af913] of type [nosql] found with status [ACTIVE] on Host IP [10.60.0.23]..
TML component [143d47f5-ee40-4985-abd5-b60c624e8986] of type [logservice] found with status [ACTIVE] on Host IP [10.60.0.25]..
TML component [f589716e-5a2f-4ace-916b-f2fefb42f7d5] of type [sql] found with status [ACTIVE] on Host IP [10.60.0.26]..
TML component [720222d7-9603-4a4f-9c9c-d32a47e4748e] of type [cache] found with status [ACTIVE] on Host IP [10.60.0.27]..
TML component [e068e07f-dcaa-4528-b226-7ad3b8a06565] of type [trafficmanager] found with status [RESOLVED] on Host IP [10.60.0.28]. See details below
Component ID                          Component Name       Component IP         Component Status     Pending Activity     Error
------------------------------------- -------------------- -------------------- -------------------- -------------------- ------------------------------
e068e07f-dcaa-4528-b226-7ad3b8a06565  tm                   10.60.0.28           Not Ready
When the Cluster is healthy overall, the following status is seen:
[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager cluster status
*** Checking the status of Cluster 'reference-tml-cluster-single-host' ***
*** Checking the status of zone 'us-west1-a' ***
TML component [a3d8c76b-7b01-401a-b2d8-32363a3af913] of type [nosql] found with status [ACTIVE] on Host IP [10.60.0.23]..
TML component [143d47f5-ee40-4985-abd5-b60c624e8986] of type [logservice] found with status [ACTIVE] on Host IP [10.60.0.25]..
TML component [f589716e-5a2f-4ace-916b-f2fefb42f7d5] of type [sql] found with status [ACTIVE] on Host IP [10.60.0.26]..
TML component [720222d7-9603-4a4f-9c9c-d32a47e4748e] of type [cache] found with status [ACTIVE] on Host IP [10.60.0.27]..
TML component [e068e07f-dcaa-4528-b226-7ad3b8a06565] of type [trafficmanager] found with status [ACTIVE] on Host IP [10.60.0.28]..
TML component [d8c24dd6-6f38-4474-a30c-1f2b33179340] of type [configmanager] found with status [ACTIVE] on Host IP [10.60.0.24]..

Cluster 'reference-tml-cluster-single-host' is ready

Import of Configuration

The following command allows importing of configuration and apply it to components of different types, for example, to import configuration for a new log destination, the following needs to be done:
  1. Prepare the new log destination configuration in following JSON format:
    {
        "td_agent_output_channelType": "DEFAULT",
        "td_agent_container_output_channelType": "DEFAULT",
        "td_agent_metric_output_channelType": "DEFAULT,KAFKA",
        "td_agent_out_kafka_brokers" : "10.97.242.197:9092",
        "td_agent_out_kafka_topic" : "ml5_access_logs",
        "td_agent_out_metric_kafka_brokers" : "10.97.242.197:9092",
        "td_agent_out_metric_kafka_topic" : "ml511_metric_Kafka"
    }
    Let us call this file /var/config/props.json, as an example.
  2. Use the clustermanager import command to import the same for logservice container(s).
    clustermanager import config --componentType logservice --file
    /var/config/props.json 
    
    Note: The JSON to be imported can only have first level simple key:value json object. It does not allow complex nested json objects or array of objects.

Importing help

[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager import -h
Import properties configuration in the topology

Usage:
  clustermanager import [flags]
  clustermanager import [command]

Available Commands:
  config      Import properties configuration in the scope of a cluster/zone/component

Flags:
  -h, --help   help for import
[root@cm-deploy-0-5c898c8d5f-wx78f builder]# clustermanager import config -h
Import properties configuration in the scope of a cluster/zone/component

Usage:
  clustermanager import config [flags]

Flags:
      --clusterId string       cluster ID of the component
      --componentId string     ID of the component
      --componentType string   type of the component, valid types [sql, nosql, cache, trafficmanager, logservice, platformapi, configmanager]
      --file string            Path to properties key-value JSON file
  -h, --help                   help for config
      --zoneId string          zone ID of the component

Cluster Manager Command

The "clustermanager cluster status" command reports status of all components across all the zones of deployment that belong to the Mashery Local cluster. If the status of a component is not ACTIVE, the status command reports the data that points to any pending activity that the component is waiting to finish before becoming ACTIVE. Once all the components are ACTIVE, then the command reports that the cluster is ready.