Expand ATVM coverage details with run options
This commit is contained in:
@@ -688,11 +688,20 @@ def infer_host_from_subrun_build(
|
||||
|
||||
|
||||
def infer_metadata() -> Dict[str, object]:
|
||||
try:
|
||||
extra_options = json.loads(os.environ.get("ATVM_WATCHER_EXTRA_OPTIONS", "[]"))
|
||||
except json.JSONDecodeError:
|
||||
extra_options = []
|
||||
if not isinstance(extra_options, list):
|
||||
extra_options = []
|
||||
extra_options = [value for value in extra_options if isinstance(value, str) and value]
|
||||
return {
|
||||
"template": os.environ.get("ATVM_WATCHER_TEMPLATE", "unknown"),
|
||||
"config_family": os.environ.get("ATVM_WATCHER_CONFIG_FAMILY", "unknown"),
|
||||
"config_file": os.environ.get("ATVM_WATCHER_CONFIG_FILE", "unknown"),
|
||||
"migration_style": os.environ.get("ATVM_WATCHER_MIGRATION_STYLE", "ATVM automation validation"),
|
||||
"integration_plugin": os.environ.get("ATVM_WATCHER_INTEGRATION_PLUGIN", "unknown"),
|
||||
"extra_options": extra_options,
|
||||
"scope_description": os.environ.get("ATVM_WATCHER_SCOPE_DESCRIPTION", "requested ATVM run scope"),
|
||||
"categorized": os.environ.get("ATVM_WATCHER_CATEGORIZED", "false").lower() == "true",
|
||||
}
|
||||
@@ -791,8 +800,10 @@ def build_status_markdown(
|
||||
"**COVERAGE:**",
|
||||
f"- template: `{metadata['template']}`",
|
||||
f"- datastore/config family: `{metadata['config_family']}`",
|
||||
f"- config file: `{metadata.get('config_file', 'unknown')}`",
|
||||
f"- migration style: {metadata['migration_style']}",
|
||||
f"- integration/plugin path: `{metadata['integration_plugin']}`",
|
||||
f"- run options: {', '.join(f'`{value}`' for value in metadata.get('extra_options', [])) or 'none'}",
|
||||
f"- scope of this run: {metadata['scope_description']}",
|
||||
"",
|
||||
"**TEST FLOW:**",
|
||||
|
||||
@@ -10,8 +10,10 @@ Options:
|
||||
--build-name <name>
|
||||
--template <name>
|
||||
--config-family <name>
|
||||
--config-file <path>
|
||||
--migration-style <text>
|
||||
--integration-plugin <text>
|
||||
--extra-option <text> Repeatable
|
||||
--scope-description <text>
|
||||
--categorize
|
||||
--state-root <path> Default: /var/lib/atvm-run-watcher
|
||||
@@ -21,8 +23,10 @@ EOF
|
||||
BUILD_NAME=""
|
||||
TEMPLATE=""
|
||||
CONFIG_FAMILY=""
|
||||
CONFIG_FILE=""
|
||||
MIGRATION_STYLE=""
|
||||
INTEGRATION_PLUGIN=""
|
||||
EXTRA_OPTIONS=()
|
||||
SCOPE_DESCRIPTION=""
|
||||
WATCHER_CATEGORIZED="false"
|
||||
STATE_ROOT="/var/lib/atvm-run-watcher"
|
||||
@@ -32,8 +36,10 @@ while [[ $# -gt 0 ]]; do
|
||||
--build-name) BUILD_NAME="${2:-}"; shift 2 ;;
|
||||
--template) TEMPLATE="${2:-}"; shift 2 ;;
|
||||
--config-family) CONFIG_FAMILY="${2:-}"; shift 2 ;;
|
||||
--config-file) CONFIG_FILE="${2:-}"; shift 2 ;;
|
||||
--migration-style) MIGRATION_STYLE="${2:-}"; shift 2 ;;
|
||||
--integration-plugin) INTEGRATION_PLUGIN="${2:-}"; shift 2 ;;
|
||||
--extra-option) EXTRA_OPTIONS+=("${2:-}"); shift 2 ;;
|
||||
--scope-description) SCOPE_DESCRIPTION="${2:-}"; shift 2 ;;
|
||||
--categorize) WATCHER_CATEGORIZED="true"; shift ;;
|
||||
--state-root) STATE_ROOT="${2:-}"; shift 2 ;;
|
||||
@@ -55,11 +61,20 @@ rm -rf "$RUN_DIR"
|
||||
rm -f "$RUN_LOG"
|
||||
mkdir -p "$RUN_DIR"
|
||||
|
||||
EXTRA_OPTIONS_JSON=$(python3 - <<'PY' "${EXTRA_OPTIONS[@]}"
|
||||
import json
|
||||
import sys
|
||||
print(json.dumps(sys.argv[1:]))
|
||||
PY
|
||||
)
|
||||
|
||||
cat >"${RUN_DIR}/watch.env" <<EOF
|
||||
ATVM_WATCHER_TEMPLATE=${TEMPLATE@Q}
|
||||
ATVM_WATCHER_CONFIG_FAMILY=${CONFIG_FAMILY@Q}
|
||||
ATVM_WATCHER_CONFIG_FILE=${CONFIG_FILE@Q}
|
||||
ATVM_WATCHER_MIGRATION_STYLE=${MIGRATION_STYLE@Q}
|
||||
ATVM_WATCHER_INTEGRATION_PLUGIN=${INTEGRATION_PLUGIN@Q}
|
||||
ATVM_WATCHER_EXTRA_OPTIONS=${EXTRA_OPTIONS_JSON@Q}
|
||||
ATVM_WATCHER_SCOPE_DESCRIPTION=${SCOPE_DESCRIPTION@Q}
|
||||
ATVM_WATCHER_CATEGORIZED=${WATCHER_CATEGORIZED@Q}
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user