Skip to content

Commit 0081fc8

Browse files
committed
Update
1 parent 8c88d02 commit 0081fc8

1 file changed

Lines changed: 41 additions & 36 deletions

File tree

lithops/standalone/backends/gcp_compute_engine/gcp_compute_engine.py

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -447,32 +447,33 @@ def init(self):
447447
self._create_master_instance()
448448
self._dump_gce_data()
449449
return
450-
451-
self._create_network()
452-
self._create_ssh_key()
453-
self._request_source_image()
454-
if 'instance_name' not in self.config:
455-
self.config['instance_name'] = f'lithops-master-{self.network_key}'
456-
self._create_master_instance()
457-
self._load_instance_types()
458-
self.gce_data = {
459-
'mode': self.mode,
460-
'vpc_data_type': self.vpc_data_type,
461-
'ssh_data_type': self.ssh_data_type,
462-
'master_name': self.master.name,
463-
'master_id': self.network_key,
464-
'network_name': self.config['network_name'],
465-
'network_key': self.network_key,
466-
'subnet_name': self.config['subnet_name'],
467-
'firewall_name': self.config['firewall_name'],
468-
'internal_firewall_name': self.config['internal_firewall_name'],
469-
'router_name': self.config.get('router_name'),
470-
'nat_name': self.config.get('nat_name'),
471-
'ssh_key_filename': self.config['ssh_key_filename'],
472-
'source_image': self.config['source_image'],
473-
'instance_types': self.instance_types,
474-
}
475-
self._dump_gce_data()
450+
451+
elif self.mode in [StandaloneMode.CREATE.value, StandaloneMode.REUSE.value]:
452+
self._create_network()
453+
self._create_ssh_key()
454+
self._request_source_image()
455+
if 'instance_name' not in self.config:
456+
self.config['instance_name'] = f'lithops-master-{self.network_key}'
457+
self._create_master_instance()
458+
self._load_instance_types()
459+
self.gce_data = {
460+
'mode': self.mode,
461+
'vpc_data_type': self.vpc_data_type,
462+
'ssh_data_type': self.ssh_data_type,
463+
'master_name': self.master.name,
464+
'master_id': self.network_key,
465+
'network_name': self.config['network_name'],
466+
'network_key': self.network_key,
467+
'subnet_name': self.config['subnet_name'],
468+
'firewall_name': self.config['firewall_name'],
469+
'internal_firewall_name': self.config['internal_firewall_name'],
470+
'router_name': self.config.get('router_name'),
471+
'nat_name': self.config.get('nat_name'),
472+
'ssh_key_filename': self.config['ssh_key_filename'],
473+
'source_image': self.config['source_image'],
474+
'instance_types': self.instance_types,
475+
}
476+
self._dump_gce_data()
476477

477478
@staticmethod
478479
def _is_default_ubuntu_source_image(source_image):
@@ -609,6 +610,7 @@ def build_image(self, image_name, script_file, overwrite, include, extra_args=[]
609610
)
610611
logger.debug(f"User script '{script_file}' finsihed")
611612

613+
logger.debug(f'Stopping {build_vm} before creating VM image')
612614
build_vm.stop()
613615
build_vm.wait_stopped()
614616

@@ -628,7 +630,6 @@ def build_image(self, image_name, script_file, overwrite, include, extra_args=[]
628630
self._wait_operation(op['name'], scope='global')
629631

630632
logger.debug("Starting VM image creation")
631-
logger.debug("Be patient, VM imaging can take up to 10 minutes")
632633
self._wait_image_ready(image_name)
633634

634635
if not is_initialized:
@@ -1021,11 +1022,18 @@ def wait_ready(self, timeout=INSTANCE_START_TIMEOUT):
10211022
raise TimeoutError(f'Readiness probe expired on {self}')
10221023

10231024
def get_instance_data(self):
1024-
res = self.compute_client.instances().get(
1025-
project=self.project_name,
1026-
zone=self.zone,
1027-
instance=self.name
1028-
).execute()
1025+
try:
1026+
res = self.compute_client.instances().get(
1027+
project=self.project_name,
1028+
zone=self.zone,
1029+
instance=self.name
1030+
).execute()
1031+
except HttpError as err:
1032+
if getattr(err.resp, 'status', None) == 404:
1033+
self.instance_data = None
1034+
return None
1035+
raise
1036+
10291037
self.instance_data = res
10301038
self.instance_id = str(res.get('id'))
10311039

@@ -1053,10 +1061,7 @@ def get_public_ip(self):
10531061
return self.public_ip
10541062

10551063
def get_status(self):
1056-
try:
1057-
self.get_instance_data()
1058-
except HttpError:
1059-
return None
1064+
self.get_instance_data()
10601065
return self.instance_data.get('status') if self.instance_data else None
10611066

10621067
def is_stopped(self):

0 commit comments

Comments
 (0)