示例#1
0
 def get_next_state(self) -> str:
     should_get_params = \
         len(
             get_params_to_get(
                 self.acs.device_cfg,
                 self.acs.data_model,
             ),
         ) > 0
     if should_get_params:
         return self.done_transition
     should_get_obj_params = \
         len(
             get_object_params_to_get(
                 self.acs.desired_cfg,
                 self.acs.device_cfg,
                 self.acs.data_model,
             ),
         ) > 0
     if should_get_obj_params:
         return self.get_obj_params_transition
     elif len(
             get_all_objects_to_delete(
                 self.acs.desired_cfg,
                 self.acs.device_cfg,
             ), ) > 0:
         return self.rm_obj_transition
     elif len(
             get_all_objects_to_add(
                 self.acs.desired_cfg,
                 self.acs.device_cfg,
             ), ) > 0:
         return self.add_obj_transition
     return self.skip_transition
示例#2
0
    def get_msg(self) -> AcsMsgAndTransition:
        """ Respond with GetParameterValuesRequest """
        names = get_object_params_to_get(self.acs.desired_cfg,
                                         self.acs.device_cfg,
                                         self.acs.data_model)

        # Generate the request
        request = models.GetParameterValues()
        request.ParameterNames = models.ParameterNames()
        request.ParameterNames.arrayType = 'xsd:string[%d]' \
                                           % len(names)
        request.ParameterNames.string = []
        for name in names:
            path = self.acs.data_model.get_parameter(name).path
            request.ParameterNames.string.append(path)

        return AcsMsgAndTransition(request, self.done_transition)
示例#3
0
    def test_get_object_params_to_get(
        self,
        request_all_params: bool,
        with_desired_config: bool,
        expected_object_names_list_len: int,
    ):
        acs_state_machine = self._prepare_sm()
        data_model = BaicellsQRTBTrDataModel()

        if with_desired_config:
            acs_state_machine.desired_cfg = self._prepare_desired_cfg_for_sm(
                acs_state_machine)

        obj_names = get_object_params_to_get(
            desired_cfg=acs_state_machine.desired_cfg,
            device_cfg=acs_state_machine.device_cfg,
            data_model=data_model,
            request_all_params=request_all_params,
        )

        self.assertEqual(expected_object_names_list_len, len(obj_names))