@@ -70,11 +70,11 @@ Task_container::Task_container(std::vector<std::shared_ptr<Task>> tasks, bool co
7070
7171std::string Task_container::type (bool enable_result_format) const
7272{
73- std::array<std::string, 7 > types;
73+ std::array<std::string, 8 > types;
7474 if (enable_result_format)
75- types = {{" vm started" , " vm stopped" , " vm migrated" , " vm repinned" , " vm suspended" , " vm resumed" , " quit" }};
75+ types = {{" vm started" , " vm stopped" , " vm migrated" , " node evacuated " " vm repinned" , " vm suspended" , " vm resumed" , " quit" }};
7676 else
77- types = {{" start vm" , " stop vm" , " migrate vm" , " repin vm" , " suspend vm" , " resume vm" , " quit" }};
77+ types = {{" start vm" , " stop vm" , " migrate vm" , " evacuate node " , " repin vm" , " suspend vm" , " resume vm" , " quit" }};
7878 if (tasks.empty ())
7979 throw std::runtime_error (" No subtasks available to get type." );
8080 else if (std::dynamic_pointer_cast<Start>(tasks.front ()))
@@ -83,14 +83,16 @@ std::string Task_container::type(bool enable_result_format) const
8383 return types[1 ];
8484 else if (std::dynamic_pointer_cast<Migrate>(tasks.front ()))
8585 return types[2 ];
86- else if (std::dynamic_pointer_cast<Repin >(tasks.front ()))
86+ else if (std::dynamic_pointer_cast<Evacuate >(tasks.front ()))
8787 return types[3 ];
88- else if (std::dynamic_pointer_cast<Suspend >(tasks.front ()))
88+ else if (std::dynamic_pointer_cast<Repin >(tasks.front ()))
8989 return types[4 ];
90- else if (std::dynamic_pointer_cast<Resume >(tasks.front ()))
90+ else if (std::dynamic_pointer_cast<Suspend >(tasks.front ()))
9191 return types[5 ];
92- else if (std::dynamic_pointer_cast<Quit >(tasks.front ()))
92+ else if (std::dynamic_pointer_cast<Resume >(tasks.front ()))
9393 return types[6 ];
94+ else if (std::dynamic_pointer_cast<Quit>(tasks.front ()))
95+ return types[7 ];
9496 else
9597 throw std::runtime_error (" Unknown type of Task." );
9698
@@ -104,6 +106,8 @@ YAML::Node Task_container::emit() const
104106 node[" task" ] = type_str;
105107 if (type_str == " migrate vm" ) {
106108 merge_node (node, tasks.front ()->emit ());
109+ } else if (type_str == " evacuate node" ) {
110+ merge_node (node, tasks.front ()->emit ());
107111 } else if (type_str == " repin vm" ) {
108112 merge_node (node, tasks.front ()->emit ());
109113 } else if (type_str == " start vm" ) {
@@ -143,6 +147,13 @@ static std::vector<std::shared_ptr<Task>> load_migrate_task(const YAML::Node &no
143147 return std::vector<std::shared_ptr<Task>>(1 , migrate_task);
144148}
145149
150+ static std::vector<std::shared_ptr<Task>> load_evacuate_task (const YAML::Node &node)
151+ {
152+ std::shared_ptr<Evacuate> evacuate_task;
153+ fast::load (evacuate_task, node);
154+ return std::vector<std::shared_ptr<Task>>(1 , evacuate_task);
155+ }
156+
146157static std::vector<std::shared_ptr<Task>> load_repin_task (const YAML::Node &node)
147158{
148159 std::shared_ptr<Repin> repin_task;
@@ -185,6 +196,8 @@ void Task_container::load(const YAML::Node &node)
185196 tasks = load_stop_task (node);
186197 } else if (type == " migrate vm" ) {
187198 tasks = load_migrate_task (node);
199+ } else if (type == " evacuate node" ) {
200+ tasks = load_evacuate_task (node);
188201 } else if (type == " repin vm" ) {
189202 tasks = load_repin_task (node);
190203 } else if (type == " suspend vm" ) {
0 commit comments