def test_add_remove_tags(tagged_resources): assert len(resource.load_by_tags({'n1', 'n2'})) == 3 for res in tagged_resources.values(): res.remove_tags('n1') assert len(resource.load_by_tags(set(['n1']))) == 0 assert len(resource.load_by_tags(set(['n2']))) == 3
def test_filter_with_and(tagged_resources): loaded = resource.load_by_tags('node=t1 & n1=x') assert len(loaded) == 1 loaded = resource.load_by_tags('node=t1,n1=*') assert len(loaded) == 1 loaded = resource.load_by_tags('n2,n1=*') assert len(loaded) == 3 loaded = resource.load_by_tags('node=* & n1=x') assert len(loaded) == 3
def test_add_remove_tags(tagged_resources): loaded = resource.load_by_tags({'n1', 'n2'}) assert len(loaded) == 3 for res in loaded: res.remove_tags('n1') assert len(resource.load_by_tags(set(['n1=']))) == 0 assert len(resource.load_by_tags(set(['n2=']))) == 3
def prefetch(name, tag): if name: resources = [sresource.load(name)] elif tag: resources = sresource.load_by_tags(set(tag)) for res in resources: res.prefetch() click.echo(res.color_repr())
def prefetch(name, tag): if name: resources = [sresource.load(name)] elif tag: resources = sresource.load_by_tags(set(tag)) else: raise click.ClickException("No resource defined, use --tag or --name") for res in resources: res.prefetch() click.echo(res.color_repr())
def remove(name, tag, f): if name: resources = [sresource.load(name)] elif tag: resources = sresource.load_by_tags(set(tag)) else: resources = sresource.load_all() for res in resources: res.remove(force=f) if f: click.echo('Resource %s removed from database' % res.name) else: click.echo('Resource %s will be removed after commiting changes.' % res.name)
def extend_resources(template_resources): resources = [] for r in template_resources: if r.get("id"): resources.append(r) if r.get("with_tags"): tags = r.get("with_tags") filtered = load_by_tags(tags) for f in filtered: r = {"id": f.name, "values": r["values"]} resources.append(r) log.debug("Resource {} for tags {} found".format(r, tags)) if not filtered: log.debug("Warrning: no resources with tags: {}".format(tags)) return resources
def extend_resources(template_resources): resources = [] for r in template_resources: if r.get('id'): resources.append(r) if r.get('with_tags'): tags = r.get('with_tags') filtered = load_by_tags(tags) for f in filtered: r = {'id': f.name, 'values': r['values']} resources.append(r) log.debug('Resource {} for tags {} found'.format(r, tags)) if not filtered: log.debug('Warrning: no resources with tags: {}'.format(tags)) return resources
def extend_events(template_events): events = [] for e in template_events: if e.get('parent_action', None): events.append(e) elif e.get('parent', None): parent = e.get('parent') tags = parent.get('with_tags') resources = load_by_tags(tags) for r in resources: parent_action = '{}.{}'.format(r.name, parent['action']) event = {'type': e['type'], 'state': e['state'], 'depend_action': e['depend_action'], 'parent_action': parent_action } events.append(event) return events
def extend_events(template_events): events = [] for e in template_events: if e.get("parent_action", None): events.append(e) elif e.get("parent", None): parent = e.get("parent") tags = parent.get("with_tags") resources = load_by_tags(tags) for r in resources: parent_action = "{}.{}".format(r.name, parent["action"]) event = { "type": e["type"], "state": e["state"], "depend_action": e["depend_action"], "parent_action": parent_action, } events.append(event) return events
def show(name, tag, json, color): if name: resources = [sresource.load(name)] elif tag: resources = sresource.load_by_tags(set(tag)) else: resources = sresource.load_all() echo = click.echo_via_pager if json: output = json.dumps([r.to_dict() for r in resources], indent=2) echo = click.echo else: if color: formatter = lambda r: r.color_repr() else: formatter = lambda r: unicode(r) output = '\n'.join(formatter(r) for r in resources) if output: echo(output)
def test_with_brackets(tagged_resources): loaded = resource.load_by_tags('(node=t1 | node=t2 | node=t3) & n1=x') assert len(loaded) == 3
def test_filter_with_or(tagged_resources): loaded = resource.load_by_tags('node=t1 | node=t2') assert len(loaded) == 2 loaded = resource.load_by_tags('node=t1 | node=t2 | node=t3') assert len(loaded) == 4