tree f707a5d64a606295229bf7fed78f83df015ab3d2
parent 05ceb390e31454ae8e0a7fbb85303d91137ab94e
author Manojkiran Eda <manojkiran.eda@gmail.com> 1589187316 +0530
committer Manojkiran Eda <manojkiran.eda@gmail.com> 1592572357 +0530

Enable Fist Boot Set MAC Feature for Network Service

- This commit enables the Network Service to listen for
  the Added inventory objects & set the MAC address respectively
  on the ethernet interfaces on the first boot.

- An Early start to Inventory Manager service can also drop the
  Objects Added Signal, in those cases the Network Serice would
  read the Inventory Objects and sets the MAC during First Boot
  and does not register for Signal matchers to Wait for the Objects
  to be Added.

- Through this commit, Network Service can now also set the MAC
  addresses at Runtime(if the Inventory Objects are Added at Runtime).
  This would help in case of MultiNode systems with Concurrent
  maintainence.

- The Mapping of the ethernet Interfaces on Network Service and
  the Inventory objects are configured by the administator via a
  machine specific config.json file.

Tested By :

- Clear the VPD and Boot the System and observed that Network
  service registers a Signal which listens on the Object Added
  on the Inventory Manager.

- Force Collect the VPD , and that should trigger a MATCH on the
  Network service there by setting the MAC Addresses based in the
  Signals received on various interfaces.

- Once the MAC is read from the VPD and set on the repective Interface,
  a restart of Network Service should not set the MAC Address again.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: If06e79e6381933e58ad552bbd7dbb61fe852384b
