def list_hosts(): """ Basic test to see if site is up. Should return { 'status' : 'ok'} """ db = YamlDB() err, msg, host_list = db.list_hosts(Const.KUBAM_CFG) if err == 1: return {'error': msg}, 500 return {"hosts": host_list}, 200
def get_valid_hosts(host_list): valid_hosts = [] db = YamlDB() err, msg, hosts = db.list_hosts(Const.KUBAM_CFG) if err != 0: return err, msg, hosts if isinstance(host_list, list): for i in host_list: valid_host = [x for x in hosts if x["name"] == i] if len(valid_host) == 0: return 1, "{0} is not a valid host".format(i), "" valid_hosts.append(valid_host[0]) else: valid_hosts = hosts return 0, None, valid_hosts
def create_vmedia(server_group): """ Create the Vmedia policy for a server group """ db = YamlDB() # get server group. try: sg = db.get_server_group(Const.KUBAM_CFG, server_group) except KubamError as e: return jsonify({"error": str(e)}), Const.HTTP_BAD_REQUEST org = "org-root" if "org" in sg: org = sg["org"] # go through all hosts associated with this server group err, msg, hosts = db.list_hosts(Const.KUBAM_CFG) if err == 1: return jsonify({'error': msg}), Const.HTTP_BAD_REQUEST hosts = [x for x in hosts if 'server_group' in x and x['server_group'] == server_group] if len(hosts) < 1: return jsonify({'error': 'no hosts associated with server group'}), Const.HTTP_OK # get the os image they use oses = list(set([ x["os"] for x in hosts])) # create those vmedia policies err = 0 msg = "" err, msg, kubam_ip = db.get_kubam_ip(Const.KUBAM_CFG) if kubam_ip is None: return jsonify({'error': 'Please define the KUBAM IP first.'} ), Const.HTTP_OK handle = "" if sg['type'] == 'ucsm': try: handle = UCSUtil.ucs_login(sg) except KubamError as e: return jsonify({"error": str(e)}), Const.HTTP_BAD_REQUEST err, msg = UCSServer.make_vmedias(handle, org, kubam_ip, oses) UCSUtil.ucs_logout(handle) elif sg['type'] == 'ucsc': try: handle = UCSCUtil.ucsc_login(sg) except KubamError as e: return jsonify({"error": str(e)}), Const.HTTP_BAD_REQUEST err, msg = UCSCServer.make_vmedias(handle, org, kubam_ip, oses) UCSCUtil.ucsc_logout(handle) elif sg['type'] == 'imc': try: handle = IMCUtil.imc_login(sg) except KubamError as e: return jsonify({"error": str(e)}), Const.HTTP_BAD_REQUEST try: IMCServer.mount_media(handle, kubam_ip, hosts[0]['name'], oses[0]) except KubamError as e: IMCUtil.imc_logout(handle) return jsonify({"error": str(e)}), Const.HTTP_BAD_REQUEST IMCUtil.imc_logout(handle) if err != 0: return jsonify({'error': msg}), Const.HTTP_BAD_REQUEST return jsonify({"status": oses}), Const.HTTP_CREATED