You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2016/04/13 19:13:52 UTC

[1/4] libcloud git commit: Fix OpenStack IP type resolution

Repository: libcloud
Updated Branches:
  refs/heads/trunk 4816cbbfd -> 39e92cb1a


Fix OpenStack IP type resolution

Closes #738

Signed-off-by: Tomaz Muraus <to...@tomaz.me>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/0bcc7d61
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/0bcc7d61
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/0bcc7d61

Branch: refs/heads/trunk
Commit: 0bcc7d61ced3471466b523768b873a7b0b1710db
Parents: 4816cbb
Author: lionel <li...@sixsq.com>
Authored: Wed Apr 6 14:50:01 2016 +0200
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Wed Apr 13 19:03:20 2016 +0200

----------------------------------------------------------------------
 libcloud/compute/drivers/openstack.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/0bcc7d61/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index c775603..51adf75 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2074,16 +2074,16 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
                 # public and 'fixed' for private
                 explicit_ip_type = value.get('OS-EXT-IPS:type', None)
 
-                if explicit_ip_type == 'floating':
+                if public_subnet:
+                    # Check for public subnet
+                    is_public_ip = True
+                elif explicit_ip_type == 'floating':
                     is_public_ip = True
                 elif explicit_ip_type == 'fixed':
                     is_public_ip = False
                 elif label in public_networks_labels:
                     # Try label next
                     is_public_ip = True
-                elif public_subnet:
-                    # Check for public subnet
-                    is_public_ip = True
 
                 if is_public_ip:
                     public_ips.append(ip)
@@ -2108,6 +2108,7 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
             created_at=created,
             driver=self,
             extra=dict(
+                addresses=api_node['addresses'],
                 hostId=api_node['hostId'],
                 access_ip=api_node.get('accessIPv4'),
                 access_ipv6=api_node.get('accessIPv6', None),


[2/4] libcloud git commit: Improve OpenStack IP type resolution and improve tests

Posted by to...@apache.org.
Improve OpenStack IP type resolution and improve tests

Closes #738

Signed-off-by: Tomaz Muraus <to...@tomaz.me>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/6bb66097
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/6bb66097
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/6bb66097

Branch: refs/heads/trunk
Commit: 6bb6609720a661907212a23669227cbc4caee2bd
Parents: 0bcc7d6
Author: lionel <li...@sixsq.com>
Authored: Wed Apr 13 15:55:59 2016 +0200
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Wed Apr 13 19:03:23 2016 +0200

----------------------------------------------------------------------
 libcloud/compute/drivers/openstack.py           | 30 ++++++++------------
 .../openstack_v1.1/_servers_detail.json         | 22 ++++++++++++++
 libcloud/test/compute/test_openstack.py         | 13 +++++++--
 3 files changed, 44 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/6bb66097/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index 51adf75..b4daa57 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2061,29 +2061,23 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
         for label, values in api_node['addresses'].items():
             for value in values:
                 ip = value['addr']
-
                 is_public_ip = False
 
                 try:
-                    public_subnet = is_public_subnet(ip)
+                    is_public_ip = is_public_subnet(ip)
                 except:
                     # IPv6
-                    public_subnet = False
-
-                # Openstack Icehouse sets 'OS-EXT-IPS:type' to 'floating' for
-                # public and 'fixed' for private
-                explicit_ip_type = value.get('OS-EXT-IPS:type', None)
-
-                if public_subnet:
-                    # Check for public subnet
-                    is_public_ip = True
-                elif explicit_ip_type == 'floating':
-                    is_public_ip = True
-                elif explicit_ip_type == 'fixed':
-                    is_public_ip = False
-                elif label in public_networks_labels:
-                    # Try label next
-                    is_public_ip = True
+
+                    # Openstack Icehouse sets 'OS-EXT-IPS:type' to 'floating' for
+                    # public and 'fixed' for private
+                    explicit_ip_type = value.get('OS-EXT-IPS:type', None)
+
+                    if label in public_networks_labels:
+                        is_public_ip = True
+                    elif explicit_ip_type == 'floating':
+                        is_public_ip = True
+                    elif explicit_ip_type == 'fixed':
+                        is_public_ip = False
 
                 if is_public_ip:
                     public_ips.append(ip)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/6bb66097/libcloud/test/compute/fixtures/openstack_v1.1/_servers_detail.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/openstack_v1.1/_servers_detail.json b/libcloud/test/compute/fixtures/openstack_v1.1/_servers_detail.json
index 4c31b27..cddb138 100644
--- a/libcloud/test/compute/fixtures/openstack_v1.1/_servers_detail.json
+++ b/libcloud/test/compute/fixtures/openstack_v1.1/_servers_detail.json
@@ -58,6 +58,28 @@
                         "addr": "10.3.3.3",
                         "version": 4
                     }
