def read_file()

in src/extension/src/file_handlers/ExtConfigSettingsHandler.py [0:0]


    def read_file(self, seq_no):
        """ Fetches config from <seq_no>.settings file in <self.config_folder>. Raises an exception if no content/file found/errors processing file """
        try:
            file_name = str(seq_no) + self.file_ext
            config_settings_json = self.json_file_handler.get_json_file_content(file_name, self.config_folder, raise_if_not_found=True)
            if config_settings_json is not None and self.are_config_settings_valid(config_settings_json):
                cloud_type = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.cloud_type)
                operation = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.operation)
                activity_id = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.activity_id)
                start_time = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.start_time)
                max_duration = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.maximum_duration, raise_if_not_found=False)
                reboot_setting = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.reboot_setting, raise_if_not_found=False)
                include_classifications = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.include_classifications, raise_if_not_found=False)
                include_patches = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.include_patches, raise_if_not_found=False)
                exclude_patches = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.exclude_patches, raise_if_not_found=False)
                internal_settings = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.internal_settings, raise_if_not_found=False)
                maintenance_run_id = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.maintenance_run_id, raise_if_not_found=False)
                health_store_id = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.health_store_id, raise_if_not_found=False)
                patch_mode = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.patch_mode, raise_if_not_found=False)
                assessment_mode = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.assessment_mode, raise_if_not_found=False)
                maximum_assessment_interval = self.get_ext_config_value_safely(config_settings_json, self.public_settings_all_keys.maximum_assessment_interval, raise_if_not_found=False)
                config_settings_values = collections.namedtuple("config_settings", [self.public_settings_all_keys.cloud_type, self.public_settings_all_keys.operation, self.public_settings_all_keys.activity_id,
                                                                                    self.public_settings_all_keys.start_time, self.public_settings_all_keys.maximum_duration, self.public_settings_all_keys.reboot_setting,
                                                                                    self.public_settings_all_keys.include_classifications, self.public_settings_all_keys.include_patches, self.public_settings_all_keys.exclude_patches,
                                                                                    self.public_settings_all_keys.internal_settings, self.public_settings_all_keys.maintenance_run_id, self.public_settings_all_keys.health_store_id,
                                                                                    self.public_settings_all_keys.patch_mode, self.public_settings_all_keys.assessment_mode, self.public_settings_all_keys.maximum_assessment_interval])
                return config_settings_values(cloud_type, operation, activity_id, start_time, max_duration, reboot_setting, include_classifications, include_patches, exclude_patches,
                                              internal_settings, maintenance_run_id, health_store_id, patch_mode, assessment_mode, maximum_assessment_interval)
            else:
                config_invalid_due_to = "no content found in the file" if config_settings_json is None else "settings not in expected format"
                raise Exception("Config Settings json file invalid due to " + config_invalid_due_to)
        except Exception as error:
            error_msg = "Error processing config settings file. [Sequence Number={0}] [Exception= {1}]".format(seq_no, repr(error))
            self.logger.log_error(error_msg)
            raise