Name
sn_em_connector.OCISubscriptionConfirmationMessage
Description
Oracle Cloud Push Connector subscription confirmation
Script
var OCISubscriptionConfirmationMessage = Class.create();
OCISubscriptionConfirmationMessage.prototype = {
initialize: function() {
this.subscribeURLProperty = "sn_em_connector.evt_mgmt.oci.subscription.URL.Regex";
this.subscribeURLDefaultValue = "https:\\/\\/[a-zA-Z0-9_\\-\\.\\/]*?\\.oraclecloud\\.com\\/[a-zA-Z0-9_\\-\\.\\/]*?\\/confirmation\\?[a-zA-Z0-9_\\-\\.\\/=&]*?$";
this.regValue = gs.getProperty(this.subscribeURLProperty, this.subscribeURLDefaultValue);
this.subscribeURLRegex = new RegExp(this.regValue);
},
subscibeAndGetType: function(request, body) {
var confirmationMessageType = "oci_subscriptionconfirmationurl";
var alarmNotificationMessageType = "oci_notification_alarm";
var eventNotificationMessageType = "oci_notification_event";
var confirmationurl = request.headers["x-oci-ns-confirmationurl"];
var bodyJson = JSON.parse(body);
if ( typeof confirmationurl !== 'undefined' && confirmationurl != "" ) {
var subscribeURL = bodyJson["ConfirmationURL"];
if (!this.regValue || this.validateSubscribeURL(subscribeURL)) {
try {
var r = new sn_ws.RESTMessageV2('OCI Subscription Confirmation API', 'Default GET');
r.setEndpoint(subscribeURL);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info("OCI: Oracle Cloud Push connector: OCI Subscription confirmation (" + subscribeURL + ") return status code: " + httpStatus);
if(httpStatus != 200) {
gs.error("OCI: Oracle Cloud Push connector: OCI Subscription confirmation return response "+responseBody);
}
gs.debug("OCI: Oracle Cloud Push connector: OCI Subscription confirmation return response "+responseBody);
return confirmationMessageType;
} catch(ex) {
var message = ex.message;
}
}
} else {
if(typeof bodyJson.dedupeKey !== 'undefined') {
return alarmNotificationMessageType;
} else if(typeof bodyJson.eventType !== 'undefined'){
return eventNotificationMessageType;
}
}
return "others";
},
validateSubscribeURL: function(url) {
var match = this.subscribeURLRegex.test(url);
if (!match)
gs.error("OCI: Oracle Cloud Push connector: OracleSubscriberUL " + url + " for OCI SubscriptionConfirmation is not matching the regex " + this.subscribeURLRegex + ". The url is not confirmed");
return match;
},
type: 'OCISubscriptionConfirmationMessage'
};
Sys ID
e96825fb1b8eb0904c2e5422604bcbc8