diff --git a/bin/pd-send b/bin/pd-send index 6a7856b6..78b4e234 100755 --- a/bin/pd-send +++ b/bin/pd-send @@ -58,6 +58,10 @@ def build_queue_arg_parser(description): "-u", "--client-url", dest="client_url", help="Client URL" ) + parser.add_argument( + "-v", "--vendor", dest="vendor", + help="Vendor" + ) parser.add_argument( "-f", "--field", action="append", dest="fields", help="Add given KEY=VALUE pair to the event details" @@ -96,7 +100,7 @@ def main(): incident_key, problems = queue_event( enqueuer, args.event_type, args.service_key, args.incident_key, args.description, - args.client, args.client_url, details, + args.client, args.client_url, args.vendor, details, agent_config.get_agent_id(), "pd-send", ) if not args.quiet: diff --git a/pdagent/pdagentutil.py b/pdagent/pdagentutil.py index 4c7c0304..9f6bd6af 100644 --- a/pdagent/pdagentutil.py +++ b/pdagent/pdagentutil.py @@ -68,8 +68,8 @@ def utcnow_isoformat(time_calc=None): def queue_event( enqueuer, - event_type, service_key, incident_key, description, client, client_url, details, - agent_id, queued_by, + event_type, service_key, incident_key, description, client, client_url, + vendor, details, agent_id, queued_by, ): agent_context = { "agent_id": agent_id, @@ -77,7 +77,8 @@ def queue_event( "queued_at": utcnow_isoformat() } event = _build_event_json_str( - event_type, service_key, incident_key, description, client, client_url, details, + event_type, service_key, incident_key, description, client, client_url, + vendor, details, agent_context ) _, problems = enqueuer.enqueue(service_key, event) @@ -97,8 +98,8 @@ def get_stats(queue, service_key): def _build_event_json_str( - event_type, service_key, incident_key, description, client, client_url, details, - agent_context=None + event_type, service_key, incident_key, description, client, client_url, + vendor, details, agent_context=None ): d = { "service_key": service_key, @@ -113,6 +114,8 @@ def _build_event_json_str( d["client"] = client if client_url is not None: d["client_url"] = client_url + if vendor is not None: + d["vendor"] = vendor if agent_context is not None: d["agent"] = agent_context diff --git a/pdagenttest/test_sendevent.py b/pdagenttest/test_sendevent.py index 59fbe9b0..fbaab6b5 100644 --- a/pdagenttest/test_sendevent.py +++ b/pdagenttest/test_sendevent.py @@ -56,6 +56,7 @@ "description": "test", "client": "PagerDuty", "client_url": "http://www.pagerduty.com", + "vendor": "acme", "details": {} }) diff --git a/pdagenttestinteg/test_20_process.sh b/pdagenttestinteg/test_20_process.sh index 602d7ecb..a6795221 100644 --- a/pdagenttestinteg/test_20_process.sh +++ b/pdagenttestinteg/test_20_process.sh @@ -51,7 +51,7 @@ sudo sed -i "s#^\#send_interval_secs.*#send_interval_secs=$SEND_INTERVAL_SECS#" # agent must flush out queue when it starts up. test_startup() { i_key="test1" - $BIN_PD_SEND -k $SVC_KEY -t trigger -i $i_key -d "Test incident 1" -f key1=value1 -f key2=subkey=subvalue -c "PagerDuty" -u "https://www.pagerduty.com" + $BIN_PD_SEND -k $SVC_KEY -t trigger -i $i_key -d "Test incident 1" -f key1=value1 -f key2=subkey=subvalue -c "PagerDuty" -u "https://www.pagerduty.com" -v "acme" test $(sudo find $OUTQUEUE_DIR -type f | wc -l) -eq 1 queued_file=$(sudo find $OUTQUEUE_DIR -type f )