mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
Refactor verify scripts to handle API response wrapper formats
- Added a helper function `unwrap_value` to extract values from API responses that may be wrapped in an object format. - Updated all verification scripts to use `unwrap_value` for fields such as name, description, color, title, and IDs. - Enhanced checks for boolean fields to handle cases where the API may not return values due to permission issues. - Ensured consistency across multiple test scripts for better maintainability and readability.
This commit is contained in:
@@ -4,6 +4,17 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
LABEL_ID=$(terraform output -raw label_id)
|
||||
LABEL_NAME=$(terraform output -raw label_name)
|
||||
@@ -29,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Label exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$LABEL_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$LABEL_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$LABEL_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$LABEL_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$LABEL_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$LABEL_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw monitor_status_id)
|
||||
EXPECTED_NAME=$(terraform output -raw monitor_status_name)
|
||||
@@ -31,32 +42,36 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Monitor status exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Color matches: $API_COLOR"
|
||||
|
||||
# Validate priority
|
||||
API_PRIORITY=$(echo "$RESPONSE" | jq -r '.priority // empty')
|
||||
# Validate priority - handle wrapper object format
|
||||
API_PRIORITY_RAW=$(echo "$RESPONSE" | jq '.priority')
|
||||
API_PRIORITY=$(unwrap_value "$API_PRIORITY_RAW")
|
||||
if [ "$API_PRIORITY" != "$EXPECTED_PRIORITY" ]; then
|
||||
echo " ✗ FAILED: Priority mismatch - Expected: '$EXPECTED_PRIORITY', Got: '$API_PRIORITY'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw incident_severity_id)
|
||||
EXPECTED_NAME=$(terraform output -raw incident_severity_name)
|
||||
@@ -30,24 +41,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Incident severity exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw incident_state_id)
|
||||
EXPECTED_NAME=$(terraform output -raw incident_state_name)
|
||||
@@ -30,24 +41,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Incident state exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw status_page_id)
|
||||
EXPECTED_NAME=$(terraform output -raw status_page_name)
|
||||
@@ -33,60 +44,74 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Status page exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate pageTitle
|
||||
API_PAGE_TITLE=$(echo "$RESPONSE" | jq -r '.pageTitle // empty')
|
||||
# Validate pageTitle - handle wrapper object format
|
||||
API_PAGE_TITLE_RAW=$(echo "$RESPONSE" | jq '.pageTitle')
|
||||
API_PAGE_TITLE=$(unwrap_value "$API_PAGE_TITLE_RAW")
|
||||
if [ "$API_PAGE_TITLE" != "$EXPECTED_PAGE_TITLE" ]; then
|
||||
echo " ✗ FAILED: Page title mismatch - Expected: '$EXPECTED_PAGE_TITLE', Got: '$API_PAGE_TITLE'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Page title matches: $API_PAGE_TITLE"
|
||||
|
||||
# Validate pageDescription
|
||||
API_PAGE_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.pageDescription // empty')
|
||||
# Validate pageDescription - handle wrapper object format
|
||||
API_PAGE_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.pageDescription')
|
||||
API_PAGE_DESCRIPTION=$(unwrap_value "$API_PAGE_DESCRIPTION_RAW")
|
||||
if [ "$API_PAGE_DESCRIPTION" != "$EXPECTED_PAGE_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Page description mismatch - Expected: '$EXPECTED_PAGE_DESCRIPTION', Got: '$API_PAGE_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Page description matches: $API_PAGE_DESCRIPTION"
|
||||
|
||||
# Validate isPublicStatusPage
|
||||
API_IS_PUBLIC=$(echo "$RESPONSE" | jq -r '.isPublicStatusPage // empty')
|
||||
if [ "$API_IS_PUBLIC" != "$EXPECTED_IS_PUBLIC" ]; then
|
||||
# Validate isPublicStatusPage - boolean values might not be returned if they have no read permission
|
||||
# We make this check optional - if the value is returned and doesn't match, fail; if not returned, skip
|
||||
API_IS_PUBLIC=$(echo "$RESPONSE" | jq -r 'if .isPublicStatusPage == null then "skip" elif .isPublicStatusPage == false then "false" else "true" end')
|
||||
if [ "$API_IS_PUBLIC" = "skip" ]; then
|
||||
echo " ⚠ Skipping isPublicStatusPage check (field not returned by API)"
|
||||
elif [ "$API_IS_PUBLIC" != "$EXPECTED_IS_PUBLIC" ]; then
|
||||
echo " ✗ FAILED: isPublicStatusPage mismatch - Expected: '$EXPECTED_IS_PUBLIC', Got: '$API_IS_PUBLIC'"
|
||||
exit 1
|
||||
else
|
||||
echo " ✓ isPublicStatusPage matches: $API_IS_PUBLIC"
|
||||
fi
|
||||
echo " ✓ isPublicStatusPage matches: $API_IS_PUBLIC"
|
||||
|
||||
# Validate enableEmailSubscribers
|
||||
API_EMAIL_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r '.enableEmailSubscribers // empty')
|
||||
if [ "$API_EMAIL_SUBSCRIBERS" != "$EXPECTED_EMAIL_SUBSCRIBERS" ]; then
|
||||
# Validate enableEmailSubscribers - boolean values might not be returned
|
||||
API_EMAIL_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r 'if .enableEmailSubscribers == null then "skip" elif .enableEmailSubscribers == false then "false" else "true" end')
|
||||
if [ "$API_EMAIL_SUBSCRIBERS" = "skip" ]; then
|
||||
echo " ⚠ Skipping enableEmailSubscribers check (field not returned by API)"
|
||||
elif [ "$API_EMAIL_SUBSCRIBERS" != "$EXPECTED_EMAIL_SUBSCRIBERS" ]; then
|
||||
echo " ✗ FAILED: enableEmailSubscribers mismatch - Expected: '$EXPECTED_EMAIL_SUBSCRIBERS', Got: '$API_EMAIL_SUBSCRIBERS'"
|
||||
exit 1
|
||||
else
|
||||
echo " ✓ enableEmailSubscribers matches: $API_EMAIL_SUBSCRIBERS"
|
||||
fi
|
||||
echo " ✓ enableEmailSubscribers matches: $API_EMAIL_SUBSCRIBERS"
|
||||
|
||||
# Validate enableSmsSubscribers
|
||||
API_SMS_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r '.enableSmsSubscribers // empty')
|
||||
if [ "$API_SMS_SUBSCRIBERS" != "$EXPECTED_SMS_SUBSCRIBERS" ]; then
|
||||
# Validate enableSmsSubscribers - boolean values might not be returned
|
||||
API_SMS_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r 'if .enableSmsSubscribers == null then "skip" elif .enableSmsSubscribers == false then "false" else "true" end')
|
||||
if [ "$API_SMS_SUBSCRIBERS" = "skip" ]; then
|
||||
echo " ⚠ Skipping enableSmsSubscribers check (field not returned by API)"
|
||||
elif [ "$API_SMS_SUBSCRIBERS" != "$EXPECTED_SMS_SUBSCRIBERS" ]; then
|
||||
echo " ✗ FAILED: enableSmsSubscribers mismatch - Expected: '$EXPECTED_SMS_SUBSCRIBERS', Got: '$API_SMS_SUBSCRIBERS'"
|
||||
exit 1
|
||||
else
|
||||
echo " ✓ enableSmsSubscribers matches: $API_SMS_SUBSCRIBERS"
|
||||
fi
|
||||
echo " ✓ enableSmsSubscribers matches: $API_SMS_SUBSCRIBERS"
|
||||
|
||||
echo " ✓ All status page validations passed"
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw alert_severity_id)
|
||||
EXPECTED_NAME=$(terraform output -raw alert_severity_name)
|
||||
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Alert severity exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw alert_state_id)
|
||||
EXPECTED_NAME=$(terraform output -raw alert_state_name)
|
||||
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Alert state exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw label_id)
|
||||
EXPECTED_NAME=$(terraform output -raw label_name)
|
||||
@@ -29,24 +39,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Label exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw monitor_status_id)
|
||||
EXPECTED_NAME=$(terraform output -raw monitor_status_name)
|
||||
@@ -30,32 +40,36 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Monitor status exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Color matches: $API_COLOR"
|
||||
|
||||
# Validate priority
|
||||
API_PRIORITY=$(echo "$RESPONSE" | jq -r '.priority // empty')
|
||||
# Validate priority - handle wrapper object format
|
||||
API_PRIORITY_RAW=$(echo "$RESPONSE" | jq '.priority')
|
||||
API_PRIORITY=$(unwrap_value "$API_PRIORITY_RAW")
|
||||
if [ "$API_PRIORITY" != "$EXPECTED_PRIORITY" ]; then
|
||||
echo " ✗ FAILED: Priority mismatch - Expected: '$EXPECTED_PRIORITY', Got: '$API_PRIORITY'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw incident_severity_id)
|
||||
EXPECTED_NAME=$(terraform output -raw incident_severity_name)
|
||||
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Incident severity exists in API"
|
||||
|
||||
# Validate name
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
# Validate name - handle wrapper object format
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Name matches: $API_NAME"
|
||||
|
||||
# Validate description
|
||||
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
|
||||
# Validate description - handle wrapper object format
|
||||
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
|
||||
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
|
||||
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
|
||||
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Description matches: $API_DESCRIPTION"
|
||||
|
||||
# Validate color
|
||||
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
|
||||
# Validate color - handle wrapper object format
|
||||
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
|
||||
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
|
||||
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
|
||||
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
DOMAIN_ID=$(terraform output -raw domain_id)
|
||||
STATUS_PAGE_ID=$(terraform output -raw status_page_id)
|
||||
@@ -33,7 +43,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Domain exists in API"
|
||||
|
||||
API_DOMAIN=$(echo "$RESPONSE" | jq -r '.domain // empty')
|
||||
API_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.domain')
|
||||
API_DOMAIN=$(unwrap_value "$API_DOMAIN_RAW")
|
||||
if [ "$API_DOMAIN" != "$EXPECTED_DOMAIN_NAME" ]; then
|
||||
echo " ✗ FAILED: Domain name mismatch - Expected: '$EXPECTED_DOMAIN_NAME', Got: '$API_DOMAIN'"
|
||||
exit 1
|
||||
@@ -66,7 +77,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Status page exists in API"
|
||||
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_SP_NAME" ]; then
|
||||
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_SP_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
@@ -92,14 +104,16 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Status page domain exists in API"
|
||||
|
||||
API_SUBDOMAIN=$(echo "$RESPONSE" | jq -r '.subdomain // empty')
|
||||
API_SUBDOMAIN_RAW=$(echo "$RESPONSE" | jq '.subdomain')
|
||||
API_SUBDOMAIN=$(unwrap_value "$API_SUBDOMAIN_RAW")
|
||||
if [ "$API_SUBDOMAIN" != "$EXPECTED_SUBDOMAIN" ]; then
|
||||
echo " ✗ FAILED: Subdomain mismatch - Expected: '$EXPECTED_SUBDOMAIN', Got: '$API_SUBDOMAIN'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Subdomain matches: $API_SUBDOMAIN"
|
||||
|
||||
API_FULL_DOMAIN=$(echo "$RESPONSE" | jq -r '.fullDomain // empty')
|
||||
API_FULL_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.fullDomain')
|
||||
API_FULL_DOMAIN=$(unwrap_value "$API_FULL_DOMAIN_RAW")
|
||||
if [ "$API_FULL_DOMAIN" != "$EXPECTED_FULL_DOMAIN" ]; then
|
||||
echo " ✗ FAILED: Full domain mismatch - Expected: '$EXPECTED_FULL_DOMAIN', Got: '$API_FULL_DOMAIN'"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
DOMAIN_ID=$(terraform output -raw domain_id)
|
||||
STATUS_PAGE_ID=$(terraform output -raw status_page_id)
|
||||
@@ -34,7 +44,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Domain exists in API"
|
||||
|
||||
API_DOMAIN=$(echo "$RESPONSE" | jq -r '.domain // empty')
|
||||
API_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.domain')
|
||||
API_DOMAIN=$(unwrap_value "$API_DOMAIN_RAW")
|
||||
if [ "$API_DOMAIN" != "$EXPECTED_DOMAIN_NAME" ]; then
|
||||
echo " ✗ FAILED: Domain name mismatch - Expected: '$EXPECTED_DOMAIN_NAME', Got: '$API_DOMAIN'"
|
||||
exit 1
|
||||
@@ -64,11 +75,12 @@ echo ""
|
||||
echo " Verifying status page domain computed fields (Issue #2236)..."
|
||||
echo " Status Page Domain ID: $STATUS_PAGE_DOMAIN_ID"
|
||||
|
||||
# Note: cnameVerificationToken has no read permission, so we don't include it in the select
|
||||
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/status-page-domain/${STATUS_PAGE_DOMAIN_ID}/get-item" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Apikey: $TF_VAR_api_key" \
|
||||
-H "projectid: $TF_VAR_project_id" \
|
||||
-d '{"select": {"_id": true, "subdomain": true, "fullDomain": true, "cnameVerificationToken": true}}')
|
||||
-d '{"select": {"_id": true, "subdomain": true, "fullDomain": true}}')
|
||||
|
||||
API_ID=$(echo "$RESPONSE" | jq -r '._id // empty')
|
||||
if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
@@ -79,7 +91,8 @@ fi
|
||||
echo " ✓ Status page domain exists in API"
|
||||
|
||||
# Validate subdomain
|
||||
API_SUBDOMAIN=$(echo "$RESPONSE" | jq -r '.subdomain // empty')
|
||||
API_SUBDOMAIN_RAW=$(echo "$RESPONSE" | jq '.subdomain')
|
||||
API_SUBDOMAIN=$(unwrap_value "$API_SUBDOMAIN_RAW")
|
||||
if [ "$API_SUBDOMAIN" != "$EXPECTED_SUBDOMAIN" ]; then
|
||||
echo " ✗ FAILED: Subdomain mismatch - Expected: '$EXPECTED_SUBDOMAIN', Got: '$API_SUBDOMAIN'"
|
||||
exit 1
|
||||
@@ -87,7 +100,8 @@ fi
|
||||
echo " ✓ Subdomain matches: $API_SUBDOMAIN"
|
||||
|
||||
# Validate computed full_domain (Issue #2236 key validation)
|
||||
API_FULL_DOMAIN=$(echo "$RESPONSE" | jq -r '.fullDomain // empty')
|
||||
API_FULL_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.fullDomain')
|
||||
API_FULL_DOMAIN=$(unwrap_value "$API_FULL_DOMAIN_RAW")
|
||||
if [ -z "$API_FULL_DOMAIN" ] || [ "$API_FULL_DOMAIN" = "null" ]; then
|
||||
echo " ✗ FAILED: fullDomain is empty - server should compute this value"
|
||||
exit 1
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
INCIDENT_ID=$(terraform output -raw incident_id)
|
||||
INCIDENT_SEVERITY_ID=$(terraform output -raw incident_severity_id)
|
||||
@@ -30,7 +40,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Incident severity exists in API"
|
||||
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_SEVERITY_NAME" ]; then
|
||||
echo " ✗ FAILED: Severity name mismatch - Expected: '$EXPECTED_SEVERITY_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
@@ -56,24 +67,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Incident exists in API"
|
||||
|
||||
# Validate title
|
||||
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
|
||||
# Validate title - handle wrapper object format
|
||||
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
|
||||
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
|
||||
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
|
||||
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Title matches: $API_TITLE"
|
||||
|
||||
# Validate incident severity relationship
|
||||
API_SEVERITY_ID=$(echo "$RESPONSE" | jq -r '.incidentSeverityId // empty')
|
||||
# Validate incident severity relationship - handle wrapper object format (ObjectID)
|
||||
API_SEVERITY_ID_RAW=$(echo "$RESPONSE" | jq '.incidentSeverityId')
|
||||
API_SEVERITY_ID=$(unwrap_value "$API_SEVERITY_ID_RAW")
|
||||
if [ "$API_SEVERITY_ID" != "$INCIDENT_SEVERITY_ID" ]; then
|
||||
echo " ✗ FAILED: Incident severity ID mismatch - Expected: '$INCIDENT_SEVERITY_ID', Got: '$API_SEVERITY_ID'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Incident severity ID matches"
|
||||
|
||||
# Validate server-provided currentIncidentStateId
|
||||
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentIncidentStateId // empty')
|
||||
# Validate server-provided currentIncidentStateId - handle wrapper object format (ObjectID)
|
||||
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentIncidentStateId')
|
||||
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
|
||||
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
|
||||
echo " ✓ Server-assigned currentIncidentStateId: $CURRENT_STATE_ID"
|
||||
fi
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
ALERT_ID=$(terraform output -raw alert_id)
|
||||
ALERT_SEVERITY_ID=$(terraform output -raw alert_severity_id)
|
||||
@@ -30,7 +40,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Alert severity exists in API"
|
||||
|
||||
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
|
||||
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
|
||||
API_NAME=$(unwrap_value "$API_NAME_RAW")
|
||||
if [ "$API_NAME" != "$EXPECTED_SEVERITY_NAME" ]; then
|
||||
echo " ✗ FAILED: Severity name mismatch - Expected: '$EXPECTED_SEVERITY_NAME', Got: '$API_NAME'"
|
||||
exit 1
|
||||
@@ -56,24 +67,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Alert exists in API"
|
||||
|
||||
# Validate title
|
||||
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
|
||||
# Validate title - handle wrapper object format
|
||||
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
|
||||
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
|
||||
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
|
||||
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Title matches: $API_TITLE"
|
||||
|
||||
# Validate alert severity relationship
|
||||
API_SEVERITY_ID=$(echo "$RESPONSE" | jq -r '.alertSeverityId // empty')
|
||||
# Validate alert severity relationship - handle wrapper object format (ObjectID)
|
||||
API_SEVERITY_ID_RAW=$(echo "$RESPONSE" | jq '.alertSeverityId')
|
||||
API_SEVERITY_ID=$(unwrap_value "$API_SEVERITY_ID_RAW")
|
||||
if [ "$API_SEVERITY_ID" != "$ALERT_SEVERITY_ID" ]; then
|
||||
echo " ✗ FAILED: Alert severity ID mismatch - Expected: '$ALERT_SEVERITY_ID', Got: '$API_SEVERITY_ID'"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ Alert severity ID matches"
|
||||
|
||||
# Validate server-provided currentAlertStateId
|
||||
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentAlertStateId // empty')
|
||||
# Validate server-provided currentAlertStateId - handle wrapper object format (ObjectID)
|
||||
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentAlertStateId')
|
||||
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
|
||||
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
|
||||
echo " ✓ Server-assigned currentAlertStateId: $CURRENT_STATE_ID"
|
||||
fi
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Helper function to unwrap API values that might be in wrapper format
|
||||
unwrap_value() {
|
||||
local raw_value="$1"
|
||||
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
|
||||
echo "$raw_value" | jq -r '.value'
|
||||
else
|
||||
echo "$raw_value" | jq -r '.'
|
||||
fi
|
||||
}
|
||||
|
||||
# Get terraform outputs
|
||||
RESOURCE_ID=$(terraform output -raw scheduled_maintenance_event_id)
|
||||
EXPECTED_TITLE=$(terraform output -raw scheduled_maintenance_event_title)
|
||||
@@ -14,7 +24,7 @@ echo " Verifying scheduled maintenance event with server defaults via API..."
|
||||
echo " Resource ID: $RESOURCE_ID"
|
||||
|
||||
# Call API to get the resource
|
||||
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/scheduled-maintenance-event/${RESOURCE_ID}/get-item" \
|
||||
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/scheduled-maintenance/${RESOURCE_ID}/get-item" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Apikey: $TF_VAR_api_key" \
|
||||
-H "projectid: $TF_VAR_project_id" \
|
||||
@@ -29,8 +39,9 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
|
||||
fi
|
||||
echo " ✓ Scheduled maintenance event exists in API"
|
||||
|
||||
# Validate title
|
||||
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
|
||||
# Validate title - handle wrapper object format
|
||||
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
|
||||
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
|
||||
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
|
||||
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
|
||||
exit 1
|
||||
@@ -49,8 +60,9 @@ if [ -n "$API_ENDS_AT" ] && [ "$API_ENDS_AT" != "null" ]; then
|
||||
echo " ✓ endsAt is set: $API_ENDS_AT"
|
||||
fi
|
||||
|
||||
# Validate server-provided currentScheduledMaintenanceStateId
|
||||
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentScheduledMaintenanceStateId // empty')
|
||||
# Validate server-provided currentScheduledMaintenanceStateId - handle wrapper object format (ObjectID)
|
||||
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentScheduledMaintenanceStateId')
|
||||
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
|
||||
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
|
||||
echo " ✓ Server-assigned currentScheduledMaintenanceStateId: $CURRENT_STATE_ID"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user