config: stream object: null sets prop to default value
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 17 Mar 2016 21:59:32 +0000 (17:59 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 18 Mar 2016 21:55:00 +0000 (17:55 -0400)
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
barectf/config.py

index c2c25bba6c3506a4a9e2492bf32995e98b861f79..2f530a7dd28568a6e5b9ab60e97b38b7d8d2701e 100644 (file)
@@ -2207,7 +2207,7 @@ class _YamlConfigParser:
         if unk_prop:
             raise ConfigError('unknown stream object property: "{}"'.format(unk_prop))
 
-        if 'packet-context-type' in stream_node:
+        if 'packet-context-type' in stream_node and stream_node['packet-context-type'] is not None:
             try:
                 t = self._create_type(stream_node['packet-context-type'])
             except Exception as e:
@@ -2215,7 +2215,7 @@ class _YamlConfigParser:
 
             stream.packet_context_type = t
 
-        if 'event-header-type' in stream_node:
+        if 'event-header-type' in stream_node and stream_node['event-header-type'] is not None:
             try:
                 t = self._create_type(stream_node['event-header-type'])
             except Exception as e:
@@ -2223,7 +2223,7 @@ class _YamlConfigParser:
 
             stream.event_header_type = t
 
-        if 'event-context-type' in stream_node:
+        if 'event-context-type' in stream_node and stream_node['event-context-type'] is not None:
             try:
                 t = self._create_type(stream_node['event-context-type'])
             except Exception as e:
@@ -2236,24 +2236,25 @@ class _YamlConfigParser:
 
         events = stream_node['events']
 
-        if not _is_assoc_array_prop(events):
-            raise ConfigError('"events" property of stream object must be an associative array')
+        if events is not None:
+            if not _is_assoc_array_prop(events):
+                raise ConfigError('"events" property of stream object must be an associative array')
 
-        if not events:
-            raise ConfigError('at least one event is needed within a stream object')
+            if not events:
+                raise ConfigError('at least one event is needed within a stream object')
 
-        cur_id = 0
+            cur_id = 0
 
-        for ev_name, ev_node in events.items():
-            try:
-                ev = self._create_event(ev_node)
-            except Exception as e:
-                raise ConfigError('cannot create event "{}"'.format(ev_name), e)
+            for ev_name, ev_node in events.items():
+                try:
+                    ev = self._create_event(ev_node)
+                except Exception as e:
+                    raise ConfigError('cannot create event "{}"'.format(ev_name), e)
 
-            ev.id = cur_id
-            ev.name = ev_name
-            stream.events[ev_name] = ev
-            cur_id += 1
+                ev.id = cur_id
+                ev.name = ev_name
+                stream.events[ev_name] = ev
+                cur_id += 1
 
         return stream
 
This page took 0.02533 seconds and 4 git commands to generate.