Skip to content

Commit

Permalink
Render the drp instances using a "#" in the instance flags area of "o…
Browse files Browse the repository at this point in the history
…m mon"
  • Loading branch information
cvaroqui authored and cgalibern committed Feb 11, 2021
1 parent f4ea51f commit ca7f4c5
Showing 1 changed file with 75 additions and 64 deletions.
139 changes: 75 additions & 64 deletions opensvc/utilities/render/cluster/__init__.py
Expand Up @@ -300,8 +300,6 @@ def load_svc(path, prefix=""):
topology = services[path].topology
except KeyError:
topology = ""
if services[path].get("drp", False):
topology = "drp " + topology

# status
status = colorize_status(data["avail"], lpad=0)
Expand All @@ -316,6 +314,7 @@ def load_svc(path, prefix=""):
"orchestrate": data.get("orchestrate", "-"),
"status": "%d/1" % data["n_up"] if data["n_up"] is not None else 0,
}

if data.get("scale") is not None:
info["status"] = "%d/%d" % (data["n_up"], data.get("scale"))
elif data.get("wrapper"):
Expand Down Expand Up @@ -395,75 +394,87 @@ def load_svc(path, prefix=""):
line.append(", ".join(states))

for nodename in nodenames:
if nodename not in data["nodes"]:
try:
nd = data["nodes"][nodename]
except KeyError:
line.append("")
elif data["nodes"][nodename] is None:
continue
if nd is None:
line.append(colorize("?", color.RED))
elif data["nodes"][nodename] is not None:
val = []
# frozen unicon
if data["nodes"][nodename]["frozen"]:
frozen_icon = colorize(unicons["frozen"], color.BLUE)
continue
val = []

# drp
if nd.get("drp"):
drp_icon = colorize("#", color.LIGHTBLUE)
else:
drp_icon = ""

# frozen unicon
if nd["frozen"]:
frozen_icon = colorize(unicons["frozen"], color.BLUE)
else:
frozen_icon = ""
# avail status unicon
if data["wrapper"]:
avail_icon = ""
else:
avail = nd["avail"]
if avail == "unknown":
avail_icon = colorize("?", color.RED)
else:
frozen_icon = ""
# avail status unicon
if data["wrapper"]:
avail_icon = ""
avail_icon = colorize_status(avail, lpad=0, agg_status=data["avail"]).replace(avail, unicons[avail])
if nd.get("preserved"):
avail_icon += colorize("?", color.LIGHTBLUE)
# overall status unicon
if data["wrapper"]:
overall_icon = ""
else:
overall = nd["overall"]
if overall == "warn":
overall_icon = colorize_status(overall, lpad=0).replace(overall, unicons[overall])
else:
avail = data["nodes"][nodename]["avail"]
if avail == "unknown":
avail_icon = colorize("?", color.RED)
else:
avail_icon = colorize_status(avail, lpad=0, agg_status=data["avail"]).replace(avail, unicons[avail])
if data["nodes"][nodename].get("preserved"):
avail_icon += colorize("?", color.LIGHTBLUE)
# overall status unicon
if data["wrapper"]:
overall_icon = ""
else:
overall = data["nodes"][nodename]["overall"]
if overall == "warn":
overall_icon = colorize_status(overall, lpad=0).replace(overall, unicons[overall])
else:
overall_icon = ""
# mon status
smon = data["nodes"][nodename]["mon"]
if smon == "idle":
# don't display 'idle', as its to normal status and thus repeated as nauseam
smon = ""
else:
smon = " " + smon
# global expect
if smon == "":
global_expect = data["nodes"][nodename]["global_expect"]
if global_expect:
global_expect = colorize(" >" + str(global_expect), color.LIGHTBLUE)
else:
global_expect = ""
# mon status
smon = nd["mon"]
if smon == "idle":
# don't display 'idle', as its to normal status and thus repeated as nauseam
smon = ""
else:
smon = " " + smon
# global expect
if smon == "":
global_expect = nd["global_expect"]
if global_expect:
global_expect = colorize(" >" + str(global_expect), color.LIGHTBLUE)
else:
global_expect = ""
# leader
if data["wrapper"]:
leader = ""
else:
if data["nodes"][nodename]["placement"] == "leader":
leader = colorize("^", color.LIGHTBLUE)
else:
leader = ""
# provisioned
if data["nodes"][nodename].get("provisioned") is False:
provisioned = colorize("P", color.RED)
else:
global_expect = ""
# leader
if data["wrapper"]:
leader = ""
else:
if nd["placement"] == "leader":
leader = colorize("^", color.LIGHTBLUE)
else:
provisioned = ""

val.append(avail_icon)
val.append(overall_icon)
val.append(leader)
val.append(frozen_icon)
val.append(provisioned)
val.append(smon)
val.append(global_expect)
line.append("".join(val))
leader = ""
# provisioned
if nd.get("provisioned") is False:
provisioned = colorize("P", color.RED)
else:
provisioned = ""

val.append(avail_icon)
val.append(overall_icon)
val.append(drp_icon)
val.append(leader)
val.append(frozen_icon)
val.append(provisioned)
val.append(smon)
val.append(global_expect)
val = "".join(val)
line.append(val)
out.append(line)

for child in sorted(list(data.get("slaves", []))):
Expand Down Expand Up @@ -937,7 +948,6 @@ def load_metrics():
continue
if path not in services:
services[path] = Storage({
"drp": _data.get("drp", False),
"topology": _data.get("topology", ""),
"orchestrate": _data.get("orchestrate", ""),
"flex_target": _data.get("flex_target"),
Expand Down Expand Up @@ -987,6 +997,7 @@ def load_metrics():
"global_expect": global_expect,
"placement": _data.get("monitor", {}).get("placement", ""),
"provisioned": _data.get("provisioned"),
"drp": _data.get("drp"),
}
services[path].slaves |= set(slaves)
services[path]["wrapper"] = (
Expand Down

0 comments on commit ca7f4c5

Please sign in to comment.