def test_port_state(self): """ Check the update method of the GaugePortStateInfluxDBLogger class""" conf = self.create_config_obj(create_mock_datapath(3)) db_logger = gauge_influx.GaugePortStateInfluxDBLogger( conf, '__name__', mock.Mock()) statuses = [ ofproto.OFPPR_ADD, ofproto.OFPPR_DELETE, ofproto.OFPPR_MODIFY ] for i in range(1, len(conf.dp.ports) + 1): port = parser.OFPPort(i, '00:00:00:d0:00:0' + str(i), conf.dp.ports[i].name, 0, 0, i, i, i, i, i, i) message = parser.OFPPortStatus(conf.dp.id, statuses[i - 1], port) rcv_time = int(time.time()) db_logger.update(rcv_time, conf.dp.id, message) self.server.output_file.seek(0) output = self.server.output_file.readlines()[i - 1] influx_data = self.parse_influx_output(output)[1] data = { conf.dp.name, conf.dp.ports[i].name, rcv_time, statuses[i - 1] } self.assertEqual(data, set(influx_data.values()))
def port_state_msg(datapath, port_num, reason, status=0): """ Create an OFPPortStatus message with random values. """ port = parser.OFPPort(port_num, '00:00:00:d0:00:0' + str(port_num), datapath.ports[port_num].name, 0, status, random.randint(1, 10000), random.randint(1, 10000), random.randint(1, 10000), random.randint(1, 10000), random.randint(1, 10000), random.randint(1, 10000)) return parser.OFPPortStatus(datapath, reason, port)
def _createPort(self, dpid, port_no): hw_addr = 'c0:26:53:c4:29:e2' name = 'name'.ljust(16) config = 2226555987 state = 1678244809 curr = 2850556459 advertised = 2025421682 supported = 2120575149 peer = 2757463021 curr_speed = 2641353507 max_speed = 1797291672 ofpport = ofproto_v1_3_parser.OFPPort(port_no, hw_addr, name, config,\ state, curr, advertised, supported,\ peer, curr_speed, max_speed) port = Port(dpid, ofproto_v1_3, ofpport) return port
def connect_dp(self): """Call DP connect and set all ports to up.""" discovered_ports = [] for port_no in range(1, self.NUM_PORTS + 1): ofpport = parser.OFPPort(port_no=port_no, hw_addr=None, name=str(port_no), config=0, state=0, curr=0, advertised=0, supported=0, peer=0, curr_speed=1e6, max_speed=1e6) discovered_ports.append(ofpport) self.table.apply_ofmsgs(self.valve.datapath_connect(discovered_ports)) for port in discovered_ports: self.set_port_up(port.port_no)