Skip to content
This repository has been archived by the owner on Jun 29, 2022. It is now read-only.

Commit

Permalink
Fix error flow for non-sudo user scan. Closes #383.
Browse files Browse the repository at this point in the history
  • Loading branch information
chambridge committed Oct 18, 2017
1 parent 9ff8dff commit 221183b
Show file tree
Hide file tree
Showing 5 changed files with 193 additions and 22 deletions.
12 changes: 11 additions & 1 deletion roles/cpu/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,19 @@
ignore_errors: yes
when: 'have_dmidecode and "cpu.socket_count" in facts_to_collect'

- name: extract result value for cpu.socket_count
set_fact:
cpu_socket_count: "{{ cpu_socket_count['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"cpu.socket_count" in facts_to_collect and "stdout" in cpu_socket_count'

- name: handle failure value for cpu.socket_count
set_fact:
cpu_socket_count: "{{ 'error' if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"cpu.socket_count" in facts_to_collect and "stdout" not in cpu_socket_count'

- name: add cpu.socket_count to dictionary
set_fact:
cpu: "{{ cpu|default({}) | combine({ item: cpu_socket_count['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }) }}"
cpu: "{{ cpu|default({}) | combine({ item: cpu_socket_count }) }}"
with_items:
- 'cpu.socket_count'
when: '"cpu.socket_count" in facts_to_collect'
24 changes: 22 additions & 2 deletions roles/date/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,19 @@
ignore_errors: yes
when: '"date.anaconda_log" in facts_to_collect'

- name: extract result value for date.anaconda_log
set_fact:
date_anaconda_log: "{{ date_anaconda_log['stdout'] | trim | default('error') }}"
when: '"date.anaconda_log" in facts_to_collect and "stdout" in date_anaconda_log'

- name: handle failure value for date.anaconda_log
set_fact:
date_anaconda_log: "error"
when: '"date.anaconda_log" in facts_to_collect and "stdout" not in date_anaconda_log'

- name: add date.anaconda_log to dictionary
set_fact:
date: "{{ date|default({}) | combine({ item: date_anaconda_log['stdout'] | trim | default('error') }) }}"
date: "{{ date|default({}) | combine({ item: date_anaconda_log }) }}"
with_items:
- 'date.anaconda_log'
when: '"date.anaconda_log" in facts_to_collect'
Expand Down Expand Up @@ -64,9 +74,19 @@
ignore_errors: yes
when: 'have_yum and "date.yum_history" in facts_to_collect'

- name: extract result value for date.yum_history
set_fact:
date_yum_history: "{{ date_yum_history['stdout_lines'] | select | first | default('error') if have_yum else 'N/A (yum not found)' }}"
when: '"date.yum_history" in facts_to_collect and "stdout_lines" in date_yum_history'

- name: handle failure value for date.yum_history
set_fact:
date_yum_history: "{{ 'error' if have_yum else 'N/A (yum not found)' }}"
when: '"date.yum_history" in facts_to_collect and "stdout_lines" not in date_yum_history'

- name: add date.yum_history to dictionary
set_fact:
date: "{{ date|default({}) | combine({ item: date_yum_history['stdout_lines'] | select | first | default('error') if have_yum else 'N/A (yum not found)' }) }}"
date: "{{ date|default({}) | combine({ item: date_yum_history }) }}"
with_items:
- 'date.yum_history'
when: '"date.yum_history" in facts_to_collect'
50 changes: 45 additions & 5 deletions roles/dmi/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,19 @@
become: yes
when: '"dmi.bios-vendor" in facts_to_collect'

- name: extract result value for dmi.bios-vendor
set_fact:
dmi_bios_vendor: "{{ dmi_bios_vendor['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.bios-vendor" in facts_to_collect and "stdout" in dmi_bios_vendor'

- name: handle failure value for dmi.bios-vendor
set_fact:
dmi_bios_vendor: "{{ 'error' if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.bios-vendor" in facts_to_collect and "stdout" not in dmi_bios_vendor'

- name: add dmi.bios-vendor to dictionary
set_fact:
dmi: "{{ dmi|default({}) | combine({ item: dmi_bios_vendor['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }) }}"
dmi: "{{ dmi|default({}) | combine({ item: dmi_bios_vendor }) }}"
with_items:
- 'dmi.bios-vendor'
when: '"dmi.bios-vendor" in facts_to_collect'
Expand All @@ -25,9 +35,19 @@
become: yes
when: '"dmi.bios-version" in facts_to_collect'

