leds: rainier: Create virtual physical LEDs

These virtual physical LEDs are a mirror of real enclosure fault
and enclosure Identify physical LEDs. However, these virtual LEDs
are needed to be able to communicate the effective state of the
enclosure fault and enclosure identify LEDs during lamp test.

During lamp test, real physical enclosure fault and enclosure id
LEDs should not be updated and they must be updated only after
the lamp test finishes. However, Hypervisors would need to know
the effective state of enclosure level fault and identify
LEDs and that problem is resolved by these virtual LEDs.

Once the lamp test finishes, these virtual physical LEDs would again
be in sync with real enclosure fault and Identify LEDs.

Tests:
root@bmc:/lib/systemd/system/multi-user.target.wants# busctl tree
xyz.openbmc_project.LED.Controller.virtual_enc_fault
└─/xyz
  └─/xyz/openbmc_project
    └─/xyz/openbmc_project/led
      └─/xyz/openbmc_project/led/physical
        └─/xyz/openbmc_project/led/physical/virtual_enc_fault

root@bmc:/lib/systemd/system/multi-user.target.wants# busctl tree
xyz.openbmc_project.LED.Controller.virtual_enc_id
└─/xyz
  └─/xyz/openbmc_project
    └─/xyz/openbmc_project/led
      └─/xyz/openbmc_project/led/physical
        └─/xyz/openbmc_project/led/physical/virtual_enc_id

root@bmc:/lib/systemd/system/multi-user.target.wants#

busctl get-property  xyz.openbmc_project.LED.Controller.virtual_enc_fault
/xyz/openbmc_project/led/physical/virtual_enc_fault
xyz.openbmc_project.Led.Physical State
s "xyz.openbmc_project.Led.Physical.Action.Off"

root@bmc:/lib/systemd/system/multi-user.target.wants# busctl
set-property xyz.openbmc_project.LED.GroupManager
/xyz/openbmc_project/led/groups/ddimm0_identify xyz.openbmc_project.Led.Group
Asserted b true

root@bmc:/lib/systemd/system/multi-user.target.wants# busctl get-property
xyz.openbmc_project.LED.Controller.virtual_enc_id
/xyz/openbmc_project/led/physical/virtual_enc_id
xyz.openbmc_project.Led.Physical State
s "xyz.openbmc_project.Led.Physical.Action.On"

root@bmc:/lib/systemd/system/multi-user.target.wants# busctlset-property
xyz.openbmc_project.LED.GroupManager
/xyz/op_ebmc_project/led/groups/ddimm0_identify xyz.openbmc_project.Led.Group
Asserted b false

root@bmc:/lib/systemd/system/multi-user.target.wants# busctl get-property
xyz.openbmc_project.LED.Controller.virtual_enc_id
/xyz/openbmc_project/led/physical/virtual_enc_id
xyz.openbmc_project.Led.Physical State
s "xyz.openbmc_project.Led.Physical.Action.Off"

Change-Id: Ic0ee5b0f376911650d5489d8bb84a4e83247190f
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/meta-ibm/recipes-phosphor/leds/phosphor-led-manager/lamp-test-led-overrides.json b/meta-ibm/recipes-phosphor/leds/phosphor-led-manager/lamp-test-led-overrides.json
new file mode 100644
index 0000000..0cde229
--- /dev/null
+++ b/meta-ibm/recipes-phosphor/leds/phosphor-led-manager/lamp-test-led-overrides.json
@@ -0,0 +1,10 @@
+{
+    "forceLEDs":[
+        "virtual_enc_fault",
+        "virtual_enc_id"
+    ],
+    "skipLEDs":[
+        "virtual_enc_fault",
+        "virtual_enc_id"
+    ]
+}