You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by vd...@apache.org on 2018/07/06 10:05:29 UTC
[1/2] libcloud git commit: Add ex_create_port and ex_get_port to
Openstackv2 driver
Repository: libcloud
Updated Branches:
refs/heads/trunk 8a9ffd1df -> 370964d5b
Add ex_create_port and ex_get_port to Openstackv2 driver
Signed-off-by: Rick van de Loo <ri...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/6f610cab
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/6f610cab
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/6f610cab
Branch: refs/heads/trunk
Commit: 6f610cab262ccdb280fe03694eb40393876f9799
Parents: 8a9ffd1
Author: Alexander Grooff <al...@gmail.com>
Authored: Fri Jul 6 10:53:13 2018 +0200
Committer: Rick van de Loo <ri...@gmail.com>
Committed: Fri Jul 6 12:01:23 2018 +0200
----------------------------------------------------------------------
libcloud/compute/drivers/openstack.py | 50 ++++++++++++++++++
.../fixtures/openstack_v1.1/_port_v2.json | 32 ++++++++++++
libcloud/test/compute/test_openstack.py | 53 +++++++++++++++++++-
3 files changed, 134 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/6f610cab/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index e0a5ff0..2ce9f55 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2604,6 +2604,7 @@ class OpenStack_2_NodeDriver(OpenStack_1_1_NodeDriver):
created=created,
driver=self,
extra=dict(
+ admin_state_up=element['admin_state_up'],
allowed_address_pairs=element['allowed_address_pairs'],
binding_vnic_type=element['binding:vnic_type'],
device_id=element['device_id'],
@@ -2849,6 +2850,55 @@ class OpenStack_2_NodeDriver(OpenStack_1_1_NodeDriver):
method='POST', data=data
).success()
+ def ex_create_port(self, network, description=None,
+ admin_state_up=True, name=None):
+ """
+ Creates a new OpenStack_2_PortInterface
+
+ :param network: ID of the network where the newly created
+ port should be attached to
+ :type network: :class:`OpenStackNetwork`
+
+ :param description: Description of the port
+ :type description: str
+
+ :param admin_state_up: The administrative state of the
+ resource, which is up or down
+ :type admin_state_up: bool
+
+ :param name: Human-readable name of the resource
+ :type name: str
+
+ :rtype: :class:`OpenStack_2_PortInterface`
+ """
+ data = {
+ 'port':
+ {
+ 'description': description or '',
+ 'admin_state_up': admin_state_up,
+ 'name': name or '',
+ 'network_id': network.id,
+ }
+ }
+ response = self.network_connection.request(
+ '/v2.0/ports', method='POST', data=data
+ )
+ return self._to_port(response.object['port'])
+
+ def ex_get_port(self, port_interface_id):
+ """
+ Retrieve the OpenStack_2_PortInterface with the given ID
+
+ :param port_interface_id: ID of the requested port
+ :type port_interface_id: str
+
+ :return: :class:`OpenStack_2_PortInterface`
+ """
+ response = self.network_connection.request(
+ '/v2.0/ports/{}'.format(port_interface_id), method='GET'
+ )
+ return self._to_port(response.object['port'])
+
class OpenStack_1_1_FloatingIpPool(object):
"""
http://git-wip-us.apache.org/repos/asf/libcloud/blob/6f610cab/libcloud/test/compute/fixtures/openstack_v1.1/_port_v2.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/openstack_v1.1/_port_v2.json b/libcloud/test/compute/fixtures/openstack_v1.1/_port_v2.json
new file mode 100644
index 0000000..a86a8e6
--- /dev/null
+++ b/libcloud/test/compute/fixtures/openstack_v1.1/_port_v2.json
@@ -0,0 +1,32 @@
+{
+ "port": {
+ "status": "BUILD",
+ "extra_dhcp_opts": [],
+ "description": "Some port description",
+ "allowed_address_pairs": [],
+ "tags": [],
+ "network_id": "123c8a8c-6427-4e8f-a805-2035365f4d43",
+ "tenant_id": "abcdec85bee34bb0a44ab8255eb36abc",
+ "created_at": "2018-07-04T14:38:18Z",
+ "admin_state_up": true,
+ "updated_at": "2018-07-05T14:40:43Z",
+ "binding:vnic_type": "normal",
+ "device_owner": "compute:nova",
+ "name": "Some port name",
+ "revision_number": 2036,
+ "mac_address": "ba:12:12:8a:b2:73",
+ "port_security_enabled": true,
+ "project_id": "abcdec85bee34bb0a44ab8255eb36abc",
+ "fixed_ips": [
+ {
+ "subnet_id": "1231a12a-125b-4329-a3c5-312ea86a7577",
+ "ip_address": "12.123.12.32"
+ }
+ ],
+ "id": "126da55e-cfcb-41c8-ae39-a26cb8a7e723",
+ "security_groups": [
+ "abcfb112-5b5c-4c6b-8b3f-dbaee57df440"
+ ],
+ "device_id": "95e75643-2008-123f-ad13-e20ea64e3c87"
+ }
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/6f610cab/libcloud/test/compute/test_openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py
index 19b75e7..4462b34 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -47,7 +47,7 @@ from libcloud.compute.drivers.openstack import (
OpenStack_1_1_FloatingIpAddress, OpenStackKeyPair,
OpenStack_1_0_Connection,
OpenStackNodeDriver,
- OpenStack_2_NodeDriver, OpenStack_2_PortInterfaceState)
+ OpenStack_2_NodeDriver, OpenStack_2_PortInterfaceState, OpenStackNetwork)
from libcloud.compute.base import Node, NodeImage, NodeSize
from libcloud.pricing import set_pricing, clear_pricing_data
@@ -1718,6 +1718,51 @@ class OpenStack_2_Tests(OpenStack_1_1_Tests):
)
self.assertEqual(port.extra['name'], '')
+ def test_ex_create_port(self):
+ network = OpenStackNetwork(id='123c8a8c-6427-4e8f-a805-2035365f4d43', name='test-network',
+ cidr='1.2.3.4', driver=self.driver)
+ port = self.driver.ex_create_port(network=network, description='Some port description', name='Some port name',
+ admin_state_up=True)
+
+ self.assertEqual(port.id, '126da55e-cfcb-41c8-ae39-a26cb8a7e723')
+ self.assertEqual(port.state, OpenStack_2_PortInterfaceState.BUILD)
+ self.assertEqual(port.created, '2018-07-04T14:38:18Z')
+ self.assertEqual(
+ port.extra['network_id'],
+ '123c8a8c-6427-4e8f-a805-2035365f4d43'
+ )
+ self.assertEqual(
+ port.extra['project_id'],
+ 'abcdec85bee34bb0a44ab8255eb36abc'
+ )
+ self.assertEqual(
+ port.extra['tenant_id'],
+ 'abcdec85bee34bb0a44ab8255eb36abc'
+ )
+ self.assertEqual(port.extra['admin_state_up'], True)
+ self.assertEqual(port.extra['name'], 'Some port name')
+ self.assertEqual(port.extra['description'], 'Some port description')
+
+ def test_ex_get_port(self):
+ port = self.driver.ex_get_port('126da55e-cfcb-41c8-ae39-a26cb8a7e723')
+
+ self.assertEqual(port.id, '126da55e-cfcb-41c8-ae39-a26cb8a7e723')
+ self.assertEqual(port.state, OpenStack_2_PortInterfaceState.BUILD)
+ self.assertEqual(port.created, '2018-07-04T14:38:18Z')
+ self.assertEqual(
+ port.extra['network_id'],
+ '123c8a8c-6427-4e8f-a805-2035365f4d43'
+ )
+ self.assertEqual(
+ port.extra['project_id'],
+ 'abcdec85bee34bb0a44ab8255eb36abc'
+ )
+ self.assertEqual(
+ port.extra['tenant_id'],
+ 'abcdec85bee34bb0a44ab8255eb36abc'
+ )
+ self.assertEqual(port.extra['name'], 'Some port name')
+
def test_ex_delete_port(self):
ports = self.driver.ex_list_ports()
port = ports[0]
@@ -1965,12 +2010,18 @@ class OpenStack_1_1_MockHttp(MockHttp, unittest.TestCase):
if method == "GET":
body = self.fixtures.load('_ports_v2.json')
return (httplib.OK, body, self.json_content_headers, httplib.responses[httplib.OK])
+ elif method == "POST":
+ body = self.fixtures.load('_port_v2.json')
+ return (httplib.OK, body, self.json_content_headers, httplib.responses[httplib.OK])
else:
raise NotImplementedError()
def _v2_1337_v2_0_ports_126da55e_cfcb_41c8_ae39_a26cb8a7e723(self, method, url, body, headers):
if method == "DELETE":
return (httplib.NO_CONTENT, "", {}, httplib.responses[httplib.NO_CONTENT])
+ elif method == "GET":
+ body = self.fixtures.load('_port_v2.json')
+ return (httplib.OK, body, self.json_content_headers, httplib.responses[httplib.OK])
else:
raise NotImplementedError()
[2/2] libcloud git commit: Add changes for #1226
Posted by vd...@apache.org.
Add changes for #1226
Closes #1226
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/370964d5
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/370964d5
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/370964d5
Branch: refs/heads/trunk
Commit: 370964d5bad3dc97dbaa9b921b86b4a6a98b9c79
Parents: 6f610ca
Author: Rick van de Loo <ri...@gmail.com>
Authored: Fri Jul 6 12:03:24 2018 +0200
Committer: Rick van de Loo <ri...@gmail.com>
Committed: Fri Jul 6 12:03:24 2018 +0200
----------------------------------------------------------------------
CHANGES.rst | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/370964d5/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 2f790ed..d7e1e55 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -90,6 +90,9 @@ Compute
- [OpenStack] Implement port attaching/detaching (GITHUB-1225)
[Rick van de Loo]
+- [OpenStack] Add methods for getting and creating ports (GITHUB-1226)
+ [Alexander Grooff]
+
- [OpenStack] Add get_user method (GITHUB-1216)
[Ken Dreyer]