A command line interface to interact with EdgeX microservices. Replaces the need to manually construct complex CURL commands and/or maintain developer scripts.
______ _ __ __ _____ _ _____ | ____| | | \ \ / / / ____|| | |_ _| | |__ __| | __ _ ___ \ V / ______ | | | | | | | __| / _` | / _` | / _ \ > < |______| | | | | | | | |____| (_| || (_| || __/ / . \ | |____ | |____ _| |_ |______|\__,_| \__, | \___|/_/ \_\ \_____||______||_____| __/ | |___/ EdgeX CLI version: 0.0.1 https://www.edgexfoundry.org/ Usage: edgex-cli [command] Available Commands: addressable Addressable command command command `Command` command db Purges entire EdgeX Database. [USE WITH CAUTION] device Device command deviceservice Device service command event Event command help Help about any command interval Interval command notification Notification command profile Device profile command. reading Reading command status Checks the current status of each microservice. subscription Subscription command version Version command Flags: --config-file string configuration file -h, --help help for edgex-cli --no-pager Do not pipe output into a pager. -u, --url Print URL(s) used by the entered command. -v, --verbose Print entire HTTP response. Use "edgex-cli [command] --help" for more information about a command.
In order to run this tool, you will need a locally running EdgeX instance, accessible via localhost, and Go 1.12 or higher installed on your machine.
$ git clone https://github.com/edgexfoundry/edgex-cli
$ cd edgex-cli
$ make install
Install also makes a copy of the default configuration and copies it to $HOME/.edgex-cli/configuration.toml.
If your EdgeX instance is not running on localhost, minimally you will need to replace localhost with the correct IP address.
You can now use the CLI by entering
edgex-cli anywhere on your machine provided your $GOBIN is on your $PATH.
Some commands leverage interactive-mode which opens an editor and allows you to provide information that would
normally be difficult with just command line arguments. For example, creating an Event requires a lot of information,
also Events contain zero or more readings. Using interactive mode, you can easily create an Event with many readings and
customize each reading. You can choose the editor that is used by setting the environment variable
EDITOR. The default
Unix operating systems(MacOS, Linux, etc),
Notepad for Windows OS. The default editor is used if
EDITOR is specified. Some examples of editors:
To try out your changes you have two options, one using 'make build', the other 'go run'. Also, we share how to launch tests.
$ make build $ ./edgex-cli
$ go run main.go [COMMAND]
$ make test
This will generate the file coverage.out in the repository root directory. To view the results, execute:
$ go tool cover -html=coverage.out
All CLI go code lives under the "cmd" directory. Its sub-directories map to the supported toplevel commands, such as addressable, command, db, device, ... version. To obtain a full list of supported commands type 'edgex-cli --help'.
Our convention has been to use the -f flag to pass in a file argument. -n is typically used to provide a name. Both command specific and global flags exist. Refer to the Cobra (https://godoc.org/github.com/spf13/cobra) and Viper (https://godoc.org/github.com/spf13/viper) documentation for additional help.
The "samples" directory holds templates for device profile (createDP.json and yaml), device (createDevice.toml), intervals (createInterval.toml and json), and for updateInterval. CLI in Interactive mode opens the relevant template in the configured editor.
Edit these should data structures change. For legacy reasons we support multiple formats in the case of some objects. Going forward most likely only json format will be supported.
addressable list A list of all addressable
command get Issue GET command list A list of device supported commands put Issue PUT command
db purge - Purges entire EdgeX Database. [USE WITH CAUTION]
device add Add devices adminstate Device admin state list A list of all devices operstate Update deviceName operating state rm Removes device by name or ID update Update a device
deviceservice add Add a device service list Lists existing devices services rm Removes device service by name or ID update Update device service
event add Create an event count Returns the count of core-data events list A list of Events rm Removes event by its id or removes all events generated by given device scrub Remove all (pushed) events and their associated readings [USE WITH CAUTION]
interval add Add interval list A list of all intervals rm Removes interval by name or id update Update interval
notification add Add notification list A list of all notifications rm Removes notification by slug or age
profile add Add profiles list Returns a list of device profiles rm Remove profile by name or ID update Update device profile
reading count Returns the count of core-data readings list A list of readings across devices or pertaining to a specified device
status Checks the current status of each microservice
subscription add Add subscription list A list of all subscriptions rm Removes subscription by --slug or id.
version Version command
watcher add Add watcher(s) list A list of watchers rm Remove watcher(s) by ID(s)
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.