Exemple #1
0
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 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 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
Exemple #6
0
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())
Exemple #7
0
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())
Exemple #8
0
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())
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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
Exemple #12
0
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
Exemple #13
0
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
Exemple #14
0
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
Exemple #15
0
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
Exemple #16
0
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)
Exemple #17
0
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
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