Merge "Adapt pool recovery to new pod annotation format"

This commit is contained in:
Zuul 2018-08-20 09:34:00 +00:00 committed by Gerrit Code Review
commit 5b32ed07fc
2 changed files with 7 additions and 10 deletions

View File

@ -238,12 +238,13 @@ class BaseVIFPool(base.VIFPoolDriver):
try:
annotations = jsonutils.loads(pod['metadata']['annotations'][
constants.K8S_ANNOTATION_VIF])
pod_state = utils.extract_pod_annotation(annotations)
except KeyError:
LOG.debug("Skipping pod without kuryr VIF annotation: %s",
pod)
else:
for vif in annotations.values():
in_use_ports.append(vif['versioned_object.data']['id'])
for vif in pod_state.vifs.values():
in_use_ports.append(vif.id)
return in_use_ports
def list_pools(self):

View File

@ -28,6 +28,7 @@ from kuryr_kubernetes.controller.drivers import nested_vlan_vif
from kuryr_kubernetes.controller.drivers import neutron_vif
from kuryr_kubernetes.controller.drivers import vif_pool
from kuryr_kubernetes import exceptions
from kuryr_kubernetes.objects import vif
from kuryr_kubernetes import os_vif_util as ovu
from kuryr_kubernetes.tests import base as test_base
from kuryr_kubernetes.tests.unit import kuryr_fixtures as k_fix
@ -287,16 +288,11 @@ class BaseVIFPool(test_base.TestCase):
kubernetes = self.useFixture(k_fix.MockK8sClient()).client
pod = get_pod_obj()
port_id = uuidutils.generate_uuid()
versioned_object = jsonutils.dumps({
'eth0': {
'versioned_object.data': {
'active': True,
'address': 'fa:16:3e:ef:e6:9f',
'id': port_id
}}})
pod_vif = osv_vif.VIFBase(id=port_id)
pod_state = vif.PodState(default_vif=pod_vif)
pod['metadata']['annotations'][constants.K8S_ANNOTATION_VIF] = (
versioned_object)
jsonutils.dumps(pod_state.obj_to_primitive()))
items = [pod]
kubernetes.get.return_value = {'items': items}