Move function to enable field mode to common code
The only different between ubi and static layout for setting field mode
was masking the usr-local.mount service file. Now that the service file
is in the common code, it makes sense to move the function to the common
code.
Tested:
- Witherspoon: Verified setting field mode disabled the /usr/local mount
as it currently does.
- Romulus: Verified that after setting the field mode, the usr-local.mount
service file could not be started because it's masked.
Change-Id: I8afb755366053c38f72d682e874308c42e232d98
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/item_updater.cpp b/item_updater.cpp
index 21fb6e0..975c6e9 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -458,7 +458,23 @@
{
control::FieldMode::fieldModeEnabled(value);
- helper.enableFieldMode();
+ auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+ SYSTEMD_INTERFACE, "StartUnit");
+ method.append("obmc-flash-bmc-setenv@fieldmode\\x3dtrue.service",
+ "replace");
+ bus.call_noreply(method);
+
+ method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+ SYSTEMD_INTERFACE, "StopUnit");
+ method.append("usr-local.mount", "replace");
+ bus.call_noreply(method);
+
+ std::vector<std::string> usrLocal = {"usr-local.mount"};
+
+ method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+ SYSTEMD_INTERFACE, "MaskUnitFiles");
+ method.append(usrLocal, false, true);
+ bus.call_noreply(method);
}
else if (!value && control::FieldMode::fieldModeEnabled())
{
diff --git a/item_updater_helper.hpp b/item_updater_helper.hpp
index 0b67642..13b98da 100644
--- a/item_updater_helper.hpp
+++ b/item_updater_helper.hpp
@@ -59,9 +59,6 @@
*/
void updateUbootVersionId(const std::string& versionId);
- /** @brief Enable field mode */
- void enableFieldMode();
-
/** @brief Mirror Uboot to the alt uboot partition */
void mirrorAlt();
diff --git a/static/item_updater_helper.cpp b/static/item_updater_helper.cpp
index e087d71..164784d 100644
--- a/static/item_updater_helper.cpp
+++ b/static/item_updater_helper.cpp
@@ -10,11 +10,8 @@
{
// openbmconce=clean-rwfs-filesystem factory-reset
#define ENV_FACTORY_RESET "openbmconce\\x3dfactory\\x2dreset"
-#define ENV_ENABLE_FIELD_MODE "fieldmode\\x3dtrue"
#define SERVICE_FACTORY_RESET \
"obmc-flash-bmc-setenv@" ENV_FACTORY_RESET ".service"
-#define SERVICE_ENABLE_FIELD_MODE \
- "obmc-flash-bmc-setenv@" ENV_ENABLE_FIELD_MODE ".service"
void Helper::setEntry(const std::string& entryId, uint8_t value)
{
@@ -51,14 +48,6 @@
// Empty
}
-void Helper::enableFieldMode()
-{
- auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
- SYSTEMD_INTERFACE, "StartUnit");
- method.append(SERVICE_ENABLE_FIELD_MODE, "replace");
- bus.call_noreply(method);
-}
-
void Helper::mirrorAlt()
{
// Empty
diff --git a/ubi/item_updater_helper.cpp b/ubi/item_updater_helper.cpp
index a699d5f..4cc83c4 100644
--- a/ubi/item_updater_helper.cpp
+++ b/ubi/item_updater_helper.cpp
@@ -83,26 +83,6 @@
}
}
-void Helper::enableFieldMode()
-{
- auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
- SYSTEMD_INTERFACE, "StartUnit");
- method.append("obmc-flash-bmc-setenv@fieldmode\\x3dtrue.service",
- "replace");
- bus.call_noreply(method);
-
- method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
- SYSTEMD_INTERFACE, "StopUnit");
- method.append("usr-local.mount", "replace");
- bus.call_noreply(method);
-
- std::vector<std::string> usrLocal = {"usr-local.mount"};
-
- method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
- SYSTEMD_INTERFACE, "MaskUnitFiles");
- method.append(usrLocal, false, true);
- bus.call_noreply(method);
-}
void Helper::mirrorAlt()
{
auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,