def list_ip_by_role(role_name): fmt = request.args.get("format") role_maps = RoleMap.get_by_role_name(db.session.query, role_name) host_names = [role_map.host_name for role_map in role_maps] hosts = Host.get_in_host_names(db.session.query, host_names) result = [r.ip for r in hosts] return formatter(fmt, result)
def output_hosts(role_name): role_maps = RoleMap.get_by_role_name(db.session.query, role_name) host_names = [role_map.host_name for role_map in role_maps] hosts = Host.get_in_host_names(db.session.query, host_names) if len(hosts) == 0: abort(404) result = [dict(host_name=host.host_name, ip=host.ip) for host in hosts] return formatter("hosts", result)
def test_get_all(self): expected = [('web01', '192.168.1.101'),\ ('web02', '192.168.1.102'),\ ('mem01', '192.168.1.121'),\ ('vip01', '192.168.1.100')] self.create_test_role_data() self.create_test_ip_data() self.create_test_host_data() self.create_test_role_map_data() hosts = Host.get_in_host_names(db.session.query, ['web01', 'web02', 'mem01', 'vip01']) actual = [(h.host_name, h.ip) for h in hosts] self.assertListEqual(sorted(expected), sorted(actual))
def search_by_role(role_name): role_maps = RoleMap.get_by_role_name(db.session.query, role_name) host_names = [r.host_name for r in role_maps] hosts = Host.get_in_host_names(db.session.query, host_names) if len(hosts) == 0: abort(404) result = [] for host in hosts: d = {} d["host_name"] = host.host_name d["ip"] = host.ip d["role"] = [r.role_name for r in host.role] result.append(d) return jsonify(result=result)