Class: Fog::DNS::SakuraCloud::Zone

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/sakuracloud/models/dns/zone.rb

Instance Method Summary collapse

Instance Method Details

#deleteObject Also known as: destroy



37
38
39
40
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 37

def delete
  service.delete_zone(identity)
  true
end

#nameserversObject



33
34
35
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 33

def nameservers
  status.fetch('NS') if status
end

#rr_setsObject

Reader methods for nested values. Returns value or nil



16
17
18
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 16

def rr_sets
  settings.fetch('DNS', {}).fetch('ResourceRecordSets', []) if settings
end

#rr_sets=(rrsets) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 20

def rr_sets=(rrsets)
  raise "ResourceRecordSets must be Array of Hash!" unless rrsets.is_a?(Array)
  self.settings = {
    'DNS' => {
      'ResourceRecordSets' => rrsets
    }
  }
end

#saveObject



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 43

def save
  requires :zone
  if identity
    Fog::Logger.warning("Update DNS Zone #{identity}")
    data = service.modify_zone(@attributes).body["CommonServiceItem"]
  else
    Fog::Logger.warning("Create DNS Zone")
    data = service.create_zone(@attributes).body["CommonServiceItem"]
  end
  merge_attributes(data)
  true
end

#zoneObject



29
30
31
# File 'lib/fog/sakuracloud/models/dns/zone.rb', line 29

def zone
  status.fetch('Zone') if status
end