- name: extract result value for dmi.bios-version
set_fact:
dmi_bios_version: "{{ dmi_bios_vendor['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.bios-version" in facts_to_collect and "stdout" in dmi_bios_version'

- name: handle failure value for dmi.bios-version
set_fact:
dmi_bios_version: "{{ 'error' if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.bios-version" in facts_to_collect and "stdout" not in dmi_bios_version'

- name: add dmi.bios-version to dictionary
set_fact:
dmi: "{{ dmi|default({}) | combine({ item: dmi_bios_version['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }) }}"
dmi: "{{ dmi|default({}) | combine({ item: dmi_bios_version }) }}"
with_items:
- 'dmi.bios-version'
when: '"dmi.bios-version" in facts_to_collect'
Expand All @@ -39,23 +59,43 @@
become: yes
when: '"dmi.system-manufacturer" in facts_to_collect'

- name: extract result value for dmi.system-manufacturer
set_fact:
dmi_system_manufacturer: "{{ dmi_system_manufacturer['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.system-manufacturer" in facts_to_collect and "stdout" in dmi_system_manufacturer'

- name: handle failure value for dmi.system-manufacturer
set_fact:
dmi_system_manufacturer: "{{ 'error' if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.system-manufacturer" in facts_to_collect and "stdout" not in dmi_system_manufacturer'

- name: add dmi.system-manufacturer to dictionary
set_fact:
dmi: "{{ dmi|default({}) | combine({ item: dmi_system_manufacturer['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }) }}"
dmi: "{{ dmi|default({}) | combine({ item: dmi_system_manufacturer }) }}"
with_items:
- 'dmi.system-manufacturer'
when: '"dmi.system-manufacturer" in facts_to_collect'

- name: gather processor-family fact
- name: gather dmi.processor-family fact
raw: /usr/sbin/dmidecode -s processor-family
register: dmi_processor_family
ignore_errors: yes
become: yes
when: '"dmi.processor-family" in facts_to_collect'

- name: extract result value for dmi.processor-family
set_fact:
dmi_processor_family: "{{ dmi_processor_family['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.processor-family" in facts_to_collect and "stdout" in dmi_processor_family'

- name: handle failure value for dmi.processor-family
set_fact:
dmi_processor_family: "{{ 'error' if have_dmidecode else 'N/A (dmidecode not found)' }}"
when: '"dmi.processor-family" in facts_to_collect and "stdout" not in dmi_processor_family'

- name: add dmi.processor-family to dictionary
set_fact:
dmi: "{{ dmi|default({}) | combine({ item: dmi_processor_family['stdout'] | trim | default('error') if have_dmidecode else 'N/A (dmidecode not found)' }) }}"
dmi: "{{ dmi|default({}) | combine({ item: dmi_processor_family }) }}"
with_items:
- 'dmi.processor-family'
when: '"dmi.processor-family" in facts_to_collect'
72 changes: 66 additions & 6 deletions roles/subman/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,19 @@
become: yes
when: 'have_subscription_manager and "subman.cpu.cpu(s)" in facts_to_collect'

- name: extract result value for subman.cpu.cpu(s)
set_fact:
subman_cpu_cpu: "{{ subman_cpu_cpu['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.cpu(s)" in facts_to_collect and "stdout" in subman_cpu_cpu'

- name: handle failure value for subman.cpu.cpu(s)
set_fact:
subman_cpu_cpu: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.cpu(s)" in facts_to_collect and "stdout" not in subman_cpu_cpu'

