Class: Gaff::Dynect_api

Inherits:
Object
  • Object
show all
Defined in:
lib/gaff/dynect_api.rb

Class Method Summary collapse

Class Method Details

.exec(msg) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/gaff/dynect_api.rb', line 4

def self.exec(msg)
  parser = Yajl::Parser.new
  hash = parser.parse(msg)
 
  Gaff::Log.debug(hash)
  STDOUT.flush

  dynect = Dynect.new(
    hash["params"]["customer_name"], 
    hash["params"]["username"], 
    hash["params"]["password"])
                      
  Gaff::Log.debug(dynect)
  STDOUT.flush

  case hash["method"]
  when "add_a_record"
    node = dynect.add_node(
      hash["params"]["node"], 
      hash["params"]["zone"])
                           
    record = dynect.add_a_record(
      hash["params"]["zone"],
      hash["params"]["address"], 
      {
        "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}", 
        "ttl" => hash["params"]["ttl"]
      })
  when "add_cname_record"
    node = dynect.add_node(
      hash["params"]["node"],
      hash["params"]["zone"])
    
    record = dynect.add_cname_record(
      hash["params"]["zone"],
      hash["params"]["address"],
      {
        "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}", 
        "ttl" => hash["params"]["ttl"]
      })
  when "delete_a_record"
    record_id = dynect.list_a_records(
      hash["params"]["zone"], 
      {
        "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
      })
                                      
    record = dynect.delete_a_record(record_id[0]["record_id"])
  when "delete_cname_record"
    record_id = dynect.list_cname_records(
      hash["params"]["zone"], 
      {
        "node" => "#{hash["params"]["node"]}.#{hash["params"]["zone"]}"
      })
    
    record = dynect.delete_cname_record(record_id[0]["record_id"])
  end
  
  if node
    Gaff::Log.debug(node.inspect)
    node = nil
  end
  Gaff::Log.info(record.inspect)
  STDOUT.flush
end