Class: Dcmgr::Cli::Group
Constant Summary collapse
Instance Method Summary collapse
- #add ⇒ Object
- #addrule(g_uuid) ⇒ Object
- #apply(uuid) ⇒ Object
- #del(uuid) ⇒ Object
- #delrule(g_uuid) ⇒ Object
- #modify(uuid) ⇒ Object
- #remove(uuid) ⇒ Object
- #show(uuid = nil) ⇒ Object
Instance Method Details
#add ⇒ Object
13 14 15 16 17 |
# File 'lib/dcmgr/cli/group.rb', line 13 def add UnknownUUIDError.raise([:account_id]) if M::Account[[:account_id]].nil? puts super(M::NetfilterGroup,) end |
#addrule(g_uuid) ⇒ Object
82 83 84 85 86 87 88 89 |
# File 'lib/dcmgr/cli/group.rb', line 82 def addrule(g_uuid) UnknownUUIDError.raise(g_uuid) if M::NetfilterGroup[g_uuid].nil? #TODO: check rule syntax new_rule = M::NetfilterRule.new(:permission => [:rule]) new_rule.netfilter_group = M::NetfilterGroup[g_uuid] new_rule.save end |
#apply(uuid) ⇒ Object
64 65 66 67 68 69 |
# File 'lib/dcmgr/cli/group.rb', line 64 def apply(uuid) group = M::NetfilterGroup[uuid] || UnknownUUIDError.raise(uuid) instance = M::Instance[[:instance]] || UnknownUUIDError.raise([:instance]) Error.raise("Group #{uuid} is already applied to instance #{[:instance]}.",100) if group.instances.member?(instance) group.add_instance(instance) end |
#del(uuid) ⇒ Object
20 21 22 |
# File 'lib/dcmgr/cli/group.rb', line 20 def del(uuid) super(M::NetfilterGroup,uuid) end |
#delrule(g_uuid) ⇒ Object
93 94 95 96 97 98 99 |
# File 'lib/dcmgr/cli/group.rb', line 93 def delrule(g_uuid) UnknownUUIDError.raise(g_uuid) if M::NetfilterGroup[g_uuid].nil? rule = M::NetfilterRule.find(:netfilter_group_id => M::NetfilterGroup[g_uuid].id,:permission => [:rule]) Error.raise("Group '#{g_uuid}' does not contain rule '#{[:rule]}'.",100) if rule.nil? rule.destroy end |
#modify(uuid) ⇒ Object
57 58 59 60 |
# File 'lib/dcmgr/cli/group.rb', line 57 def modify(uuid) UnknownUUIDError.raise([:account_id]) if [:account_id] && M::Account[[:account_id]].nil? super(M::NetfilterGroup,uuid,) end |
#remove(uuid) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/dcmgr/cli/group.rb', line 73 def remove(uuid) group = M::NetfilterGroup[uuid] || UnknownUUIDError.raise(uuid) instance = M::Instance[[:instance]] || UnknownUUIDError.raise([:instance]) Error.raise("Group #{uuid} is not applied to instance #{[:instance]}.",100) unless group.instances.member?(instance) group.remove_instance(instance) end |
#show(uuid = nil) ⇒ Object
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 |
# File 'lib/dcmgr/cli/group.rb', line 25 def show(uuid=nil) if uuid group = M::NetfilterGroup[uuid] || UnknownUUIDError.raise(uuid) puts ERB.new(<<__END, nil, '-').result(binding) Group UUID: <%= group.canonical_uuid %> Account id: <%= group.account_id %> <%- if group.description -%> Description: <%= group.description %> <%- end -%> <%- unless group.netfilter_rules.empty? -%> Rules: <%- group.netfilter_rules.each { |rule| -%> <%= rule.permission %> <%- } -%> <%- end -%> __END else puts ERB.new(<<__END, nil, '-').result(binding) <%- M::NetfilterGroup.all { |row| -%> <%= row.canonical_uuid %>\t<%= row.account_id %>\t<%= row.name %> <%- } -%> __END end end |