Skip to content

Commit

Permalink
Service/Application/Workload details page refactoring: Initial commit…
Browse files Browse the repository at this point in the history
…. More commits will come later.
  • Loading branch information
hhovsepy committed Apr 30, 2021
1 parent 2f07012 commit 78db53b
Show file tree
Hide file tree
Showing 11 changed files with 273 additions and 616 deletions.
538 changes: 172 additions & 366 deletions kiali_qe/components/__init__.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion kiali_qe/entities/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def __str__(self):
self.validation, self.link)

def __repr__(self):
return "{}({}, {}, {}, {})".format(
return "{}({}, {})".format(
type(self).__name__, repr(self.validation), repr(self.link))

def is_equal(self, other):
Expand Down
2 changes: 1 addition & 1 deletion kiali_qe/entities/istio_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def __str__(self):
self.name, self.text, self.validation)

def __repr__(self):
return "{}({}, {})".format(
return "{}({}, {}, {})".format(
type(self).__name__, repr(self.name), repr(self.text), repr(self.validation))

def __eq__(self, other):
Expand Down
2 changes: 1 addition & 1 deletion kiali_qe/entities/overview.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def __str__(self):
self.tls_type)

def __repr__(self):
return "{}({}, {}, {}, {}, {}, {}, {}, {})".format(
return "{}({}, {}, {}, {}, {}, {}, {}, {}, {})".format(
type(self).__name__, repr(self.overview_type), repr(self.namespace), repr(self.items),
repr(self.healthy), repr(self.unhealthy), repr(self.degraded), repr(self.na),
repr(self.idle),
Expand Down
72 changes: 23 additions & 49 deletions kiali_qe/entities/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class ServiceDetails(EntityBase):
health: health status
"""

def __init__(self, name, created_at, created_at_ui, service_type,
def __init__(self, name, created_at, service_type,
resource_version, ip, ports,
labels={}, selectors={},
istio_sidecar=False, health=None, service_status=None,
Expand All @@ -139,7 +139,6 @@ def __init__(self, name, created_at, created_at_ui, service_type,
self.istio_sidecar = istio_sidecar
self.health = health
self.created_at = created_at
self.created_at_ui = created_at_ui
self.service_type = service_type
self.resource_version = resource_version
self.ip = ip
Expand Down Expand Up @@ -199,11 +198,10 @@ def is_equal(self, other, advanced_check=True):
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
if self.service_type and other.service_type and self.service_type != other.service_type:
return False
if self.service_type != other.service_type:
return False
if self.resource_version != other.resource_version:
if self.resource_version and other.resource_version and \
self.resource_version != other.resource_version:
return False
if self.ip != other.ip:
return False
Expand Down Expand Up @@ -242,14 +240,13 @@ class VirtualService(EntityBase):
resource_version: resource version
"""

def __init__(self, status, name, created_at, created_at_ui,
def __init__(self, status, name, created_at,
resource_version,
protocol_route=None, hosts=[], weights=[], gateways=[]):
if name is None:
raise KeyError("'name' should not be 'None'")
self.name = name
self.created_at = created_at
self.created_at_ui = created_at_ui
self.resource_version = resource_version
self.status = status
self.protocol_route = protocol_route
Expand All @@ -264,7 +261,7 @@ def __str__(self):
self.hosts, self.weights)

def __repr__(self):
return "{}({}, {}, {}, {}, {})".format(
return "{}({}, {}, {}, {}, {}, {})".format(
type(self).__name__,
repr(self.name),
repr(self.status),
Expand All @@ -285,9 +282,8 @@ def is_equal(self, other, advanced_check=True):
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
return False
if self.resource_version != other.resource_version:
if self.resource_version and other.resource_version and \
self.resource_version != other.resource_version:
return False
# advanced check
if not advanced_check:
Expand Down Expand Up @@ -373,7 +369,7 @@ def __str__(self):
self.text, self.link)

def __repr__(self):
return "{}({}, {}, {})".format(
return "{}({}, {})".format(
type(self).__name__,
repr(self.text),
repr(self.link))
Expand Down Expand Up @@ -476,10 +472,9 @@ def __init__(self, status, name, host, subsets):
self.status = status

def __str__(self):
return 'name:{}, status:{}, host:{}, subsets:{}, '\
'created_at:{}, resource_version:{}'.format(
self.name, self.status, self.host,
self.subsets)
return 'name:{}, status:{}, host:{}, subsets:{}'.format(
self.name, self.status, self.host,
self.subsets)

def __repr__(self):
return "{}({}, {}, {}, {})".format(
Expand Down Expand Up @@ -576,15 +571,14 @@ class DestinationRule(EntityBase):
"""

def __init__(self, status, name, host, traffic_policy, subsets,
created_at, created_at_ui, resource_version):
created_at, resource_version):
if name is None:
raise KeyError("'name' should not be 'None'")
self.name = name
self.host = host
self.traffic_policy = traffic_policy
self.subsets = subsets
self.created_at = created_at
self.created_at_ui = created_at_ui
self.resource_version = resource_version
self.status = status

Expand All @@ -596,7 +590,7 @@ def __str__(self):
self.created_at, self.resource_version)

def __repr__(self):
return "{}({}, {}, {}, {}, {})".format(
return "{}({}, {}, {}, {}, {}, {}, {})".format(
type(self).__name__,
repr(self.name), repr(self.status),
repr(self.host),
Expand All @@ -620,9 +614,8 @@ def is_equal(self, other, advanced_check=True):
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
return False
if self.resource_version != other.resource_version:
if self.resource_version and other.resource_version and \
self.resource_version != other.resource_version:
return False
if self.traffic_policy != other.traffic_policy:
return False
Expand All @@ -643,39 +636,26 @@ class IstioConfigRow(EntityBase):
Args:
status: the validation status of config
name: name of the config
type: the config type
created_at: creation datetime
resource_version: resource version
"""

def __init__(self, status, name, type,
created_at, created_at_ui, resource_version):
def __init__(self, status, name, type):
if name is None:
raise KeyError("'name' should not be 'None'")
self.name = name
self.type = type
self.created_at = created_at
self.created_at_ui = created_at_ui
self.resource_version = resource_version
self.status = status
self.type = type

def __str__(self):
return 'name:{}, status:{}, type:{}, '\
'created_at:{}, resource_version:{}'.format(
self.name, self.status, self.type,
self.created_at, self.resource_version)
return 'name:{}, status:{}, type: {}'.format(
self.name, self.status, self.type)

def __repr__(self):
return "{}({}, {}, {}, {}, {})".format(
return "{}({}, {}, {})".format(
type(self).__name__,
repr(self.name), repr(self.status),
repr(self.host),
repr(self.traffic_policy), repr(self.subsets),
repr(self.created_at), repr(self.resource_version))
repr(self.name), repr(self.status), repr(self.type))

def __hash__(self):
return (hash(self.name) ^ hash(self.type) ^ hash(self.created_at)
^ hash(self.resource_version))
return (hash(self.name) ^ hash(self.status) ^ hash(self.type))

def __eq__(self, other):
return self.is_equal(other, advanced_check=True)
Expand All @@ -688,12 +668,6 @@ def is_equal(self, other, advanced_check=True):
return False
if self.type != other.type:
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
return False
if self.resource_version != other.resource_version:
return False
# advanced check
if not advanced_check:
return True
Expand Down
64 changes: 13 additions & 51 deletions kiali_qe/entities/workload.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,20 +63,19 @@ def is_equal(self, other, advanced_check=True):

class WorkloadDetails(EntityBase):

def __init__(self, name, workload_type, created_at, created_at_ui, resource_version,
istio_sidecar=False, sidecar_injection=None,
def __init__(self, name, workload_type, created_at, resource_version,
istio_sidecar=False, missing_sidecar=False,
health=None, workload_status=None, icon=None, **kwargs):
if name is None:
raise KeyError("'name' should not be 'None'")
self.name = name
self.workload_type = workload_type
self.istio_sidecar = istio_sidecar
self.sidecar_injection = sidecar_injection
self.missing_sidecar = missing_sidecar
self.health = health
self.workload_status = workload_status
self.icon = icon
self.created_at = created_at
self.created_at_ui = created_at_ui
self.resource_version = resource_version
self.labels = kwargs['labels']\
if 'labels' in kwargs else {}
Expand All @@ -86,10 +85,6 @@ def __init__(self, name, workload_type, created_at, created_at_ui, resource_vers
if 'availableReplicas' in kwargs else None
self.unavailableReplicas = kwargs['unavailableReplicas']\
if 'unavailableReplicas' in kwargs else None
self.pods_number = kwargs['pods_number']\
if 'pods_number' in kwargs else None
self.services_number = kwargs['services_number']\
if 'services_number' in kwargs else None
self.services = kwargs['services']\
if 'services' in kwargs else None
self.traffic_tab = kwargs['traffic_tab']\
Expand All @@ -102,8 +97,6 @@ def __init__(self, name, workload_type, created_at, created_at_ui, resource_vers
if 'inbound_metrics' in kwargs else None
self.outbound_metrics = kwargs['outbound_metrics']\
if 'outbound_metrics' in kwargs else None
self.istio_configs_number = kwargs['istio_configs_number']\
if 'istio_configs_number' in kwargs else None
self.istio_configs = kwargs['istio_configs']\
if 'istio_configs' in kwargs else None
self.traces_tab = kwargs['traces_tab']\
Expand Down Expand Up @@ -138,13 +131,12 @@ def is_equal(self, other, advanced_check=True):
return False
if self.name != other.name:
return False
if self.workload_type != other.workload_type:
if self.workload_type and other.workload_type and self.workload_type != other.workload_type:
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
return False
if self.resource_version != other.resource_version:
if self.resource_version and other.resource_version and \
self.resource_version != other.resource_version:
return False
if self.labels != other.labels:
return False
Expand All @@ -164,62 +156,32 @@ def is_equal(self, other, advanced_check=True):

class WorkloadPod(EntityBase):

def __init__(self, name, created_at, created_at_ui, created_by, labels={},
istio_init_containers=None, istio_containers=None, status=None,
phase=None, podIP=None):
def __init__(self, name, status=None, podIP=None):
self.name = name
self.created_at = created_at
self.created_by = created_by
self.created_at_ui = created_at_ui
self.labels = labels
self.istio_init_containers = istio_init_containers
self.istio_containers = istio_containers
self.status = status
self.phase = phase
self.podIP = podIP

def __str__(self):
return 'name:{}, created_at:{}, created_by:{}, labels: {}\
istio_init_containers:{}, istio_containers:{}\
status:{}, phase:{}'.format(
self.name, self.created_at, self.created_by, self.labels,
self.istio_init_containers, self.istio_containers,
self.status, self.phase)
return 'name:{}, status:{}'.format(
self.name, self.status)

def __repr__(self):
return "{}({}, {}, {}, {}, {}, {}, {}, {}, {})".format(
return "{}({}, {}".format(
type(self).__name__, repr(self.name),
repr(self.created_at), repr(self.created_by),
repr(self.labels),
repr(self.istio_init_containers), repr(self.istio_containers),
repr(self.status), repr(self.phase))
repr(self.status))

def __eq__(self, other):
return self.is_equal(other, advanced_check=True)

def __hash__(self):
return (hash(self.name) ^ hash(self.created_at) ^ hash(self.created_by))
return (hash(self.name) ^ hash(self.status))

def is_equal(self, other, advanced_check=True):
# basic check
if not isinstance(other, WorkloadPod):
return False
if self.name != other.name:
return False
if self.created_at and other.created_at and self.created_at != other.created_at:
return False
if self.created_at_ui != other.created_at_ui:
return False
if self.created_by != other.created_by:
return False
if self.labels != other.labels:
return False
if self.istio_init_containers != other.istio_init_containers:
return False
if self.istio_containers != other.istio_containers:
return False
if self.phase != other.phase:
return False
# advanced check
if advanced_check:
if self.status != other.status:
Expand All @@ -238,7 +200,7 @@ def __str__(self):
self.workload_status, self.requests)

def __repr__(self):
return "{}({}, {}, {})".format(
return "{}({}, {})".format(
type(self).__name__,
repr(self.workload_status), repr(self.requests))

Expand Down
Loading

0 comments on commit 78db53b

Please sign in to comment.