Пример #1
0
    def get_inform(
        cls,
        oui: str = '48BF74',
        sw_version: str = 'BaiBS_RTS_3.1.6',
        enb_serial: str = '120200002618AGP0003',
        event_codes: Optional[List[str]] = None,
    ) -> models.Inform:
        if event_codes is None:
            event_codes = []
        msg = models.Inform()

        # DeviceId
        device_id = models.DeviceIdStruct()
        device_id.Manufacturer = 'Unused'
        device_id.OUI = oui
        device_id.ProductClass = 'Unused'
        device_id.SerialNumber = enb_serial
        msg.DeviceId = device_id

        # Event
        msg.Event = models.EventList()
        event_list = []
        for code in event_codes:
            event = models.EventStruct()
            event.EventCode = code
            event.CommandKey = ''
            event_list.append(event)
        msg.Event.EventStruct = event_list

        # ParameterList
        val_list = []
        val_list.append(cls.get_parameter_value_struct(
            name='Device.DeviceInfo.HardwareVersion',
            val_type='string',
            data='VER.C',
        ))
        val_list.append(cls.get_parameter_value_struct(
            name='Device.DeviceInfo.ManufacturerOUI',
            val_type='string',
            data=oui,
        ))
        val_list.append(cls.get_parameter_value_struct(
            name='Device.DeviceInfo.SoftwareVersion',
            val_type='string',
            data=sw_version,
        ))
        val_list.append(cls.get_parameter_value_struct(
            name='Device.DeviceInfo.SerialNumber',
            val_type='string',
            data=enb_serial,
        ))
        val_list.append(cls.get_parameter_value_struct(
            name='Device.ManagementServer.ConnectionRequestURL',
            val_type='string',
            data='http://192.168.60.248:7547/25dbc91d31276f0cb03391160531ecae',
        ))
        msg.ParameterList = models.ParameterValueList()
        msg.ParameterList.ParameterValueStruct = val_list

        return msg
Пример #2
0
    def test_serial_not_found(self):
        """
        Test that the SM manager doesn't crash if serial number is not found
        in an Inform message under any expected param path.
        """
        manager = self._get_manager()
        ctx = get_spyne_context_with_ip("192.168.60.145")
        inform_msg = models.Inform(
            DeviceId=models.DeviceIdStruct(
                Manufacturer='Unused',
                OUI='48BF74',
                ProductClass='Unused',
            ),
            Event=models.EventList(EventStruct=[]),
            ParameterList=models.ParameterValueList(ParameterValueStruct=[
                Tr069MessageBuilder.get_parameter_value_struct(
                    name='Device.DeviceInfo.HardwareVersion',
                    val_type='string',
                    data='VER.C',
                ),
                Tr069MessageBuilder.get_parameter_value_struct(
                    name='Device.DeviceInfo.ManufacturerOUI',
                    val_type='string',
                    data='48BF74',
                ),
                Tr069MessageBuilder.get_parameter_value_struct(
                    name='Device.DeviceInfo.SoftwareVersion',
                    val_type='string',
                    data='BaiBS_RTS_3.1.6',
                ),
            ]))

        # No exception should be thrown, and we should return an empty response
        resp = manager.handle_tr069_message(ctx, inform_msg)
        self.assertTrue(isinstance(resp, models.DummyInput))
Пример #3
0
 def test_as_dict(self):
     inp = models.Inform(
         DeviceId=models.DeviceIdStruct(
             Manufacturer='some_manufacturer',
             OUI='123456',
             ProductClass='some_product_class',
             SerialNumber='some_serial_number',
         ),
         Event=models.EventList(
             EventStruct=[
                 models.EventStruct(
                     EventCode='some_event_code',
                     CommandKey='some_command_key',
                 ),
                 models.EventStruct(
                     EventCode='other_event_code',
                     CommandKey='other_command_key',
                 ),
             ],
         ),
         MaxEnvelopes=1234,
         CurrentTime=datetime.fromisoformat('2021-09-15 16:15:43.351680'),
     )
     out = as_dict(inp)
     expected = {
         'DeviceId': {
             'Manufacturer': 'some_manufacturer',
             'OUI': '123456',
             'ProductClass': 'some_product_class',
             'SerialNumber': 'some_serial_number',
         },
         'Event': {
             'EventStruct': [
                 {
                     'EventCode': 'some_event_code',
                     'CommandKey': 'some_command_key',
                 },
                 {
                     'EventCode': 'other_event_code',
                     'CommandKey': 'other_command_key',
                 },
             ],
         },
         'MaxEnvelopes': '1234',
         'CurrentTime': '2021-09-15 16:15:43.351680',
     }
     self.assertEqual(out, expected)
Пример #4
0
    def _get_inform(self) -> models.Inform:
        msg = models.Inform()

        # DeviceId
        device_id = models.DeviceIdStruct()
        device_id.Manufacturer = 'Unused'
        device_id.OUI = '48BF74'
        device_id.ProductClass = 'Unused'
        device_id.SerialNumber = '120200002618AGP0003'
        msg.DeviceId = device_id

        # Event
        msg.Event = models.EventList()
        msg.Event.EventStruct = []

        # ParameterList
        val_list = []
        val_list.append(
            self._get_parameter_value_struct(
                name='Device.DeviceInfo.HardwareVersion',
                val_type='string',
                data='VER.C',
            ))
        val_list.append(
            self._get_parameter_value_struct(
                name='Device.DeviceInfo.ManufacturerOUI',
                val_type='string',
                data='48BF74',
            ))
        val_list.append(
            self._get_parameter_value_struct(
                name='Device.DeviceInfo.SoftwareVersion',
                val_type='string',
                data='BaiBS_RTS_3.1.6',
            ))
        val_list.append(
            self._get_parameter_value_struct(
                name='Device.ManagementServer.ConnectionRequestURL',
                val_type='string',
                data=
                'http://192.168.60.248:7547/25dbc91d31276f0cb03391160531ecae',
            ))
        msg.ParameterList = models.ParameterValueList()
        msg.ParameterList.ParameterValueStruct = val_list

        return msg
Пример #5
0
    def get_qrtb_inform(
        cls,
        params: List[Param],
        oui: str = '48BF74',
        enb_serial: str = '120200024019APP0105',
        event_codes: Optional[List[str]] = None,
    ) -> models.Inform:
        if event_codes is None:
            event_codes = []
        msg = models.Inform()

        # DeviceId
        device_id = models.DeviceIdStruct()
        device_id.Manufacturer = 'Baicells'
        device_id.OUI = oui
        device_id.ProductClass = 'FAP/mBS31001/SC'
        device_id.SerialNumber = enb_serial
        msg.DeviceId = device_id

        # Event
        msg.Event = models.EventList()
        event_list = []
        for code in event_codes:
            event = models.EventStruct()
            event.EventCode = code
            event.CommandKey = ''
            event_list.append(event)
        msg.Event.EventStruct = event_list

        # ParameterList
        val_list = [
            cls.get_parameter_value_struct(name=p.name, val_type=p.val_type, data=p.data)
            for p in params
        ]
        msg.ParameterList = models.ParameterValueList()
        msg.ParameterList.ParameterValueStruct = val_list

        return msg