remoteRF-server 1.1.0.dev32__py3-none-any.whl → 1.1.0.dev33__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -59,26 +59,32 @@ def cmd_clusters() -> int:
59
59
  items = cluster.list_clusters()
60
60
  if not items:
61
61
  rows.append("No clusters. Start one with `cluster create <name>`.")
62
+ me = {"display_name": config["display_name"], "deployment_id": state.deployment_id}
62
63
  for index, item in enumerate(items):
63
64
  if index:
64
65
  rows.append("")
65
66
  if item["role"] == "owner":
66
- count = len(item["members"])
67
- rows.append(f"{item['name']} (yours) {count} member lab{'s' if count != 1 else ''}"
68
- + (f", {item['open_invites']} open invite{'s' if item['open_invites'] != 1 else ''}"
69
- if item["open_invites"] else ""))
70
- for member in item["members"]:
71
- rows.append(f" {_lab(member)} {member['state'] or 'joining'}"
72
- + (f" since {_day(member['joined_at'])}" if member.get("joined_at") else ""))
73
- if not item["members"] and not item["open_invites"]:
67
+ invites = item["open_invites"]
68
+ rows.append(f"{item['name']} (yours)" + (f" {invites} open invite{'s' if invites != 1 else ''}" if invites else ""))
69
+ labs = [(me, "admin", "", None)] + [
70
+ (m, "member", m["state"] or "joining", m.get("joined_at")) for m in item["members"]]
71
+ if not item["members"] and not invites:
74
72
  rows.append(f" nobody yet: `cluster invite {item['name']}`")
75
73
  else:
76
- owner = _lab({"display_name": item.get("peer_name"), "deployment_id": item["peer"]})
77
- rows.append(f"{item['name']} owned by {owner} {item['state']}")
78
- for peer in item.get("peers", []):
79
- rows.append(f" {_lab(peer)} {peer['state'] or 'joining'}")
80
- shared = ", ".join(group["group_name"] for group in item["groups"]) or "none"
81
- rows.append(f" sharing: {shared}" + ("" if item["groups"] else f" (`cluster groups {item['name']} add <group>`)"))
74
+ owner = {"display_name": item.get("peer_name"), "deployment_id": item["peer"]}
75
+ rows.append(f"{item['name']} {item['state']}")
76
+ labs = [(owner, "admin", "", None), (me, "member", "", None)] + [
77
+ (p, "member", p["state"] or "joining", None) for p in item.get("peers", [])]
78
+ for lab, role, lab_state, since in labs:
79
+ you = " (you)" if lab["deployment_id"] == me["deployment_id"] else ""
80
+ line = f" {_lab(lab)} {role}{you}"
81
+ if lab_state and lab_state != "active":
82
+ line += f" {lab_state}"
83
+ if since:
84
+ line += f" since {_day(since)}"
85
+ rows.append(line)
86
+ if item["groups"]:
87
+ rows.append(" sharing: " + ", ".join(group["group_name"] for group in item["groups"]))
82
88
  rows.append(f" {item['students']} of your users enrolled, {item['visitors']} visiting")
83
89
  print()
84
90
  print_panel("Clusters", rows, literal=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 1.1.0.dev32
3
+ Version: 1.1.0.dev33
4
4
  Summary: RemoteRF server-side control package
5
5
  License: GPL-3.0-or-later
6
6
  Classifier: Programming Language :: Python :: 3
@@ -70,7 +70,7 @@ remoteRF_server/server/deployment/__init__.py,sha256=YV86uafd8XiGD7sLaqNfO5xxmt5
70
70
  remoteRF_server/server/deployment/capabilities.py,sha256=20RxmGG03VoQQZnV3jGhc-3i9B5hOl5fCopnsErFjPk,872
71
71
  remoteRF_server/server/federation/__init__.py,sha256=auqdGiGnEGIKQiXX2jFVt8iWmfyZ-V3w4dUmtWDKAZE,735
72
72
  remoteRF_server/server/federation/admin.py,sha256=t3F17FIytekzclPICmaFJEA4-F5OuWcDx3rgmFga17A,9187
73
- remoteRF_server/server/federation/cli.py,sha256=hQt6tM2y42EzKE2WDzBat3pxEqLjreunogjI_kauxYk,8849
73
+ remoteRF_server/server/federation/cli.py,sha256=nFlUGmhpndw0RafjeRQjz7cYieKtKy7U60_n738g-s0,9021
74
74
  remoteRF_server/server/federation/cluster.py,sha256=dsraUf7wKG4GdqcyhdO195v1ypwSRpFcJdyY5uatHCM,32932
75
75
  remoteRF_server/server/federation/contracts.py,sha256=NYh7lb_9etJHFfzXwevjC4HfSBUypLxg5xGeBgydLF4,29305
76
76
  remoteRF_server/server/federation/destination.py,sha256=XawmGCiVbL_MfNNn8xwV9_bYxUDW1L7efCpL11K2JAc,35909
@@ -90,9 +90,9 @@ remoteRF_server/tools/gen_certs.py,sha256=Vbyu8JjRu__UYPVmyCRXt5SOw0Za1HV7g1md3G
90
90
  remoteRF_server/tools/gist_status.py,sha256=SFv2iQgQrIKT9gxKrU-_Dr7S0p0rE4wQM6J3OC6FcoM,4649
91
91
  remoteRF_server/tools/gist_status_testing.py,sha256=IYw7UkPjAUpKDTtIlnYGb5g6SJkwz4TRGUfJJ6f4LhQ,2690
92
92
  remoteRF_server/tools/introspect_uhd.py,sha256=vUpPb0rM9tsHPxWadS3EfMDE-gMd-TvNV0TjrZOQqBY,4531
93
- remoterf_server-1.1.0.dev32.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
- remoterf_server-1.1.0.dev32.dist-info/METADATA,sha256=E5JcHfXHeFhGNYFGR6kxbeehuNFsCStN4wJr9E6RrCk,42069
95
- remoterf_server-1.1.0.dev32.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
- remoterf_server-1.1.0.dev32.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
- remoterf_server-1.1.0.dev32.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
- remoterf_server-1.1.0.dev32.dist-info/RECORD,,
93
+ remoterf_server-1.1.0.dev33.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
+ remoterf_server-1.1.0.dev33.dist-info/METADATA,sha256=4m84njQmG2sgUH0guTvQ-t5pjjbnq7nrcPj7EMKqxmU,42069
95
+ remoterf_server-1.1.0.dev33.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
+ remoterf_server-1.1.0.dev33.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
+ remoterf_server-1.1.0.dev33.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
+ remoterf_server-1.1.0.dev33.dist-info/RECORD,,