gaff 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,64 +7,69 @@ class Gaff
7
7
 
8
8
  Gaff::Log.debug(hash)
9
9
  STDOUT.flush
10
-
11
- dynect = Dynect.new(
12
- hash["params"]["customer_name"],
13
- hash["params"]["username"],
14
- hash["params"]["password"])
15
-
16
- Gaff::Log.debug(dynect)
17
- STDOUT.flush
18
-
19
- case hash["method"]
20
- when "add_a_record"
21
- node = dynect.add_node(
22
- hash["params"]["node"],
23
- hash["params"]["zone"])
24
-
25
- record = dynect.add_a_record(
26
- hash["params"]["zone"],
27
- hash["params"]["address"],
28
- {
29
- "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}",
30
- "ttl" => hash["params"]["ttl"]
31
- })
32
- when "add_cname_record"
33
- node = dynect.add_node(
34
- hash["params"]["node"],
35
- hash["params"]["zone"])
36
-
37
- record = dynect.add_cname_record(
38
- hash["params"]["zone"],
39
- hash["params"]["address"],
40
- {
41
- "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}",
42
- "ttl" => hash["params"]["ttl"]
43
- })
44
- when "delete_a_record"
45
- record_id = dynect.list_a_records(
46
- hash["params"]["zone"],
47
- {
48
- "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
49
- })
50
-
51
- record = dynect.delete_a_record(record_id[0]["record_id"])
52
- when "delete_cname_record"
53
- record_id = dynect.list_cname_records(
54
- hash["params"]["zone"],
55
- {
56
- "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
57
- })
58
-
59
- record = dynect.delete_cname_record(record_id[0]["record_id"])
60
- end
61
10
 
62
- if node
63
- Gaff::Log.debug(node.inspect)
64
- node = nil
11
+ begin
12
+ dynect = Dynect.new(
13
+ hash["params"]["customer_name"],
14
+ hash["params"]["username"],
15
+ hash["params"]["password"])
16
+
17
+ Gaff::Log.debug(dynect)
18
+ STDOUT.flush
19
+
20
+ case hash["method"]
21
+ when "add_a_record"
22
+ node = dynect.add_node(
23
+ hash["params"]["node"],
24
+ hash["params"]["zone"])
25
+
26
+ record = dynect.add_a_record(
27
+ hash["params"]["zone"],
28
+ hash["params"]["address"],
29
+ {
30
+ "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}",
31
+ "ttl" => hash["params"]["ttl"]
32
+ })
33
+ when "add_cname_record"
34
+ node = dynect.add_node(
35
+ hash["params"]["node"],
36
+ hash["params"]["zone"])
37
+
38
+ record = dynect.add_cname_record(
39
+ hash["params"]["zone"],
40
+ hash["params"]["address"],
41
+ {
42
+ "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}",
43
+ "ttl" => hash["params"]["ttl"]
44
+ })
45
+ when "delete_a_record"
46
+ record_id = dynect.list_a_records(
47
+ hash["params"]["zone"],
48
+ {
49
+ "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
50
+ })
51
+
52
+ record = dynect.delete_a_record(record_id[0]["record_id"])
53
+ when "delete_cname_record"
54
+ record_id = dynect.list_cname_records(
55
+ hash["params"]["zone"],
56
+ {
57
+ "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
58
+ })
59
+
60
+ record = dynect.delete_cname_record(record_id[0]["record_id"])
61
+ end
62
+
63
+ if node
64
+ Gaff::Log.debug(node.inspect)
65
+ node = nil
66
+ end
67
+ Gaff::Log.info(record.inspect)
68
+ STDOUT.flush
69
+ rescue Exception => e
70
+ Gaff::Log.error(e)
71
+ STDOUT.flush
65
72
  end
66
- Gaff::Log.info(record.inspect)
67
- STDOUT.flush
68
73
  end
69
74
 
70
75
  end
data/lib/gaff/ec2_api.rb CHANGED
@@ -7,54 +7,122 @@ class Gaff
7
7
 
8
8
  Gaff::Log.debug(hash)
9
9
  STDOUT.flush
10
-
11
- ec2 = Fog::AWS::EC2.new(
12
- :aws_access_key_id => hash["params"]["aws_key"],
13
- :aws_secret_access_key => hash["params"]["aws_key_secret"])
14
10
 
