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)
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)