gaff 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
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'