fhq-server  v0.2.33
Documentation for fhq-server. FreeHackQuest is an open source platform for competitions of computer security.
cmd_handlers_lxd.h
Go to the documentation of this file.
1 #ifndef CMD_HADNLERS_LXD_H
2 #define CMD_HADNLERS_LXD_H
3 
4 #include <cmd_handlers.h>
5 #include <model_lxd_orchestra.h>
6 
7 /*********************************************
8  * Any actions with the container. Actions: create, start, stop and delete container
9 **********************************************/
10 
12 
13 public:
15  virtual void handle(ModelRequest *pRequest);
16 
17 private:
18  std::string TAG;
19 
20  static void create_container(const std::string &name, std::string &sError, int &nErrorCode);
21  static void start_container(const std::string &name, std::string &sError, int &nErrorCode);
22  static void stop_container(const std::string &name, std::string &sError, int &nErrorCode);
23  static void delete_container(const std::string &name, std::string &sError, int &nErrorCode);
24 };
25 
27 
28 /*********************************************
29  * Get information about the orhestra, containers.
30 **********************************************/
31 
33 
34 public:
36  virtual void handle(ModelRequest *pRequest);
37  bool get_state(const std::string& sName, std::string &sError, int &nErrorCode, nlohmann::json &jsonState);
38 };
39 
41 
42 /*********************************************
43  * Get information about all containers.
44 **********************************************/
45 
47 
48 public:
50  virtual void handle(ModelRequest *pRequest);
51 };
52 
54 
55 /*********************************************
56  * Execute the command in container.
57 **********************************************/
58 
60 
61 public:
63  void handle(ModelRequest *pRequest) override;
64 
65  static bool exec_command(const std::string &sName, const std::string &sCommand, std::string &sError,
66  int &nErrorCode, std::string &sOutput);
67 };
68 
70 
71 /*********************************************
72  * Action with files in container.
73 **********************************************/
74 
76 
77 public:
79  void handle(ModelRequest *pRequest) override;
80 
81  void pull_file(LXDContainer *pContainer, const std::string &sPath, std::string &sb64File,
82  std::string &sError, int &nErrorCode, bool &isDirectory);
83  bool push_file(LXDContainer *pContainer, const std::string &sPath, const std::string &sb64File,
84  std::string &sError, int &nErrorCode);
85  bool delete_file(const std::string &sName, const std::string &sPath, std::string &s_b64Zip);
86 
87 };
88 
90 
91 /*********************************************
92  * Open container port.
93 **********************************************/
94 
96 
97 public:
99  void handle(ModelRequest *pRequest) override;
100  bool is_port_valide(const std::string &sProto, const int &nPort, std::string &sError,
101  int &nErrorCode);
102 
103 };
104 
106 
107 /*********************************************
108  * Import container configuration from json.
109 **********************************************/
110 
112 
113 public:
115  void handle(ModelRequest *pRequest) override;
116 };
117 
119 
120 
121 /*********************************************
122  * Import container configuration from zip archive.
123 **********************************************/
124 
126 
127 public:
129  void handle(ModelRequest *pRequest) override;
130 };
131 
133 
134 
135 /*********************************************
136  * Start service.
137 **********************************************/
138 
140 
141 public:
143  void handle(ModelRequest *pRequest) override;
144 };
145 
147 
148 #endif // CMD_HADNLERS_LXD_H
Definition: cmd_handlers_lxd.h:32
static void create_container(const std::string &name, std::string &sError, int &nErrorCode)
Definition: cmd_handlers_lxd.cpp:75
Definition: cmd_handlers.h:160
static void start_container(const std::string &name, std::string &sError, int &nErrorCode)
Definition: cmd_handlers_lxd.cpp:100
Definition: cmd_handlers_lxd.h:95
CmdHandlerLXDContainers()
Definition: cmd_handlers_lxd.cpp:21
Definition: cmd_handlers_lxd.h:111
Definition: cmd_handlers_lxd.h:75
Definition: cmd_handlers_lxd.h:11
virtual void handle(ModelRequest *pRequest)
Definition: cmd_handlers_lxd.cpp:38
static void delete_container(const std::string &name, std::string &sError, int &nErrorCode)
Definition: cmd_handlers_lxd.cpp:148
Definition: cmd_handlers_lxd.h:139
Definition: cmd_handlers_lxd.h:125
static void stop_container(const std::string &name, std::string &sError, int &nErrorCode)
Definition: cmd_handlers_lxd.cpp:124
Definition: model_lxd_orchestra.h:26
#define REGISTRY_CMD(classname)
Definition: cmd_handlers.h:265
Definition: cmd_handlers_lxd.h:59
Api handler Base.
Definition: cmd_handlers.h:202
Definition: cmd_handlers_lxd.h:46
std::string TAG
Definition: cmd_handlers_lxd.h:18