From 17ebae30eab7530460afee437b56c8ef59e8e0b5 Mon Sep 17 00:00:00 2001 From: Mateusz Malicki Date: Mon, 20 Oct 2014 09:34:33 +0200 Subject: [PATCH] Added sc_add_container to security-container's client [Feature] Ability to add container through SCS client [Cause] Cli need this [Solution] Add sc_add_container client function [Verification] Build, install, run Client/AddContainerTest test Change-Id: Ie0179cb02bdf1946fb9f8d2fd2f3c303cda401fe --- client/security-containers-client-impl.cpp | 8 ++++++++ client/security-containers-client-impl.hpp | 5 +++++ client/security-containers-client.cpp | 5 +++++ client/security-containers-client.h | 9 +++++++++ tests/unit_tests/client/ut-client.cpp | 12 ++++++++++++ 5 files changed, 39 insertions(+) diff --git a/client/security-containers-client-impl.cpp b/client/security-containers-client-impl.cpp index a2c51ba..95418b9 100644 --- a/client/security-containers-client-impl.cpp +++ b/client/security-containers-client-impl.cpp @@ -353,6 +353,14 @@ ScStatus Client::sc_set_active_container(const char* id) noexcept return callMethod(HOST_INTERFACE, api::host::METHOD_SET_ACTIVE_CONTAINER, args_in); } +ScStatus Client::sc_add_container(const char* id) noexcept +{ + assert(id); + + GVariant* args_in = g_variant_new("(s)", id); + return callMethod(HOST_INTERFACE, api::host::METHOD_ADD_CONTAINER, args_in); +} + ScStatus Client::sc_container_dbus_state(ScContainerDbusStateCallback containerDbusStateCallback, void* data) noexcept { diff --git a/client/security-containers-client-impl.hpp b/client/security-containers-client-impl.hpp index f1bfacb..3f5a556 100644 --- a/client/security-containers-client-impl.hpp +++ b/client/security-containers-client-impl.hpp @@ -127,6 +127,11 @@ public: ScStatus sc_set_active_container(const char* id) noexcept; /** + * @see ::sc_add_container + */ + ScStatus sc_add_container(const char* id) noexcept; + + /** * @see ::sc_container_dbus_state */ ScStatus sc_container_dbus_state(ScContainerDbusStateCallback containerDbusStateCallback, diff --git a/client/security-containers-client.cpp b/client/security-containers-client.cpp index cb22544..95c2758 100644 --- a/client/security-containers-client.cpp +++ b/client/security-containers-client.cpp @@ -131,6 +131,11 @@ API ScStatus sc_set_active_container(ScClient client, const char* id) return getClient(client).sc_set_active_container(id); } +API ScStatus sc_add_container(ScClient client, const char* id) +{ + return getClient(client).sc_add_container(id); +} + API ScStatus sc_container_dbus_state(ScClient client, ScContainerDbusStateCallback containerDbusStateCallback, void* data) diff --git a/client/security-containers-client.h b/client/security-containers-client.h index 4d37c3c..1307cb5 100644 --- a/client/security-containers-client.h +++ b/client/security-containers-client.h @@ -267,6 +267,15 @@ ScStatus sc_get_container_id_by_pid(ScClient client, int pid, ScString* id); ScStatus sc_set_active_container(ScClient client, const char* id); /** + * Create and add container + * + * @param[in] client security-containers-server's client + * @param[in] id container id + * @return status of this function call + */ +ScStatus sc_add_container(ScClient client, const char* id); + +/** * Register dbus state change callback function. * * @note The callback function will be invoked on a different thread. diff --git a/tests/unit_tests/client/ut-client.cpp b/tests/unit_tests/client/ut-client.cpp index 574be39..5db6962 100644 --- a/tests/unit_tests/client/ut-client.cpp +++ b/tests/unit_tests/client/ut-client.cpp @@ -188,6 +188,18 @@ BOOST_AUTO_TEST_CASE(SetActiveContainerTest) sc_client_free(client); } +BOOST_AUTO_TEST_CASE(AddContainerTest) +{ + const std::string newActiveContainerId = ""; + + ScClient client = sc_client_create(); + ScStatus status = sc_connect(client); + BOOST_REQUIRE_EQUAL(SCCLIENT_SUCCESS, status); + status = sc_add_container(client, newActiveContainerId.c_str()); + BOOST_REQUIRE_EQUAL(SCCLIENT_CUSTOM_ERROR, status); + sc_client_free(client); +} + BOOST_AUTO_TEST_CASE(FileMoveRequestTest) { const std::string path = "/tmp/fake_path"; -- 2.7.4