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
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");
/**
* @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
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)
*
* @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
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);
}