@@ -22,6 +22,17 @@ Agent::~Agent()
22
22
23
23
void Agent::Run ()
24
24
{
25
+ // add some test command to the queue
26
+ // const nlohmann::json dataContent = {{"command", {{"name", "001"}, {"type", "stateless"}}},
27
+ // {"origin", {{"serverName", "node01"}, {"moduleName", "upgradeModule"}}},
28
+ // {"parameters", {{"error", 0}, {"data", "Command received"}}},
29
+ // {"status", "Pending"}};
30
+ //
31
+
32
+ const nlohmann::json dataContent = {{" command" , " upgradeModule" }, {" status" , " Pending" }};
33
+ const Message messageToSend {MessageType::COMMAND, dataContent, " CommandManager" };
34
+ m_agentQueue.push (messageToSend);
35
+
25
36
m_taskManager.EnqueueTask (m_communicator.WaitForTokenExpirationAndAuthenticate ());
26
37
27
38
m_taskManager.EnqueueTask (m_communicator.GetCommandsFromManager (
@@ -42,7 +53,44 @@ void Agent::Run()
42
53
{
43
54
return std::nullopt;
44
55
}
45
- return m_agentQueue.getNext (MessageType::COMMAND);
56
+ Message m = m_agentQueue.getNext (MessageType::COMMAND);
57
+
58
+ std::cout << " COMMAND retrieved from Queue:" << std::endl;
59
+
60
+ // pop message from queue
61
+ m_agentQueue.pop (MessageType::COMMAND);
62
+
63
+ nlohmann::json jdata = m.data .at (0 );
64
+ for (auto & [key, value] : jdata.items ())
65
+ {
66
+ std::cout << key << " : " << value << std::endl;
67
+ }
68
+
69
+ std::cout << " Data inside data:" << std::endl;
70
+
71
+ nlohmann::json jdataData = m.data .at (0 ).at (" data" );
72
+ for (auto & [key, value] : jdataData.items ())
73
+ {
74
+ std::cout << key << " : " << value << std::endl;
75
+ }
76
+
77
+ // change status and push again
78
+ // if (jdataData.at("status") == "Pending")
79
+ // {
80
+ // std::cout << "Message status is Pending. Updating status and pushing back." << std::endl;
81
+ // jdataData["status"] = "InProcess";
82
+ // Message newMessage(MessageType::COMMAND, jdataData, "CommandManager");
83
+ // // m_agentQueue.push(newMessage);
84
+ // // return m;
85
+ // }
86
+
87
+ return m;
88
+ },
89
+ [this ](Message& cmd) -> int
90
+ {
91
+ std::cout << " Dispatching command" << std::endl;
92
+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
93
+ return 1 ;
46
94
}));
47
95
48
96
m_signalHandler.WaitForSignal ();
0 commit comments