def sort_cmp(x,y): for (idx, x_v) in enumerate(x): c = cmp(utif.try_int(x_v), utif.try_int(y[idx])) if c != 0: return c return 0
if sdnsh.description: # description debugging print "get_model_from_url: order increasing ", sort result = sorted(result, key=lambda k:k.get(sort, ''), cmp=lambda x,y : cmp(x,y)) else: # use tail-integer on the entries if sdnsh.description: # description debugging print "get_model_from_url: pk ordering ", key def sort_cmp(x,y): for (idx, x_v) in enumerate(x): c = cmp(utif.try_int(x_v), utif.try_int(y[idx])) if c != 0: return c return 0 result = sorted(result, key=lambda k:k.get(key, '').split('|'), cmp=lambda x,y : cmp(utif.try_int(x),utif.try_int(y))) if sdnsh.description: # description debugging print "get_model_from_url: result ", obj_type, url, len(result) return result def validate_switch(): """ If /rest/v1/switches is cached, perform some validations on it. -- verify that the announced interfaces names are case insensitive -- verify the names only appear once """