From 6f542d61f49b669f0a78fd3d6e69aa5856fd9c54 Mon Sep 17 00:00:00 2001 From: Tony Wilmer Date: Wed, 29 May 2019 06:47:26 -0600 Subject: [PATCH] Added CR to checkStatus Task --- src/main/resources/remedy/RemedyClient.py | 14 ++++++++++++++ src/main/resources/remedy/checkStatus.py | 8 +++++++- src/main/resources/synthetic.xml | 5 +++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/resources/remedy/RemedyClient.py b/src/main/resources/remedy/RemedyClient.py index 303b899..5e4385d 100644 --- a/src/main/resources/remedy/RemedyClient.py +++ b/src/main/resources/remedy/RemedyClient.py @@ -112,6 +112,20 @@ def get_entry(self, form_name, entry_id): print "get_entry error %s" % (response) self.throw_error(response) + # https://docs.bmc.com/docs/pages/releaseview.action?pageId=517036478#id-/entry/{formName}/{entryId}-Getsingleentry + def get_change_request(self, form_name, change_id): + # example: /api/arsys/v1/entry/CHG:ChangeInterface?q=%27Infrastructure%20Change%20ID%27%3d%22CRQ000000152848%22 + remedy_api_url = '%s/%s?q=%27Infrastructure%20Change%20ID%27%3d%22%s%22' % (URI_PREFIX, form_name, change_id) + print 'Remedy CR API is: %s' % remedy_api_url + response = self.httpRequest.get(remedy_api_url, contentType='application/json; charset=utf-8', headers = self.headers) + + if response.getStatus() == RESULT_STATUS: + data = json.loads(response.getResponse()) + return data['values'] + else: + print "get_entry error %s" % (response) + self.throw_error(response) + # https://docs.bmc.com/docs/pages/releaseview.action?pageId=517036472#id-/entry/{formName}-GETmultipleentries def query_entrys(self, form_name, query): remedy_api_url = '%s/%s?q=%s' % (URI_PREFIX, form_name, urllib.quote_plus(query)) diff --git a/src/main/resources/remedy/checkStatus.py b/src/main/resources/remedy/checkStatus.py index 5685a8a..b6f5dc0 100644 --- a/src/main/resources/remedy/checkStatus.py +++ b/src/main/resources/remedy/checkStatus.py @@ -16,7 +16,13 @@ client = RemedyClient.create_client(remedyServer, username, password) -data = client.get_entry(formName, entryId) +if matchChangId: + print "Matching Change Request ID: %s" % entryId + data = client.get_change_request(formName, entryId) + +else: + print "Matching Entry ID: %s" % entryId + data = client.get_entry(formName, entryId) if statusField not in data: sys.exit("Field with name [%s] not found in entry [%s], data [%s].\n" % (statusField, data['Request ID'], str(data))) diff --git a/src/main/resources/synthetic.xml b/src/main/resources/synthetic.xml index 0e1c206..05c94cf 100644 --- a/src/main/resources/synthetic.xml +++ b/src/main/resources/synthetic.xml @@ -77,8 +77,9 @@