Using port id instead of port name in get_pod_port

Getting the port id from the annotations of the pod

Change-Id: I4aad6efe453f846360b65533898ae2373bbb2dbf
This commit is contained in:
Itzik Brown 2018-07-12 12:17:31 +03:00
parent a4c8d8a4f4
commit 39d5bf3765
1 changed files with 7 additions and 20 deletions

View File

@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
import time
from oslo_log import log as logging
@ -113,24 +113,11 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
return pod.status.phase
def get_pod_port(self, pod_name, namespace="default"):
# TODO(gcheresh) get pod port using container id, as kuryr this would
# depend on port_debug kuryr feature
full_port_name = str(namespace) + "/" + str(pod_name)
port_list = self.os_admin.ports_client.list_ports()
found_ports = []
for port in port_list['ports']:
if full_port_name == port['name']:
return port
if pod_name == port['name']:
found_ports.append(port)
# To maintain backwards compatibility with the old naming we also check
# for matchings without namespace at the port name.
# Note, if there is more than one port with the same name, we have no
# way to differentiate them unless the namespace is used at the port
# name, since kubernetes will avoid having pods with the same name
# under the same namespace
if len(found_ports) == 1:
return found_ports[0]
pod = self.k8s_client.CoreV1Api().read_namespaced_pod_status(
namespace=namespace, name=pod_name)
kuryr_if = json.loads(pod.metadata.annotations[
'openstack.org/kuryr-vif'])
return kuryr_if['eth0']['versioned_object.data']['id']
def exec_command_in_pod(self, pod_name, command, namespace="default"):
api = self.k8s_client.CoreV1Api()
@ -143,7 +130,7 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
pod_fip = self.os_admin.floating_ips_client.create_floatingip(
floating_network_id=ext_net_id,
tenant_id=self.get_project_id(),
port_id=self.get_pod_port(pod_name, namespace)['id'])
port_id=self.get_pod_port(pod_name, namespace))
self.pod_fips.append(pod_fip)
return pod_fip