sidetrak

Create Database Virtual Server

Apr 30th, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Name: Create Database Virtual Server
  3. Table: Windows Cluster Resource
  4. Order: 100
  5. When: after
  6. Insert: true
  7. Update: true
  8. Condition: current.resource_type == 'IP Address'
  9. */
  10.  
  11. if(current.name.indexOf('SQL IP Address') == 0) {
  12.    createDBVirtualServer(current);
  13. }
  14.  
  15. function createDBVirtualServer(clusterRes) {
  16.    var clusterVIP = new GlideRecord('cmdb_ci_cluster_vip');
  17.    clusterVIP.addQuery('name', clusterRes.name);
  18.    clusterVIP.addQuery('cluster', clusterRes.cluster);
  19.    clusterVIP.query();
  20.    while(clusterVIP.next()) {
  21.       //gs.log(clusterVIP.name + '/' + clusterVIP.ip_address + '/' + clusterVIP.cluster.name, 'eric');
  22.       var VIPServer = clusterVIP.name.split('(')[1].replace(')', '');//isolate the virtual server name
  23.       //Create MSSQL Database Virtual Server
  24.       var DBVirtualServer = new GlideRecord('cmdb_ci_database');
  25.       DBVirtualServer.addQuery('name', VIPServer);
  26.       DBVirtualServer.query();
  27.       if(!DBVirtualServer.next()) {
  28.          DBVirtualServer.initialize();
  29.          DBVirtualServer.name = VIPServer;
  30.          DBVirtualServer.ip_address = clusterVIP.ip_address;
  31.          DBVirtualServer.type = 'Microsoft SQL Server';
  32.          DBVirtualServer.u_substatus = 'active';
  33.          DBVirtualServer.short_description = gs.nowDateTime() + ' - Auto created from cluster SQL IP Address resource';
  34.          DBVirtualServer.insert();
  35.       }
  36.       //create MSSQL instance
  37.       var DBInstance = new GlideRecord('cmdb_ci_db_mssql_instance');
  38.       DBInstance.addQuery('name', 'MSSQLSERVER@' + VIPServer + '(Microsoft SQL Server)');
  39.       DBInstance.query();
  40.       if(!DBInstance.next()) {
  41.          DBInstance.initialize();
  42.          DBInstance.name = 'MSSQLSERVER@' + VIPServer + '(Microsoft SQL Server)';
  43.          DBInstance.ip_address = clusterVIP.ip_address;
  44.          DBInstance.u_substatus = 'active';
  45.          DBInstance.short_description = gs.nowDateTime() + ' - Auto created from cluster SQL IP Address resource';
  46.          DBInstance.install_date = gs.nowDateTime();
  47.          DBInstance.insert();
  48.       }
  49.       //Create DB Virtual Server -> Cluster relationship
  50.       var clusterRel = new GlideRecord('cmdb_rel_ci');//create relationship with type: Runs on::Runs
  51.       clusterRel.addQuery('parent', clusterVIP.cluster.sys_id);
  52.       clusterRel.addQuery('child', DBVirtualServer.sys_id);
  53.       clusterRel.addQuery('type', '60bc4e22c0a8010e01f074cbe6bd73c3');
  54.       clusterRel.query();
  55.       if(!clusterRel.next()){
  56.          clusterRel.initalize();
  57.          clusterRel.parent = clusterVIP.cluster.sys_id;
  58.          clusterRel.child = DBVirtualServer.sys_id;
  59.          clusterRel.type = '60bc4e22c0a8010e01f074cbe6bd73c3';
  60.          clusterRel.insert();
  61.       }
  62.      
  63.       //Create DB Virtual Server -> MSSQL instance relationship
  64.       var instanceRel = new GlideRecord('cmdb_rel_ci');//create relationship with type: Hosted on::Hosts
  65.       instanceRel.addQuery('parent', DBVirtualServer.sys_id);
  66.       instanceRel.addQuery('child', DBInstance.sys_id);
  67.       instanceRel.addQuery('type', '5f985e0ec0a8010e00a9714f2a172815');
  68.       instanceRel.query();
  69.       if(!instanceRel.next()){
  70.          instanceRel.initalize();
  71.          instanceRel.parent = DBVirtualServer.sys_id;
  72.          instanceRel.child = DBInstance.sys_id;
  73.          instanceRel.type = '5f985e0ec0a8010e00a9714f2a172815';
  74.          instanceRel.insert();
  75.       }
  76.    }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment