Loading Makefile +5 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ $(KINETIC_LIB): $(LIB_OBJS) ar -rcs $@ $(LIB_OBJS) ar -t $@ UTIL_OBJS = $(OUT_DIR)/noop.o $(OUT_DIR)/put.o $(OUT_DIR)/get.o UTIL_OBJS = $(OUT_DIR)/noop.o $(OUT_DIR)/put.o $(OUT_DIR)/get.o $(OUT_DIR)/delete.o UTIL_INCS = -I/usr/local/include -I$(UTIL_DIR) # TODO: Delete LIB_DIR dep after kinetic_proto is yanked out of public API LDFLAGS += -lm -l kinetic-c-client -l crypto -l ssl Loading @@ -83,6 +83,8 @@ $(OUT_DIR)/put.o: $(UTIL_EX)/put.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(OUT_DIR)/get.o: $(UTIL_EX)/get.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(OUT_DIR)/delete.o: $(UTIL_EX)/delete.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(UTIL_EXEC): $(UTIL_DIR)/main.c $(UTIL_OBJS) ${CC} -o $@ $< $(UTIL_OBJS) $(UTIL_INCS) ${CFLAGS} ${LDFLAGS} Loading @@ -96,6 +98,7 @@ SIM_RUNNER = com.seagate.kinetic.simulator.internal.SimulatorRunner SIM_ADMIN = com.seagate.kinetic.admin.cli.KineticAdminCLI run: ${UTIL_EXEC} sleep 2 echo Running Executable ${UTIL_EXEC}: exec java -classpath "${CLASSPATH}" ${SIM_RUNNER} "$@" & > ./sim.log sleep 5 Loading @@ -103,6 +106,7 @@ run: ${UTIL_EXEC} ${UTIL_EXEC} noop ${UTIL_EXEC} put ${UTIL_EXEC} get ${UTIL_EXEC} delete all: clean test default install run Loading README.md +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ Getting Started > make > sudo make install **You can all clean and uninstall old versions** > make clean > sudo uninstall **Build example utility and run tests against Kinetic Device simulator** > make run Loading Rakefile +10 −0 Original line number Diff line number Diff line Loading @@ -322,6 +322,7 @@ namespace :tests do 'tests:utility:noop', 'tests:utility:put', 'tests:utility:get', 'tests:utility:delete', ] namespace :utility do Loading Loading @@ -361,6 +362,15 @@ namespace :tests do end end task :delete => ['release', 'ruby_sim:shutdown'] do java_sim_erase_drive with_test_server("Testing Get operation") do execute_command "./kinetic-c put" execute_command "./kinetic-c get" execute_command "./kinetic-c delete" end end end end Loading include/kinetic_client.h +15 −2 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ KineticOperation KineticClient_CreateOperation( KineticStatus KineticClient_NoOp(KineticOperation* operation); /** * @brief Executes a PUT command to write data to the Kinetic Device * @brief Executes a PUT command to store/update an entry on the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to store. 'value' must Loading @@ -96,7 +96,7 @@ KineticStatus KineticClient_Put(KineticOperation* operation, const KineticKeyValue* metadata); /** * @brief Executes a GET command to read data from the Kinetic Device * @brief Executes a GET command to retrieve and entry from the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to retrieve. 'value' will Loading @@ -108,4 +108,17 @@ KineticStatus KineticClient_Put(KineticOperation* operation, KineticStatus KineticClient_Get(KineticOperation* operation, KineticKeyValue* metadata); /** * @brief Executes a DELETE command to delete an entry from the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to delete. 'value' is * not used for this operation. * * @return Returns 0 upon succes, -1 or the Kinetic status code * upon failure */ KineticStatus KineticClient_Delete(KineticOperation* operation, KineticKeyValue* metadata); #endif // _KINETIC_CLIENT_H src/lib/kinetic_client.c +23 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,29 @@ KineticStatus KineticClient_Get(KineticOperation* operation, return status; } KineticStatus KineticClient_Delete(KineticOperation* operation, KineticKeyValue* metadata) { assert(operation->connection != NULL); assert(operation->request != NULL); assert(operation->response != NULL); assert(metadata != NULL); assert(metadata->key.data != NULL); assert(metadata->key.len > 0); // Initialize request KineticOperation_BuildDelete(operation, metadata); // Execute the operation KineticStatus status = KineticClient_ExecuteOperation(operation); // Zero out value length for all DELETE operations operation->response->value.len = 0; metadata->value.len = 0; return status; } KineticStatus KineticClient_ExecuteOperation(KineticOperation* operation) { KineticStatus status = KINETIC_STATUS_INVALID; Loading Loading
Makefile +5 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ $(KINETIC_LIB): $(LIB_OBJS) ar -rcs $@ $(LIB_OBJS) ar -t $@ UTIL_OBJS = $(OUT_DIR)/noop.o $(OUT_DIR)/put.o $(OUT_DIR)/get.o UTIL_OBJS = $(OUT_DIR)/noop.o $(OUT_DIR)/put.o $(OUT_DIR)/get.o $(OUT_DIR)/delete.o UTIL_INCS = -I/usr/local/include -I$(UTIL_DIR) # TODO: Delete LIB_DIR dep after kinetic_proto is yanked out of public API LDFLAGS += -lm -l kinetic-c-client -l crypto -l ssl Loading @@ -83,6 +83,8 @@ $(OUT_DIR)/put.o: $(UTIL_EX)/put.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(OUT_DIR)/get.o: $(UTIL_EX)/get.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(OUT_DIR)/delete.o: $(UTIL_EX)/delete.c $(CC) -c -o $@ $< $(CFLAGS) $(UTIL_INCS) $(UTIL_EXEC): $(UTIL_DIR)/main.c $(UTIL_OBJS) ${CC} -o $@ $< $(UTIL_OBJS) $(UTIL_INCS) ${CFLAGS} ${LDFLAGS} Loading @@ -96,6 +98,7 @@ SIM_RUNNER = com.seagate.kinetic.simulator.internal.SimulatorRunner SIM_ADMIN = com.seagate.kinetic.admin.cli.KineticAdminCLI run: ${UTIL_EXEC} sleep 2 echo Running Executable ${UTIL_EXEC}: exec java -classpath "${CLASSPATH}" ${SIM_RUNNER} "$@" & > ./sim.log sleep 5 Loading @@ -103,6 +106,7 @@ run: ${UTIL_EXEC} ${UTIL_EXEC} noop ${UTIL_EXEC} put ${UTIL_EXEC} get ${UTIL_EXEC} delete all: clean test default install run Loading
README.md +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ Getting Started > make > sudo make install **You can all clean and uninstall old versions** > make clean > sudo uninstall **Build example utility and run tests against Kinetic Device simulator** > make run Loading
Rakefile +10 −0 Original line number Diff line number Diff line Loading @@ -322,6 +322,7 @@ namespace :tests do 'tests:utility:noop', 'tests:utility:put', 'tests:utility:get', 'tests:utility:delete', ] namespace :utility do Loading Loading @@ -361,6 +362,15 @@ namespace :tests do end end task :delete => ['release', 'ruby_sim:shutdown'] do java_sim_erase_drive with_test_server("Testing Get operation") do execute_command "./kinetic-c put" execute_command "./kinetic-c get" execute_command "./kinetic-c delete" end end end end Loading
include/kinetic_client.h +15 −2 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ KineticOperation KineticClient_CreateOperation( KineticStatus KineticClient_NoOp(KineticOperation* operation); /** * @brief Executes a PUT command to write data to the Kinetic Device * @brief Executes a PUT command to store/update an entry on the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to store. 'value' must Loading @@ -96,7 +96,7 @@ KineticStatus KineticClient_Put(KineticOperation* operation, const KineticKeyValue* metadata); /** * @brief Executes a GET command to read data from the Kinetic Device * @brief Executes a GET command to retrieve and entry from the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to retrieve. 'value' will Loading @@ -108,4 +108,17 @@ KineticStatus KineticClient_Put(KineticOperation* operation, KineticStatus KineticClient_Get(KineticOperation* operation, KineticKeyValue* metadata); /** * @brief Executes a DELETE command to delete an entry from the Kinetic Device * * @param operation KineticOperation instance to use for the operation * @param metadata Key/value metadata for object to delete. 'value' is * not used for this operation. * * @return Returns 0 upon succes, -1 or the Kinetic status code * upon failure */ KineticStatus KineticClient_Delete(KineticOperation* operation, KineticKeyValue* metadata); #endif // _KINETIC_CLIENT_H
src/lib/kinetic_client.c +23 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,29 @@ KineticStatus KineticClient_Get(KineticOperation* operation, return status; } KineticStatus KineticClient_Delete(KineticOperation* operation, KineticKeyValue* metadata) { assert(operation->connection != NULL); assert(operation->request != NULL); assert(operation->response != NULL); assert(metadata != NULL); assert(metadata->key.data != NULL); assert(metadata->key.len > 0); // Initialize request KineticOperation_BuildDelete(operation, metadata); // Execute the operation KineticStatus status = KineticClient_ExecuteOperation(operation); // Zero out value length for all DELETE operations operation->response->value.len = 0; metadata->value.len = 0; return status; } KineticStatus KineticClient_ExecuteOperation(KineticOperation* operation) { KineticStatus status = KINETIC_STATUS_INVALID; Loading