Example #1
0
def get():
    installations = r_server.smembers('installations')
    if installations:
        installation = {}
        installation['serial_number'] = installations.pop()
        installation['model'] = r_server.hget('installation:%s' % installation['serial_number'], 'model')
        return installation
    return {}
Example #2
0
def get_tags():
    try:
        tags = []
        for controller_ip in r_server.smembers('controllers'):
            for tag in get_controller_tags(controller_ip):
                tags.append(tag)
        return tags
    except RedisError:
        return None
Example #3
0
def delete_controller_tags(controller_ip):
    try:
        tags = []
        for tag_name in r_server.smembers('tags:%s' % controller_ip):
            if r_server.hget('tag:%s:%s' % (controller_ip, tag_name), 'controller_ip') == controller_ip:
                tags.append(tag_name)
        for tag_name in tags:
            delete_tag(tag_name)
        return tags
    except RedisError:
        return None
Example #4
0
def get_controller_tags(controller_ip):
    try:
        tags = []
        for tag_name in r_server.smembers('tags:%s' % controller_ip):
            if r_server.hget('tag:%s:%s' % (controller_ip, tag_name), 'controller_ip') == controller_ip:
                tag = {}
                tag['name'] = tag_name
                tag['address'] = r_server.hget('tag:%s:%s' % (controller_ip, tag_name), 'address')
                tag['type'] = r_server.hget('tag:%s:%s' % (controller_ip, tag_name), 'type')
                tag['controller_ip'] = r_server.hget('tag:%s:%s' % (controller_ip, tag_name), 'controller_ip')
                tags.append(tag)
        return tags
    except RedisError:
        return None
Example #5
0
def delete_tag(tag_name, controller_ip):
    try:
        if r_server.sismember('tags:%s' % controller_ip, tag_name):
            print('removing tag: %s, with ip: %s' % (tag_name, controller_ip))
            r_server.srem('tags:%s' % controller_ip, tag_name)
            r_server.delete('tag:%s:%s' % (controller_ip, tag_name))
            if not r_server.smembers('tags:%s' % controller_ip):
                r_server.srem('controllers', controller_ip)
                print('No more tags for the controller, removing controller')
            return True
        else:
            return False
    except RedisError:
        return False