Geode also open sourced a GO client that would interact with any running cluster's management REST service. Each REST end point would corresponds to a "command" in this tool. Executing a command in this CLI would invoke the corresponding REST end point. The features of this GO client are:

Where to Download this CLI Client

The Tanzu Gemfire Go Client source code and executables are available here: https://github.com/gemfire/tanzu-gemfire-management-cf-plugin

How to use the CLI Client

After download the latest version to any folder of your choice, all you need is a running cluster which has the cluster management service running:

The first you want to check out is the "-h" option:

$ ./gemfire -h
Commands to interact with a Geode cluster.

Usage: gemfire <target> <command> [options]

	target: 
		URL to a Geode locator in the form of: http(s)://host:port
		Optional if 'GEODE_TARGET' environment variable is set
	command:
		'gemfire <target> commands' lists available commands
	options:
		'gemfire <target> <command> -h' lists options for an individual command
		--user, -u <username>, or a 'GEODE_USERNAME' environment variable sets the username
		--password, -p <password>, or a 'GEODE_PASSWORD' environment variable sets the password
		--table, -t [<jqFilter>] outputs in a tabular form
	help:
		--help, -h for general help, and provide <target> and <command> for command-specific help


To see a list of commands available to the target cluster

$ ./gemfire http://localhost:7070 commands
check rebalance --id <id>
configure pdx --pdxType <json or @json_file_path>
create gateway-receiver --gatewayReceiverConfig <json or @json_file_path>
create index --indexConfig <json or @json_file_path>
create region --regionConfig <json or @json_file_path>
create region index --indexConfig <json or @json_file_path> --regionName <regionName>
delete region --id <id> [--group <group>]


To execute one particular command:

$ ./gemfire http://localhost:7070 list regions
{
  "statusCode": "OK",
  "result": [
    {
      "id": "test",
      "groups": [
        {
          "configuration": {
            "name": "test",
            "type": "REPLICATE"
          }
        }
      ],
      "links": {
        "indexes": "http://localhost:7070/management/v1/regions/test/indexes",
        "self": "http://localhost:7070/management/v1/regions/test",
        "list": "http://localhost:7070/management/v1/regions"
      }
    }
  ]
}