def list_k8s_deployments(self): # list deployments try: result_deployment_list = [] deployment_list = self.apps_api_instance.list_namespaced_deployment(namespace="default") deployments = deployment_list.items if deployments is None or len(deployments) == 0: Logger.warn(self.MSG_WARN_NO_DEPLOYMENT.format("")) return result_deployment_list else: Logger.header(self.DEPLOYMENT_HEADER) Logger.sub_info(self.DEPLOYMENT_LIST_HEADER_DISPLAY_FORMAT.format("Available")) trunk_len_big = 31 for deployment in deployments: deployment.metadata.name = "NA" if deployment.metadata.name is None else deployment.metadata.name result_deployment_list.append(deployment.metadata.name) deployment.status.ready_replicas = "NA" if deployment.status.ready_replicas is None else deployment.status.ready_replicas deployment.status.replicas = "NA" if deployment.status.replicas is None else deployment.status.replicas deployment.status.updated_replicas = "NA" if deployment.status.updated_replicas is None else deployment.status.updated_replicas deployment.status.available_replicas = "NA" if deployment.status.available_replicas is None else deployment.status.available_replicas deployment.metadata.name = deployment.metadata.name[0:trunk_len_big] + ".." if len( deployment.metadata.name) > trunk_len_big else deployment.metadata.name Logger.avail_info( self.DEPLOYMENT_LIST_DISPLAY_FORMAT.format(deployment.metadata.name, str(deployment.status.ready_replicas) + "/" + str( deployment.status.replicas), deployment.status.updated_replicas, deployment.status.available_replicas)) except ApiException as api_error: Logger.err(api_error) except (NewConnectionError, MaxRetryError, ConnectTimeoutError): Logger.err(self.MSG_ERR_UNABLE_TO_CONNECT_TO_CLUSTER) return result_deployment_list
def list_stopped_running_instances(self): # List all stopped and running EC2 instances count = 0 available_instances = [] all_instances = self.ec2_res.instances.all() total_instances = self.list_all_instances(all_instances) if total_instances > 0: for instance in all_instances: if instance.state['Name'] == "running" or instance.state['Name'] == "stopped": available_instances.append(instance.id) count += 1 if count == 0: Logger.warn(self.MSG_WARN_NO_INSTANCE_FOR_EMI) else: Logger.avail_info(self.MSG_INFO_STOPPED_RUNNING_INSTANCE.format(available_instances)) return available_instances
def list_stopped_instance(self): # List all stopped EC1 instances count = 0 stopped_instances = [] all_instances = self.ec2_res.instances.all() total_instances = self.list_all_instances(all_instances) if total_instances > 0: for instance in all_instances: if instance.state['Name'] == "stopped": stopped_instances.append(instance.id) count += 1 if count == 0: Logger.warn(self.MSG_WARN_NO_STOPPED_INSTANCE) else: Logger.avail_info(self.MSG_INFO_STOPPED_INSTANCE.format(stopped_instances)) return stopped_instances
def list_running_instance(self): # List all running EC2 instances count = 0 running_instances = [] all_instances = self.ec2_res.instances.all() total_instances = self.list_all_instances(all_instances) if total_instances > 0: for instance in all_instances: if instance.state['Name'] == "running": running_instances.append(instance.id) count += 1 if count == 0: Logger.warn(self.MSG_WARN_NO_RUNNING_INSTANCE) else: Logger.avail_info(self.MSG_INFO_RUNNING_INSTANCE.format(running_instances)) return running_instances
def list_available_volumes(self): # list the available volumes count = 0 available_volumes = [] volumes = self.ec2_res.volumes.filter(Filters=[{ 'Name': 'status', 'Values': ['available'] }]) for volume in volumes: available_volumes.append(volume.volume_id) count += 1 if count == 0: Logger.warn(self.MSG_WARN_NO_AVAILABLE_VOLUMES) else: Logger.avail_info( self.MSG_INFO_AVAILABLE_VOLUMES.format(available_volumes)) return available_volumes
def list_in_use_volumes(self): # list the in-use volumes count = 0 in_use_volumes = [] volumes = self.ec2_res.volumes.filter(Filters=[{ 'Name': 'status', 'Values': ['in-use'] }]) for volume in volumes: in_use_volumes.append(volume.volume_id) count += 1 if count == 0: Logger.warn(self.MSG_WARN_NO_IN_USE_VOLUMES) else: Logger.avail_info( self.MSG_INFO_IN_USE_VOLUMES.format(in_use_volumes)) return in_use_volumes
def list_all_pods(self, all_flag): # get all pods try: result_pods_list = [] if all_flag: pods_list = self.api_instance.list_pod_for_all_namespaces(watch=False) else: pods_list = self.api_instance.list_namespaced_pod("default") pods = pods_list.items if pods is None or len(pods_list.items) == 0: Logger.warn(self.MSG_WARN_NO_PODS.format("Available ")) return result_pods_list else: Logger.header(self.PODS_HEADER) Logger.sub_info(self.PODS_LIST_HEADER_DISPLAY_FORMAT.format("Available")) trunk_len_mid = 20 trunk_len_big = 41 for pod in pods: pod.metadata.name = "NA" if pod.metadata.name is None else pod.metadata.name result_pods_list.append(pod.metadata.name) pod.metadata.namespace = "NA" if pod.metadata.namespace is None else pod.metadata.namespace namespace = pod.metadata.namespace[0:trunk_len_mid] + ".." if len( pod.metadata.namespace) > trunk_len_mid else pod.metadata.namespace pod_name = pod.metadata.name[0:trunk_len_big] + ".." if len( pod.metadata.name) > trunk_len_big else pod.metadata.name nominated_node_name = "<None>" if pod.status.nominated_node_name is None else pod.status.nominated_node_name readiness_gates = "<None>" if pod.spec.readiness_gates is None else pod.spec.readiness_gates pod.status.phase = "NA" if pod.status.phase is None else pod.status.phase restart_count = pod.status.container_statuses[0].restart_count restart_count = "NA" if restart_count is None else restart_count pod.status.pod_ip = "NA" if pod.status.pod_ip is None else pod.status.pod_ip pod.spec.node_name = "NA" if pod.spec.node_name is None else pod.spec.node_name Logger.avail_info( self.PODS_LIST_DISPLAY_FORMAT.format(namespace, pod_name, pod.status.phase, restart_count , pod.status.pod_ip, pod.spec.node_name, nominated_node_name, readiness_gates)) except ApiException as api_error: Logger.err(api_error) except (NewConnectionError, MaxRetryError, ConnectTimeoutError): Logger.err(self.MSG_ERR_UNABLE_TO_CONNECT_TO_CLUSTER) return result_pods_list