From 8bf786c5dbd0a19132e439fc0800a613aa4fa544 Mon Sep 17 00:00:00 2001 From: Dariusz Michaluk Date: Tue, 25 Nov 2014 16:13:41 +0100 Subject: [PATCH] Added lock_domain/unlock_domain to cli [Feature] Ability to lock/unlock domain through cli [Cause] The need for the ability to lock/unlock domains [Solution] Add lock_domain/unlock_domain cli function [Verification] Build, install, run Change-Id: I4a017b328f0b44913f0561bd444e913c68f67359 Signed-off-by: Dariusz Michaluk --- cli/command-line-interface.cpp | 22 ++++++++++++++++++++++ cli/command-line-interface.hpp | 14 ++++++++++++++ cli/main.cpp | 16 ++++++++++++++++ 3 files changed, 52 insertions(+) diff --git a/cli/command-line-interface.cpp b/cli/command-line-interface.cpp index d027e63..0549afd 100644 --- a/cli/command-line-interface.cpp +++ b/cli/command-line-interface.cpp @@ -154,6 +154,28 @@ void create_domain(int pos, int argc, const char** argv) one_shot(bind(vsm_create_domain, _1, argv[pos + 1], nullptr)); } +void lock_domain(int pos, int argc, const char** argv) +{ + using namespace std::placeholders; + + if (argc <= pos + 1) { + throw runtime_error("Not enough parameters"); + } + + one_shot(bind(vsm_lock_domain, _1, argv[pos + 1])); +} + +void unlock_domain(int pos, int argc, const char** argv) +{ + using namespace std::placeholders; + + if (argc <= pos + 1) { + throw runtime_error("Not enough parameters"); + } + + one_shot(bind(vsm_unlock_domain, _1, argv[pos + 1])); +} + void lookup_domain_by_id(int pos, int argc, const char** argv) { using namespace std::placeholders; diff --git a/cli/command-line-interface.hpp b/cli/command-line-interface.hpp index c254d84..41f5048 100644 --- a/cli/command-line-interface.hpp +++ b/cli/command-line-interface.hpp @@ -111,6 +111,20 @@ void set_active_container(int pos, int argc, const char** argv); void create_domain(int pos, int argc, const char** argv); /** + * Parses command line arguments and call vsm_lock_domain + * + * @see vsm_lock_domain + */ +void lock_domain(int pos, int argc, const char** argv); + +/** + * Parses command line arguments and call vsm_unlock_domain + * + * @see vsm_unlock_domain + */ +void unlock_domain(int pos, int argc, const char** argv); + +/** * Parses command line arguments and call vsm_lookup_domain_by_id * * @see vsm_lookup_domain_by_id diff --git a/cli/main.cpp b/cli/main.cpp index d701475..774881b 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -50,6 +50,22 @@ std::map commands = { } }, { + "lock_domain", { + lock_domain, + "lock_domain container_id", + "Lock container", + {{"container_id", "id container name"}} + } + }, + { + "unlock_domain", { + unlock_domain, + "unlock_domain container_id", + "Unlock container", + {{"container_id", "id container name"}} + } + }, + { "lookup_domain_by_id", { lookup_domain_by_id, "lookup_domain_by_id container_id", -- 2.7.4