Add client stubs for domain image management 00/30300/1
authorMateusz Malicki <m.malicki2@samsung.com>
Fri, 14 Nov 2014 07:58:01 +0000 (08:58 +0100)
committerMateusz Malicki <m.malicki2@samsung.com>
Fri, 14 Nov 2014 08:04:00 +0000 (09:04 +0100)
[Bug/Feature]   Client stubs for domain image management
[Cause]         N/A
[Solution]      N/A
[Verification]  Build

Change-Id: I1e193a41b86d75333ed8dc0f165c42e52a1c16f9

cli/command-line-interface.cpp
client/security-containers-client-impl.cpp
client/security-containers-client-impl.hpp
client/security-containers-client.cpp
client/security-containers-client.h
tests/unit_tests/client/ut-client.cpp

index 8af17a7..f3768d0 100644 (file)
@@ -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
index a98349a..205a8b2 100644 (file)
@@ -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");
index 592771d..48e1c19 100644 (file)
@@ -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
index 6616c80..e867a9e 100644 (file)
@@ -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)
index 8afc67b..6419870 100644 (file)
@@ -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
index f26dbf3..3a5e0e6 100644 (file)
@@ -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);
 }