Commit 067894f9 authored by Greg Williams's avatar Greg Williams
Browse files

Merge branch 'develop'

Fixed some formatting issues in release notes.
Called out support for empty entry value in release notes.
parents 7aa772cf 8c19aad2
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -58,7 +58,8 @@ LIB_OBJS = \
	$(OUT_DIR)/kinetic_allocator.o \
	$(OUT_DIR)/kinetic_nbo.o \
	$(OUT_DIR)/kinetic_operation.o \
	$(OUT_DIR)/kinetic_pdu.o \
	$(OUT_DIR)/kinetic_response.o \
	$(OUT_DIR)/kinetic_bus.o \
	$(OUT_DIR)/kinetic_auth.o \
	$(OUT_DIR)/kinetic_pdu_unpack.o \
	$(OUT_DIR)/kinetic_proto.o \
@@ -430,8 +431,15 @@ run: $(UTIL_EXEC)
	@echo --------------------------------------------------------------------------------
	@echo
	# $(UTIL_EXEC) instanterase
	$(UTIL_EXEC) noop
	exec $(UTIL_EXEC) put get delete
	exec $(UTIL_EXEC) --help
	exec $(UTIL_EXEC) -?
	exec $(UTIL_EXEC) --noop
	exec $(UTIL_EXEC) --put
	exec $(UTIL_EXEC) --get
	exec $(UTIL_EXEC) --getnext key ""
	exec $(UTIL_EXEC) --getprevious key ""
	exec $(UTIL_EXEC) --delete
	exec $(UTIL_EXEC) --getlog
	@echo
	@echo Test Utility integration tests w/ kinetic-c lib passed!
	@echo
+22 −18
Original line number Diff line number Diff line
@@ -79,7 +79,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
===========================
@@ -89,25 +89,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]`
    * `./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
    $ 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
=============================
+21 −10
Original line number Diff line number Diff line
v0.12.0 (kinetic-protocol 3.0.5)
--------------------------------
* Added new KineticAdminClient API (see include/kinetic_admin_client.h)
* `KineticSession` is now supplied as an opaque instance pointer from `KineticClient_CreateSession`
    * Passed `KineticClientConfig` is now deep copied and can be discarded after session creation.
* Updated KineticClient_Put to allow storing an object with an empty value with a NULL data pointer supplied.
* 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
        * `KineticClient_InstantSecureErase` => `KineticAdminClient_InstantErase`/`KineticAdminClient_SecureErase`
        * `KineticClient_GetLog` => `KineticAdminClient_GetLog`
        * `KineticClient_FreeDeviceInfo` => `KineticAdminClient_LogInfo`
* Updated `kinetic-c-util` to support new Admin API. Still need to add support for printing info returned from `KineticAdminClient_GetLog`
* Changed `kinetic-c-util` API to use `getopt_long` for operations in addition to parameters and added usage info via `--help`/`-?` option.
* Fixed potential memory leak when logging protocol buffers.
* 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)
--------------------------------

cleanhouse.diff

0 → 100644
+2582 −0

File added.

Preview size limit exceeded, changes collapsed.

+11 −12
Original line number Diff line number Diff line
@@ -194,18 +194,6 @@ void KineticAdminClient_FreeLogInfo(KineticSession const * const session,
KineticStatus KineticAdminClient_SetClusterVersion(KineticSession const * const session,
    int64_t version);

/**
 * @brief Executes a Firmware Download command to update the firmware on the Kinetic device.
 *
 * @param session       The connected KineticSession to use for the operation.
 * @param fw_path       Path to firmware update image file.
 *
 * @return              Returns the resulting KineticStatus.
 */
KineticStatus KineticAdminClient_UpdateFirmware(KineticSession const * const session,
    char const * const fw_path);


/**
 * @brief Executes a SECURITY operation, setting one or more ACLs.
 *
@@ -218,4 +206,15 @@ KineticStatus KineticAdminClient_UpdateFirmware(KineticSession const * const ses
KineticStatus KineticAdminClient_SetACL(KineticSession const * const session,
                                        const char *ACLPath);

/**
 * @brief Executes a Firmware Download operation to update the firmware on the Kinetic device.
 *
 * @param session       The connected KineticSession to use for the operation.
 * @param fw_path       Path to firmware update image file.
 *
 * @return              Returns the resulting KineticStatus.
 */
KineticStatus KineticAdminClient_UpdateFirmware(KineticSession const * const session,
    char const * const fw_path);

#endif // _KINETIC_ADMIN_CLIENT_H
Loading