remoteRF-server 0.1.87__tar.gz → 0.1.89__tar.gz

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.
Files changed (42) hide show
  1. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/PKG-INFO +1 -1
  2. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/pyproject.toml +1 -1
  3. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/host/host_tunnel_server.py +28 -11
  4. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/grpc_server.py +5 -0
  5. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/PKG-INFO +1 -1
  6. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/README.md +0 -0
  7. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/setup.cfg +0 -0
  8. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/__init__.py +0 -0
  9. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/__init__.py +0 -0
  10. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/grpc/__init__.py +0 -0
  11. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/grpc/grpc_host_pb2.py +0 -0
  12. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +0 -0
  13. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/grpc/grpc_pb2.py +0 -0
  14. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +0 -0
  15. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/__init__.py +0 -0
  16. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/ansi_codes.py +0 -0
  17. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/api_token.py +0 -0
  18. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/db_connection.py +0 -0
  19. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/db_location.py +0 -0
  20. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/list_string.py +0 -0
  21. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/common/utils/process_arg.py +0 -0
  22. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/drivers/__init__.py +0 -0
  23. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/drivers/adalm_pluto/__init__.py +0 -0
  24. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/drivers/adalm_pluto/pluto_remote_server.py +0 -0
  25. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/host/__init__.py +0 -0
  26. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/host/host_directory_store.py +0 -0
  27. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/__init__.py +0 -0
  28. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/acc_perms.py +0 -0
  29. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/cert_provider.py +0 -0
  30. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/device_manager.py +0 -0
  31. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/reservation.py +0 -0
  32. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/rpc_manager.py +0 -0
  33. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/user_group_cli.py +0 -0
  34. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/server/user_group_handler.py +0 -0
  35. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/serverrf_cli.py +0 -0
  36. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/tools/__init__.py +0 -0
  37. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server/tools/gen_certs.py +0 -0
  38. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/SOURCES.txt +0 -0
  39. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/dependency_links.txt +0 -0
  40. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/entry_points.txt +0 -0
  41. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/requires.txt +0 -0
  42. {remoterf_server-0.1.87 → remoterf_server-0.1.89}/src/remoteRF_server.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 0.1.87
3
+ Version: 0.1.89
4
4
  Description-Content-Type: text/markdown
5
5
  Requires-Dist: grpcio
6
6
  Requires-Dist: protobuf
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "remoteRF-server"
7
- version = "0.1.87"
7
+ version = "0.1.89"
8
8
  dependencies = [
9
9
  "grpcio",
10
10
  "protobuf",
@@ -1118,17 +1118,34 @@ class HostTunnelServicer(host_tunnel_pb2_grpc.HostTunnelServicer):
1118
1118
  warn(f"[inbound] rpc_response has no inflight waiter req_id={rid} stream_sess={stream_uuid}")
1119
1119
 
1120
1120
  elif which == "meta_response":
1121
- try:
1122
- mr = frame.meta_response
1123
- ok = bool(getattr(mr, "ok", False))
1124
- err_s = str(getattr(mr, "error", "") or "")
1125
- info(f"[inbound] META_RESPONSE ok={ok} error={err_s!r} stream_sess={stream_uuid}")
1126
- try:
1127
- info(f"[inbound] META_RESPONSE proto:\n{mr}")
1128
- except Exception:
1129
- pass
1130
- except Exception:
1131
- exception("[inbound] meta_response handling crashed")
1121
+ mr = frame.meta_response
1122
+ ok = bool(getattr(mr, "ok", False))
1123
+ err_s = str(getattr(mr, "error", "") or "")
1124
+ info(f"[inbound] META_RESPONSE ok={ok} error={err_s!r} stream_sess={stream_uuid}")
1125
+
1126
+ # ---- NEW: apply devices from meta_response if present ----
1127
+ if ok and host_id is not None:
1128
+ devs = []
1129
+ # try common field names defensively
1130
+ for fld in ("devices", "device_infos", "device_info"):
1131
+ try:
1132
+ v = getattr(mr, fld, None)
1133
+ if v:
1134
+ devs = list(v)
1135
+ break
1136
+ except Exception:
1137
+ pass
1138
+
1139
+ if devs:
1140
+ info(f"[inbound] META_RESPONSE applying {len(devs)} devices to registry host_id={host_id!r}")
1141
+ try:
1142
+ self.registry.announce_devices(host_id, devs)
1143
+ # optional: heartbeat bump
1144
+ self.registry.heartbeat(host_id, now_ms())
1145
+ except Exception:
1146
+ exception("[inbound] META_RESPONSE announce_devices failed")
1147
+ else:
1148
+ info("[inbound] META_RESPONSE had no devices field (or empty)")
1132
1149
 
1133
1150
  elif which == "heartbeat":
1134
1151
  if session is not None and host_id is not None:
@@ -390,6 +390,11 @@ def _fmt_ms_ago(ms: int) -> str:
390
390
  def _cmd_hosts_status() -> None:
391
391
  reg = hts.get_tunnel_registry()
392
392
  assert reg is not None
393
+
394
+ print("\n[hosts status] registry debug")
395
+ print(f" hts module: {hts.__name__}")
396
+ reg = hts.get_tunnel_registry(create=False)
397
+ print(f" registry id: {id(reg) if reg else None}\n")
393
398
 
394
399
  hosts = reg.list_hosts() # host_id -> HostStatus
395
400
  devices = reg.list_devices() # device_id -> DeviceStatus
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 0.1.87
3
+ Version: 0.1.89
4
4
  Description-Content-Type: text/markdown
5
5
  Requires-Dist: grpcio
6
6
  Requires-Dist: protobuf