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 {}
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
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
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
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