| 289 | |
| 290 | |
| 291 | class CLIDriver: |
| 292 | def __init__(self, session=None, error_handler=None, debug=False): |
| 293 | if session is None: |
| 294 | self.session = botocore.session.get_session() |
| 295 | _set_user_agent_for_session(self.session) |
| 296 | else: |
| 297 | self.session = session |
| 298 | register_session_id_event(self.session) |
| 299 | self._error_handler = error_handler |
| 300 | if self._error_handler is None: |
| 301 | self._error_handler = construct_cli_error_handlers_chain( |
| 302 | self.session |
| 303 | ) |
| 304 | if debug: |
| 305 | self._set_logging(debug) |
| 306 | self._update_config_chain() |
| 307 | self._cli_data = None |
| 308 | self._command_table = None |
| 309 | self._argument_table = None |
| 310 | self.alias_loader = AliasLoader() |
| 311 | |
| 312 | def _update_config_chain(self): |
| 313 | config_store = self.session.get_component('config_store') |
| 314 | config_store.set_config_provider( |
| 315 | 'region', self._construct_cli_region_chain() |
| 316 | ) |
| 317 | config_store.set_config_provider( |
| 318 | 'output', self._construct_cli_output_chain() |
| 319 | ) |
| 320 | config_store.set_config_provider( |
| 321 | 'pager', self._construct_cli_pager_chain() |
| 322 | ) |
| 323 | config_store.set_config_provider( |
| 324 | 'cli_binary_format', self._construct_cli_binary_format_chain() |
| 325 | ) |
| 326 | config_store.set_config_provider( |
| 327 | 'cli_auto_prompt', self._construct_cli_auto_prompt_chain() |
| 328 | ) |
| 329 | config_store.set_config_provider( |
| 330 | 'cli_help_output', self._construct_cli_help_output_chain() |
| 331 | ) |
| 332 | config_store.set_config_provider( |
| 333 | 'cli_error_format', self._construct_cli_error_format_chain() |
| 334 | ) |
| 335 | |
| 336 | def _construct_cli_region_chain(self): |
| 337 | providers = [ |
| 338 | InstanceVarProvider(instance_var='region', session=self.session), |
| 339 | EnvironmentProvider( |
| 340 | name='AWS_REGION', |
| 341 | env=os.environ, |
| 342 | ), |
| 343 | EnvironmentProvider( |
| 344 | name='AWS_DEFAULT_REGION', |
| 345 | env=os.environ, |
| 346 | ), |
| 347 | ScopedConfigProvider( |
| 348 | config_var_name='region', |
no outgoing calls