def update_host(old_host_name): if not is_json_request(request): return abort(400) req = request.json if not is_valid_keys(req, ["host_name", "ip", "role"]): abort(400) try: role_maps = RoleMap.get_by_host_name(db.session.query, old_host_name) for r in role_maps: rm = RoleMap.get_by_host_name_and_role_name(db.session.query, old_host_name, r.role_name) db.session.delete(rm) db.session.flush() host = Host.get_one_by_host_name(db.session.query, old_host_name) host.host_name = req["host_name"] old_ip = host.ip host.ip = req["ip"] host.role = [RoleMap(role_name=role_name) for role_name in req["role"]] db.session.add(host) if req["ip"] != old_ip: ip = IP.get_one(db.session.query, req["ip"]) ip.is_used = 1 ip = IP.get_one(db.session.query, old_ip) ip.is_used = 0 db.session.commit() except Exception as e: abort(500) return jsonify(result=[dict(message="OK", request="update host", payload=str(request.json))])
def test_get_one_by_host_name(self): expected = ('web01', '192.168.1.101') self.create_test_role_data() self.create_test_ip_data() self.create_test_host_data() self.create_test_role_map_data() host = Host.get_one_by_host_name(db.session.query, 'web01') actual = (host.host_name, host.ip) self.assertEqual(expected, actual)
def search_by_host(host_name): host = Host.get_one_by_host_name(db.session.query, host_name) if not host: abort(404) role_maps = RoleMap.get_by_host_name(db.session.query, host.host_name) role_names = [r.role_name for r in role_maps] result = [dict(host_name=host.host_name, ip=host.ip, role=role_names)] return jsonify(result=result)
def delete_host(host_name): try: host = Host.get_one_by_host_name(db.session.query, host_name) if host: db.session.delete(host) ip = IP.get_one(db.session.query, host.ip) ip.is_used = 0 db.session.commit() except Exception as e: abort(500) return jsonify(result=dict(message="OK", request="delete host", payload=str(request.json)))