Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Name: Create MSSQL Connection Relationship
- Table: TCP Connection
- Order: 100
- When: after
- Insert: true
- Update: true
- Condition: current.to_port == 1433
- */
- createMSSQLRel();
- function createMSSQLRel() {
- //Check for matching MSSQL Instances by IP
- var MSSQLInst = new GlideRecord("cmdb_ci_db_mssql_instance");
- MSSQLInst.addQuery("ip_address", current.to_ip);
- MSSQLInst.query();
- if(MSSQLInst.next()) {
- //If not set to absent or if absent for less than 30 days, create new. Otherwise delete relationship
- if(current.absent == false || (current.absent == true && current.sys_updated_on < gs.daysAgo(-30))){
- createRelationship(current.computer.sys_id, MSSQLInst.sys_id);
- }else{
- deleteRelationship(current.computer.sys_id, MSSQLInst.sys_id);
- }
- }
- }
- function createRelationship(source,dest) {
- var computer = new GlideRecord("cmdb_ci_computer");
- computer.addQuery("sys_id", source);
- computer.query();
- if(computer.next()) {
- var rel1 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
- rel1.addQuery('child.sys_id', source);
- rel1.addQuery('parent.sys_id', dest);
- rel1.query();
- if(!rel1.next()) {
- var newRel = new GlideRecord('cmdb_rel_ci');//create relationship with type: Serves MSSQL Data::Queries MSSQL Data
- newRel.initalize();
- newRel.parent = dest;
- newRel.child = source;
- newRel.type = 'baa92dcb74906000ce885c6f8d102bf4';
- newRel.insert();
- }
- }
- }
- function deleteRelationship(source,dest) {
- var computer = new GlideRecord("cmdb_ci_computer");
- computer.addQuery("sys_id", source);
- computer.query();
- if(computer.next()) {
- var rel1 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
- rel1.addQuery('child.sys_id', source);
- rel1.addQuery('parent.sys_id', dest);
- rel1.addQuery('type', 'baa92dcb74906000ce885c6f8d102bf4')
- rel1.addQuery('sys_updated_on', '>', gs.daysAgo(-30))//if over 30 days old
- rel1.query();
- if(rel1.next()) {
- rel1.deleteRecord();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment