Class: Rule
- Inherits:
-
Object
- Object
- Rule
- Defined in:
- lib/netconfdev/vrouter/rule.rb
Overview
The class that defines a Firewall Rule.
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
String: The action for the rule.
-
#number ⇒ Object
readonly
Integer: The rule number.
-
#src_address ⇒ Object
readonly
String: The source IP address on which the rule will match.
Instance Method Summary collapse
-
#initialize(rule_number: nil, action: nil, source_address: nil, icmp_typename: nil) ⇒ Rule
constructor
- Parameters *
rule_number -
Integer: The rule number.
- Parameters *
-
#to_hash ⇒ Object
:nodoc:.
Constructor Details
#initialize(rule_number: nil, action: nil, source_address: nil, icmp_typename: nil) ⇒ Rule
Parameters
rule_number-
Integer: The rule number. e.g. 40
action-
String: The action for the rule. e.g. “drop” or “accept”
source_address-
String: The source IP address on which the rule will match. e.g. “172.22.17.107”
icmp_typename-
String : [optional] ICMP type. e.g. “ping”
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/netconfdev/vrouter/rule.rb', line 47 def initialize(rule_number: nil, action: nil, source_address: nil, icmp_typename: nil) raise ArgumentError, "Rule number (rule_number) required" unless rule_number raise ArgumentError, "Action (action) required" unless action # either of the other two required? at least one required? @number = rule_number @action = action @src_address = source_address @icmp_typename = icmp_typename @protocol = "icmp" if icmp_typename end |
Instance Attribute Details
#action ⇒ Object (readonly)
String: The action for the rule. e.g. “drop” or “accept”
37 38 39 |
# File 'lib/netconfdev/vrouter/rule.rb', line 37 def action @action end |
#number ⇒ Object (readonly)
Integer: The rule number. e.g. 40
35 36 37 |
# File 'lib/netconfdev/vrouter/rule.rb', line 35 def number @number end |
#src_address ⇒ Object (readonly)
String: The source IP address on which the rule will match. e.g. “172.22.17.107”
39 40 41 |
# File 'lib/netconfdev/vrouter/rule.rb', line 39 def src_address @src_address end |
Instance Method Details
#to_hash ⇒ Object
:nodoc:
60 61 62 63 64 65 |
# File 'lib/netconfdev/vrouter/rule.rb', line 60 def to_hash #:nodoc: hash = {:action => @action, :source => {:address => @src_address}, :tagnode => @number, :protocol => @protocol, :icmp => {'type-name' => @icmp_typename}} hash.compact end |