lp://staging/~benoit-canet/goamz/add-CONTRIBUTING

Created by Benoît Canet and last modified
Get this branch:
bzr branch lp://staging/~benoit-canet/goamz/add-CONTRIBUTING
Only Benoît Canet can upload to this branch. If you are Benoît Canet please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Benoît Canet
Project:
goamz
Status:
Development

Recent revisions

51. By Benoît Canet <email address hidden>

aws: Add regions for the Outscale EC2 compatible cloud provider.

Outscale only implement EC2 so only the EC2 endpoints are defined for
Outscale's regions.

This commit takes care of making the code panic in the various
constructors if the endpoints they use are not defined.

50. By Dimiter Naydenov

ec2: Added (Un)AssignPrivateIPAddresses APIs

Added two new API calls:
- AssignPrivateIPAddresses
- UnassignPrivateIPAddresses

They allow adding or removing secondary private
IP addresses to a network interface of an instance.

This is the final part of the VPC-related goamz
changes needed to support initial container
networking in juju-core.

Added a live-only test for the two new APIs and
a couple of example response tests.

Removed ec2.*Status constants, as suggested in
a prereq review, which I omitted previously.

R=rog, niemeyer
CC=
https://codereview.appspot.com/54210047

49. By Dimiter Naydenov

ec2: Added NIC support for RunInstances

This extends RunInstances options to include
a list of NetworkInterfaceSpec options. They
allow specifying NICs to attach to instances
at launch time (either existing or new NICs).

It also adds SubnetId, VPCId, SourceDestCheck,
and NetworkInterfaces fields to the Instance
type, so Instances() and RunInstances() can
return the extended VPC-related information
for an instance.

If any NetworkInterfaceSpec options are provided,
or SubnetID is given, RunInstances() will use the
latest AWS API version (2013-10-15), otherwise it
uses the default version (2011-12-15).

Modified terminateInstances() test helper to wait
and retry when running against live EC2 servers,
to make sure the instances are really gone and
not left hanging after the test (leaking related
resources with them). In order for this to work
with the local testing server, a slight change
was made - when an instance is terminated, the
next time you fetch it with Instances(), it will
report "terminated" (thus simulating the real
state transition).

Added vpc-id and subnet-id filters to ec2test's
Instance and securityGroup types, and also changed
TestGroupFiltering and TestInstanceFiltering to
include tests for them.

Test double changed to support VPC security groups
and verify subnet ID in runInstances, as EC2 does.
Added NewInstancesVPC() method with vpcId and subnetId,
so VPC-enabled instances can be created in the test
server.

Added a TestRunInstancesVPC live test for the new
functionality (only live, because it's not worth
it to change the test double to create NICs in
runInstances()).

R=rog, niemeyer, nate.finch
CC=
https://codereview.appspot.com/60620043

48. By Dimiter Naydenov

ec2: Add VPC NetworkInterface-related APIs

Added the following new API calls:
- CreateNetworkInterface
- DeleteNetworkInterface
- NetworkInterfaces
- AttachNetworkInterface
- DetachNetworkInterface
(and related types/responses)

Modified existing calls/types:
- SecurityGroupInfo now includes VPCId field
- Add CreateSecurityGroupVPC call that does
the same as CreateSecurityGroup, but sets
the VPCId, to create a VPC group

This enables us to handle VPC NICs with
goamz and partially handle private IP
addresses for them. Next, we'll add more
VPC-related stuff to Instances.

Tested live on EC2, extended ec2test package
as needed.

Added a couple of test helpers: createSubnet,
and deleteSubnets, used to make sure we wait
for the events to happen when running against
live EC2 servers, and we don't leave stuff
around after the tests. With these the live
tests pass and clean up properly.

R=rog, niemeyer
CC=
https://codereview.appspot.com/54570048

47. By Dimiter Naydenov

ec2: Add support for VPC subnets

Added the following new API calls:
- CreateSubnet
- DeleteSubnet
- Subnets
(and related types/responses)

This is the second step on the path to
support VPC networking in goamz, next
APIs for network interfaces will be
added.

Tested live on EC2, and extended the
ec2test package as needed.

Added a deleteVPCs test helpers which
waits until a VPC is no longer in use
and can be deleted, retrying as needed
when running against live EC2 servers.
This is needed to ensure live tests do
no leave stuff behind (I've run all live
tests several times in a row to make sure
it works).

R=rog, gz, niemeyer
CC=
https://codereview.appspot.com/54690048

46. By Dimiter Naydenov

ec2: Add support for AWS VPCs

Added the following new API calls:
- CreateVPC
- DeleteVPC
- VPCs
(and the associated types/responses).

Most new code is in vpc.go and vpc_test.go.

These are needed in order to support VPC-related
operations on EC2, which will come in later follow-ups.
Implementation complexity in ec2test package for the
new calls is minimal.

Some changes were needed in order to support these
and the upcoming API calls. For the new ones, AWS API
version 2013-10-15 (latest) is used, while for the
existing calls use the previous API version, as before
(2011-12-15).

Added tests, updated test doubles and tested live on
EC2.

After running the EC2 live tests numerous times, I
realized some tests are leaking security groups, so
I added a deleteGroups() tests helper that retries
to ensure all groups are deleted. Also improved the
VPC tests to include retrying as well, so the live
tests are more stable and clean up after themselves.

R=
CC=
https://codereview.appspot.com/49930045

45. By Dimiter Naydenov

ec2: Fixed #1275406 - LocalServerSuite failure

LocalServerSuite.TestInstanceInfo fails due to
the DNSName field being empty, where as the
test expect it populated.
Changed the test to refresh the instance data
after it's started, because DNSName is empty
until the instance state is "started" (according
to AWS docs). In the test suite this is simulated
by getting the instance data again, which includes
the populated DNSName.

R=rog, gz, niemeyer
CC=
https://codereview.appspot.com/59620043

44. By Roger Peppe

ec2/ec2test: set empty DNSName initially

Initially set empty DNSName, causing the
client to re-request the DNSName. This
exercises the address refreshing logic
in juju's ec2 provider.

https://codereview.appspot.com/43650045/

43. By Gustavo Niemeyer

ec2: support RunInstances with BlockDeviceMappings

R=dfc, nate.finch
CC=
https://codereview.appspot.com/9860044

42. By Martin Packman

ec2: support instance prefix on group filters

The EC2 API documentation allows for alternative spellings of
the group-name and group-id filters on instances. It seems only
the prefixed forms are actually supported when using default VPC
despite claims to the contrary, so add support for them to the
test server infrastructure.

R=rog
CC=
https://codereview.appspot.com/14304043

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp://staging/goamz
This branch contains Public information 
Everyone can see this information.

Subscribers