gaff 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/gaff/ec2_api.rb +55 -12
  2. metadata +21 -4
data/lib/gaff/ec2_api.rb CHANGED
@@ -14,13 +14,19 @@ class Gaff
14
14
  :aws_secret_access_key => hash["params"]["aws_key_secret"],
15
15
  :region => "us-east-1")
16
16
 
17
- @ec2est = Fog::AWS::EC2.new(
17
+ @ec2west = Fog::AWS::EC2.new(
18
18
  :aws_access_key_id => hash["params"]["aws_key"],
19
19
  :aws_secret_access_key => hash["params"]["aws_key_secret"],
20
20
  :region => "us-west-1")
21
21
 
22
+ @apac = Fog::AWS::EC2.new(
23
+ :aws_access_key_id => hash["params"]["aws_key"],
24
+ :aws_secret_access_key => hash["params"]["aws_key_secret"],
25
+ :region => "ap-southeast-1")
26
+
22
27
  Gaff::Log.debug(@ec2east)
23
- Gaff::Log.debug(@ec2est)
28
+ Gaff::Log.debug(@ec2west)
29
+ Gaff::Log.debug(@apac)
24
30
  STDOUT.flush
25
31
 
26
32
  case hash["method"]
@@ -28,20 +34,26 @@ class Gaff
28
34
  if zone(hash["params"]["volume_id"]).include? "us-east-1"
29
35
  result = @ec2east.attach_volume(hash["params"]["instance_id"], hash["params"]["volume_id"], hash["params"]["device"])
30
36
  elsif zone(hash["params"]["volume_id"]).include? "us-west-1"
31
- result = @ec2est.attach_volume(hash["params"]["instance_id"], hash["params"]["volume_id"], hash["params"]["device"])
37
+ result = @ec2west.attach_volume(hash["params"]["instance_id"], hash["params"]["volume_id"], hash["params"]["device"])
38
+ elsif zone(hash["params"]["volume_id"]).include? "ap-southeast-1"
39
+ result = @apac.attach_volume(hash["params"]["instance_id"], hash["params"]["volume_id"], hash["params"]["device"])
32
40
  end
33
41
  when "create_volume"
34
42
  if hash["params"]["availability_zone"].include? "us-east-1"
35
43
  result = @ec2east.create_volume(hash["params"]["availability_zone"], hash["params"]["size"].to_i, hash["params"]["snapshot_id"])
36
44
  elsif hash["params"]["availability_zone"].include? "us-west-1"
37
- result = @ec2est.create_volume(hash["params"]["availability_zone"], hash["params"]["size"].to_i, hash["params"]["snapshot_id"])
45
+ result = @ec2west.create_volume(hash["params"]["availability_zone"], hash["params"]["size"].to_i, hash["params"]["snapshot_id"])
46
+ elsif hash["params"]["availability_zone"].include? "ap-southeast-1"
47
+ result = @apac.create_volume(hash["params"]["availability_zone"], hash["params"]["size"].to_i, hash["params"]["snapshot_id"])
38
48
  end
39
49
  when "delete_volume"
40
50
  volume_id = hash["params"]["volume_id"]
41
51
  if zone(volume_id).include? "us-east-1"
42
52
  result = @ec2east.delete_volume(volume_id)
43
53
  elsif zone(volume_id).include? "us-west-1"
44
- result = @ec2est.delete_volume(volume_id)
54
+ result = @ec2west.delete_volume(volume_id)
55
+ elsif zone(volume_id).include? "ap-southeast-1"
56
+ result = @apac.delete_volume(volume_id)
45
57
  end
46
58
  when "detach_volume"
47
59
  if zone(hash["params"]["volume_id"]).include? "us-east-1"
@@ -53,14 +65,22 @@ class Gaff
53
65
  "Force" => hash["params"]["force"]
54
66
  })
55
67
  elsif zone(hash["params"]["volume_id"]).include? "us-west-1"
56
- result = @ec2est.detach_volume(
68
+ result = @ec2west.detach_volume(
57
69
  hash["params"]["volume_id"],
58
70
  {
59
71
  "InstanceId" => hash["params"]["instance_id"],
60
72
  "Device" => hash["params"]["device"],
61
73
  "Force" => hash["params"]["force"]
62
74
  })
63
- end
75
+ elsif zone(hash["params"]["volume_id"]).include? "ap-southeast-1"
76
+ result = @apac.detach_volume(
77
+ hash["params"]["volume_id"],
78
+ {
79
+ "InstanceId" => hash["params"]["instance_id"],
80
+ "Device" => hash["params"]["device"],
81
+ "Force" => hash["params"]["force"]
82
+ })
83
+ end
64
84
  when "launch_instances"
65
85
  if hash["params"]["availability_zone"].include? "us-east-1"
66
86
  result = @ec2east.run_instances(
@@ -74,7 +94,7 @@ class Gaff
74
94
  "InstanceType" => hash["params"]["instance_type"]
75
95
  })
76
96
  elsif hash["params"]["availability_zone"].include? "us-west-1"
77
- result = @ec2est.run_instances(
97
+ result = @ec2west.run_instances(
78
98
  hash["params"]["image_id"],
79
99
  hash["params"]["count"],
80
100
  hash["params"]["count"],
@@ -84,20 +104,35 @@ class Gaff
84
104
  "Placement.AvailabilityZone" => hash["params"]["availability_zone"],
85
105
  "InstanceType" => hash["params"]["instance_type"]
86
106
  })
