You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by op...@apache.org on 2022/09/08 11:49:57 UTC
[incubator-datalab] branch DATALAB-3004 updated: [DATALAB-3004]: changed status checker scripts
This is an automated email from the ASF dual-hosted git repository.
opolishchuk pushed a commit to branch DATALAB-3004
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
The following commit(s) were added to refs/heads/DATALAB-3004 by this push:
new e28dd1ac9 [DATALAB-3004]: changed status checker scripts
e28dd1ac9 is described below
commit e28dd1ac963b542973816754d09214c2e8371302
Author: Oleksandr Polishchuk <po...@gmail.com>
AuthorDate: Thu Sep 8 14:49:39 2022 +0300
[DATALAB-3004]: changed status checker scripts
---
.../src/general/lib/aws/meta_lib.py | 28 ++++++++++++++--------
.../src/general/lib/azure/meta_lib.py | 26 ++++++++++++++++++++
.../src/general/lib/gcp/meta_lib.py | 9 +++++--
.../general/scripts/azure/common_collect_data.py | 2 +-
4 files changed, 52 insertions(+), 13 deletions(-)
diff --git a/infrastructure-provisioning/src/general/lib/aws/meta_lib.py b/infrastructure-provisioning/src/general/lib/aws/meta_lib.py
index a6f918b19..340eba86c 100644
--- a/infrastructure-provisioning/src/general/lib/aws/meta_lib.py
+++ b/infrastructure-provisioning/src/general/lib/aws/meta_lib.py
@@ -759,17 +759,25 @@ def get_list_image_statuses(image_ids, data=[]):
for k in image_ids:
host = {}
try:
- if 'id' in k:
- response = client.describe_images(ImageIds=[k.get('id')]).get('Reservations')
- for i in response:
- img = i.get('Images')
- for j in img:
- host['id'] = j.get('ImageId')
- host['status'] = j.get('State').get('Name')
- data.append(host)
+ response = client.describe_images(ImageIds=[k.get('id')]).get('Images')
+ for i in response:
+ host['id'] = i.get('ImageId')
+ if i.get('State') == 'pending':
+ host['status'] = 'CREATING'
+ elif i.get('State') == 'available':
+ host['status'] = 'ACTIVE'
+ elif i.get('State') == 'invalid':
+ host['status'] = 'FAILED'
+ elif i.get('State') == 'error':
+ host['status'] = 'FAILED'
+ elif i.get('State') == 'failed':
+ host['status'] = 'FAILED'
+ elif i.get('State') == 'deregistered':
+ host['status'] = 'TERMINATED'
+ data.append(host)
except Exception as err:
- host['id'] = h.get('id')
- host['status'] = 'terminated'
+ host['id'] = k.get('id')
+ host['status'] = 'TERMINATED'
data.append(host)
return data
diff --git a/infrastructure-provisioning/src/general/lib/azure/meta_lib.py b/infrastructure-provisioning/src/general/lib/azure/meta_lib.py
index e795c7789..e43713bc9 100644
--- a/infrastructure-provisioning/src/general/lib/azure/meta_lib.py
+++ b/infrastructure-provisioning/src/general/lib/azure/meta_lib.py
@@ -531,6 +531,32 @@ class AzureMeta:
data.append(host)
return data
+ def get_image_statuses(self, resource_group_name, image_name_list):
+ data = []
+ for image_name in image_name_list:
+ image_name = image_name['id']
+ host = {}
+ try:
+ request = self.compute_client.images.get(resource_group_name, image_name)
+ host['id'] = image_name
+ if request.provisioning_state == 'Succeeded':
+ host['status'] = 'ACTIVE'
+ elif request.provisioning_state == 'Deleting':
+ host['status'] = 'TERMINATING'
+ elif request.provisioning_state == 'Canceled':
+ host['status'] = 'FAILED'
+ elif request.provisioning_state == 'Creating':
+ host['status'] = 'CREATING'
+ elif request.provisioning_state == 'Locked':
+ host['status'] = 'FAILED'
+ data.append(host)
+ except:
+ host['id'] = image_name
+ host['status'] = 'TERMINATED'
+ data.append(host)
+ return data
+
+
def get_instance_status(self, resource_group_name, instance_name):
try:
request = self.compute_client.virtual_machines.get(resource_group_name, instance_name, expand='instanceView')
diff --git a/infrastructure-provisioning/src/general/lib/gcp/meta_lib.py b/infrastructure-provisioning/src/general/lib/gcp/meta_lib.py
index b8f01e764..cbccd9c02 100644
--- a/infrastructure-provisioning/src/general/lib/gcp/meta_lib.py
+++ b/infrastructure-provisioning/src/general/lib/gcp/meta_lib.py
@@ -681,11 +681,16 @@ class GCPMeta:
request = self.service.images().get(project=self.project, image=image)
result = request.execute()
host['id'] = image
- host['status'] = result.get('status').lower().replace("terminated", "stopped")
+ if result.get('status') == 'PENDING':
+ host['status'] = 'CREATING'
+ elif result.get('status') == 'READY':
+ host['status'] = 'ACTIVE'
+ else:
+ host['status'] = result.get('status')
data.append(host)
except:
host['id'] = image
- host['status'] = 'terminated'
+ host['status'] = 'TERMINATED'
data.append(host)
return data
diff --git a/infrastructure-provisioning/src/general/scripts/azure/common_collect_data.py b/infrastructure-provisioning/src/general/scripts/azure/common_collect_data.py
index 3394f041a..89569200e 100644
--- a/infrastructure-provisioning/src/general/scripts/azure/common_collect_data.py
+++ b/infrastructure-provisioning/src/general/scripts/azure/common_collect_data.py
@@ -47,7 +47,7 @@ if __name__ == "__main__":
except:
logging.error("Hosts JSON wasn't been provided")
try:
- data_images = AzureMeta().list_images(data.get('image'))
+ data_images = AzureMeta().get_image_statuses(args.resource_group_name, data.get('image'))
statuses['image'] = data_images
except:
logging.error("Images JSON wasn't been provided")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org