def restart_apps(apps, wait, cors_origin, krb_realm, dry_run): """Restart system apps.""" ctx = cell_admin.CellCtx(cors=cors_origin, krb_realm=krb_realm) cell_apps = cell_admin.get_apps(ctx) if not apps: apps = list(cell_apps) instance_api = instance.API(plugins=['aws-proid-env']) for appname in apps: fullname = cell_apps[appname]['fullname'] app = cell_admin.render_template(appname, ctx) count = cell_apps[appname].get('monitors') if count is None: continue cli.echo_green('Restarting app %s:', fullname) cli.out(yaml.dump(app, explicit_start=True)) if dry_run: continue for idx in range(0, count): instance_ids = instance_api.create(fullname, app, 1) for inst_id in instance_ids: cli.echo_green(inst_id) if idx <= count - 1 and wait: time.sleep(wait)
def run(self): """Invokes Treadmill instance create api.""" if self.instance is not None: return True try: api = instance.API() return self._write_instance_file( api.create(self.name, self.manifest)[0]) except (IOError, exc.TreadmillError) as ex: _LOGGER.error(ex) return False
def stop(self, exit_code): """Calls Treadmill instance stop api.""" if self.instance is None: return if exit_code != 0: if exit_code != 11 and not self.settings['stop']: return try: api = instance.API() api.delete(self.instance) except exc.TreadmillError as ex: _LOGGER.error(ex) return self._remove_instance_file()
def restart_apps(ctx, wait, apps): """Restart cell API.""" instance_api = instance.API(plugins=['aws-proid-env']) monitors = _monitors(ctx) for name, count in six.iteritems(monitors): _, appname, _ = name.split('.') if apps and appname not in apps: continue _, app = _render_app(appname, ctx) print(name) print(yaml.dump(app)) for idx in range(0, count): instance_ids = instance_api.create(name, app, 1) for inst_id in instance_ids: print(inst_id) if idx <= count - 1 and wait: time.sleep(wait)
def test_instance_create(self): """Test input validation for instance.create.""" api = instance.API() good = {} _ok(api.create, 'foo.bla', good) _ok(api.create, '*****@*****.**', good) _ok(api.create, 'foo.bla', _patch(good, '/memory', '100M')) _fail(api.update, 'foo.bla', _patch(good, '/memory', '100M')) good = {'priority': 0} _ok(api.update, 'foo.bla#123456', good) _fail(api.update, 'foo.bla#123456', _patch(good, '/priority', -1)) _fail(api.update, 'foo.bla#123456', _patch(good, '/memory', '100M')) # Features good = {'features': ['foo']} _ok(api.create, 'foo.bla', good) _ok(api.create, 'foo.bla', _patch(good, '/features/0', 'foo_bar')) _ok(api.create, 'foo.bla', _patch(good, '/features/0', 'foo-bar')) _fail(api.create, 'foo.bla', _patch(good, '/features/0', 'foo:'))
def setUp(self): self.instance = instance.API()