Class: Ucert::SomTracker
- Inherits:
-
Object
- Object
- Ucert::SomTracker
- Includes:
- Utils
- Defined in:
- lib/ucert/som_tracker.rb
Overview
Class to handle SOM user account IDs
Instance Attribute Summary collapse
-
#file_user_map ⇒ Object
Class constant variables.
-
#som_2_ad_user ⇒ Object
readonly
Returns the value of attribute som_2_ad_user.
-
#som_user_entitlement ⇒ Object
readonly
Returns the value of attribute som_user_entitlement.
-
#som_user_report ⇒ Object
Class constant variables.
-
#verbose ⇒ Object
Class constant variables.
Instance Method Summary collapse
-
#initialize(params = {}) ⇒ SomTracker
constructor
Instance default variables.
-
#print_user_entitlement ⇒ Object
(also: #print_user)
Print out the user entitlement table in plain text, to be imported into database.
-
#save_som_user_map!(file = @file_user_map) ⇒ Object
(also: #save!)
Save the SOM to AD user mapping relation into the cache file.
-
#som_id_2_dn(id) ⇒ Object
DN lookup via SOM for ssomems under SOM, such as CVM.
-
#som_search_by_dn(dn) ⇒ Object
(also: #search_by_dn)
Search user entitlement record by AD DN.
-
#som_search_by_id(uid) ⇒ Object
(also: #search_by_id)
Search user entitlement record by USER_ID.
-
#uid_2_index(uid) ⇒ Object
Search user entitlement instance valueable for uid, return index for match uid; return nil if no match found.
-
#uid_include?(uid) ⇒ Boolean
Search user entitlement instance valueable for uid, return true if found.
Methods included from Utils
#file_2_list, #is_fqdn?, #is_ip?, #is_url?, #list_2_file, #load_known_user_map_from_file, #nslookup, #search_ad, #update_dn
Constructor Details
#initialize(params = {}) ⇒ SomTracker
Instance default variables
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ucert/som_tracker.rb', line 18 def initialize (params ={}) @verbose=params.fetch(:verbose, false) # Som to AD user map file @file_user_map = File.dirname(__FILE__)+"/../../data/som/som_user_map.txt" @som_user_report = File.dirname(__FILE__)+"/../../data/som/som_user_report.csv" # Load the user map file to an instance variable (for performance gain) @som_2_ad_user=load_known_user_map_from_file(@file_user_map) # Load the user entitlement instance variable from the native Som user entitlement report parse_som_user_report(@som_user_report) # Insert DN field into the user entitlement data structure insert_dn save! end |
Instance Attribute Details
#file_user_map ⇒ Object
Class constant variables
14 15 16 |
# File 'lib/ucert/som_tracker.rb', line 14 def file_user_map @file_user_map end |
#som_2_ad_user ⇒ Object (readonly)
Returns the value of attribute som_2_ad_user.
15 16 17 |
# File 'lib/ucert/som_tracker.rb', line 15 def som_2_ad_user @som_2_ad_user end |
#som_user_entitlement ⇒ Object (readonly)
Returns the value of attribute som_user_entitlement.
15 16 17 |
# File 'lib/ucert/som_tracker.rb', line 15 def som_user_entitlement @som_user_entitlement end |
#som_user_report ⇒ Object
Class constant variables
14 15 16 |
# File 'lib/ucert/som_tracker.rb', line 14 def som_user_report @som_user_report end |
#verbose ⇒ Object
Class constant variables
14 15 16 |
# File 'lib/ucert/som_tracker.rb', line 14 def verbose @verbose end |
Instance Method Details
#print_user_entitlement ⇒ Object Also known as: print_user
Print out the user entitlement table in plain text, to be imported into database
127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/ucert/som_tracker.rb', line 127 def print_user_entitlement begin puts "User Entitlement Report in Plain-text Format" if @verbose @som_user_entitlement.first[1].each {|k,v| print k,"|"} if @verbose puts if @verbose @som_user_entitlement.values.map do |rec| next if rec.nil? rec.each {|k,v| print v,"|" unless k.nil? } puts end rescue => ee puts "Exception on method #{__method__}: #{ee}" end end |
#save_som_user_map!(file = @file_user_map) ⇒ Object Also known as: save!
Save the SOM to AD user mapping relation into the cache file
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/ucert/som_tracker.rb', line 144 def save_som_user_map!(file=@file_user_map) puts "Saving the known Som to AD user mapping relationship to file: #{file} ..." if @verbose begin =Time.now f=File.open(file, 'w') f.write "# local Som to AD user map file created by the #{self.class} class #{__method__} method at: #{}" @som_user_entitlement.each do |key,record| value = record['DN'] f.write "\n#{record['uid'].upcase}|#{value}" end f.close puts "Som to AD user map file is successfully saved to: #{file}" if @verbose rescue => ee puts "Exception on method #{__method__}: #{ee}" if @verbose end end |
#som_id_2_dn(id) ⇒ Object
DN lookup via SOM for ssomems under SOM, such as CVM
214 215 216 217 218 219 |
# File 'lib/ucert/som_tracker.rb', line 214 def som_id_2_dn (id) @som_user_entitlement.each do |key,val| return val["DN"] if val["uid"] == id.strip end return nil end |
#som_search_by_dn(dn) ⇒ Object Also known as: search_by_dn
Search user entitlement record by AD DN
163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/ucert/som_tracker.rb', line 163 def som_search_by_dn (dn) begin puts "Perform search on the user entitlement record by AD DN: #{dn}" if @verbose @som_user_entitlement.each do |key, val| return val if @som_user_entitlement[key]['DN'].eql? dn end return nil rescue => ee puts "Exception on method #{__method__}: #{ee}" end end |
#som_search_by_id(uid) ⇒ Object Also known as: search_by_id
Search user entitlement record by USER_ID
200 201 202 203 204 205 206 207 208 209 210 |
# File 'lib/ucert/som_tracker.rb', line 200 def som_search_by_id (uid) #begin puts "Perform search on the user entitlement record by USER_ID: #{uid}" if @verbose @som_user_entitlement.each do |key, val| return val if @som_user_entitlement[key]['USER_ID'].eql? uid.strip end return nil #rescue => ee # puts "Exception on method #{__method__}: #{ee}" #end end |
#uid_2_index(uid) ⇒ Object
Search user entitlement instance valueable for uid, return index for match uid; return nil if no match found
191 192 193 194 195 196 197 |
# File 'lib/ucert/som_tracker.rb', line 191 def uid_2_index (uid) puts "Perform search on the user entitlement record by user ID: #{uid}" if @verbose @som_user_entitlement.each do |key,val| return key if val['uid'] == uid.strip end return nil end |
#uid_include?(uid) ⇒ Boolean
Search user entitlement instance valueable for uid, return true if found
177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/ucert/som_tracker.rb', line 177 def uid_include? (uid) puts "Determine if UID is already known: #{uid}" if @verbose return false if @som_user_entitlement.nil? @som_user_entitlement.each do |key,val| if val['uid'] == uid.strip #puts "Found" if @verbose return true end end #puts "Unfound" if @verbose return false end |