ソースを参照

Add support for port bindings

The port bindings API has been around since Pike but has never been
exposed via neutronclient. We still use this in nova so it would be nice
to avoid having to create a KSA client manually for this stuff. We don't
need to expose things via the UI, just the client itself, so do that.

Change-Id: Ied1a057186f0819166df84725b09ded314930a1d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Sem-Ver: feature
changes/27/706227/4
Stephen Finucane 3ヶ月前
コミット
59145be07e
2個のファイルの変更30行の追加0行の削除
  1. +25
    -0
      neutronclient/v2_0/client.py
  2. +5
    -0
      releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml

+ 25
- 0
neutronclient/v2_0/client.py ファイルの表示

@@ -492,6 +492,9 @@ class Client(ClientBase):
network_path = "/networks/%s"
ports_path = "/ports"
port_path = "/ports/%s"
port_bindings_path = "/ports/%s/bindings"
port_binding_path = "/ports/%s/bindings/%s"
port_binding_path_activate = "/ports/%s/bindings/%s/activate"
subnets_path = "/subnets"
subnet_path = "/subnets/%s"
onboard_network_subnets_path = "/subnetpools/%s/onboard_network_subnets"
@@ -811,6 +814,28 @@ class Client(ClientBase):
"""Deletes the specified port."""
return self.delete(self.port_path % (port))

def create_port_binding(self, port_id, body=None):
"""Creates a new port binding."""
return self.post(self.port_bindings_path % port_id, body=body)

def delete_port_binding(self, port_id, host_id):
"""Deletes the specified port binding."""
return self.delete(self.port_binding_path % (port_id, host_id))

def show_port_binding(self, port_id, host_id, **_params):
"""Fetches information for a certain port binding."""
return self.get(self.port_binding_path % (port_id, host_id),
params=_params)

def list_port_bindings(self, port_id, retrieve_all=True, **_params):
"""Fetches a list of all bindings for a certain port."""
return self.list('port_bindings', self.port_bindings_path % port_id,
retrieve_all, **_params)

def activate_port_binding(self, port_id, host_id):
"""Activates a port binding."""
return self.put(self.port_binding_path_activate % (port_id, host_id))

def list_networks(self, retrieve_all=True, **_params):
"""Fetches a list of all networks for a project."""
# Pass filters in "params" argument to do_request


+ 5
- 0
releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml ファイルの表示

@@ -0,0 +1,5 @@
---
features:
- |
New client methods: ``create_port_binding``, ``delete_port_binding``,
``show_port_binding``, ``list_port_bindings`` and ``activate_port_binding``.

読み込み中…
キャンセル
保存