Class: Dor::Configuration

Inherits:
Confstruct::Configuration
  • Object
show all
Includes:
ActiveSupport::Callbacks
Defined in:
lib/dor/config.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Configuration

Returns a new instance of Configuration.



12
13
14
15
# File 'lib/dor/config.rb', line 12

def initialize *args
  super *args
  run_callbacks(:initialize) { }
end

Instance Method Details

#autoconfigure(url, cert_file = Config.ssl.cert_file, key_file = Config.ssl.key_file, key_pass = Config.ssl.key_pass) ⇒ Object



40
41
42
43
44
# File 'lib/dor/config.rb', line 40

def autoconfigure(url, cert_file = Config.ssl.cert_file, key_file = Config.ssl.key_file, key_pass = Config.ssl.key_pass)
  client = make_rest_client(url, cert_file, key_file, key_pass)
  config = Confstruct::Configuration.symbolize_hash JSON.parse(client.get :accept => 'application/json')
  configure(config)
end

#configure(*args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dor/config.rb', line 17

def configure *args
  result = self
  temp_v = $-v
  $-v = nil
  begin
    run_callbacks :configure do
      result = super(*args)
    end
  ensure
    $-v = temp_v
  end
  params = { :dor_services_url => result.dor_services.url }
 
  if(result.workflow.logfile && result.workflow.shift_age)
    params[:logger] = Logger.new(result.workflow.logfile, result.workflow.shift_age)
  elsif(result.workflow.logfile)
    params[:logger] = Logger.new(result.workflow.logfile)
  end
  params[:timeout] = result.workflow.timeout if result.workflow.timeout
  Dor::WorkflowService.configure result.workflow.url, params
  result
end

#fedora_configObject



132
133
134
135
136
137
138
# File 'lib/dor/config.rb', line 132

def fedora_config
  fedora_uri = URI.parse(fedora.url)
  connection_opts = { :url => fedora.safeurl, :user => fedora_uri.user, :password => fedora_uri.password }
  connection_opts[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(ssl.cert_file)) if ssl.cert_file.present?
  connection_opts[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(ssl.key_file),ssl.key_pass) if ssl.key_file.present?
  connection_opts
end

#init(*args) ⇒ Object

Act like an ActiveFedora.configurator



130
# File 'lib/dor/config.rb', line 130

def init *args; end

#make_rest_client(url, cert = Config.ssl.cert_file, key = Config.ssl.key_file, pass = Config.ssl.key_pass) ⇒ Object



50
51
52
53
54
55
# File 'lib/dor/config.rb', line 50

def make_rest_client(url, cert = Config.ssl.cert_file, key = Config.ssl.key_file, pass = Config.ssl.key_pass)
  params = {}
  params[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(cert)) if cert
  params[:ssl_client_key]  = OpenSSL::PKey::RSA.new(File.read(key), pass) if key
  RestClient::Resource.new(url, params)
end

#make_solr_connection(add_opts = {}) ⇒ Object



57
58
59
60
61
62
# File 'lib/dor/config.rb', line 57

def make_solr_connection(add_opts = {})
  opts = Config.solrizer.opts.merge(add_opts).merge(
    :url => Config.solrizer.url
  )
  ::RSolr::Ext.connect(opts)
end

#predicate_configObject



144
145
146
# File 'lib/dor/config.rb', line 144

def predicate_config
  YAML.load(File.read(File.expand_path('../../../config/predicate_mappings.yml',__FILE__)))
end

#sanitizeObject



46
47
48
# File 'lib/dor/config.rb', line 46

def sanitize
  dup
end

#solr_configObject



140
141
142
# File 'lib/dor/config.rb', line 140

def solr_config
  { :url => solrizer.url }
end