107
+ elsif hash["params"]["availability_zone"].include? "ap-southeast-1"
108
+ result = @apac.run_instances(
109
+ hash["params"]["image_id"],
110
+ hash["params"]["count"],
111
+ hash["params"]["count"],
112
+ {
113
+ "SecurityGroup" => hash["params"]["group_ids"],
114
+ "KeyName" => hash["params"]["key_name"],
115
+ "Placement.AvailabilityZone" => hash["params"]["availability_zone"],
116
+ "InstanceType" => hash["params"]["instance_type"]
117
+ })
87
118
  end
88
119
  when "reboot_instances"
89
120
  instance_ids = hash["params"]["instance_ids"]
90
121
  if zone(instance_ids).include? "us-east-1"
91
122
  result = @ec2east.reboot_instances(instance_ids)
92
123
  elsif zone(instance_ids).include? "us-west-1"
93
- result = @ec2est.reboot_instances(instance_ids)
124
+ result = @ec2west.reboot_instances(instance_ids)
125
+ elsif zone(instance_ids).include? "ap-southeast-1"
126
+ result = @apac.reboot_instances(instance_ids)
94
127
  end
95
128
  when "terminate_instances"
96
129
  instance_ids = hash["params"]["instance_ids"]
97
130
  if zone(instance_ids).include? "us-east-1"
98
131
  result = @ec2east.terminate_instances(instance_ids)
99
132
  elsif zone(instance_ids).include? "us-west-1"
100
- result = @ec2est.terminate_instances(instance_ids)
133
+ result = @ec2west.terminate_instances(instance_ids)
134
+ elsif zone(instance_ids).include? "ap-southeast-1"
135
+ result = @apac.terminate_instances(instance_ids)
101
136
  end
102
137
  end
103
138
 
@@ -114,13 +149,21 @@ class Gaff
114
149
  begin
115
150
  @ec2east.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
116
151
  rescue
117
- @ec2est.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
152
+ begin
153
+ @ec2west.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
154
+ rescue
155
+ @apac.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
156
+ end
118
157
  end
119
158
  elsif id.include? "vol-"
120
159
  begin
121
160
  @ec2east.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
122
161
  rescue
123
- @ec2est.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
162
+ begin
163
+ @ec2west.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
164
+ rescue
165
+ @apac.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
166
+ end
124
167
  end
125
168
  end
126
169
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gaff
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 27
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 3
8
- - 3
9
- version: 0.3.3
9
+ - 4
10
+ version: 0.3.4
10
11
  platform: ruby
11
12
  authors:
12
13
  - joe williams
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-06-30 00:00:00 -07:00
18
+ date: 2010-10-31 00:00:00 -07:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: yajl-ruby
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -33,9 +36,11 @@ dependencies:
33
36
  name: mixlib-config
34
37
  prerelease: false
35
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
36
40
  requirements:
37
41
  - - ">="
38
42
  - !ruby/object:Gem::Version
43
+ hash: 3
39
44
  segments:
40
45
  - 0
41
46
  version: "0"
@@ -45,9 +50,11 @@ dependencies:
45
50
  name: mixlib-log
46
51
  prerelease: false
47
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
48
54
  requirements:
49
55
  - - ">="
50
56
  - !ruby/object:Gem::Version
57
+ hash: 3
51
58
  segments:
52
59
  - 0
53
60
  version: "0"
@@ -57,9 +64,11 @@ dependencies:
57
64
  name: dynect
58
65
  prerelease: false
59
66
  requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
60
68
  requirements:
61
69
  - - ">="
62
70
  - !ruby/object:Gem::Version
71
+ hash: 3
63
72
  segments:
64
73
  - 0
65
74
  version: "0"
@@ -69,9 +78,11 @@ dependencies:
69
78
  name: amqp
70
79
  prerelease: false
71
80
  requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ">="
74
84
  - !ruby/object:Gem::Version
85
+ hash: 3
75
86
  segments:
76
87
  - 0
77
88
  version: "0"
@@ -81,9 +92,11 @@ dependencies:
81
92
  name: fog
82
93
  prerelease: false
83
94
  requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
84
96
  requirements:
85
97
  - - ">="
86
98
  - !ruby/object:Gem::Version
99
+ hash: 3
87
100
  segments:
88
101
  - 0
89
102
  version: "0"
@@ -118,23 +131,27 @@ rdoc_options: []
118
131
  require_paths:
119
132
  - lib
120
133
  required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
121
135
  requirements:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
138
+ hash: 3
124
139
  segments:
125
140
  - 0
126
141
  version: "0"
127
142
  required_rubygems_version: !ruby/object:Gem::Requirement
143
+ none: false
128
144
  requirements:
129
145
  - - ">="
130
146
  - !ruby/object:Gem::Version
147
+ hash: 3
131
148
  segments:
132
149
  - 0
133
150
  version: "0"
134
151
  requirements: []
135
152
 
136
153
  rubyforge_project:
137
- rubygems_version: 1.3.6
154
+ rubygems_version: 1.3.7
138
155
  signing_key:
139
156
  specification_version: 3
140
157
  summary: cloud api's via amqp and json'