+                ],
+                "pubnet": [
+                    {
+                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:79:90:aa",
+                        "OS-EXT-IPS:type": "fixed",
+                        "addr": "1.1.1.1",
+                        "version": 4
+                    },
+                    {
+                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:79:90:aa",
+                        "OS-EXT-IPS:type": "floating",
+                        "addr": "2.2.2.2",
+                        "version": 4
+                    }
+                ],
+                "privnet": [
+                    {
+                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:79:90:aa",
+                        "OS-EXT-IPS:type": "floating",
+                        "addr": "172.16.1.1",
+                        "version": 4
+                    }
                 ]
             },
             "tenant_id": "rs-reach-project",

http://git-wip-us.apache.org/repos/asf/libcloud/blob/6bb66097/libcloud/test/compute/test_openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py
index ee2469d..f5941b0 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -758,8 +758,11 @@ class OpenStack_1_1_Tests(unittest.TestCase, TestCaseMixin):
         self.assertTrue('12.16.18.28' in node.public_ips)
         self.assertTrue('50.57.94.35' in node.public_ips)
 
-        # floating ip
-        self.assertTrue('192.168.3.3' in node.public_ips)
+        # fixed public ip
+        self.assertTrue('1.1.1.1' in node.public_ips)
+
+        # floating public ip
+        self.assertTrue('2.2.2.2' in node.public_ips)
 
         # test public IPv6
         self.assertTrue(
@@ -768,9 +771,13 @@ class OpenStack_1_1_Tests(unittest.TestCase, TestCaseMixin):
         # test private IPv4
         self.assertTrue('10.182.64.34' in node.private_ips)
 
-        # floating ip
+        # fixed private ip
         self.assertTrue('10.3.3.3' in node.private_ips)
 
+        # floating private ip
+        self.assertTrue('192.168.3.3' in node.private_ips)
+        self.assertTrue('172.16.1.1' in node.private_ips)
+
         # test private IPv6
         self.assertTrue(
             'fec0:4801:7808:52:16:3eff:fe60:187d' in node.private_ips)


[3/4] libcloud git commit: minor pep8 fix

Posted by to...@apache.org.
minor pep8 fix

Closes #738

Signed-off-by: Tomaz Muraus <to...@tomaz.me>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/dbd11a68
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/dbd11a68
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/dbd11a68

Branch: refs/heads/trunk
Commit: dbd11a68228b20396fc458a9d4f8ef529d6a3f11
Parents: 6bb6609
Author: lionel <li...@sixsq.com>
Authored: Wed Apr 13 16:09:06 2016 +0200
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Wed Apr 13 19:03:28 2016 +0200

----------------------------------------------------------------------
 libcloud/compute/drivers/openstack.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/dbd11a68/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index b4daa57..1fa3479 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2068,8 +2068,8 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
                 except:
                     # IPv6
 
-                    # Openstack Icehouse sets 'OS-EXT-IPS:type' to 'floating' for
-                    # public and 'fixed' for private
+                    # Openstack Icehouse sets 'OS-EXT-IPS:type' to 'floating'
+                    # for public and 'fixed' for private
                     explicit_ip_type = value.get('OS-EXT-IPS:type', None)
 
                     if label in public_networks_labels:


[4/4] libcloud git commit: Update changelog.

Posted by to...@apache.org.
Update changelog.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/39e92cb1
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/39e92cb1
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/39e92cb1

Branch: refs/heads/trunk
Commit: 39e92cb1ac3e4ad627fa48018d3f1874566eee1f
Parents: dbd11a6
Author: Tomaz Muraus <to...@tomaz.me>
Authored: Wed Apr 13 19:04:51 2016 +0200
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Wed Apr 13 19:04:51 2016 +0200

----------------------------------------------------------------------
 CHANGES.rst | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/39e92cb1/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 64c61d2..5e3266c 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -21,6 +21,11 @@ Compute
   (GITHUB-737)
   [Lionel Schaub]
 
+- Fix OpenStack IP type resolution - make sure IP addresses are correctly
+  categorized and assigned on `private_ips` and `public_ips` Node attribute.
+  (GITHUB-738)
+  [Lionel Schaub]
+
 DNS
 ~~~