[jira] [Commented] (LIBCLOUD-944) Add support for private IP addresses in GCE instance creation
[ 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...
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
Added internal IP tests and updated fixtures Signed-off-by: Quentin PradetProject: 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
Repository: libcloud Updated Branches: refs/heads/trunk 5e1972e48 -> a94f92826 Add private IP functionality to GCE Signed-off-by: Quentin PradetProject: 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
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 PradetAuthored: 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 ~~~