def get_index(redis_handler, host): fqdn, pqdn = util.generate_fqdn_and_pqdn(host) ## Get Index fqdn_index = redis_handler.get_index(fqdn) or '' pqdn_index = redis_handler.get_index(pqdn) or '' ## Merge indexes index_value = ','.join([i for i in (fqdn_index, pqdn_index) if i]) ## Remove duplicates index_value = ','.join(set(index_value.split(','))) return index_value
def save_index(redis_handler, hash_key, value): index_value = redis_handler.get_index(value) if index_value: index_value = "%s,%s" % (index_value, hash_key) else: index_value = hash_key ## Remove redundant values indexed_keys = set(index_value.split(',')) ## Clean stale entries for k in indexed_keys.copy(): if not redis_handler.exists(k): indexed_keys.remove(k) ## Save Index if len(indexed_keys) > 0: redis_handler.save_index(value, ','.join(indexed_keys)) else: redis_handler.delete_index(value)