- name: add subman.cpu.cpu(s) to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_cpu_cpu['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_cpu_cpu }) }}"
with_items:
- 'subman.cpu.cpu(s)'
when: '"subman.cpu.cpu(s)" in facts_to_collect'
Expand All @@ -25,9 +35,19 @@
become: yes
when: 'have_subscription_manager and "subman.cpu.core(s)_per_socket" in facts_to_collect'

- name: extract result value for subman.cpu.core(s)_per_socket
set_fact:
subman_cpu_core_per_socket: "{{ subman_cpu_core_per_socket['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.core(s)_per_socket" in facts_to_collect and "stdout" in subman_cpu_core_per_socket'

- name: handle failure value for subman.cpu.core(s)_per_socket
set_fact:
subman_cpu_core_per_socket: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.core(s)_per_socket" in facts_to_collect and "stdout" not in subman_cpu_core_per_socket'

- name: add subman.cpu.core(s)_per_socket to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_cpu_core_per_socket['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_cpu_core_per_socket }) }}"
with_items:
- 'subman.cpu.core(s)_per_socket'
when: '"subman.cpu.core(s)_per_socket" in facts_to_collect'
Expand All @@ -39,9 +59,19 @@
become: yes
when: 'have_subscription_manager and "subman.cpu.cpu_socket(s)" in facts_to_collect'

- name: extract result value for subman.cpu.cpu_socket(s)
set_fact:
subman_cpu_cpu_socket: "{{ subman_cpu_core_per_socket['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.cpu_socket(s)" in facts_to_collect and "stdout" in subman_cpu_cpu_socket'

- name: handle failure value for subman.cpu.cpu_socket(s)
set_fact:
subman_cpu_cpu_socket: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.cpu.cpu_socket(s)" in facts_to_collect and "stdout" not in subman_cpu_cpu_socket'

- name: add subman.cpu.cpu_socket(s) to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_cpu_cpu_socket['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_cpu_cpu_socket }) }}"
with_items:
- 'subman.cpu.cpu_socket(s)'
when: '"subman.cpu.cpu_socket(s)" in facts_to_collect'
Expand All @@ -53,9 +83,19 @@
become: yes
when: 'have_subscription_manager and "subman.virt.host_type" in facts_to_collect'

- name: extract result value for subman.virt.host_type
set_fact:
subman_virt_host_type: "{{ subman_virt_host_type['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.host_type" in facts_to_collect and "stdout" in subman_virt_host_type'

- name: handle failure value for subman.virt.host_type
set_fact:
subman_virt_host_type: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.host_type" in facts_to_collect and "stdout" not in subman_virt_host_type'

- name: add subman.virt.host_type to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_virt_host_type['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_virt_host_type }) }}"
with_items:
- 'subman.virt.host_type'
when: '"subman.virt.host_type" in facts_to_collect'
Expand All @@ -67,9 +107,19 @@
become: yes
when: 'have_subscription_manager and "subman.virt.is_guest" in facts_to_collect'

- name: extract result value for subman.virt.is_guest
set_fact:
subman_virt_is_guest: "{{ subman_virt_is_guest['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.is_guest" in facts_to_collect and "stdout" in subman_virt_is_guest'

- name: handle failure value for subman.virt.is_guest
set_fact:
subman_virt_is_guest: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.is_guest" in facts_to_collect and "stdout" not in subman_virt_is_guest'

- name: add subman.virt.is_guest to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_virt_is_guest['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_virt_is_guest }) }}"
with_items:
- 'subman.virt.is_guest'
when: '"subman.virt.is_guest" in facts_to_collect'
Expand All @@ -81,9 +131,19 @@
become: yes
when: 'have_subscription_manager and "subman.virt.uuid" in facts_to_collect'

- name: extract result value for subman.virt.uuid
set_fact:
subman_virt_uuid: "{{ subman_virt_uuid['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.uuid" in facts_to_collect and "stdout" in subman_virt_uuid'

- name: handle failure value for subman.virt.is_guest
set_fact:
subman_virt_uuid: "{{ 'error' if have_subscription_manager else 'N/A (subscription-manager not found)' }}"
when: '"subman.virt.uuid" in facts_to_collect and "stdout" not in subman_virt_uuid'

- name: add subman.virt.uuid to dictionary
set_fact:
subman: "{{ subman|default({}) | combine({ item: subman_virt_uuid['stdout'] | trim | default('error') if have_subscription_manager else 'N/A (subscription-manager not found)' }) }}"
subman: "{{ subman|default({}) | combine({ item: subman_virt_uuid }) }}"
with_items:
- 'subman.virt.uuid'
when: '"subman.virt.uuid" in facts_to_collect'
Expand Down
57 changes: 49 additions & 8 deletions roles/virt/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,27 +29,68 @@
ignore_errors: yes
when: 'have_dmidecode and ("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect)'

- name: extract result value for sys_manu_vmware
set_fact:
sys_manu_vmware: "{{ sys_manu_vmware['stdout_lines'][0] | trim | default('N') }}"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" in sys_manu_vmware'

- name: handle failure value for sys_manu_vmware
set_fact:
sys_manu_vmware: "N"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" not in sys_manu_vmware'

- name: check system manufacture for innotek GmbH
raw: manufacturer=$(/usr/sbin/dmidecode | grep -A4 'System Information' | grep 'Manufacturer' | sed -n -e 's/^.*Manufacturer:\s//p'); if [[ $manufacturer == *"innotek GmbH"* ]]; then echo "Y"; else echo "N"; fi
register: sys_manu_virtualbox
become: yes
ignore_errors: yes
when: 'have_dmidecode and ("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect)'

- name: extract result value for sys_manu_virtualbox
set_fact:
sys_manu_virtualbox: "{{ sys_manu_virtualbox['stdout_lines'][0] | trim | default('N') }}"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" in sys_manu_virtualbox'

- name: handle failure value for sys_manu_virtualbox
set_fact:
sys_manu_virtualbox: "N"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" not in sys_manu_virtualbox'

- name: check system manufacture for Microsoft
raw: manufacturer=$(/usr/sbin/dmidecode | grep -A4 'System Information' | grep 'Manufacturer' | sed -n -e 's/^.*Manufacturer:\s//p'); if [[ $manufacturer == *"Microsoft"* ]]; then echo "Y"; else echo "N"; fi
register: sys_manu_virtualpc
become: yes
ignore_errors: yes
when: 'have_dmidecode and ("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect)'

- name: extract result value for sys_manu_virtualpc
set_fact:
sys_manu_virtualpc: "{{ sys_manu_virtualpc['stdout_lines'][0] | trim | default('N') }}"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" in sys_manu_virtualpc'

- name: handle failure value for sys_manu_virtualpc
set_fact:
sys_manu_virtualpc: "N"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" not in sys_manu_virtualpc'

- name: check system manufacture for QEMU
raw: manufacturer=$(/usr/sbin/dmidecode | grep -A4 'System Information' | grep 'Manufacturer' | sed -n -e 's/^.*Manufacturer:\s//p'); if [[ $manufacturer == *"QEMU"* ]]; then echo "Y"; else echo "N"; fi
register: sys_manu_kvm
become: yes
ignore_errors: yes
when: 'have_dmidecode and ("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect)'

- name: extract result value for sys_manu_kvm
set_fact:
sys_manu_kvm: "{{ sys_manu_kvm['stdout_lines'][0] | trim | default('N') }}"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" in sys_manu_kvm'

- name: handle failure value for sys_manu_kvm
set_fact:
sys_manu_kvm: "N"
when: '("virt.virt" in facts_to_collect or "virt.type" in facts_to_collect) and "stdout_lines" not in sys_manu_kvm'


- name: check cpu model name for QEMU
raw: model_name=$(cat /proc/cpuinfo | grep '^model name\s*:' | sed -n -e 's/^.*model name\s*:\s//p'); if [[ $model_name == *QEMU ]]; then echo "Y"; else echo "N"; fi
register: cpu_model_name_kvm
Expand All @@ -74,35 +115,35 @@

- name: set virt.virt fact due to sys_manu_vmware
set_fact: virt_virt="virt-guest"
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_vmware["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_vmware == "Y"'

- name: set virt.type fact due to sys_manu_vmware
set_fact: virt_type="vmware"
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_vmware["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_vmware == "Y"'

- name: set virt.virt fact due to sys_manu_virtualbox
set_fact: virt_virt="virt-guest"
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_virtualbox["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_virtualbox == "Y"'

- name: set virt.type fact due to sys_manu_virtualbox
set_fact: virt_type="virtualbox"
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_virtualbox["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_virtualbox == "Y"'

- name: set virt.virt fact due to sys_manu_virtualpc
set_fact: virt_virt="virt-guest"
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_virtualpc["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_virtualpc == "Y"'

- name: set virt.type fact due to sys_manu_virtualpc
set_fact: virt_type="virtualpc"
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_virtualpc["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_virtualpc == "Y"'

- name: set virt.virt fact due to sys_manu_kvm
set_fact: virt_virt="virt-guest"
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_kvm["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.virt" in facts_to_collect and sys_manu_kvm == "Y"'

- name: set virt.type fact due to sys_manu_kvm
set_fact: virt_type="kvm"
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_kvm["stdout_lines"][0] == "Y"'
when: 'have_dmidecode and "virt.type" in facts_to_collect and sys_manu_kvm == "Y"'

- name: set virt.virt when dmidecode is not found
set_fact: virt_virt='N/A (dmidecode not found)'
Expand Down

0 comments on commit 221183b

Please sign in to comment.