Пример #1
0
 def __init__(self, d):
     assert(isinstance(d, dict))
     p = 'odl-sal-netconf-connector-cfg:'
     js = json.dumps(d)
     obj = json.loads(js.replace(p, ''))
     d1 = dict_keys_dashed_to_underscored(obj)
     for k, v in d1.items():
         setattr(self, k, v)
Пример #2
0
 def __init_from_json__(self, s):
     if (isinstance(s, basestring)):
         obj = json.loads(s)
         d = dict_keys_dashed_to_underscored(obj)
         for k, v in d.items():
             if ('topology_id' == k):
                 self.topology_id = v
             elif ('node' == k):
                 if (isinstance(v, list)):
                     for i in v:
                         node = Node(i)
                         self.add_node(node)
             elif ('link' == k):
                 if (isinstance(v, list)):
                     for i in v:
                         link = Link(i)
                         self.add_link(link)
             else:
                 assert(False)
     else:
         raise TypeError("[Topology] wrong argument type '%s'"
                         " (JSON 'string' is expected)" % type(s))
Пример #3
0
 def __init_from_json__(self, s):
     if (isinstance(s, basestring)):
         l = json.loads(s)
         assert(isinstance(l, list))
         p1 = 'id'
         p2 = 'openflow'
         p3 = 'netconf_node_inventory:initial_capability'
         filter1 = 'brocade-interface-ext?revision=2014-04-01'
         filter2 = 'vyatta-interfaces?revision=2014-12-02'
         filter3 = 'controller:netty:eventexecutor?revision=2013-11-12'
         devices = [{'clazz': 'NOS', 'filter': filter1},
                    {'clazz': 'VRouter5600', 'filter': filter2},
                    {'clazz': 'controller', 'filter': filter3}]
         for item in l:
             if isinstance(item, dict):
                 d = dict_keys_dashed_to_underscored(item)
                 if p1 in d and isinstance(d[p1], basestring):
                     if (d[p1].startswith(p2)):
                         node = OpenFlowCapableNode(inv_dict=d)
                         self.add_openflow_node(node)
                 if p3 in d:
                     # Netconf
                     capabilities = d.get(p3)
                     nodes = [[d, dev['clazz']] for c in capabilities for
                              dev in devices if dev['filter'] in c]
                     for node in nodes:
                         if node is not None:
                             node = NetconfCapableNode(clazz=node[1],
                                                       inv_dict=node[0])
                             self.add_netconf_node(node)
                             break
                         else:
                             node = NetconfCapableNode(clazz='unknown',
                                                       inv_dict=d)
                             self.add_netconf_node(node)
     else:
         raise TypeError("[Inventory] wrong argument type '%s'"
                         " (JSON 'string' is expected)" % type(s))
Пример #4
0
 def __init_from_json__(self, s):
     assert(isinstance(s, basestring))
     obj = json.loads(s)
     d = dict_keys_dashed_to_underscored(obj)
     p1 = 'node_connector'
     p2 = 'opendaylight_group_statistics:group_features'
     p3 = 'flow_node_inventory:group'
     p4 = 'opendaylight_meter_statistics:meter_features'
     for k, v in d.items():
         if p1 == k and isinstance(v, list):
             for p in v:
                 of_port = OpenFlowPort(p)
                 self.ports.append(of_port)
         elif p2 == k:
             self.group_features = GroupFeatures(v)
         elif p3 == k and isinstance(v, list):
             for g in v:
                 of_group = GroupInfo(g)
                 self.groups.append(of_group)
         elif p4 == k and isinstance(v, dict):
             self.meter_features = MeterFeatures(v)
         else:
             setattr(self, k, v)
Пример #5
0
 def __init_from_json__(self, s):
     assert(isinstance(s, basestring))
     obj = json.loads(s)
     d = dict_keys_dashed_to_underscored(obj)
     for k, v in d.items():
         setattr(self, k, v)