Use proper logger for migration script
This commit is contained in:
		
							parent
							
								
									570e3dcdb5
								
							
						
					
					
						commit
						3b391246ed
					
				| @ -3,22 +3,28 @@ | ||||
| require "rest_client" | ||||
| require "redis" | ||||
| require "yaml" | ||||
| require "logger" | ||||
| 
 | ||||
| class Migrator | ||||
| 
 | ||||
|   attr_accessor :username, :base_url, :swift_host, :swift_token, | ||||
|                 :environment, :dry_run, :logging, :settings | ||||
|                 :environment, :dry_run, :settings, :logger | ||||
| 
 | ||||
|   def initialize(username) | ||||
|     @username = username | ||||
| 
 | ||||
|     @environment = ENV["ENVIRONMENT"] || "staging" | ||||
|     @settings = YAML.load(File.read('config.yml'))[@environment] | ||||
| 
 | ||||
|     @swift_host = @settings["swift"]["host"] | ||||
|     @swift_token = File.read("tmp/swift_token.txt") | ||||
| 
 | ||||
|     @dry_run = false # disables writing anything to Redis when true | ||||
|     @logging = true | ||||
| 
 | ||||
|     @logger = Logger.new("log/migrate_metadata_to_redis.log") | ||||
|     log_level = ENV["LOGLEVEL"] || "INFO" | ||||
|     logger.level = Kernel.const_get "Logger::#{log_level}" | ||||
|     logger.progname = username | ||||
|   end | ||||
| 
 | ||||
|   def root_url | ||||
| @ -34,16 +40,18 @@ class Migrator | ||||
|   end | ||||
| 
 | ||||
|   def migrate | ||||
|     logger.info "Starting migration for '#{username}'" | ||||
|     set_directory_backend("legacy_locked") | ||||
|     begin | ||||
|       work_on_dir("", "") | ||||
|     rescue Exception => ex | ||||
|       puts "Error migrating metadata for '#{username}': #{ex}" if logging | ||||
|       logger.error "Error migrating metadata for '#{username}': #{ex}" | ||||
|       set_directory_backend("legacy") | ||||
|       # TODO write username to file for later reference | ||||
|       exit 1 | ||||
|     end | ||||
|     set_directory_backend("new") | ||||
|     logger.info "Finished migration for '#{username}'" | ||||
|   end | ||||
| 
 | ||||
|   def set_directory_backend(backend) | ||||
| @ -51,7 +59,7 @@ class Migrator | ||||
|   end | ||||
| 
 | ||||
|   def work_on_dir(directory, parent_directory) | ||||
|     puts "retrieving listing for '#{parent_directory}#{directory}'" if logging | ||||
|     logger.debug "Retrieving listing for '#{parent_directory}#{directory}'" | ||||
| 
 | ||||
|     listing = get_directory_listing_from_swift("#{parent_directory}#{directory}") | ||||
| 
 | ||||
| @ -76,7 +84,7 @@ class Migrator | ||||
| 
 | ||||
|   def add_item_to_parent_dir(dir, item) | ||||
|     key = "rs_meta:#{username}:#{parent_directory_for(dir)}:items" | ||||
|     puts "adding item #{item} to #{key}" if logging | ||||
|     logger.debug "Adding item #{item} to #{key}" | ||||
|     redis.sadd(key, item) unless dry_run | ||||
|   end | ||||
| 
 | ||||
| @ -84,7 +92,7 @@ class Migrator | ||||
|     key = "rs_meta:#{username}:#{dir.gsub(/^\//, "")}#{item}" | ||||
|     metadata = {etag: data["ETag"], modified: timestamp} | ||||
| 
 | ||||
|     puts "metadata for dir #{key}: #{metadata}" if logging | ||||
|     logger.debug "Metadata for dir #{key}: #{metadata}" | ||||
|     redis.hmset(key, *metadata) unless dry_run | ||||
|   end | ||||
| 
 | ||||
| @ -96,7 +104,7 @@ class Migrator | ||||
|       type: data["Content-Type"], | ||||
|       modified: timestamp | ||||
|     } | ||||
|     puts "metadata for document #{key}: #{metadata}" if logging | ||||
|     logger.debug "Metadata for document #{key}: #{metadata}" | ||||
|     redis.hmset(key, *metadata) unless dry_run | ||||
|   end | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user