gaff 0.3.2 → 0.3.3

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.
@@ -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