(
self,
default_config,
username,
audit_name,
working_dir,
type,
parameters,
parameter_value_wrappers,
process_invoker: ProcessInvoker)
| 496 | return os.path.normpath(os.path.join(self._list_files_dir, *child_path)) |
| 497 | |
| 498 | def _set_default_value( |
| 499 | self, |
| 500 | default_config, |
| 501 | username, |
| 502 | audit_name, |
| 503 | working_dir, |
| 504 | type, |
| 505 | parameters, |
| 506 | parameter_value_wrappers, |
| 507 | process_invoker: ProcessInvoker): |
| 508 | if is_empty(default_config): |
| 509 | self._default = default_config |
| 510 | return |
| 511 | |
| 512 | script = False |
| 513 | if isinstance(default_config, dict) and 'script' in default_config: |
| 514 | string_value = default_config['script'] |
| 515 | script = True |
| 516 | elif isinstance(default_config, str): |
| 517 | string_value = default_config |
| 518 | else: |
| 519 | self._default = default_config |
| 520 | return |
| 521 | |
| 522 | resolved_string_value = resolve_env_vars(string_value, full_match=True) |
| 523 | if resolved_string_value == string_value: |
| 524 | resolved_string_value = replace_auth_vars(string_value, username, audit_name) |
| 525 | |
| 526 | if not script: |
| 527 | self._default = resolved_string_value |
| 528 | return |
| 529 | |
| 530 | template_property = TemplateProperty(resolved_string_value, parameters, parameter_value_wrappers) |
| 531 | shell = read_bool_from_config('shell', default_config, default=is_empty(template_property.required_parameters)) |
| 532 | |
| 533 | def get_script_output(script): |
| 534 | output = process_invoker.invoke(script, working_dir, shell=shell) |
| 535 | stripped_output = output.strip() |
| 536 | |
| 537 | if type == PARAM_TYPE_MULTISELECT and '\n' in stripped_output: |
| 538 | return [line.strip() for line in stripped_output.split('\n') if not is_empty(line)] |
| 539 | |
| 540 | return stripped_output |
| 541 | |
| 542 | if not template_property.required_parameters: |
| 543 | self._default = get_script_output(resolved_string_value) |
| 544 | else: |
| 545 | def update_default(_, new): |
| 546 | if new is None: |
| 547 | self._default = None |
| 548 | else: |
| 549 | self._default = get_script_output(new) |
| 550 | |
| 551 | template_property.subscribe(update_default) |
| 552 | update_default(None, template_property.value) |
| 553 | |
| 554 | |
| 555 | class PassAsConfiguration: |
no test coverage detected