Class: Dcmgr::Models::NetfilterGroup
Constant Summary
Constants inherited
from BaseNew
BaseNew::LOCK_TABLES_KEY
Class Method Summary
collapse
Instance Method Summary
collapse
#account
Methods inherited from BaseNew
Proxy, dataset, default_row_lock_mode=, install_data, install_data_hooks, lock!, unlock!, #with_timestamps?
Class Method Details
.create_group(account_id, params) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 43
def self.create_group(account_id, params)
grp = self.create(:account_id => account_id,
:name => params[:name],
:rule => params[:rule],
:description => params[:description])
grp.build_rule
grp
end
|
Instance Method Details
#before_destroy ⇒ Object
56
57
58
59
60
61
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 56
def before_destroy
return false if self.instances.size > 0
self.flush_rule
super
end
|
#build_rule ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 69
def build_rule
return if self.rule.nil?
self.rule.split("\n").each { |permission|
next if permission =~ /\A#/
next if permission.length == 0
NetfilterRule.create(:netfilter_group_id => self.id,
:permission => permission)
}
end
|
#flush_rule ⇒ Object
52
53
54
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 52
def flush_rule
NetfilterRule.filter(:netfilter_group_id => self.id).destroy
end
|
#rebuild_rule ⇒ Object
64
65
66
67
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 64
def rebuild_rule
self.flush_rule
self.build_rule
end
|
#to_api_document ⇒ Object
32
33
34
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 32
def to_api_document
to_hash
end
|
#to_hash ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 18
def to_hash
h = super
h = h.merge({
:rule => rule.to_s,
:rules => netfilter_rules.map { |rule| rule.to_hash },
})
end
|
#to_tiny_hash ⇒ Object
36
37
38
39
40
41
|
# File 'lib/dcmgr/models/netfilter_group.rb', line 36
def to_tiny_hash
{
:name => self.name,
:uuid => self.canonical_uuid,
}
end
|