Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
 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