Commit bb546e98 authored by Greg Williams's avatar Greg Williams
Browse files

Updated README and RELEASE notes to reflect changes to kinetic-c-util...

Updated README and RELEASE notes to reflect changes to kinetic-c-util command-line API and addition of admin operations.
Updated release notes to call out changes to KineticStatus enum.
parent 13d93c4d
Loading
Loading
Loading
Loading
+22 −20
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ API Documentation
    * The ByteArray and ByteBuffer types are used for exchanging variable length byte-arrays with kinetic-c
        * e.g. object keys, object value data, etc.

**NOTE: Configuration structures `KineticClientConfig` and `KineticSessionConfig` should be initialized per C99 struct initialization or memset to 0 prior to use in order to ensure backwards compatibility!**
**NOTE: Configuration structures `KineticClientConfig` and `KineticSessionConfig` should be initialized per C99 struct initialization or memset to 0 prior to use in order to ensure forward/backward compatibility upon changes to these structure definitions!**

Client Test Utility
===========================
@@ -85,27 +85,29 @@ Code examples are included for reference as part of a test utility. The source c
* `kinetic-c-util` builds/links against Kinetic C static library (.a)
* `kinetic-c-util.x.y.z` builds/links against Kinetic C dynamic library (.so)

The project Makefile can be used as a reference for developing a Makefile for building for a new custom Kinetic C client.

Options
-------

* `--host [HostName/IP]` or `-h [HostName/IP]` - Set the Kinetic Device host

Operations
Usage
----------

* `kinetic-c-util [--host|-h hostname|123.253.253.23] [noop] [put] [get] [delete] [instanterase]`
    * `./bin/kinetic-c-util noop`
        * Execute a NoOp (ping) operation to verify the Kinetic Device is ready
    * `./bin/kinetic-c-util put`
        * Execute a Put operation to store a key/value entry
    * `./bin/kinetic-c-util get`
        * Execute a Get operation to retrieve a key/value entry
    * `./bin/kinetic-c-util delete`
        * Execute a Delete operation to destroy a key/value entry
    * `./bin/kinetic-c-util instanterase` *INCOMPLETE*
        * Execute an InstantSecureErase operation to erase ALL content from the device
    $ cd bin
    $ ./kinetic-c-util --help
    Usage: ./kinetic-c-util --<cmd> [options...]
    ./kinetic-c-util --help
    ./kinetic-c-util --noop [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --put [--key <key>] [--value <value>] [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --get [--key <key>] [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --getnext [--key <key>] [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --getprevious [--key <key>] [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --delete [--key <key>] [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --setclusterversion <--newclusterversion <newclusterversion>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --seterasepin <--pin <oldpin>> <--newpin <newerasepin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --instanterase <--pin <erasepin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --secureerase <--pin <erasepin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --setlockpin <--pin <oldpin>> <--newpin <newpin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --lockdevice <--pin <lockpin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --unlockdevice <--pin <lockpin>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --setacl <--file <acl_json_file>> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --getlog [--type <utilization|temperature|capacity|configuration|message|statistic|limits> [--host <ip|hostname>] [--tlsport <tlsport>] [--clusterversion <clusterversion>]
    ./kinetic-c-util --updatefirmware <--file <file>> [--host <ip|hostname>] [--port <port>] [--clusterversion <clusterversion>] [--pin <pin>]

Kinetic C Client I/O Examples
=============================
+12 −6
Original line number Diff line number Diff line
v0.12.0 (kinetic-protocol 3.0.5)
--------------------------------
* KineticSession is now supplied as an opaque instance pointer from KineticClient_CreateSession
    * Passed KineticClientConfig copied and can be discarded after session creation
* Added new KineticAdminClient API (see include/kinetic_admin_client.h)
    * Reloacted existing admin methods to admin API
        * KineticClient_InstantSecureErase => KineticAdminClient_InstantErase/KineticAdminClient_SecureErase
        * KineticClient_GetLog => KineticAdminClient_GetLog
        * KineticClient_FreeDeviceInfo -> KineticAdminClient_LogInfo
* Added `KINETIC_STATUS_NOT_AUTHORIZED` to KineticStatus enum.
* Added KineticAdminClient_SetACL command.
* KineticSession is now supplied as an opaque instance pointer from KineticClient_CreateSession
    * Passed KineticClientConfig copied and can be discarded after session creation
* *KNOWN ISSUES*
    * KineticAdminClient_UpdateFirmware is incomplete
* Fixed potential memory leak when logging Protobufs.
* Fixed potential imbalance in concurrent operations semaphore.
* Status code changes
    * Changed
        * `KINETIC_STATUS_HMAC_EMPTY` => `KINETIC_STATUS_HMAC_REQUIRED`
    * Added
        * `KINETIC_STATUS_MISSING_PIN`
        * `KINETIC_STATUS_SSL_REQUIRED`
        * `KINETIC_STATUS_DEVICE_LOCKED`
        * `KINETIC_STATUS_ACL_ERROR`
        * `KINETIC_STATUS_NOT_AUTHORIZED`
        * `KINETIC_STATUS_INVALID_FILE`

v0.11.2 (kinetic-protocol 3.0.5)
--------------------------------
+1 −1
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ typedef enum {
    KINETIC_STATUS_MISSING_VALUE_BUFFER,    ///< An operation is missing a required value buffer
    KINETIC_STATUS_MISSING_PIN,             ///< An operation is missing a PIN
    KINETIC_STATUS_SSL_REQUIRED,            ///< The operation requires an SSL connection and the specified connection is non-SSL
    KINETIC_STATUS_DEVICE_LOCKED,           ///< The operation failed because the device is sercurely locked. An UNLOCK must be issued to unlock for use.
    KINETIC_STATUS_DEVICE_LOCKED,           ///< The operation failed because the device is securely locked. An UNLOCK must be issued to unlock for use.
    KINETIC_STATUS_ACL_ERROR,               ///< A security operation failed due to bad ACL(s)
    KINETIC_STATUS_NOT_AUTHORIZED,          ///< Authorization failure
    KINETIC_STATUS_INVALID_FILE,            ///< Specified file does not exist or could not be read/writtten
+1 −0
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ static const char* GetOptString(OptionID opt_id);
void PrintUsage(const char* exec)
{
    printf("Usage: %s --<cmd> [options...]\n", exec);
    printf("%s --help\n", exec);
    
    // Standard API operations
    printf("%s --noop"