def action(self): print "stopping glassfish and rain DRIVER_NODES..." logger.info('stopping glassfish and rain DRIVER_NODES') # List of deferred objects dlist = [] print('stopping glassfish on targets: '), for target in self.blackboard.hosts.get_hosts('target'): print target d = base.launch(self.blackboard.hosts, self.blackboard.client_list, target, 'glassfish_stop') dlist.append(d) print '' print('stopping rain on targets: '), for target in self.blackboard.hosts.get_hosts('load'): print target d = base.launch(self.blackboard.hosts, self.blackboard.client_list, target, 'rain_stop') dlist.append(d) print '' # Wait for all drones to terminate dl = defer.DeferredList(dlist) d = defer.Deferred() dl.addCallback(self.ok, d) return d
def phase_start_glassfish_database(done, client_list): """ Rain has to be started after Glassfish is running! This is important because the Rain Tracks of the SpecJ driver are accessing the Glassfish services. """ print 'starting glassfish and database...' logger.info('starting glassfish and database') try: dlist = [] for target in hosts.get_hosts('target'): print ' * starting glassfish on target %s' % (target) d = base.launch(client_list, target, 'glassfish_start', wait=False) dlist.append(d) d = base.poll_for_message(client_list, target, 'glassfish_wait', 'domain1 running') dlist.append(d) # Fill database in parallel if INIT_DB: for target in hosts.get_hosts('database'): print ' * initializing database on target %s' % (target) d = base.launch(client_list, target, 'spec_dbload') dlist.append(d) # Wait for all drones to finish and set phase dl = defer.DeferredList(dlist) dl.addCallback(phase_start_rain, client_list) # dl.addCallback(finished, client_list) except Exception, e: print e finished(None, client_list)
def action(self): logger.info('Rerconfiguring glassfish') try: # Deferred list dlist = [] # Run drone on all target domains for target in self.blackboard.hosts.get_hosts('target'): print ' * configuring glassfish on target %s' % (target) # mysql_name = target.replace('glassfish', 'mysql') mysql_name = 'localhost' print ' using mysql name: %s' % (mysql_name) drones.prepare_drone('glassfish_configure', 'domain.xml', mysql_server=mysql_name, targetHostName=target) drones.create_drone('glassfish_configure') d = base.launch(self.blackboard.hosts, self.blackboard.client_list, target, 'glassfish_configure', wait=True) dlist.append(d) # Wait for all drones to finish and set phase dl = defer.DeferredList(dlist) d = defer.Deferred() dl.addCallback(self.ok, d) return d except Exception, e: print 'FATAL: Error while configuring glassfish' print e return False
def action(self): print 'Starting glassfish...' logger.info('starting glassfish') try: # Deferred list dlist = [] # For all target domains for target in self.blackboard.hosts.get_hosts('target'): print ' * starting glassfish on target %s' % (target) d = base.launch(self.blackboard.hosts, self.blackboard.client_list, target, 'glassfish_start', wait=False) dlist.append(d) print ' * waiting for glassfish on target %s' % (target) d = base.poll_for_message(self.blackboard.hosts, self.blackboard.client_list, target, 'glassfish_wait', 'Name: domain1 Status: Running') dlist.append(d) # Wait for all drones to finish and set phase d = defer.Deferred() dl = defer.DeferredList(dlist) dl.addCallback(self.ok, d) return d except Exception, e: print e logger.error(e) return False
def phase_configure_glassfish(client_list): print 'reconfiguring glassfish ...' logger.info('reconfiguring glassfish') try: dlist = [] for target in hosts.get_hosts('target'): print ' * configuring glassfish on target %s' % (target) # mysql_name = target.replace('glassfish', 'mysql') mysql_name = 'localhost' print ' using mysql name: %s' % (mysql_name) drones.prepare_drone('glassfish_configure', 'domain.xml', mysql_server=mysql_name) drones.create_drone('glassfish_configure') d = base.launch(client_list, target, 'glassfish_configure', wait=True) dlist.append(d) # Wait for all drones to finish and set phase dl = defer.DeferredList(dlist) dl.addCallback(phase_start_glassfish_database, client_list) # dl.addCallback(finished, client_list) except Exception, e: print e finished(None, client_list)
def shutdown_glassfish_rain(client_list, ret=None): print "stopping glassfish and rain DRIVER_NODES..." logger.info('stopping glassfish and rain DRIVER_NODES') dlist = [] for target in hosts.get_hosts('target'): print 'stopping glassfish on target %s' % (target) d = base.launch(client_list, target, 'glassfish_stop') dlist.append(d) for target in hosts.get_hosts('load'): print 'stopping rain on target %s' % (target) d = base.launch(client_list, target, 'rain_stop') dlist.append(d) dl = defer.DeferredList(dlist) dl.addCallback(finished_end, client_list)
def action(self): print 'starting database...' logger.info('starting database') try: dlist = [] for target in hosts.get_hosts('database'): print ' * initializing database on target %s' % (target) d = base.launch(self.blackboard.client_list, target, 'spec_dbload') dlist.append(d) # Wait for all drones to finish and set phase d = defer.Deferred() dl = defer.DeferredList(dlist) dl.addCallback(self.ok, d) return d except Exception, e: print e return False
def action(self): print 'Starting MySQL database...' logger.info('starting database') try: # List of deferred objects dlist = [] # Trigger drone on all domains for target in self.blackboard.hosts.get_hosts('database'): print ' * initializing database on host %s' % (target) d = base.launch(self.blackboard.hosts, self.blackboard.client_list, target, 'spec_dbload', wait=True) dlist.append(d) # Wait for all drones to finish and set phase d = defer.Deferred() dl = defer.DeferredList(dlist) dl.addCallback(self.ok, d) return d except Exception, e: # Log error and exit this action with a failure logger.error(e) return False