Skip to content

Commit e3b973f

Browse files
committed
common: cloudprotocol: move unit status to cloudprotocol
This patch moves unit status structure to the cloudprotocol module and updates unit status structure usages in source code. Signed-off-by: Mykhailo Lohvynenko <mykhailo_lohvynenko@epam.com>
1 parent 20c54e7 commit e3b973f

10 files changed

Lines changed: 113 additions & 43 deletions

File tree

include/aos/common/cloudprotocol/cloudmessage.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "aos/common/cloudprotocol/alerts.hpp"
1111
#include "aos/common/cloudprotocol/certificates.hpp"
1212
#include "aos/common/cloudprotocol/cloudprotocol.hpp"
13+
#include "aos/common/cloudprotocol/desiredstatus.hpp"
1314
#include "aos/common/cloudprotocol/envvars.hpp"
1415
#include "aos/common/cloudprotocol/log.hpp"
1516
#include "aos/common/cloudprotocol/monitoring.hpp"
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
* Copyright (C) 2025 EPAM Systems, Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#ifndef AOS_CLOUDPROTOCOL_DESIREDSTATUS_HPP_
8+
#define AOS_CLOUDPROTOCOL_DESIREDSTATUS_HPP_
9+
10+
#include "aos/common/cloudprotocol/cloudprotocol.hpp"
11+
#include "aos/common/types.hpp"
12+
13+
namespace aos::cloudprotocol {
14+
15+
/**
16+
* Node config.
17+
*/
18+
struct NodeConfig {
19+
StaticString<cNodeTypeLen> mNodeType;
20+
StaticString<cNodeIDLen> mNodeID;
21+
Optional<AlertRules> mAlertRules;
22+
Optional<ResourceRatios> mResourceRatios;
23+
StaticArray<DeviceInfo, cMaxNumNodeDevices> mDevices;
24+
StaticArray<ResourceInfo, cMaxNumNodeResources> mResources;
25+
StaticArray<StaticString<cLabelNameLen>, cMaxNumNodeLabels> mLabels;
26+
size_t mPriority {0};
27+
28+
/**
29+
* Compares node configs.
30+
*
31+
* @param nodeConfig node config to compare.
32+
* @return bool.
33+
*/
34+
bool operator==(const NodeConfig& nodeConfig) const
35+
{
36+
return mNodeType == nodeConfig.mNodeType && mNodeID == nodeConfig.mNodeID
37+
&& mAlertRules == nodeConfig.mAlertRules && mResourceRatios == nodeConfig.mResourceRatios
38+
&& mDevices == nodeConfig.mDevices && mResources == nodeConfig.mResources && mLabels == nodeConfig.mLabels
39+
&& mPriority == nodeConfig.mPriority;
40+
}
41+
42+
/**
43+
* Compares node configs.
44+
*
45+
* @param nodeConfig node config to compare.
46+
* @return bool.
47+
*/
48+
bool operator!=(const NodeConfig& nodeConfig) const { return !operator==(nodeConfig); }
49+
};
50+
51+
struct UnitConfig {
52+
StaticString<cVersionLen> mVersion;
53+
StaticString<cVersionLen> mFormatVersion;
54+
StaticArray<NodeConfig, cMaxNumNodes> mNodes;
55+
56+
/**
57+
* Compares unit config.
58+
*
59+
* @param other object to compare with.
60+
* @return bool.
61+
*/
62+
bool operator==(const UnitConfig& other) const
63+
{
64+
return mVersion == other.mVersion && mFormatVersion == other.mFormatVersion && mNodes == other.mNodes;
65+
}
66+
67+
/**
68+
* Compares unit config.
69+
*
70+
* @param other object to compare with.
71+
* @return bool.
72+
*/
73+
bool operator!=(const UnitConfig& other) const { return !operator==(other); }
74+
};
75+
76+
/**
77+
* Desired status message
78+
*/
79+
struct DesiredStatus {
80+
Optional<UnitConfig> mUnitConfig;
81+
82+
/**
83+
* Compares desired status.
84+
*
85+
* @param other object to compare with.
86+
* @return bool.
87+
*/
88+
bool operator==(const DesiredStatus& other) const { return mUnitConfig == other.mUnitConfig; }
89+
90+
/**
91+
* Compares desired status.
92+
*
93+
* @param other object to compare with.
94+
* @return bool.
95+
*/
96+
bool operator!=(const DesiredStatus& other) const { return !operator==(other); }
97+
};
98+
99+
} // namespace aos::cloudprotocol
100+
101+
#endif

include/aos/common/monitoring/resourcemonitor.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class ResourceMonitor : public ResourceMonitorItf,
128128
Error SetupAlerts(
129129
const ResourceIdentifier identifierTemplate, const AlertRules& rules, Array<AlertProcessor>& alertProcessors);
130130

131-
Error SetupSystemAlerts(const NodeConfig& nodeConfig);
131+
Error SetupSystemAlerts(const cloudprotocol::NodeConfig& nodeConfig);
132132
Error SetupInstanceAlerts(const String& instanceID, const InstanceMonitorParams& instanceParams);
133133
void NormalizeMonitoringData();
134134
void ProcessMonitoring();

include/aos/common/types.hpp

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,39 +1161,6 @@ struct ResourceRatios {
11611161
bool operator!=(const ResourceRatios& ratios) const { return !operator==(ratios); }
11621162
};
11631163

1164-
/**
1165-
* Node config.
1166-
*/
1167-
struct NodeConfig {
1168-
StaticString<cNodeTypeLen> mNodeType;
1169-
StaticArray<DeviceInfo, cMaxNumNodeDevices> mDevices;
1170-
StaticArray<ResourceInfo, cMaxNumNodeResources> mResources;
1171-
StaticArray<StaticString<cLabelNameLen>, cMaxNumNodeLabels> mLabels;
1172-
uint32_t mPriority {0};
1173-
Optional<AlertRules> mAlertRules;
1174-
Optional<ResourceRatios> mResourceRatios;
1175-
1176-
/**
1177-
* Compares node configs.
1178-
*
1179-
* @param nodeConfig node config to compare.
1180-
* @return bool.
1181-
*/
1182-
bool operator==(const NodeConfig& nodeConfig) const
1183-
{
1184-
return mNodeType == nodeConfig.mNodeType && mDevices == nodeConfig.mDevices
1185-
&& mResources == nodeConfig.mResources && mLabels == nodeConfig.mLabels && mPriority == nodeConfig.mPriority
1186-
&& mAlertRules == nodeConfig.mAlertRules && mResourceRatios == nodeConfig.mResourceRatios;
1187-
}
1188-
1189-
/**
1190-
* Compares node configs.
1191-
*
1192-
* @param nodeConfig node config to compare.
1193-
* @return bool.
1194-
*/
1195-
bool operator!=(const NodeConfig& nodeConfig) const { return !operator==(nodeConfig); }
1196-
};
11971164
/**
11981165
* Partition info.
11991166
*/

include/aos/sm/resourcemanager.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#ifndef AOS_RESOURCEMANAGER_HPP_
99
#define AOS_RESOURCEMANAGER_HPP_
1010

