From 00fba6dea3dd1985de3fabc0ca028a1fca556bf4 Mon Sep 17 00:00:00 2001 From: Sagi Shnaidman Date: Mon, 6 Jul 2020 12:00:10 +0300 Subject: [PATCH] Update introspection and discovery with latest options Add new options for introspection in discovery and introspection roles. Options are from client patch: https://review.opendev.org/#/c/737568 Change-Id: Ie4df9d621376935c441e89c73b6cffa9f18d52b6 --- .../tripleo_overcloud_node_discover/README.md | 3 ++ .../defaults/main.yml | 3 ++ .../molecule/default/converge.yml | 48 ++++++++++++++++++- .../tasks/main.yml | 3 ++ .../README.md | 3 ++ .../defaults/main.yml | 3 ++ .../molecule/default/converge.yml | 48 ++++++++++++++++++- .../tasks/main.yml | 3 ++ 8 files changed, 112 insertions(+), 2 deletions(-) diff --git a/roles/tripleo_overcloud_node_discover/README.md b/roles/tripleo_overcloud_node_discover/README.md index 3b3a60a..0b02255 100644 --- a/roles/tripleo_overcloud_node_discover/README.md +++ b/roles/tripleo_overcloud_node_discover/README.md @@ -25,6 +25,9 @@ Role Variables * `tripleo_overcloud_node_discover_concurrency`: Maximum number of nodes to introspect at once. * `tripleo_overcloud_node_discover_os_cloud`: (String) OS_CLOUD value to use when running the command. If `tripleo_os_cloud` is defined, it will be the default. Otherwise the default is ''. This variable takes precedence over `tripleo_overcloud_node_discover_rc_file`. * `tripleo_overcloud_node_discover_rc_file`: (String) Path to the credential file to use. If `tripleo_rc_file` is defined, it will be the default. Default: "{{ ansible_env.HOME }}/stackrc" +* `tripleo_overcloud_node_introspect_node_timeout`: (Integer) Maximum timeout for node introspection. +* `tripleo_overcloud_node_introspect_max_retries`: (Integer) Maximum introspection retries. +* `tripleo_overcloud_node_introspect_retry_timeout`: (Integer) Maximum timeout between introspection retries. NOTE: Please note that this command should be run against the undercloud so the OS_CLOUD or rc file variables should be set to use the 'undercloud' when diff --git a/roles/tripleo_overcloud_node_discover/defaults/main.yml b/roles/tripleo_overcloud_node_discover/defaults/main.yml index 021cecd..54c1ade 100644 --- a/roles/tripleo_overcloud_node_discover/defaults/main.yml +++ b/roles/tripleo_overcloud_node_discover/defaults/main.yml @@ -17,3 +17,6 @@ tripleo_overcloud_node_discover_provide: false tripleo_overcloud_node_discover_range: tripleo_overcloud_node_discover_rc_file: "{{ tripleo_rc_file | default(ansible_env.HOME ~ '/stackrc') }}" tripleo_overcloud_node_discover_run_validations: false +tripleo_overcloud_node_introspect_node_timeout: +tripleo_overcloud_node_introspect_max_retries: +tripleo_overcloud_node_introspect_retry_timeout: diff --git a/roles/tripleo_overcloud_node_discover/molecule/default/converge.yml b/roles/tripleo_overcloud_node_discover/molecule/default/converge.yml index 4e78496..de91c36 100644 --- a/roles/tripleo_overcloud_node_discover/molecule/default/converge.yml +++ b/roles/tripleo_overcloud_node_discover/molecule/default/converge.yml @@ -102,6 +102,48 @@ that: - tripleo_overcloud_node_discover_output == "overcloud node discover --run-validations" + - name: Check parameter "tripleo_overcloud_node_introspect_node_timeout" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_node_timeout: value + + - name: Assert "tripleo_overcloud_node_introspect_node_timeout" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --node-timeout value" + + - name: Check parameter "tripleo_overcloud_node_introspect_max_retries" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_max_retries: value + + - name: Assert "tripleo_overcloud_node_introspect_max_retries" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --max-retries value" + + - name: Check parameter "tripleo_overcloud_node_introspect_retry_timeout" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_retry_timeout: value + + - name: Assert "tripleo_overcloud_node_introspect_retry_timeout" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --retry-timeout value" + - name: Check parameter "tripleo_overcloud_node_discover_provide" include_role: name: "tripleo_overcloud_node_discover" @@ -176,10 +218,14 @@ tripleo_overcloud_node_discover_no_deploy_image: true tripleo_overcloud_node_discover_instance_boot_option: value tripleo_overcloud_node_discover_concurrency: value + tripleo_overcloud_node_introspect_node_timeout: 60 + tripleo_overcloud_node_introspect_max_retries: 2 + tripleo_overcloud_node_introspect_retry_timeout: 120 - name: Assert all parameters for role tripleo_overcloud_node_discover assert: that: - tripleo_overcloud_node_discover_output == "overcloud node discover --ip value --range value --credentials value --port value --introspect - --run-validations --provide --no-deploy-image --instance-boot-option value --concurrency value" + --run-validations --node-timeout 60 --max-retries 2 --retry-timeout 120 --provide --no-deploy-image + --instance-boot-option value --concurrency value" diff --git a/roles/tripleo_overcloud_node_discover/tasks/main.yml b/roles/tripleo_overcloud_node_discover/tasks/main.yml index 9879a5b..6def5e1 100644 --- a/roles/tripleo_overcloud_node_discover/tasks/main.yml +++ b/roles/tripleo_overcloud_node_discover/tasks/main.yml @@ -11,6 +11,9 @@ {{ tripleo_overcloud_node_discover_port | tripleo.operator.shell_arg_list('--port') }} {{ tripleo_overcloud_node_discover_introspect | ternary('--introspect', '') }} {{ tripleo_overcloud_node_discover_run_validations | ternary('--run-validations', '') }} + {{ tripleo_overcloud_node_introspect_node_timeout | ternary('--node-timeout ' ~ tripleo_overcloud_node_introspect_node_timeout, '') }} + {{ tripleo_overcloud_node_introspect_max_retries | ternary('--max-retries ' ~ tripleo_overcloud_node_introspect_max_retries, '') }} + {{ tripleo_overcloud_node_introspect_retry_timeout | ternary('--retry-timeout ' ~ tripleo_overcloud_node_introspect_retry_timeout, '') }} {{ tripleo_overcloud_node_discover_provide | ternary('--provide', '') }} {{ tripleo_overcloud_node_discover_no_deploy_image | ternary('--no-deploy-image', '') }} {{ tripleo_overcloud_node_discover_instance_boot_option | ternary('--instance-boot-option ' diff --git a/roles/tripleo_overcloud_node_introspect/README.md b/roles/tripleo_overcloud_node_introspect/README.md index 59a8570..95937ae 100644 --- a/roles/tripleo_overcloud_node_introspect/README.md +++ b/roles/tripleo_overcloud_node_introspect/README.md @@ -22,6 +22,9 @@ Role Variables * `tripleo_overcloud_node_introspect_generate_scripts`: (Boolean) Write out a shell script that can be used to reproduce the command being executed. By default uses the value of `tripleo_generate_scripts` or False if `tripleo_generate_scripts` is not defined. * `tripleo_overcloud_node_introspect_generate_scripts_only`: (Boolean) Do not run the actual command - to be used in conjonction with `tripleo_overcloud_node_introspect_generate_scripts`. By default uses the value of `tripleo_generate_scripts_only` or False if `tripleo_generate_scripts_only` is not defined. * `tripleo_overcloud_node_introspect_home_dir`: (String) Path to the directory to execute the command in. Default: "{{ ansible_env.HOME }}" +* `tripleo_overcloud_node_introspect_node_timeout`: (Integer) Maximum timeout for node introspection. +* `tripleo_overcloud_node_introspect_max_retries`: (Integer) Maximum introspection retries. +* `tripleo_overcloud_node_introspect_retry_timeout`: (Integer) Maximum timeout between introspection retries. NOTE: Please note that this command should be run against the undercloud so the OS_CLOUD or rc file variables should be set to use the 'undercloud' when diff --git a/roles/tripleo_overcloud_node_introspect/defaults/main.yml b/roles/tripleo_overcloud_node_introspect/defaults/main.yml index a76b99e..e22c505 100644 --- a/roles/tripleo_overcloud_node_introspect/defaults/main.yml +++ b/roles/tripleo_overcloud_node_introspect/defaults/main.yml @@ -12,3 +12,6 @@ tripleo_overcloud_node_introspect_run_validations: false tripleo_overcloud_node_introspect_generate_scripts: "{{ tripleo_generate_scripts | default(False) }}" tripleo_overcloud_node_introspect_generate_scripts_only: "{{ tripleo_generate_scripts_only | default(False) }}" tripleo_overcloud_node_introspect_home_dir: "{{ ansible_env.HOME }}" +tripleo_overcloud_node_introspect_node_timeout: +tripleo_overcloud_node_introspect_max_retries: +tripleo_overcloud_node_introspect_retry_timeout: diff --git a/roles/tripleo_overcloud_node_introspect/molecule/default/converge.yml b/roles/tripleo_overcloud_node_introspect/molecule/default/converge.yml index 7b7a3f2..5092f64 100644 --- a/roles/tripleo_overcloud_node_introspect/molecule/default/converge.yml +++ b/roles/tripleo_overcloud_node_introspect/molecule/default/converge.yml @@ -88,6 +88,47 @@ that: - tripleo_overcloud_node_introspect_output == "overcloud node introspect --concurrency value" + - name: Check parameter "tripleo_overcloud_node_introspect_node_timeout" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_node_timeout: value + + - name: Assert "tripleo_overcloud_node_introspect_node_timeout" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --node-timeout value" + + - name: Check parameter "tripleo_overcloud_node_introspect_max_retries" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_max_retries: value + + - name: Assert "tripleo_overcloud_node_introspect_max_retries" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --max-retries value" + + - name: Check parameter "tripleo_overcloud_node_introspect_retry_timeout" + include_role: + name: "tripleo_overcloud_node_introspect" + vars: + openstack_bin: echo + tripleo_os_cloud: undercloud + tripleo_overcloud_node_introspect_debug: true + tripleo_overcloud_node_introspect_retry_timeout: value + + - name: Assert "tripleo_overcloud_node_introspect_retry_timeout" + assert: + that: + - tripleo_overcloud_node_introspect_output == "overcloud node introspect --retry-timeout value" - name: Check all parameters for role tripleo_overcloud_node_introspect include_role: @@ -101,9 +142,14 @@ tripleo_overcloud_node_introspect_provide: true tripleo_overcloud_node_introspect_run_validations: true tripleo_overcloud_node_introspect_concurrency: value + tripleo_overcloud_node_introspect_node_timeout: 60 + tripleo_overcloud_node_introspect_max_retries: 2 + tripleo_overcloud_node_introspect_retry_timeout: 120 - name: Assert all parameters for role tripleo_overcloud_node_introspect assert: that: - tripleo_overcloud_node_introspect_output == - "overcloud node introspect value1 value2 --all-manageable --provide --run-validations --concurrency value" + "overcloud node introspect value1 value2 + --all-manageable --provide --run-validations --node-timeout 60 + --max-retries 2 --retry-timeout 120 --concurrency value" diff --git a/roles/tripleo_overcloud_node_introspect/tasks/main.yml b/roles/tripleo_overcloud_node_introspect/tasks/main.yml index 03766cb..f699513 100644 --- a/roles/tripleo_overcloud_node_introspect/tasks/main.yml +++ b/roles/tripleo_overcloud_node_introspect/tasks/main.yml @@ -9,6 +9,9 @@ {{ tripleo_overcloud_node_introspect_all_manageable | ternary('--all-manageable', '') }} {{ tripleo_overcloud_node_introspect_provide | ternary('--provide', '') }} {{ tripleo_overcloud_node_introspect_run_validations | ternary('--run-validations', '') }} + {{ tripleo_overcloud_node_introspect_node_timeout | ternary('--node-timeout ' ~ tripleo_overcloud_node_introspect_node_timeout, '') }} + {{ tripleo_overcloud_node_introspect_max_retries | ternary('--max-retries ' ~ tripleo_overcloud_node_introspect_max_retries, '') }} + {{ tripleo_overcloud_node_introspect_retry_timeout | ternary('--retry-timeout ' ~ tripleo_overcloud_node_introspect_retry_timeout, '') }} {{ tripleo_overcloud_node_introspect_concurrency | ternary('--concurrency ' ~ tripleo_overcloud_node_introspect_concurrency, '') }} _introspect_env: OS_CLOUD: "{{ tripleo_overcloud_node_introspect_os_cloud }}"