Module: PuppetX::EnterpriseModules::Oracle::Information
- Included in:
- OracleFeature, Password, Settings
- Defined in:
- lib/puppet_x/enterprisemodules/oracle/information.rb
Overview
Docs
Class Method Summary collapse
Instance Method Summary collapse
- #cached_sid_value(name, sid) ⇒ Object
- #cluster?(on_sid = sid) ⇒ Boolean
- #cluster_instances(on_sid = sid) ⇒ Object
- #containerdb?(on_sid = sid) ⇒ Boolean
- #database_properties(on_sid = sid) ⇒ Object
- #database_version(on_sid = sid) ⇒ Object
- #db_create_file_dest(on_sid = sid) ⇒ Object
- #db_domain(on_sid = sid) ⇒ Object
- #db_for(on_sid = sid) ⇒ Object
- #diagnostic_dest(on_sid = sid) ⇒ Object
- #local_sid_for_db(db) ⇒ Object
-
#open_pdbs(on_sid = sid) ⇒ Object
Don’t cache this one.
- #oracle_major_version(on_sid = sid) ⇒ Object
- #oracle_managed_files_enabled?(on_sid = sid) ⇒ Boolean
- #pdb?(on_sid = sid) ⇒ Boolean
- #primary?(on_sid = sid) ⇒ Boolean
- #rootdb?(on_sid = sid) ⇒ Boolean
- #seeddb?(on_sid = sid) ⇒ Boolean
- #sid_for(on_sid = sid) ⇒ Object
- #value_for_init_param(init_param, on_sid = sid) ⇒ Object
Class Method Details
.included(parent) ⇒ Object
11 12 13 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 11 def self.included(parent) parent.extend(Information) end |
Instance Method Details
#cached_sid_value(name, sid) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 15 def cached_sid_value(name, sid) # rubocop:disable Style/ClassVars @@cache ||= {} # rubocop:enable Style/ClassVars @@cache[name] ||= {} if @@cache[name][sid].nil? @@cache[name][sid] = yield else Puppet.debug "Using cached version of #{name} for sid #{sid}." @@cache[name][sid] end end |
#cluster?(on_sid = sid) ⇒ Boolean
32 33 34 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 32 def cluster?(on_sid = sid) cached_sid_value(:cluster, on_sid) { sql('select parallel as par from v$instance', :sid => on_sid).first['PAR'] == 'YES' } end |
#cluster_instances(on_sid = sid) ⇒ Object
72 73 74 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 72 def cluster_instances(on_sid = sid) cached_sid_value(:cluster_instances, on_sid) { sql('select INSTANCE_NAME from gv$instance', :sid => on_sid).collect { |e| e['INSTANCE_NAME'] } } end |
#containerdb?(on_sid = sid) ⇒ Boolean
36 37 38 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 36 def containerdb?(on_sid = sid) oracle_major_version(on_sid) >= 12 && cached_sid_value(:containerdb, on_sid) { sql('SELECT CDB FROM V$DATABASE', :sid => on_sid).first['CDB'] == 'YES' } end |
#database_properties(on_sid = sid) ⇒ Object
96 97 98 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 96 def database_properties(on_sid = sid) cached_sid_value(:database_properties, on_sid) { sql('select property_name, property_value as value from database_properties', :sid => on_sid) } end |
#database_version(on_sid = sid) ⇒ Object
76 77 78 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 76 def database_version(on_sid = sid) cached_sid_value(:database_version, on_sid) { sql('select version from v$instance', :sid => on_sid).first['VERSION'] } end |
#db_create_file_dest(on_sid = sid) ⇒ Object
84 85 86 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 84 def db_create_file_dest(on_sid = sid) cached_sid_value(:db_create_file_dest, on_sid) { sql("select value from v$parameter where name = 'db_create_file_dest'", :sid => on_sid).first['VALUE'] } end |
#db_domain(on_sid = sid) ⇒ Object
80 81 82 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 80 def db_domain(on_sid = sid) cached_sid_value(:db_domain, on_sid) { sql("select value from v$parameter where name = 'db_domain'", :sid => on_sid).first['VALUE'] } end |
#db_for(on_sid = sid) ⇒ Object
108 109 110 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 108 def db_for(on_sid = sid) cluster?(on_sid) ? sid_for(on_sid).chop : sid_for(on_sid) end |
#diagnostic_dest(on_sid = sid) ⇒ Object
88 89 90 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 88 def diagnostic_dest(on_sid = sid) cached_sid_value(:diagnostic_dest, on_sid) { sql("select value from v$parameter where name = 'diagnostic_dest'", :sid => on_sid).first['VALUE'] } end |
#local_sid_for_db(db) ⇒ Object
112 113 114 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 112 def local_sid_for_db(db) running_sids.find { |sid| sid.include? db } end |
#open_pdbs(on_sid = sid) ⇒ Object
Don’t cache this one. This might change during a run and we always need the latest value
62 63 64 65 66 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 62 def open_pdbs(on_sid = sid) return [] unless containerdb?(on_sid) sql("select name from v$pdbs where open_mode != 'MOUNTED'", :sid => on_sid).map { |e| e['NAME'] } end |
#oracle_major_version(on_sid = sid) ⇒ Object
100 101 102 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 100 def oracle_major_version(on_sid = sid) database_version(on_sid).split('.').first.to_i end |
#oracle_managed_files_enabled?(on_sid = sid) ⇒ Boolean
28 29 30 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 28 def oracle_managed_files_enabled?(on_sid = sid) !db_create_file_dest(on_sid).to_s.empty? end |
#pdb?(on_sid = sid) ⇒ Boolean
52 53 54 55 56 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 52 def pdb?(on_sid = sid) return false unless containerdb?(on_sid) oracle_major_version(on_sid) >= 12 && cached_sid_value(:pdb, on_sid) { sql("select sys_context('userenv', 'con_id') as con_id from dual", :sid => on_sid).first['CON_ID'].to_i > 2 } end |
#primary?(on_sid = sid) ⇒ Boolean
68 69 70 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 68 def primary?(on_sid = sid) cached_sid_value(:primary, on_sid) { sql('select database_role from v$database', :sid => on_sid).first['DATABASE_ROLE'] == 'PRIMARY' } end |
#rootdb?(on_sid = sid) ⇒ Boolean
40 41 42 43 44 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 40 def rootdb?(on_sid = sid) return false unless containerdb?(on_sid) oracle_major_version(on_sid) >= 12 && cached_sid_value(:rootdb, on_sid) { sql("select sys_context('userenv', 'con_id') as con_id from dual", :sid => on_sid).first['CON_ID'] == '1' } end |
#seeddb?(on_sid = sid) ⇒ Boolean
46 47 48 49 50 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 46 def seeddb?(on_sid = sid) return false unless containerdb?(on_sid) oracle_major_version(on_sid) >= 12 && cached_sid_value(:seeddb, on_sid) { sql("select sys_context('userenv', 'con_id') as con_id from dual", :sid => on_sid).first['CON_ID'] == '2' } end |
#sid_for(on_sid = sid) ⇒ Object
104 105 106 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 104 def sid_for(on_sid = sid) pdb?(on_sid) ? configuration_for(on_sid)['contained_by'] : on_sid end |
#value_for_init_param(init_param, on_sid = sid) ⇒ Object
92 93 94 |
# File 'lib/puppet_x/enterprisemodules/oracle/information.rb', line 92 def value_for_init_param(init_param, on_sid = sid) cached_sid_value(init_param, on_sid) { sql("select value from v$parameter where name = '#{init_param}'", :sid => on_sid).first['VALUE'] || '' } end |