15
- Gaff::Log.debug(ec2)
16
- STDOUT.flush
17
-
18
- case hash["method"]
19
- when "attach_volume"
20
- result = ec2.attach_volume(
21
- hash["params"]["instance_id"],
22
- hash["params"]["volume_id"],
23
- hash["params"]["device"])
24
- when "create_volume"
25
- result = ec2.create_volume(
26
- hash["params"]["availability_zone"],
27
- hash["params"]["size"].to_i,
28
- hash["params"]["snapshot_id"])
29
- when "delete_volume"
30
- result = ec2.delete_volume(hash["params"]["volume_id"])
31
- when "detach_volume"
32
- result = ec2.detach_volume(
33
- hash["params"]["volume_id"],
34
- {
35
- "InstanceId" => hash["params"]["instance_id"],
36
- "Device" => hash["params"]["device"],
37
- "Force" => hash["params"]["force"]
38
- })
39
- when "launch_instances"
40
- result = ec2.run_instances(
41
- hash["params"]["image_id"],
42
- hash["params"]["count"],
43
- hash["params"]["count"],
44
- {
45
- "SecurityGroup" => hash["params"]["group_ids"],
46
- "KeyName" => hash["params"]["key_name"],
47
- "Placement.AvailabilityZone" => hash["params"]["availability_zone"],
48
- "InstanceType" => hash["params"]["instance_type"]
49
- })
50
- when "reboot_instances"
51
- result = ec2.reboot_instances(hash["params"]["instance_ids"])
52
- when "terminate_instances"
53
- result = ec2.terminate_instances(hash["params"]["instance_ids"])
11
+ begin
12
+ @ec2east = Fog::AWS::EC2.new(
13
+ :aws_access_key_id => hash["params"]["aws_key"],
14
+ :aws_secret_access_key => hash["params"]["aws_key_secret"],
15
+ :region => "us-east-1")
16
+
17
+ @ec2est = Fog::AWS::EC2.new(
18
+ :aws_access_key_id => hash["params"]["aws_key"],
19
+ :aws_secret_access_key => hash["params"]["aws_key_secret"],
20
+ :region => "us-west-1")
21
+
22
+ Gaff::Log.debug(@ec2east)
23
+ Gaff::Log.debug(@ec2est)
24
+ STDOUT.flush
25
+
26
+ case hash["method"]
27
+ when "attach_volume"
28
+ if zone(hash["params"]["volume_id"]).include? "us-east-1"
29
+ result = @ec2east.attach_volume(hash["params"]["instance_id"], hash["params"]["volume_id"], hash["params"]["device"])
30
+ 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"])
32
+ end
33
+ when "create_volume"
34
+ if hash["params"]["availability_zone"].include? "us-east-1"
35
+ result = @ec2east.create_volume(hash["params"]["availability_zone"], hash["params"]["size"].to_i, hash["params"]["snapshot_id"])
36
+ 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"])
38
+ end
39
+ when "delete_volume"
40
+ volume_id = hash["params"]["volume_id"]
41
+ if zone(volume_id).include? "us-east-1"
42
+ result = @ec2east.delete_volume(volume_id)
43
+ elsif zone(volume_id).include? "us-west-1"
44
+ result = @ec2est.delete_volume(volume_id)
45
+ end
46
+ when "detach_volume"
47
+ if zone(hash["params"]["volume_id"]).include? "us-east-1"
48
+ result = @ec2east.detach_volume(
49
+ hash["params"]["volume_id"],
50
+ {
51
+ "InstanceId" => hash["params"]["instance_id"],
52
+ "Device" => hash["params"]["device"],
53
+ "Force" => hash["params"]["force"]
54
+ })
55
+ elsif zone(hash["params"]["volume_id"]).include? "us-west-1"
56
+ result = @ec2est.detach_volume(
57
+ hash["params"]["volume_id"],
58
+ {
59
+ "InstanceId" => hash["params"]["instance_id"],
60
+ "Device" => hash["params"]["device"],
61
+ "Force" => hash["params"]["force"]
62
+ })
63
+ end
64
+ when "launch_instances"
65
+ if hash["params"]["availability_zone"].include? "us-east-1"
66
+ result = @ec2east.run_instances(
67
+ hash["params"]["image_id"],
68
+ hash["params"]["count"],
69
+ hash["params"]["count"],
70
+ {
71
+ "SecurityGroup" => hash["params"]["group_ids"],
72
+ "KeyName" => hash["params"]["key_name"],
73
+ "Placement.AvailabilityZone" => hash["params"]["availability_zone"],
74
+ "InstanceType" => hash["params"]["instance_type"]
75
+ })
76
+ elsif hash["params"]["availability_zone"].include? "us-west-1"
77
+ result = @ec2est.run_instances(
78
+ hash["params"]["image_id"],
79
+ hash["params"]["count"],
80
+ hash["params"]["count"],
81
+ {
82
+ "SecurityGroup" => hash["params"]["group_ids"],
83
+ "KeyName" => hash["params"]["key_name"],
84
+ "Placement.AvailabilityZone" => hash["params"]["availability_zone"],
85
+ "InstanceType" => hash["params"]["instance_type"]
86
+ })
87
+ end
88
+ when "reboot_instances"
89
+ instance_ids = hash["params"]["instance_ids"]
90
+ if zone(instance_ids).include? "us-east-1"
91
+ result = @ec2east.reboot_instances(instance_ids)
92
+ elsif zone(instance_ids).include? "us-west-1"
93
+ result = @ec2est.reboot_instances(instance_ids)
94
+ end
95
+ when "terminate_instances"
96
+ instance_ids = hash["params"]["instance_ids"]
97
+ if zone(instance_ids).include? "us-east-1"
98
+ result = @ec2east.terminate_instances(instance_ids)
99
+ elsif zone(instance_ids).include? "us-west-1"
100
+ result = @ec2est.terminate_instances(instance_ids)
101
+ end
102
+ end
103
+
104
+ Gaff::Log.info(result)
105
+ STDOUT.flush
106
+ rescue Exception => e
107
+ Gaff::Log.error(e)
108
+ STDOUT.flush
109
+ end
110
+ end
111
+
112
+ def self.zone(id)
113
+ if id.include? "i-"
114
+ begin
115
+ @ec2east.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
116
+ rescue
117
+ @ec2est.describe_instances(id).body["reservationSet"].first["instancesSet"].first["placement"]["availabilityZone"]
118
+ end
119
+ elsif id.include? "vol-"
120
+ begin
121
+ @ec2east.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
122
+ rescue
123
+ @ec2est.describe_volumes(id).body["volumeSet"].first["availabilityZone"]
124
+ end
54
125
  end
