Class: Fog::Compute::ProfitBricks::FirewallRule

Inherits:
Models::ProfitBricks::Base show all
Includes:
Helpers::ProfitBricks::DataHelper
Defined in:
lib/fog/profitbricks/models/compute/firewall_rule.rb

Instance Method Summary collapse

Methods included from Helpers::ProfitBricks::DataHelper

#flatten

Methods inherited from Models::ProfitBricks::Base

#request_status, #wait_for

Instance Method Details

#deleteObject



69
70
71
72
73
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 69

def delete
  requires :datacenter_id, :server_id, :nic_id, :id
  service.delete_firewall_rule(datacenter_id, server_id, nic_id, id)
  true
end

#failed?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 95

def failed?
  state == 'ERROR'
end

#ready?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 91

def ready?
  state == 'AVAILABLE'
end

#reloadObject



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 75

def reload
  requires :datacenter_id, :server_id, :nic_id, :id

  data = begin
    collection.get(datacenter_id, server_id, nic_id, id)
  rescue Excon::Errors::SocketError
    nil
  end

  return unless data

  new_attributes = data.attributes
  merge_attributes(new_attributes)
  self
end

#saveObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 34

def save
  requires :datacenter_id, :server_id, :nic_id, :protocol

  properties = {}
  properties[:name]           = name if name
  properties[:protocol]       = protocol if protocol
  properties[:sourceMac]      = source_mac if source_mac
  properties[:sourceIp]       = source_ip if source_ip
  properties[:targetIp]       = target_ip if target_ip
  properties[:portRangeStart] = port_range_start if port_range_start
  properties[:portRangeEnd]   = port_range_end if port_range_end
  properties[:icmpType]       = icmp_type if icmp_type
  properties[:icmpCode]       = icmp_code if icmp_code

  data = service.create_firewall_rule(datacenter_id, server_id, nic_id, properties)
  merge_attributes(flatten(data.body))
end

#updateObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/fog/profitbricks/models/compute/firewall_rule.rb', line 52

def update
  requires :datacenter_id, :server_id, :nic_id, :id

  properties = {}
  properties[:name]           = name if name
  properties[:sourceMac]      = source_mac if source_mac
  properties[:sourceIp]       = source_ip if source_ip
  properties[:targetIp]       = target_ip if target_ip
  properties[:portRangeStart] = port_range_start if port_range_start
  properties[:portRangeEnd]   = port_range_end if port_range_end
  properties[:icmpType]       = icmp_type if icmp_type
  properties[:icmpCode]       = icmp_code if icmp_code

  data = service.update_firewall_rule(datacenter_id, server_id, nic_id, id, properties)
  merge_attributes(flatten(data.body))
end