[jira] [Commented] (LIBCLOUD-944) Add support for private IP addresses in GCE instance creation

2017-10-30 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/LIBCLOUD-944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16226230#comment-16226230
 ] 

ASF GitHub Bot commented on LIBCLOUD-944:
-

Github user asfgit closed the pull request at:

https://github.com/apache/libcloud/pull/1107


> Add support for private IP addresses in GCE instance creation
> -
>
> Key: LIBCLOUD-944
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-944
> Project: Libcloud
>  Issue Type: Improvement
>  Components: Compute
>Reporter: Gareth McFarlane
>Priority: Minor
>
> GCE supports specifying a private IP address when deploying instances.  
> Currently only specifying the external IP of an instance is supported in 
> libcloud.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] libcloud pull request #1107: [LIBCLOUD-944] Add support for private IP addre...

2017-10-30 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/libcloud/pull/1107


---


[2/3] libcloud git commit: Added internal IP tests and updated fixtures

2017-10-30 Thread quentinp
Added internal IP tests and updated fixtures

Signed-off-by: Quentin Pradet 


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

Branch: refs/heads/trunk
Commit: ad392c08855c284eaf2643ab60436e914f356c8a
Parents: 718fd95
Author: Gareth Mcfarlane 
Authored: Fri Oct 27 15:42:16 2017 +1100
Committer: Quentin Pradet 
Committed: Tue Oct 31 08:25:19 2017 +0400

--
 ...regions_us-central1_addresses_testaddress.json | 11 +++
 libcloud/test/compute/test_gce.py | 18 +-
 2 files changed, 28 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/libcloud/blob/ad392c08/libcloud/test/compute/fixtures/gce/regions_us-central1_addresses_testaddress.json
--
diff --git 
a/libcloud/test/compute/fixtures/gce/regions_us-central1_addresses_testaddress.json
 
b/libcloud/test/compute/fixtures/gce/regions_us-central1_addresses_testaddress.json
new file mode 100644
index 000..d52a59d
--- /dev/null
+++ 
b/libcloud/test/compute/fixtures/gce/regions_us-central1_addresses_testaddress.json
@@ -0,0 +1,11 @@
+{
+  "address": "173.255.114.104",
+  "creationTimestamp": "2013-06-04T16:28:43.764-07:00",
+  "description": "",
+  "id": "11879548153827627972",
+  "kind": "compute#address",
+  "name": "testaddress",
+  "region": 
"https://www.googleapis.com/compute/v1/projects/project_name/regions/us-central1;,
+  "selfLink": 
"https://www.googleapis.com/compute/v1/projects/project_name/regions/us-central1/addresses/testaddress;,
+  "status": "RESERVED"
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ad392c08/libcloud/test/compute/test_gce.py
--
diff --git a/libcloud/test/compute/test_gce.py 
b/libcloud/test/compute/test_gce.py
index 5d1613c..0e54a76 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -15,6 +15,7 @@
 """
 Tests for Google Compute Engine Driver
 """
+
 import datetime
 import mock
 import sys
@@ -166,6 +167,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
 def test_build_network_gce_struct(self):
 network = self.driver.ex_get_network('lcnetwork')
 address = self.driver.ex_get_address('lcaddress')
+internalip = self.driver.ex_get_address('testaddress')
 subnetwork_name = 'cf-972cf02e6ad49112'
 subnetwork = self.driver.ex_get_subnetwork(subnetwork_name)
 d = self.driver._build_network_gce_struct(network, subnetwork, address)
@@ -173,7 +175,16 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
 self.assertTrue('subnetwork' in d)
 self.assertTrue('kind' in d and
 d['kind'] == 'compute#instanceNetworkInterface')
-
+self.assertEqual(d['accessConfigs'][0]['natIP'], address.address)
+# test with internal IP
+d = self.driver._build_network_gce_struct(network, subnetwork, address,
+  internal_ip=internalip)
+self.assertTrue('network' in d)
+self.assertTrue('subnetwork' in d)
+self.assertTrue('kind' in d and
+d['kind'] == 'compute#instanceNetworkInterface')
+self.assertEqual(d['accessConfigs'][0]['natIP'], address.address)
+self.assertEqual(d['networkIP'], internalip)
 network = self.driver.ex_get_network('default')
 d = self.driver._build_network_gce_struct(network)
 self.assertTrue('network' in d)
@@ -2900,6 +2911,11 @@ class GCEMockHttp(MockHttp):
 'regions_us-central1_addresses_lcaddress.json')
 return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+def _regions_us_central1_addresses_testaddress(self, method, url, body,
+   headers):
+body = 
self.fixtures.load('regions_us-central1_addresses_testaddress.json')
+return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
 def _regions_us_central1_forwardingRules(self, method, url, body, headers):
 if method == 'POST':
 body = self.fixtures.load(



[1/3] libcloud git commit: Add private IP functionality to GCE

2017-10-30 Thread quentinp
Repository: libcloud
Updated Branches:
  refs/heads/trunk 5e1972e48 -> a94f92826


Add private IP functionality to GCE

Signed-off-by: Quentin Pradet 


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

Branch: refs/heads/trunk
Commit: 718fd951c31f4c29e0f1e356a6cbbf06cdc6a4b6
Parents: 5e1972e
Author: Gareth Mcfarlane 
Authored: Thu Sep 7 20:53:08 2017 +1000
Committer: Quentin Pradet 
Committed: Tue Oct 31 08:25:13 2017 +0400

--
 libcloud/compute/drivers/gce.py | 64 ++--
 1 file changed, 47 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/libcloud/blob/718fd951/libcloud/compute/drivers/gce.py
--
diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py
index f49aaf0..21183a0 100644
--- a/libcloud/compute/drivers/gce.py
+++ b/libcloud/compute/drivers/gce.py
@@ -3727,8 +3727,9 @@ class GCENodeDriver(NodeDriver):
 self, name, size, image, location=None, ex_network='default',
 ex_subnetwork=None, ex_tags=None, ex_metadata=None,
 ex_boot_disk=None, use_existing_disk=True, external_ip='ephemeral',
-ex_disk_type='pd-standard', ex_disk_auto_delete=True,
-ex_service_accounts=None, description=None, ex_can_ip_forward=None,
+internal_ip=None, ex_disk_type='pd-standard',
+ex_disk_auto_delete=True, ex_service_accounts=None,
+description=None, ex_can_ip_forward=None,
 ex_disks_gce_struct=None, ex_nic_gce_struct=None,
 ex_on_host_maintenance=None, ex_automatic_restart=None,
 ex_preemptible=None, ex_image_family=None, ex_labels=None):
