Merge "Delete namespace with network policy on it"

This commit is contained in:
Zuul 2019-04-25 10:40:18 +00:00 committed by Gerrit Code Review
commit 5df10697a4
1 changed files with 57 additions and 3 deletions

View File

@ -45,7 +45,8 @@ class TestNetworkPolicyScenario(base.BaseKuryrScenarioTest):
kuryr_netpolicy_crd_name = 'np-' + network_policy_name
network_policies = self.list_network_policies()
kuryrnetpolicies = ''
while True:
start = time.time()
while time.time() - start < TIMEOUT_PERIOD:
try:
kuryrnetpolicies = self.get_kuryr_netpolicy_crds(
name=kuryr_netpolicy_crd_name)
@ -61,9 +62,11 @@ class TestNetworkPolicyScenario(base.BaseKuryrScenarioTest):
str(kuryrnetpolicies['metadata']['name']))
self.assertIn(sg_id, sg_ids)
self.delete_network_policy(network_policy_name)
self.assertNotIn(network_policy_name, self.list_network_policies())
while True:
start = time.time()
while time.time() - start < TIMEOUT_PERIOD:
time.sleep(1)
if network_policy_name in self.list_network_policies():
continue
try:
self.get_kuryr_netpolicy_crds(name=kuryr_netpolicy_crd_name)
except kubernetes.client.rest.ApiException:
@ -127,3 +130,54 @@ class TestNetworkPolicyScenario(base.BaseKuryrScenarioTest):
raise lib_exc.TimeoutException()
self.assertEqual(labels, match_labels)
@decorators.idempotent_id('24577a9b-1d29-409b-8b60-da3c49d777c2')
def test_delete_namespace_with_network_policy(self):
ns_name, ns = self.create_namespace()
match_labels = {'role': 'db'}
np = self.create_network_policy(match_labels=match_labels,
namespace=ns_name)
LOG.debug("Creating network policy %s" % np)
network_policy_name = np.metadata.name
kuryr_netpolicy_crd_name = 'np-' + network_policy_name
network_policies = self.list_network_policies(namespace=ns_name)
kuryrnetpolicies = ''
start = time.time()
while time.time() - start < TIMEOUT_PERIOD:
try:
kuryrnetpolicies = self.get_kuryr_netpolicy_crds(
name=kuryr_netpolicy_crd_name, namespace=ns_name)
break
except kubernetes.client.rest.ApiException:
time.sleep(1)
continue
sg_id = kuryrnetpolicies['spec']['securityGroupId']
sgs = self.list_security_groups(fields='id')
sg_ids = [sg['id'] for sg in sgs]
self.assertIn(network_policy_name, network_policies)
self.assertEqual(kuryr_netpolicy_crd_name,
str(kuryrnetpolicies['metadata']['name']))
self.assertIn(sg_id, sg_ids)
# delete namespace
self.delete_namespace(ns_name)
start = time.time()
while time.time() - start < TIMEOUT_PERIOD:
time.sleep(1)
if network_policy_name in self.list_network_policies(
namespace=ns_name):
continue
try:
self.get_kuryr_netpolicy_crds(name=kuryr_netpolicy_crd_name,
namespace=ns_name)
except kubernetes.client.rest.ApiException:
break
start = time.time()
while time.time() - start < TIMEOUT_PERIOD:
sgs_after = self.list_security_groups(fields='id')
sg_ids_after = [sg['id'] for sg in sgs_after]
if sg_id not in sg_ids_after:
break
time.sleep(1)
if time.time() - start >= TIMEOUT_PERIOD:
raise lib_exc.TimeoutException('Sec group ID still exists')