def get_topology(self): logging.debug("GET Topology NetworkID:" + self.network_id) resp = self._get_object_to_remote_object(self.TOPOLOGY_PATH) if resp.is_error(Request.Method.GET): return None topology = None try: topology = Topology.create_from_packed(resp.body) except KeyError, err: logging.error("GET Topology Invalid Response Message" + " KeyError: " + str(err)) return None
def test_create_from_packed(self): packed = self.target.packed_object() result = Topology.create_from_packed(packed) self.assertEqual(result.type, 'Topology') self.assertEqual(result.version, '1') nodes = result.nodes self.assertEqual(len(nodes), 2) self.assertEqual(nodes['NodeId1'].node_id, 'NodeId1') self.assertEqual(nodes['NodeId2'].node_id, 'NodeId2') links = result.links self.assertEqual(len(links), 2) self.assertEqual(links['LinkId1'].link_id, 'LinkId1') self.assertEqual(links['LinkId2'].link_id, 'LinkId2')
def create_from_packed(cls, packed): version = packed[cls.VERSION] prev = Topology.create_from_packed(packed[cls.PREV]) curr = Topology.create_from_packed(packed[cls.CURR]) return cls(version, prev, curr)
def test_create_from_packed_without_version(self): packed = {'type': 'Topology', 'nodes': { 'NodeId1': {'type': 'Node', 'version': '1', 'node_id': 'NodeId1', 'ports': { 'PortId1': {'type': 'Port', 'version': '1', 'port_id': 'PortId1', 'node_id': 'NodeId1', 'out_link': 'LinkId1', 'in_link': None, 'attributes': {}}, 'PortId2': {'type': 'Port', 'version': '1', 'port_id': 'PortId2', 'node_id': 'NodeId1', 'out_link': None, 'in_link': 'LinkId2', 'attributes': {}} }, 'attributes': {}}, 'NodeId2': {'type': 'Node', 'version': '1', 'node_id': 'NodeId2', 'ports': { 'PortId3': {'type': 'Port', 'version': '1', 'port_id': 'PortId3', 'node_id': 'NodeId2', 'out_link': None, 'in_link': 'LinkId1', 'attributes': {}}, 'PortId4': {'type': 'Port', 'version': '1', 'port_id': 'PortId4', 'node_id': 'NodeId2', 'out_link': 'LinkId2', 'in_link': None, 'attributes': {}} }, 'attributes': {}} }, 'links': { 'LinkId1': {'type': 'Link', 'version': '1', 'link_id': 'LinkId1', 'src_node': 'NodeId1', 'src_port': 'PortId1', 'dst_node': 'NodeId2', 'dst_port': 'PortId3', 'attributes': {}}, 'LinkId2': {'type': 'Link', 'version': '1', 'link_id': 'LinkId2', 'src_node': 'NodeId2', 'src_port': 'PortId4', 'dst_node': 'NodeId1', 'dst_port': 'PortId2', 'attributes': {}} }} result = Topology.create_from_packed(packed) self.assertEqual(result.type, 'Topology') self.assertEqual(result.version, None) nodes = result.nodes self.assertEqual(len(nodes), 2) self.assertEqual(nodes['NodeId1'].node_id, 'NodeId1') self.assertEqual(nodes['NodeId2'].node_id, 'NodeId2') links = result.links self.assertEqual(len(links), 2) self.assertEqual(links['LinkId1'].link_id, 'LinkId1') self.assertEqual(links['LinkId2'].link_id, 'LinkId2')
def test_create_from_packed_without_version(self): packed = { 'type': 'Topology', 'nodes': { 'NodeId1': { 'type': 'Node', 'version': '1', 'node_id': 'NodeId1', 'ports': { 'PortId1': { 'type': 'Port', 'version': '1', 'port_id': 'PortId1', 'node_id': 'NodeId1', 'out_link': 'LinkId1', 'in_link': None, 'attributes': {} }, 'PortId2': { 'type': 'Port', 'version': '1', 'port_id': 'PortId2', 'node_id': 'NodeId1', 'out_link': None, 'in_link': 'LinkId2', 'attributes': {} } }, 'attributes': {} }, 'NodeId2': { 'type': 'Node', 'version': '1', 'node_id': 'NodeId2', 'ports': { 'PortId3': { 'type': 'Port', 'version': '1', 'port_id': 'PortId3', 'node_id': 'NodeId2', 'out_link': None, 'in_link': 'LinkId1', 'attributes': {} }, 'PortId4': { 'type': 'Port', 'version': '1', 'port_id': 'PortId4', 'node_id': 'NodeId2', 'out_link': 'LinkId2', 'in_link': None, 'attributes': {} } }, 'attributes': {} } }, 'links': { 'LinkId1': { 'type': 'Link', 'version': '1', 'link_id': 'LinkId1', 'src_node': 'NodeId1', 'src_port': 'PortId1', 'dst_node': 'NodeId2', 'dst_port': 'PortId3', 'attributes': {} }, 'LinkId2': { 'type': 'Link', 'version': '1', 'link_id': 'LinkId2', 'src_node': 'NodeId2', 'src_port': 'PortId4', 'dst_node': 'NodeId1', 'dst_port': 'PortId2', 'attributes': {} } } } result = Topology.create_from_packed(packed) self.assertEqual(result.type, 'Topology') self.assertEqual(result.version, None) nodes = result.nodes self.assertEqual(len(nodes), 2) self.assertEqual(nodes['NodeId1'].node_id, 'NodeId1') self.assertEqual(nodes['NodeId2'].node_id, 'NodeId2') links = result.links self.assertEqual(len(links), 2) self.assertEqual(links['LinkId1'].link_id, 'LinkId1') self.assertEqual(links['LinkId2'].link_id, 'LinkId2')