Method: OpenNebula::Acl.parse_rule
- Defined in:
- lib/opennebula/acl.rb
.parse_rule(rule_str) ⇒ Array
Parses a rule string, e.g. “#5 HOST+VM/@12 INFO+CREATE+DELETE”
or OpenNebula::Error objects
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/opennebula/acl.rb', line 147 def self.parse_rule(rule_str) ret = Array.new rule_str = rule_str.split(" ") if rule_str.length != 3 && rule_str.length != 4 return OpenNebula::Error.new( "String needs three components: User, Resource, Rights") end ret << parse_users(rule_str[0]) ret << parse_resources(rule_str[1]) ret << parse_rights(rule_str[2]) if rule_str.length > 3 ret << parse_zone(rule_str[3]) end errors=ret.map do |arg| if OpenNebula.is_error?(arg) arg. else nil end end errors.compact! if errors.length>0 return OpenNebula::Error.new(errors.join(', ')) end return ret end |