@@ -3776,6 +3777,9 @@ class GCENodeDriver(NodeDriver):
a GCEAddress object should be passed in.
 :type external_ip: :class:`GCEAddress` or ``str`` or ``None``
 
+:keyword  internal_ip: The private IP address to use.
+:type internal_ip: :class:`GCEAddress` or ``str`` or ``None``
+
 :keyword  ex_disk_type: Specify a pd-standard (default) disk or pd-ssd
 for an SSD disk.
 :type ex_disk_type: ``str`` or :class:`GCEDiskType`
@@ -3911,17 +3915,18 @@ class GCENodeDriver(NodeDriver):
 
 request, node_data = self._create_node_req(
 name, size, image, location, ex_network, ex_tags, ex_metadata,
-ex_boot_disk, external_ip, ex_disk_type, ex_disk_auto_delete,
-ex_service_accounts, description, ex_can_ip_forward,
-ex_disks_gce_struct, ex_nic_gce_struct, ex_on_host_maintenance,
-ex_automatic_restart, ex_preemptible, ex_subnetwork, ex_labels)
+ex_boot_disk, external_ip, internal_ip, ex_disk_type,
+ex_disk_auto_delete, ex_service_accounts, description,
+ex_can_ip_forward, ex_disks_gce_struct, ex_nic_gce_struct,
+ex_on_host_maintenance, ex_automatic_restart, ex_preemptible,
+ex_subnetwork, ex_labels)
 self.connection.async_request(request, method='POST', data=node_data)
 return self.ex_get_node(name, location.name)
 
 def ex_create_instancetemplate(
 self, name, size, source=None, image=None, disk_type='pd-standard',
 disk_auto_delete=True, network='default', subnetwork=None,
-can_ip_forward=None, external_ip='ephemeral',
+can_ip_forward=None, external_ip='ephemeral', internal_ip=None,
 service_accounts=None, on_host_maintenance=None,
 automatic_restart=None, preemptible=None, tags=None, metadata=None,
 description=None, disks_gce_struct=None, nic_gce_struct=None):
@@ -3965,6 +3970,9 @@ class GCENodeDriver(NodeDriver):
a GCEAddress object should be passed in.
 :type external_ip: :class:`GCEAddress` or ``str`` or ``None``
 
+:keyword  internal_ip: The private IP address to use.
+:type internal_ip: :class:`GCEAddress` or ``str`` or ``None``
+
 :keyword  disk_type: Specify a pd-standard (default) disk or pd-ssd
 for an SSD disk.
 :type disk_type: ``str`` or :class:`GCEDiskType`
@@ -4046,7 +4054,7 @@ class GCENodeDriver(NodeDriver):
 disk_type=disk_type, disk_auto_delete=True,
 external_ip=external_ip, network=network, subnetwork=subnetwork,
 can_ip_forward=can_ip_forward, service_accounts=service_accounts,
-

[3/3] libcloud git commit: Add changes for #1107

2017-10-30 Thread quentinp
Add changes for #1107

Closes #1107


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

Branch: refs/heads/trunk
Commit: a94f92826cdf21b29fb242a731c7cb568b8d7ea2
Parents: ad392c0
Author: Quentin Pradet 
Authored: Tue Oct 31 08:25:45 2017 +0400
Committer: Quentin Pradet 
Committed: Tue Oct 31 08:25:45 2017 +0400

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


http://git-wip-us.apache.org/repos/asf/libcloud/blob/a94f9282/CHANGES.rst
--
diff --git a/CHANGES.rst b/CHANGES.rst
index 0e56950..a325741 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -76,6 +76,10 @@ Compute
 - [EC2] Fix EBS volume encryption (GITHUB-1008)
   [Sergey Babak]
 
+- [GCE] Add support for private IP addresses in GCE instance creation
+  (LIBCLOUD-944, GITHUB-1107)
+  [Gareth Mcfarlane]
+
 Storage
 ~~~