55
-
56
- Gaff::Log.info(result)
57
- STDOUT.flush
58
126
  end
59
127
 
60
128
  end
@@ -8,23 +8,28 @@ class Gaff
8
8
  Gaff::Log.debug(hash)
9
9
  STDOUT.flush
10
10
 
11
- slicehost = Fog::Slicehost.new({:slicehost_password => hash["params"]["password"]})
12
-
13
- Gaff::Log.debug(slicehost)
14
- STDOUT.flush
15
-
16
- case hash["method"]
17
- when "create_slice"
18
- result = slicehost.create_slice(
19
- hash["params"]["flavor_id"].to_i,
20
- hash["params"]["image_id"].to_i,
21
- hash["params"]["name"])
22
- when "delete_slice"
23
- result = slicehost.delete_slice(hash["params"]["slice_id"].to_i)
11
+ begin
12
+ slicehost = Fog::Slicehost.new({:slicehost_password => hash["params"]["password"]})
13
+
14
+ Gaff::Log.debug(slicehost)
15
+ STDOUT.flush
16
+
17
+ case hash["method"]
18
+ when "create_slice"
19
+ result = slicehost.create_slice(
20
+ hash["params"]["flavor_id"].to_i,
21
+ hash["params"]["image_id"].to_i,
22
+ hash["params"]["name"])
23
+ when "delete_slice"
24
+ result = slicehost.delete_slice(hash["params"]["slice_id"].to_i)
25
+ end
26
+
27
+ Gaff::Log.info(result)
28
+ STDOUT.flush
29
+ rescue Exception => e
30
+ Gaff::Log.error(e)
31
+ STDOUT.flush
24
32
  end
25
-
26
- Gaff::Log.info(result)
27
- STDOUT.flush
28
33
  end
29
34
 
30
35
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 2
9
- version: 0.3.2
8
+ - 3
9
+ version: 0.3.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - joe williams
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-14 00:00:00 -07:00
17
+ date: 2010-06-30 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency