From a9797d45a54043a60e4e4543665f4e76b6dc7d37 Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Sat, 19 Sep 2009 12:21:31 -0700 Subject: [PATCH] add collection references to ec2 models --- lib/fog/aws/models/ec2/address.rb | 10 ++++++++++ lib/fog/aws/models/ec2/addresses.rb | 1 + lib/fog/aws/models/ec2/instance.rb | 8 ++++++++ lib/fog/aws/models/ec2/instances.rb | 3 ++- lib/fog/aws/models/ec2/key_pair.rb | 10 ++++++++++ lib/fog/aws/models/ec2/key_pairs.rb | 3 ++- lib/fog/aws/models/ec2/security_groups.rb | 3 ++- lib/fog/aws/models/ec2/snapshots.rb | 3 ++- lib/fog/aws/models/ec2/volume.rb | 10 ++++++++++ lib/fog/aws/models/ec2/volumes.rb | 3 ++- 10 files changed, 49 insertions(+), 5 deletions(-) diff --git a/lib/fog/aws/models/ec2/address.rb b/lib/fog/aws/models/ec2/address.rb index 9f0258d20..44191be2c 100644 --- a/lib/fog/aws/models/ec2/address.rb +++ b/lib/fog/aws/models/ec2/address.rb @@ -7,6 +7,10 @@ module Fog attribute :instance_id, 'instanceId' attribute :public_ip, 'publicIp' + def addresses + @addresses + end + def delete connection.release_address(@public_ip) true @@ -18,6 +22,12 @@ module Fog true end + private + + def addresses=(new_addresses) + @addresses = new_addresses + end + end end diff --git a/lib/fog/aws/models/ec2/addresses.rb b/lib/fog/aws/models/ec2/addresses.rb index 1491cc752..40063222f 100644 --- a/lib/fog/aws/models/ec2/addresses.rb +++ b/lib/fog/aws/models/ec2/addresses.rb @@ -13,6 +13,7 @@ module Fog addresses = Fog::AWS::EC2::Addresses.new(:connection => connection) data['addressesSet'].each do |address| addresses << Fog::AWS::EC2::Address.new({ + :addresses => self, :connection => connection }.merge!(address)) end diff --git a/lib/fog/aws/models/ec2/instance.rb b/lib/fog/aws/models/ec2/instance.rb index 06de40874..fb2028156 100644 --- a/lib/fog/aws/models/ec2/instance.rb +++ b/lib/fog/aws/models/ec2/instance.rb @@ -53,6 +53,10 @@ module Fog @key_name = new_keypair.name end + def instances + @instances + end + def monitoring=(new_monitoring) if new_monitoring.is_a?(Hash) @monitoring = new_monitoring['state'] @@ -115,6 +119,10 @@ module Fog @instance_state = new_instance_state['name'] end + def instances=(new_instances) + @instances = new_instances + end + end end diff --git a/lib/fog/aws/models/ec2/instances.rb b/lib/fog/aws/models/ec2/instances.rb index 4b974a87b..6c2fcdf1e 100644 --- a/lib/fog/aws/models/ec2/instances.rb +++ b/lib/fog/aws/models/ec2/instances.rb @@ -13,7 +13,8 @@ module Fog instances = Fog::AWS::EC2::Instances.new(:connection => connection) data['instancesSet'].each do |instance| instances << Fog::AWS::EC2::Instances.new({ - :connection => connection + :connection => connection, + :instances => self }.merge!(instance)) end instances diff --git a/lib/fog/aws/models/ec2/key_pair.rb b/lib/fog/aws/models/ec2/key_pair.rb index b7322acc8..622cf8f60 100644 --- a/lib/fog/aws/models/ec2/key_pair.rb +++ b/lib/fog/aws/models/ec2/key_pair.rb @@ -13,6 +13,10 @@ module Fog true end + def key_pairs + @key_pairs + end + def save data = connection.create_key_pair(@name).body new_attributes = data.reject {|key,value| !['keyFingerprint', 'keyMaterial', 'keyName'].include?(key)} @@ -20,6 +24,12 @@ module Fog true end + private + + def key_pairs=(new_key_pairs) + @key_pairs = new_key_pairs + end + end end diff --git a/lib/fog/aws/models/ec2/key_pairs.rb b/lib/fog/aws/models/ec2/key_pairs.rb index c72d0d39d..0e497b2a4 100644 --- a/lib/fog/aws/models/ec2/key_pairs.rb +++ b/lib/fog/aws/models/ec2/key_pairs.rb @@ -13,7 +13,8 @@ module Fog key_pairs = Fog::AWS::EC2::KeyPairs.new(:connection => connection) data['keySet'].each do |key| key_pairs << Fog::AWS::EC2::KeyPair.new({ - :connection => connection + :connection => connection, + :key_pairs => self }.merge!(key)) end key_pairs diff --git a/lib/fog/aws/models/ec2/security_groups.rb b/lib/fog/aws/models/ec2/security_groups.rb index c9d02d34b..b9cd4f736 100644 --- a/lib/fog/aws/models/ec2/security_groups.rb +++ b/lib/fog/aws/models/ec2/security_groups.rb @@ -13,7 +13,8 @@ module Fog security_groups = Fog::AWS::EC2::SecurityGroups.new(:connection => connection) data['securityGroupInfo'].each do |security_group| security_groups << Fog::AWS::EC2::SecurityGroup.new({ - :connection => connection + :connection => connection, + :security_groups => self }.merge!(security_group)) end security_groups diff --git a/lib/fog/aws/models/ec2/snapshots.rb b/lib/fog/aws/models/ec2/snapshots.rb index f18a4046f..4cb9bff09 100644 --- a/lib/fog/aws/models/ec2/snapshots.rb +++ b/lib/fog/aws/models/ec2/snapshots.rb @@ -13,7 +13,8 @@ module Fog snapshots = Fog::AWS::EC2::Snapshots.new(:connection => connection) data['snapshotSet'].each do |snapshot| snapshots << Fog::AWS::EC2::Snapshot.new({ - :connection => connection + :connection => connection, + :snapshots => self }.merge!(snapshot)) end snapshots diff --git a/lib/fog/aws/models/ec2/volume.rb b/lib/fog/aws/models/ec2/volume.rb index 769f51b5b..d2d806d56 100644 --- a/lib/fog/aws/models/ec2/volume.rb +++ b/lib/fog/aws/models/ec2/volume.rb @@ -42,6 +42,16 @@ module Fog end end + def volumes + @volumes + end + + private + + def volumes=(new_volumes) + @volumes = new_volumes + end + end end diff --git a/lib/fog/aws/models/ec2/volumes.rb b/lib/fog/aws/models/ec2/volumes.rb index 28b61c725..61a55e524 100644 --- a/lib/fog/aws/models/ec2/volumes.rb +++ b/lib/fog/aws/models/ec2/volumes.rb @@ -13,7 +13,8 @@ module Fog volumes = Fog::AWS::EC2::Volumes.new(:connection => connection) data['volumeSet'].each do |volume| volumes << Fog::AWS::EC2::Volume.new({ - :connection => connection + :connection => connection, + :volumes => self }.merge!(volume)) end volumes