From 04b435c832876a0525645f403cdf08462ab20874 Mon Sep 17 00:00:00 2001 From: Rodrigo Reis Date: Fri, 3 Jul 2015 00:24:23 -0300 Subject: [PATCH] Amazon Ec2 - Add the option amazonec2-use-private-address Signed-off-by: Rodrigo Reis --- drivers/amazonec2/amazonec2.go | 10 ++++++++++ drivers/amazonec2/amazonec2_test.go | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/amazonec2/amazonec2.go b/drivers/amazonec2/amazonec2.go index cee4730d9e..2658380313 100644 --- a/drivers/amazonec2/amazonec2.go +++ b/drivers/amazonec2/amazonec2.go @@ -59,6 +59,7 @@ type Driver struct { RequestSpotInstance bool SpotPrice string PrivateIPOnly bool + UsePrivateIP bool Monitoring bool } @@ -160,6 +161,10 @@ func GetCreateFlags() []cli.Flag { Name: "amazonec2-private-address-only", Usage: "Only use a private IP address", }, + cli.BoolFlag{ + Name: "amazonec2-use-private-address", + Usage: "Force the usage of private IP address", + }, cli.BoolFlag{ Name: "amazonec2-monitoring", Usage: "Set this flag to enable CloudWatch monitoring", @@ -208,6 +213,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.SSHUser = flags.String("amazonec2-ssh-user") d.SSHPort = 22 d.PrivateIPOnly = flags.Bool("amazonec2-private-address-only") + d.UsePrivateIP = flags.Bool("amazonec2-use-private-address") d.Monitoring = flags.Bool("amazonec2-monitoring") if d.AccessKey == "" { @@ -415,6 +421,10 @@ func (d *Driver) GetIP() (string, error) { return inst.PrivateIpAddress, nil } + if d.UsePrivateIP { + return inst.PrivateIpAddress, nil + } + return inst.IpAddress, nil } diff --git a/drivers/amazonec2/amazonec2_test.go b/drivers/amazonec2/amazonec2_test.go index 86c4461211..35d1fbb34c 100644 --- a/drivers/amazonec2/amazonec2_test.go +++ b/drivers/amazonec2/amazonec2_test.go @@ -85,6 +85,7 @@ func getDefaultTestDriverFlags() *DriverOptionsMock { "amazonec2-request-spot-instance": false, "amazonec2-spot-price": "", "amazonec2-private-address-only": false, + "amazonec2-use-private-address": false, "amazonec2-monitoring": false, }, }