Fix sosreport minor issues in states
Change-Id: I3541118d84f8cccb0f26d9b461a99c48928f0c02
Related-Prod: PROD-34312
Related-Prod: PROD-34311
diff --git a/linux/files/sosreport_collect.sh b/linux/files/sosreport_collect.sh
index 0c8fa13..483ae04 100644
--- a/linux/files/sosreport_collect.sh
+++ b/linux/files/sosreport_collect.sh
@@ -28,6 +28,15 @@
nc -q 1 -lp ${port} | tar -x || errMsg="${errMsg}Failed to collect report for ${node}\n"
}
+check_minions() {
+ local target=$1
+ if [ -z "$(salt -C "${target}" --preview-target)" ]; then
+ echo "No minions found for target: ${target}"
+ exit 1
+ fi
+}
+
+check_minions "${target}"
cd ${reportWorkDir}
for node in $(salt -C "${target}" --out txt test.ping | cut -f 1 -d ':'); do
nc_listen ${node} &
diff --git a/linux/system/sosreport/collect.sls b/linux/system/sosreport/collect.sls
index 4a8b40f..358d993 100644
--- a/linux/system/sosreport/collect.sls
+++ b/linux/system/sosreport/collect.sls
@@ -34,11 +34,11 @@
- require:
- file: sosreport_tmp_collect_dir
- defaults: |
- nodeIp: {{ collectDefaultOpts['nodeIp'] }}
- port: {{ collectDefaultOpts['port'] }}
- target: {{ collectDefaultOpts['target'] }}
- reportWorkDir: {{ collectDefaultOpts['reportWorkDir'] }}
- archiveName: {{ collectDefaultOpts['archiveName'] }}
+ nodeIp: '{{ collectDefaultOpts['nodeIp'] }}'
+ port: '{{ collectDefaultOpts['port'] }}'
+ target: '{{ collectDefaultOpts['target'] }}'
+ reportWorkDir: '{{ collectDefaultOpts['reportWorkDir'] }}'
+ archiveName: '{{ collectDefaultOpts['archiveName'] }}'
sosreport_run:
cmd.run:
diff --git a/linux/system/sosreport/report.sls b/linux/system/sosreport/report.sls
index 0e2ca82..c2cac3c 100644
--- a/linux/system/sosreport/report.sls
+++ b/linux/system/sosreport/report.sls
@@ -1,8 +1,14 @@
{%- from "linux/map.jinja" import system with context %}
-sosreport_packages:
+netcat_package:
pkg.installed:
- - names: [ sosreport, netcat-openbsd ]
+ - name: netcat-openbsd
+
+sosreport_packages:
+ pkg.latest:
+ - name: sosreport
+ - require:
+ - pkg: netcat_package
{# Package has default config file, so if nothing provided through pillars use it #}
{%- if system.sosreport.config_options is defined %}