def test_pods_conditions(provider, appliance, soft_assert): """ Polarion: assignee: juwatts caseimportance: medium initialEstimate: 1/6h """ selected_pods_cfme = appliance.collections.container_pods.all() pods_per_ready_status = provider.pods_per_ready_status() for pod in selected_pods_cfme: if not pod.exists: continue view = navigate_to(pod, 'Details') ose_pod_condition = pods_per_ready_status[pod.name] cfme_pod_condition = {r.name.text: eval_strings([r.status.text]).pop() for r in view.entities.conditions.rows()} for status in cfme_pod_condition: # If any pods are in a False state, the condition will be reported as False soft_assert(all(cond for cond in ose_pod_condition) == cfme_pod_condition['Ready'], 'The Pod {} status mismatch: It is "{}" in openshift while cfme sees "{}".' .format(status, pod.name, ose_pod_condition, cfme_pod_condition['Ready']))
def test_pods_conditions(provider, appliance, soft_assert): """ Polarion: assignee: juwatts caseimportance: medium casecomponent: Containers initialEstimate: 1/6h """ selected_pods_cfme = appliance.collections.container_pods.all() pods_per_ready_status = provider.pods_per_ready_status() for pod in selected_pods_cfme: if not pod.exists: continue view = navigate_to(pod, 'Details') ose_pod_condition = pods_per_ready_status[pod.name] cfme_pod_condition = { r.name.text: eval_strings([r.status.text]).pop() for r in view.entities.conditions.rows() } for status in cfme_pod_condition: # If any pods are in a False state, the condition will be reported as False soft_assert( all(cond for cond in ose_pod_condition) == cfme_pod_condition['Ready'], 'The Pod {} status mismatch: It is "{}" in openshift while cfme sees "{}".' .format(status, pod.name, ose_pod_condition, cfme_pod_condition['Ready']))
def test_report_pods_per_ready_status(appliance, soft_assert, provider): """Testing 'Pods per Ready Status' report, see polarion case for more info Polarion: assignee: juwatts caseimportance: high casecomponent: Containers initialEstimate: 1/6h """ pods_per_ready_status = provider.pods_per_ready_status() report = get_report(appliance, 'Pods per Ready Status') for row in report.data.rows: name = row['# Pods per Ready Status'] readiness_ui = bool( eval_strings([row['Ready Condition Status']]).pop()) if soft_assert( name in pods_per_ready_status, # this check based on BZ#1435958 'Could not find pod "{}" in openshift.'.format(name)): expected_readiness = bool( all(pod for pod in pods_per_ready_status.get(name, False))) soft_assert( expected_readiness == readiness_ui, 'For pod "{}" expected readiness is "{}" Found "{}"'.format( name, expected_readiness, readiness_ui))
def test_pods_conditions(provider, appliance, soft_assert): selected_pods_cfme = { pd.name: pd for pd in Pod.get_random_instances( provider, count=3, appliance=appliance) } pods_per_ready_status = provider.pods_per_ready_status() for pod_name in selected_pods_cfme: cfme_pod = selected_pods_cfme[pod_name] ose_pod_condition = pods_per_ready_status[pod_name] cfme_pod_condition = { _type: eval_strings([ getattr(getattr(cfme_pod.summary.conditions, _type), "Status") ]).pop() for _type in ose_pod_condition } for status in cfme_pod_condition: soft_assert( ose_pod_condition[status] == cfme_pod_condition[status], 'The Pod {} status mismatch: It is "{}" in openshift while cfme sees "{}".' .format(status, cfme_pod.name, ose_pod_condition[status], cfme_pod_condition[status]))
def pods_per_ready_status(self): """Grabing the Container Statuses Summary of the pods from API""" # TODO: Add later this logic to wrapanapi entities = self.mgmt.api.get('pod')[1]['items'] out = {} for entity_j in entities: out[entity_j['metadata']['name']] = { condition['type']: eval_strings([condition['status']]).pop() for condition in entity_j['status'].get('conditions', []) } return out
def test_report_pods_per_ready_status(soft_assert, provider): """Testing 'Pods per Ready Status' report, see polarion case for more info""" pods_per_ready_status = provider.pods_per_ready_status() report = get_report('Pods per Ready Status') for row in report.data.rows: name = row['# Pods per Ready Status'] readiness_ui = bool(eval_strings([row['Ready Condition Status']]).pop()) if soft_assert(name in pods_per_ready_status, # this check based on BZ#1435958 'Could not find pod "{}" in openshift.' .format(name)): expected_readiness = bool(pods_per_ready_status.get(name, {}).get('Ready', False)) soft_assert(expected_readiness == readiness_ui, 'For pod "{}" expected readiness is "{}" Found "{}"' .format(name, expected_readiness, readiness_ui))
def test_pods_conditions(provider, appliance, soft_assert): selected_pods_cfme = {pd.name: pd for pd in PodCollection(appliance).get_random_instances(count=3)} pods_per_ready_status = provider.pods_per_ready_status() for pod_name in selected_pods_cfme: cfme_pod = selected_pods_cfme[pod_name] view = navigate_to(cfme_pod, 'Details') ose_pod_condition = pods_per_ready_status[pod_name] cfme_pod_condition = {r.name.text: eval_strings([r.status.text]).pop() for r in view.entities.conditions.rows()} for status in cfme_pod_condition: soft_assert(ose_pod_condition[status] == cfme_pod_condition[status], 'The Pod {} status mismatch: It is "{}" in openshift while cfme sees "{}".' .format(status, cfme_pod.name, ose_pod_condition[status], cfme_pod_condition[status]))
def test_report_pods_per_ready_status(appliance, soft_assert, provider): """Testing 'Pods per Ready Status' report, see polarion case for more info Polarion: assignee: juwatts caseimportance: medium casecomponent: Containers initialEstimate: 1/6h """ pods_per_ready_status = provider.pods_per_ready_status() report = get_report(appliance, 'Pods per Ready Status') for row in report.data.rows: name = row['# Pods per Ready Status'] readiness_ui = bool(eval_strings([row['Ready Condition Status']]).pop()) if soft_assert(name in pods_per_ready_status, # this check based on BZ#1435958 'Could not find pod "{}" in openshift.' .format(name)): expected_readiness = bool(all(pod for pod in pods_per_ready_status.get(name, False))) soft_assert(expected_readiness == readiness_ui, 'For pod "{}" expected readiness is "{}" Found "{}"' .format(name, expected_readiness, readiness_ui))
def test_pods_conditions(provider, appliance, soft_assert): selected_pods_cfme = { pd.name: pd for pd in PodCollection(appliance).get_random_instances(count=3) } pods_per_ready_status = provider.pods_per_ready_status() for pod_name in selected_pods_cfme: cfme_pod = selected_pods_cfme[pod_name] view = navigate_to(cfme_pod, 'Details') ose_pod_condition = pods_per_ready_status[pod_name] cfme_pod_condition = { r.name.text: eval_strings([r.status.text]).pop() for r in view.entities.conditions.rows() } for status in cfme_pod_condition: soft_assert( ose_pod_condition[status] == cfme_pod_condition[status], 'The Pod {} status mismatch: It is "{}" in openshift while cfme sees "{}".' .format(status, cfme_pod.name, ose_pod_condition[status], cfme_pod_condition[status]))