11+
#include "aos/common/cloudprotocol/desiredstatus.hpp"
1112
#include "aos/common/tools/error.hpp"
1213
#include "aos/common/tools/map.hpp"
1314
#include "aos/common/tools/memory.hpp"
@@ -28,7 +29,7 @@ static constexpr auto cNodeConfigJSONLen = AOS_CONFIG_RESOURCEMANAGER_NODE_CONFI
2829
* Node Config.
2930
*/
3031
struct NodeConfig {
31-
aos::NodeConfig mNodeConfig;
32+
cloudprotocol::NodeConfig mNodeConfig;
3233
StaticString<cVersionLen> mVersion;
3334

3435
/**
@@ -149,7 +150,7 @@ class ResourceManagerItf {
149150
* @param nodeConfig[out] param to store node config.
150151
* @return Error.
151152
*/
152-
virtual Error GetNodeConfig(aos::NodeConfig& nodeConfig) const = 0;
153+
virtual Error GetNodeConfig(cloudprotocol::NodeConfig& nodeConfig) const = 0;
153154

154155
/**
155156
* Gets device info by name.
@@ -278,7 +279,7 @@ class ResourceManager : public ResourceManagerItf, private NonCopyable {
278279
* @param nodeConfig[out] param to store node config.
279280
* @return Error.
280281
*/
281-
Error GetNodeConfig(aos::NodeConfig& nodeConfig) const override;
282+
Error GetNodeConfig(cloudprotocol::NodeConfig& nodeConfig) const override;
282283

283284
/**
284285
* Gets device info by name.

src/common/monitoring/resourcemonitor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ double ResourceMonitor::CPUToDMIPs(double cpuPersentage) const
275275
return cpuPersentage * static_cast<double>(mMaxDMIPS) / 100.0;
276276
}
277277

278-
Error ResourceMonitor::SetupSystemAlerts(const NodeConfig& nodeConfig)
278+
Error ResourceMonitor::SetupSystemAlerts(const cloudprotocol::NodeConfig& nodeConfig)
279279
{
280280
LOG_DBG() << "Setup system alerts";
281281

src/sm/resourcemanager/resourcemanager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ RetWithError<StaticString<cVersionLen>> ResourceManager::GetNodeConfigVersion()
5050
return {mConfig->mVersion, mConfigError};
5151
}
5252

53-
Error ResourceManager::GetNodeConfig(aos::NodeConfig& nodeConfig) const
53+
Error ResourceManager::GetNodeConfig(cloudprotocol::NodeConfig& nodeConfig) const
5454
{
5555
LockGuard lock {mMutex};
5656

tests/common/src/monitoring_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class MockResourceManager : public sm::resourcemanager::ResourceManagerItf {
122122

123123
RetWithError<StaticString<cVersionLen>> GetNodeConfigVersion() const override { return mConfig.mVersion; }
124124

125-
Error GetNodeConfig(aos::NodeConfig& nodeConfig) const override
125+
Error GetNodeConfig(cloudprotocol::NodeConfig& nodeConfig) const override
126126
{
127127
nodeConfig = mConfig.mNodeConfig;
128128

tests/include/mocks/resourcemanagermock.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class NodeConfigReceiverMock : public NodeConfigReceiverItf {
4747
class ResourceManagerMock : public ResourceManagerItf {
4848
public:
4949
MOCK_METHOD(RetWithError<StaticString<cVersionLen>>, GetNodeConfigVersion, (), (const override));
50-
MOCK_METHOD(Error, GetNodeConfig, (aos::NodeConfig&), (const override));
50+
MOCK_METHOD(Error, GetNodeConfig, (cloudprotocol::NodeConfig&), (const override));
5151
MOCK_METHOD(Error, GetDeviceInfo, (const String&, DeviceInfo&), (const override));
5252
MOCK_METHOD(Error, GetResourceInfo, (const String&, ResourceInfo&), (const override));
5353
MOCK_METHOD(Error, AllocateDevice, (const String&, const String&), (override));

tests/sm/resourcemanager/resourcemanager_test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ TEST_F(ResourceManagerTest, InitSucceeds)
114114
{
115115
InitResourceManager();
116116

117-
aos::NodeConfig nodeConfig;
117+
cloudprotocol::NodeConfig nodeConfig;
118118

119119
ASSERT_TRUE(mResourceManager.GetNodeConfig(nodeConfig).IsNone());
120120
EXPECT_EQ(nodeConfig, mConfig.mNodeConfig);
@@ -145,7 +145,7 @@ TEST_F(ResourceManagerTest, InitSucceedsWhenNodeConfigParseFails)
145145

146146
InitResourceManager(expectedError);
147147

148-
aos::NodeConfig nodeConfig;
148+
cloudprotocol::NodeConfig nodeConfig;
149149

150150
ASSERT_TRUE(mResourceManager.GetNodeConfig(nodeConfig).Is(expectedError));
151151
}

0 commit comments

Comments
 (0)