# What this PR does Refactors the PagerDuty migration script to be a bit more generic + adds a migration script to migrate from Splunk OnCall (VictorOps) tldr; ```bash ❯ docker build -t oncall-migrator . [+] Building 0.4s (10/10) FINISHED ❯ docker run --rm \ -e MIGRATING_FROM="pagerduty" \ -e MODE="plan" \ -e ONCALL_API_URL="http://localhost:8080" \ -e ONCALL_API_TOKEN="<ONCALL_API_TOKEN>" \ -e PAGERDUTY_API_TOKEN="<PAGERDUTY_API_TOKEN>" \ oncall-migrator running pagerduty migration script... ❯ docker run --rm \ -e MIGRATING_FROM="splunk" \ -e MODE="plan" \ -e ONCALL_API_URL="http://localhost:8080" \ -e ONCALL_API_TOKEN="<ONCALL_API_TOKEN>" \ -e SPLUNK_API_ID="<SPLUNK_API_ID>" \ -e SPLUNK_API_KEY="<SPLUNK_API_KEY>" \ oncall-migrator migrating from splunk oncall... ``` https://www.loom.com/share/a855062d436a4ef79f030e22528d8c71 ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] Added the relevant release notes label (see labels prefixed w/ `release:`). These labels dictate how your PR will show up in the autogenerated release notes.
23 lines
567 B
Python
23 lines
567 B
Python
import os
|
|
|
|
from lib.base_config import * # noqa: F401,F403
|
|
|
|
SPLUNK_API_ID = os.environ["SPLUNK_API_ID"]
|
|
SPLUNK_API_KEY = os.environ["SPLUNK_API_KEY"]
|
|
|
|
SPLUNK_TO_ONCALL_CONTACT_METHOD_MAP = {
|
|
"sms": "notify_by_sms",
|
|
"phone": "notify_by_phone_call",
|
|
"email": "notify_by_email",
|
|
"push": "notify_by_mobile_app",
|
|
}
|
|
|
|
# NOTE: currently we only support `rotation_group` and `user`
|
|
UNSUPPORTED_ESCALATION_POLICY_EXECUTION_TYPES = [
|
|
"email",
|
|
"webhook",
|
|
"policy_routing",
|
|
"rotation_group_next",
|
|
"rotation_group_previous",
|
|
"team_page",
|
|
]
|