Inventory YAML script changes

Fixes:
   - Add new FRU field "Cached" from Cacheable.interface.yaml
   - Fix generated inventory.py file ending space

Resolves openbmc/openbmc-test-automation#415

Change-Id: Ic9d38b3b2854e0ea0a43703f791665881f5c8e01
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/bin/generate_inventory b/bin/generate_inventory
old mode 100644
new mode 100755
index a6650f4..4160f1f
--- a/bin/generate_inventory
+++ b/bin/generate_inventory
@@ -28,32 +28,31 @@
 repo_subdir_path = '/phosphor-dbus-interfaces/xyz/openbmc_project/Inventory/'
 base_dir_path = os.getcwd() + repo_subdir_path
 
-# yaml paths for FRU
-item_yaml_file_path = base_dir_path + 'Item.interface.yaml'
-asset_yaml_file_path = base_dir_path + 'Decorator/Asset.interface.yaml'
-revision_yaml_file_path = base_dir_path + 'Decorator/Revision.interface.yaml'
-replaceable_yaml_file_path = base_dir_path + 'Decorator/Replaceable.interface.yaml'
-
-# FRU list
-yaml_fru_list = []
-yaml_fru_list.append(item_yaml_file_path)
-yaml_fru_list.append(asset_yaml_file_path)
-yaml_fru_list.append(revision_yaml_file_path)
-yaml_fru_list.append(replaceable_yaml_file_path)
+# yaml file paths for FRU
+yaml_fru_list = [ 'Item.interface.yaml',
+                  'Decorator/Asset.interface.yaml',
+                  'Decorator/Revision.interface.yaml',
+                  'Decorator/Replaceable.interface.yaml',
+                  'Decorator/Cacheable.interface.yaml',
+                 ]
 
 # Append to master list
 yaml_master_list.append(yaml_fru_list)
 
+print_var(yaml_master_list)
+
 # Populate Inventory data
 inventory_dict = {}
 
-for master_index in range(0, len(yaml_master_list)):
+for master_index in range(len(yaml_master_list)):
+    print_var(master_index)
     inventory_dict[str(inventory_items[master_index])] = []
-    for yaml_file in yaml_master_list[master_index]:
+    for rel_yaml_file_path in yaml_master_list[master_index]:
+        yaml_file_path = base_dir_path + rel_yaml_file_path
 
         # Get the yaml dictionary data
-        print_timen("Loading " + yaml_file)
-        f = open(yaml_file)
+        print_timen("Loading " + yaml_file_path)
+        f = open(yaml_file_path)
         yaml_data = yaml.load(f)
         f.close()
         for item in range(0, len(yaml_data['properties'])):
@@ -61,7 +60,11 @@
             inventory_dict[str(inventory_items[master_index])].append(tmp_data)
 
 # Pretty print json formatter
-data = json.dumps(inventory_dict, indent=4, sort_keys=True, default=str)
+data = json.dumps(inventory_dict,
+                  indent=4,
+                  sort_keys=True,
+                  default=str,
+                  separators=(',', ':'))
 
 # Check if there is mismatch in data vs expect list
 if len(inventory_dict) != len(inventory_items):