Exemple #1
0
def __GetWorkloadPairs(iftype, remote=False):
    pairs = []
    for w1 in api.GetNaplesWorkloads(iftype):
        for w2 in api.GetNaplesWorkloads(iftype):
            if id(w1) == id(w2): continue
            if (not remote and w1.node_name == w2.node_name) or \
                (remote and w1.node_name != w2.node_name):
                pairs.append((w1, w2))
    return pairs
Exemple #2
0
def AddNaplesWorkloads(target_node=None):
    req = topo_svc.WorkloadMsg()
    req.workload_op = topo_svc.ADD
    wloads = api.GetNaplesWorkloads()
    for wl in wloads:
        if wl.SkipNodePush() or (target_node and target_node != wl.node_name):
            api.Logger.debug("Skipping add workload for node %s" %
                             wl.node_name)
            continue
        wl_msg = req.workloads.add()
        intf = wl_msg.interfaces.add()
        wl_msg.workload_name = wl.workload_name
        wl_msg.node_name = wl.node_name
        intf.ip_prefix = wl.ip_address + "/" + '24'
        #wl_msg.ipv6_prefix = __prepare_ipv6_address_str_for_endpoint(ep)
        intf.interface = wl.interface
        intf.parent_interface = wl.interface
        intf.interface_type = topo_svc.INTERFACE_TYPE_VSS
        intf.device_name = wl.device_name
        wl_msg.workload_type = topo_svc.WorkloadType.Value(
            'WORKLOAD_TYPE_BARE_METAL')
    if len(req.workloads):
        resp = api.AddWorkloads(req, skip_store=True)
        if resp is None:
            return api.types.status.FAILURE
    return api.types.status.SUCCESS
Exemple #3
0
def GetUpgLog(nodes, log_dir):
    nodes = nodes if nodes else api.GetNaplesWorkloads()
    file_name = f"{log_dir}/{__upg_log_fname}"
    for node in nodes:
        if __dhcp_oob_mnic0([node]) != api.types.status.SUCCESS:
            return api.types.status.FAILURE
        api.CopyFromNaples(node, [__upg_log_path], log_dir, via_oob=True)
        if os.path.exists(file_name):
            os.rename(file_name, __get_upg_log_fname_from_node(node, log_dir))
        else:
            api.Logger.error(
                f"Upgrade logs for {node} not found @ {file_name}")
            return api.types.status.FAILURE
    return api.types.status.SUCCESS
Exemple #4
0
def ResetUpgLog(nodes):
    nodes = nodes if nodes else api.GetNaplesWorkloads()
    req = api.Trigger_CreateExecuteCommandsRequest(serial=False)

    for node in nodes:
        cmd = f":>{__upg_log_path}"
        api.Trigger_AddNaplesCommand(req, node, cmd)

    resp = api.Trigger(req)
    for cmd in resp.commands:
        api.PrintCommandResults(cmd)
        if cmd.exit_code != 0:
            api.Logger.error(f"Failed to reset upgrade log on {cmd.node_name}")
            return api.types.status.FAILURE
    return api.types.status.SUCCESS
Exemple #5
0
def __dhcp_oob_mnic0(nodes):
    nodes = nodes if nodes else api.GetNaplesWorkloads()
    dhclient_cmd = "dhclient oob_mnic0"
    req = api.Trigger_CreateExecuteCommandsRequest(serial=False)

    for node in nodes:
        api.Trigger_AddNaplesCommand(req, node, dhclient_cmd)

    resp = api.Trigger(req)
    for cmd in resp.commands:
        api.PrintCommandResults(cmd)
        if cmd.exit_code != 0:
            api.Logger.error(f"Failed to run dhclient on {cmd.node_name}")
            return api.types.status.FAILURE
    return api.types.status.SUCCESS
Exemple #6
0
def __GetWorkloads(iftype):
    wloads = []
    for w1 in api.GetNaplesWorkloads(iftype):
        wloads.append(w1)
    return wloads