Merge pull request #1492 from micafer/fix_1491

Fix error setting ex_force_xxx_url without setting ex_force_base_url
diff --git a/CHANGES.rst b/CHANGES.rst
index 56ed8da..b5fab03 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -11,6 +11,11 @@
   (GITHUB-1485)
   [Poul Petersen - @petersen-poul]
 
+- [OpenStack] Fix error setting ``ex_force_XXX_url`` without setting
+  ``ex_force_base_url``.
+  (GITHUB-1492)
+  [Miguel Caballer - @micafer]
+
 - [EC2] Update supported EC2 regions and instance sizes and add support 
   for eu-north-1 region.
   (GITHUB-1486)
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index 9362542..4b6f89b 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2841,6 +2841,9 @@
         self._ex_force_base_url = original_ex_force_base_url
         if original_ex_force_base_url:
             kwargs['ex_force_base_url'] = self._ex_force_base_url
+        # if ex_force_base_url is not set in original params delete it
+        elif 'ex_force_base_url' in kwargs:
+            del kwargs['ex_force_base_url']
         self.connectionCls = original_connectionCls
         super(OpenStack_2_NodeDriver, self).__init__(*args, **kwargs)
 
diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py
index 3aea4b5..b85dc79 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -2127,6 +2127,15 @@
         ret = self.driver.ex_remove_security_group_from_node(security_group, node)
         self.assertTrue(ret)
 
+    def test_force_net_url(self):
+        d = OpenStack_2_NodeDriver(
+            'user', 'correct_password',
+            ex_force_auth_version='2.0_password',
+            ex_force_auth_url='http://x.y.z.y:5000',
+            ex_force_network_url='http://network.com:9696',
+            ex_tenant_name='admin')
+        self.assertEqual(d._ex_force_base_url, None)
+
 
 class OpenStack_1_1_FactoryMethodTests(OpenStack_1_1_Tests):
     should_list_locations = False