From a95a15f6b39abffd117038949dda0a208ac8f6f9 Mon Sep 17 00:00:00 2001 From: Mateusz Malicki Date: Fri, 14 Nov 2014 08:58:01 +0100 Subject: [PATCH] Add client stubs for domain image management [Bug/Feature] Client stubs for domain image management [Cause] N/A [Solution] N/A [Verification] Build Change-Id: I1e193a41b86d75333ed8dc0f165c42e52a1c16f9 --- cli/command-line-interface.cpp | 2 +- client/security-containers-client-impl.cpp | 12 +++++++++++- client/security-containers-client-impl.hpp | 7 ++++++- client/security-containers-client.cpp | 9 +++++++-- client/security-containers-client.h | 13 ++++++++++++- tests/unit_tests/client/ut-client.cpp | 2 +- 6 files changed, 38 insertions(+), 7 deletions(-) diff --git a/cli/command-line-interface.cpp b/cli/command-line-interface.cpp index 8af17a7..f3768d0 100644 --- a/cli/command-line-interface.cpp +++ b/cli/command-line-interface.cpp @@ -119,7 +119,7 @@ void create_domain(int pos, int argc, const char** argv) throw runtime_error("Not enough parameters"); } - one_shot(bind(vsm_create_domain, _1, argv[pos + 1])); + one_shot(bind(vsm_create_domain, _1, argv[pos + 1], nullptr)); } } // namespace cli diff --git a/client/security-containers-client-impl.cpp b/client/security-containers-client-impl.cpp index a98349a..205a8b2 100644 --- a/client/security-containers-client-impl.cpp +++ b/client/security-containers-client-impl.cpp @@ -380,14 +380,24 @@ VsmStatus Client::vsm_set_active_container(const char* id) noexcept return callMethod(HOST_INTERFACE, api::host::METHOD_SET_ACTIVE_CONTAINER, args_in); } -VsmStatus Client::vsm_create_domain(const char* id) noexcept +VsmStatus Client::vsm_create_domain(const char* id, const char* tname) noexcept { assert(id); + if (tname) { + mStatus = Status(VSMCLIENT_OTHER_ERROR, "Named template isn't implemented"); + return vsm_get_status(); + } GVariant* args_in = g_variant_new("(s)", id); return callMethod(HOST_INTERFACE, api::host::METHOD_ADD_CONTAINER, args_in); } +VsmStatus Client::vsm_destroy_domain(const char*) noexcept +{ + mStatus = Status(VSMCLIENT_OTHER_ERROR, "Not implemented"); + return vsm_get_status(); +} + VsmStatus Client::vsm_shutdown_domain(const char*) noexcept { mStatus = Status(VSMCLIENT_OTHER_ERROR, "Not implemented"); diff --git a/client/security-containers-client-impl.hpp b/client/security-containers-client-impl.hpp index 592771d..48e1c19 100644 --- a/client/security-containers-client-impl.hpp +++ b/client/security-containers-client-impl.hpp @@ -141,7 +141,12 @@ public: /** * @see ::vsm_create_domain */ - VsmStatus vsm_create_domain(const char* id) noexcept; + VsmStatus vsm_create_domain(const char* id, const char* tname) noexcept; + + /** + * @see ::vsm_destroy_domain + */ + VsmStatus vsm_destroy_domain(const char* id) noexcept; /** * @see ::vsm_shutdown_domain diff --git a/client/security-containers-client.cpp b/client/security-containers-client.cpp index 6616c80..e867a9e 100644 --- a/client/security-containers-client.cpp +++ b/client/security-containers-client.cpp @@ -153,9 +153,14 @@ API VsmStatus vsm_set_active_container(VsmClient client, const char* id) return getClient(client).vsm_set_active_container(id); } -API VsmStatus vsm_create_domain(VsmClient client, const char* id) +API VsmStatus vsm_create_domain(VsmClient client, const char* id, const char* tname) { - return getClient(client).vsm_create_domain(id); + return getClient(client).vsm_create_domain(id, tname); +} + +API VsmStatus vsm_destroy_domain(VsmClient client, const char* id) +{ + return getClient(client).vsm_destroy_domain(id); } API VsmStatus vsm_shutdown_domain(VsmClient client, const char* id) diff --git a/client/security-containers-client.h b/client/security-containers-client.h index 8afc67b..6419870 100644 --- a/client/security-containers-client.h +++ b/client/security-containers-client.h @@ -367,9 +367,20 @@ VsmStatus vsm_set_active_container(VsmClient client, const char* id); * * @param[in] client security-containers-server's client * @param[in] id container id + * @param[in] tname template name, NULL for default * @return status of this function call */ -VsmStatus vsm_create_domain(VsmClient client, const char* id); +VsmStatus vsm_create_domain(VsmClient client, const char* id, const char* tname); + +/** + * Remove domain + * + * @param[in] client security-containers-server's client + * @param[in] id container id + * @param[in] force if 0 data will be kept, otherwise data will be lost + * @return status of this function call + */ +VsmStatus vsm_destroy_domain(VsmStatus clent, const char* id, int force); /** * Shutdown domain diff --git a/tests/unit_tests/client/ut-client.cpp b/tests/unit_tests/client/ut-client.cpp index f26dbf3..3a5e0e6 100644 --- a/tests/unit_tests/client/ut-client.cpp +++ b/tests/unit_tests/client/ut-client.cpp @@ -208,7 +208,7 @@ BOOST_AUTO_TEST_CASE(AddContainerTest) VsmClient client = vsm_client_create(); VsmStatus status = vsm_connect(client); BOOST_REQUIRE_EQUAL(VSMCLIENT_SUCCESS, status); - status = vsm_create_domain(client, newActiveContainerId.c_str()); + status = vsm_create_domain(client, newActiveContainerId.c_str(), NULL); BOOST_REQUIRE_EQUAL(VSMCLIENT_CUSTOM_ERROR, status); vsm_client_free(client); } -- 2.7.4