Fix error handling in edge_monitoring_server for dongle stats

Change-Id: I5d89e5aba4130ed8e4bce65358424820a2d6a3c3
diff --git a/VERSION b/VERSION
index f38fc53..0a1ffad 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.7.3
+0.7.4
diff --git a/edge-monitoring-server/edge_monitoring_server.py b/edge-monitoring-server/edge_monitoring_server.py
index 2096ff6..fa50bcc 100755
--- a/edge-monitoring-server/edge_monitoring_server.py
+++ b/edge-monitoring-server/edge_monitoring_server.py
@@ -494,15 +494,34 @@
         connect_status = edge['status']['control_plane']
         ping_status = edge['status']['user_plane']
 
+        # Add PLMN Status
         try:
-            dongle_stats_imsi.labels(edge['name']).set(float(edge['dongle_stats']['IMSI']))
-            dongle_stats_cellglobalid.labels(edge['name']).set(int(edge['dongle_stats']['CellGlobalID'], 16))
-            dongle_stats_phycellid.labels(edge['name']).set(edge['dongle_stats']['PhyCellID'])
-            if edge['dongle_stats']['PLMNStatus'] in plmnstatus_mapping:
+            if edge['dongle_stats']['PLMNStatus'] and edge['dongle_stats']['PLMNStatus'] in plmnstatus_mapping:
                 dongle_stats_plmnstatus.labels(edge['name']).set(plmnstatus_mapping[edge['dongle_stats']['PLMNStatus']])
             else:
-                dongle_stats_plmnstatus.labels(edge['name']).set(0)
-        except KeyError:
+                pass
+        except:
+            pass
+
+        # Add IMSI
+        try:
+            if edge['dongle_stats']['IMSI']:
+                dongle_stats_imsi.labels(edge['name']).set(float(edge['dongle_stats']['IMSI']))
+        except:
+            pass
+
+        # Add CellGlobalID
+        try:
+            if edge['dongle_stats']['CellGlobalID']:
+                dongle_stats_cellglobalid.labels(edge['name']).set(int(edge['dongle_stats']['CellGlobalID'], 16))
+        except:
+            pass
+
+        # Add PhyCellID
+        try:
+            if edge['dongle_stats']['PhyCellID']:
+                dongle_stats_phycellid.labels(edge['name']).set(edge['dongle_stats']['PhyCellID'])
+        except:
             pass
 
         # Add ping dry_run latency results if available
diff --git a/edge-monitoring-server/test_edge_monitoring_server.py b/edge-monitoring-server/test_edge_monitoring_server.py
index 1786d6e..f2bf2a6 100755
--- a/edge-monitoring-server/test_edge_monitoring_server.py
+++ b/edge-monitoring-server/test_edge_monitoring_server.py
@@ -771,7 +771,7 @@
         response = self.app.get('/edges/metrics')
         data = response.get_data(as_text=True)
 
-        self.assertTrue('aetheredge_dongle_stats_imsi{name="ace-menlo-rasp-pi"} 0.0' in data)
+        self.assertFalse('aetheredge_dongle_stats_imsi{name="ace-menlo-rasp-pi"}' in data)
         self.assertFalse('aetheredge_dongle_stats_cellglobalid{name="ace-menlo-rasp-pi"}' in data)
         self.assertFalse('aetheredge_dongle_stats_plmnstatus{name="ace-menlo-rasp-pi"}' in data)
         self.assertFalse('aetheredge_dongle_stats_phycellid{name="ace-menlo-rasp-pi"}' in data)