Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Name: Create Database Virtual Server
- Table: Windows Cluster Resource
- Order: 100
- When: after
- Insert: true
- Update: true
- Condition: current.resource_type == 'IP Address'
- */
- if(current.name.indexOf('SQL IP Address') == 0) {
- createDBVirtualServer(current);
- }
- function createDBVirtualServer(clusterRes) {
- var clusterVIP = new GlideRecord('cmdb_ci_cluster_vip');
- clusterVIP.addQuery('name', clusterRes.name);
- clusterVIP.addQuery('cluster', clusterRes.cluster);
- clusterVIP.query();
- while(clusterVIP.next()) {
- //gs.log(clusterVIP.name + '/' + clusterVIP.ip_address + '/' + clusterVIP.cluster.name, 'eric');
- var VIPServer = clusterVIP.name.split('(')[1].replace(')', '');//isolate the virtual server name
- //Create MSSQL Database Virtual Server
- var DBVirtualServer = new GlideRecord('cmdb_ci_database');
- DBVirtualServer.addQuery('name', VIPServer);
- DBVirtualServer.query();
- if(!DBVirtualServer.next()) {
- DBVirtualServer.initialize();
- DBVirtualServer.name = VIPServer;
- DBVirtualServer.ip_address = clusterVIP.ip_address;
- DBVirtualServer.type = 'Microsoft SQL Server';
- DBVirtualServer.u_substatus = 'active';
- DBVirtualServer.short_description = gs.nowDateTime() + ' - Auto created from cluster SQL IP Address resource';
- DBVirtualServer.insert();
- }
- //create MSSQL instance
- var DBInstance = new GlideRecord('cmdb_ci_db_mssql_instance');
- DBInstance.addQuery('name', 'MSSQLSERVER@' + VIPServer + '(Microsoft SQL Server)');
- DBInstance.query();
- if(!DBInstance.next()) {
- DBInstance.initialize();
- DBInstance.name = 'MSSQLSERVER@' + VIPServer + '(Microsoft SQL Server)';
- DBInstance.ip_address = clusterVIP.ip_address;
- DBInstance.u_substatus = 'active';
- DBInstance.short_description = gs.nowDateTime() + ' - Auto created from cluster SQL IP Address resource';
- DBInstance.install_date = gs.nowDateTime();
- DBInstance.insert();
- }
- //Create DB Virtual Server -> Cluster relationship
- var clusterRel = new GlideRecord('cmdb_rel_ci');//create relationship with type: Runs on::Runs
- clusterRel.addQuery('parent', clusterVIP.cluster.sys_id);
- clusterRel.addQuery('child', DBVirtualServer.sys_id);
- clusterRel.addQuery('type', '60bc4e22c0a8010e01f074cbe6bd73c3');
- clusterRel.query();
- if(!clusterRel.next()){
- clusterRel.initalize();
- clusterRel.parent = clusterVIP.cluster.sys_id;
- clusterRel.child = DBVirtualServer.sys_id;
- clusterRel.type = '60bc4e22c0a8010e01f074cbe6bd73c3';
- clusterRel.insert();
- }
- //Create DB Virtual Server -> MSSQL instance relationship
- var instanceRel = new GlideRecord('cmdb_rel_ci');//create relationship with type: Hosted on::Hosts
- instanceRel.addQuery('parent', DBVirtualServer.sys_id);
- instanceRel.addQuery('child', DBInstance.sys_id);
- instanceRel.addQuery('type', '5f985e0ec0a8010e00a9714f2a172815');
- instanceRel.query();
- if(!instanceRel.next()){
- instanceRel.initalize();
- instanceRel.parent = DBVirtualServer.sys_id;
- instanceRel.child = DBInstance.sys_id;
- instanceRel.type = '5f985e0ec0a8010e00a9714f2a172815';
- instanceRel.insert();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment