def server(ctx, config): """ task server: Calamari server setup. Add role 'calamari.server' to the remote that will run the webapp. 'calamari.restapi' role must be present to serve as the cluster-api target for calamari-server. Only one of calamari.server and calamari.restapi roles is supported currently. For example:: roles: - [calamari.server] - [mon.0, calamari.restapi] - [osd.0, osd.1] tasks: - calamari.restapi: - calamari.server: """ overrides = ctx.config.get('overrides', {}) teuthology.deep_merge(config, overrides.get('calamari.server', {})) remote = _remotes(ctx, lambda r: r.startswith('calamari.server')) if not remote: raise RuntimeError('No role configured') restapi_remote = _remotes(ctx, lambda r: r.startswith('calamari.restapi')) if not restapi_remote: raise RuntimeError('Must supply calamari.restapi role') remote = remote[0] restapi_remote = restapi_remote[0] try: # sqlite3 command is required; on some platforms it's already # there and not removable (required for, say yum) sqlite_package = pkg.get_package_name('sqlite', remote) if sqlite_package and not pkg.install_package(sqlite_package, remote): raise RuntimeError('{} install failed'.format(sqlite_package)) if not pkg.install_package('calamari-server', remote) or \ not pkg.install_package('calamari-clients', remote) or \ not _disable_default_nginx(remote) or \ not _setup_calamari_cluster(remote, restapi_remote): raise RuntimeError('Server installation failure') log.info('client/server setup complete') yield finally: pkg.remove_package('calamari-server', remote) pkg.remove_package('calamari-clients', remote) if sqlite_package: pkg.remove_package(sqlite_package, remote)
def test_get_package_name_not_found(self): remote = Mock() remote.os.package_type = "rpm" assert packaging.get_package_name('notthere', remote) is None
def test_get_package_name_rpm(self): remote = Mock() remote.os.package_type = "rpm" assert packaging.get_package_name('sqlite', remote) is None
def test_get_package_name_deb(self): remote = Mock() remote.os.package_type = "deb" assert packaging.get_package_name('sqlite', remote) == "sqlite3"
def test_get_package_name_not_found(self, m_misc): m_misc.get_system_type.return_value = "rpm" assert packaging.get_package_name('notthere', Mock()) is None
def test_get_package_name_rpm(self, m_misc): m_misc.get_system_type.return_value = "rpm" assert packaging.get_package_name('sqlite', Mock()) is None
def test_get_package_name_deb(self, m_misc): m_misc.get_system_type.return_value = "deb" assert packaging.get_package_name('sqlite', Mock()) == "sqlite3"