golem-vm-provider 0.1.22__tar.gz → 0.1.24__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 (26) hide show
  1. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/PKG-INFO +1 -1
  2. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/main.py +7 -8
  3. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/port_manager.py +4 -3
  4. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/proxy_manager.py +7 -0
  5. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/pyproject.toml +1 -1
  6. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/README.md +0 -0
  7. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/__init__.py +0 -0
  8. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/api/__init__.py +0 -0
  9. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/api/models.py +0 -0
  10. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/api/routes.py +0 -0
  11. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/config.py +0 -0
  12. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/discovery/__init__.py +0 -0
  13. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/discovery/advertiser.py +0 -0
  14. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/discovery/resource_tracker.py +0 -0
  15. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/network/port_verifier.py +0 -0
  16. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/security/ethereum.py +0 -0
  17. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/utils/ascii_art.py +0 -0
  18. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/utils/logging.py +0 -0
  19. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/utils/port_display.py +0 -0
  20. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/utils/retry.py +0 -0
  21. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/utils/setup.py +0 -0
  22. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/__init__.py +0 -0
  23. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/cloud_init.py +0 -0
  24. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/models.py +0 -0
  25. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/multipass.py +0 -0
  26. {golem_vm_provider-0.1.22 → golem_vm_provider-0.1.24}/provider/vm/name_mapper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: golem-vm-provider
3
- Version: 0.1.22
3
+ Version: 0.1.24
4
4
  Summary: VM on Golem Provider Node - Run your own provider node to offer VMs on the Golem Network
5
5
  Keywords: golem,vm,provider,cloud,decentralized
6
6
  Author: Phillip Jensen
@@ -35,27 +35,26 @@ async def setup_provider() -> None:
35
35
  app.state.provider = provider
36
36
  app.state.proxy_manager = provider.proxy_manager
37
37
 
38
- # Restore proxy configurations first
39
- logger.process("🔄 Restoring proxy configurations...")
40
- await app.state.proxy_manager._load_state()
41
-
42
- # Now initialize port manager with knowledge of restored proxies
38
+ # Initialize port manager first to verify all ports
43
39
  logger.process("🔄 Initializing port manager...")
44
40
  port_manager = PortManager(
45
41
  start_port=settings.PORT_RANGE_START,
46
42
  end_port=settings.PORT_RANGE_END,
47
- discovery_port=settings.PORT,
48
- existing_ports=app.state.proxy_manager.get_active_ports()
43
+ discovery_port=settings.PORT
49
44
  )
50
45
 
51
46
  if not await port_manager.initialize():
52
47
  raise RuntimeError("Port verification failed")
53
48
 
54
- # Update provider and proxy manager with verified port manager
49
+ # Store port manager references
55
50
  app.state.port_manager = port_manager
56
51
  provider.port_manager = port_manager
57
52
  app.state.proxy_manager.port_manager = port_manager
58
53
 
54
+ # Now restore proxy configurations using only verified ports
55
+ logger.process("🔄 Restoring proxy configurations...")
56
+ await app.state.proxy_manager._load_state()
57
+
59
58
  except asyncio.TimeoutError:
60
59
  logger.error("Provider initialization timed out")
61
60
  raise
@@ -80,14 +80,15 @@ class PortManager:
80
80
  )
81
81
  display.print_header()
82
82
 
83
- # Only verify ports that aren't already marked as in use
84
- available_ports = set(range(self.start_port, self.end_port)) - self._existing_ports
85
- ssh_ports = list(available_ports)
83
+ # Verify all ports in range, including existing ones
84
+ ssh_ports = list(range(self.start_port, self.end_port))
86
85
  logger.info(f"Starting port verification...")
87
86
  logger.info(f"SSH ports range: {self.start_port}-{self.end_port}")
88
87
  logger.info(
89
88
  f"Using port check servers: {', '.join(self.port_check_servers)}")
90
89
 
90
+ # Clear existing verified ports before verification
91
+ self.verified_ports.clear()
91
92
  results = await self.port_verifier.verify_ports(ssh_ports)
92
93
 
93
94
  # Add provider port as verified since we already checked it
@@ -243,6 +243,13 @@ class PythonProxyManager:
243
243
  await asyncio.sleep(delay)
244
244
  delay *= 2 # Exponential backoff
245
245
 
246
+ # Check if port is verified before restoring
247
+ if not self.port_manager or port not in self.port_manager.verified_ports:
248
+ logger.warning(f"Port {port} is not verified, skipping proxy restoration for {multipass_name}")
249
+ # Remove from active ports since we can't restore it
250
+ self._active_ports.pop(multipass_name, None)
251
+ return False
252
+
246
253
  # Attempt to create proxy
247
254
  proxy = ProxyServer(port, vm_ip)
248
255
  await proxy.start()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "golem-vm-provider"
3
- version = "0.1.22"
3
+ version = "0.1.24"
4
4
  description = "VM on Golem Provider Node - Run your own provider node to offer VMs on the Golem Network"
5
5
  authors = ["Phillip Jensen <phillip+vm-on-golem@golemgrid.com>"]
6
6
  readme = "README.md"