Ejemplo n.º 1
0
	def start(self, attempts=2):
		service_name = self._get_service_name()
		if service_name:
			if call_process(['service', service_name, 'start'], database_logger).returncode:
				if attempts > 1:
					# try again. sometimes, under heavy load, mysql seems to fail to
					# start although it is just slow
					database_logger.info('Starting %s failed. Retrying...' % service_name)
					return self.start(attempts=attempts - 1)
				catcher = LogCatcher(database_logger)
				call_process(['service', service_name, 'status'], catcher)
				details = '\n'.join(catcher.stdstream())
				raise DatabaseCreationFailed('Could not start %s' % service_name, details=details)
Ejemplo n.º 2
0
 def _setup_docker_image(self, app, args):
     self._execute_container_script(app,
                                    'restore_data_before_setup',
                                    credentials=False)
     if app.docker_script_setup:
         logger = LogCatcher(self.logger)
         try:
             process = self._execute_container_script(
                 app, 'setup', args, cmd_kwargs={'_logger': logger})
             if not process or process.returncode != 0:
                 code = -1
                 if process:
                     code = process.returncode
                 raise InstallSetupFailed(code=code,
                                          stderr=list(logger.stdstream()))
         finally:
             del logger
     self._execute_container_script(app,
                                    'restore_data_after_setup',
                                    credentials=False)