Module: PuppetX::EnterpriseModules::Oracle::Directories

Defined in:
lib/puppet_x/enterprisemodules/oracle/directories.rb

Overview

docs

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(parent) ⇒ Object



12
13
14
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 12

def self.included(parent)
  parent.extend(Directories)
end

Instance Method Details

#confdirObject



16
17
18
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 16

def confdir
  Puppet::Util::Platform.windows? ? 'database' : 'dbs'
end

#create_directories(_placeholder = nil, _options = {}) ⇒ Object



69
70
71
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 69

def create_directories(_placeholder = nil, _options = {})
  directories.each { |d| make_oracle_directory d }
end

#create_directory(path, _placeholder = nil, _options = {}) ⇒ Object



73
74
75
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 73

def create_directory(path, _placeholder = nil, _options = {})
  make_oracle_directory path
end

#directoriesObject



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 40

def directories
  [
    oracle_base,
    oracle_home,
    "#{oracle_home}#{sep}#{confdir}",
    "#{oracle_base}#{sep}admin",
    "#{oracle_base}#{sep}cfgtoollogs",
    "#{oracle_base}#{sep}cfgtoollogs#{sep}dbca",
    "#{oracle_base}#{sep}cfgtoollogs#{sep}dbca#{sep}#{name}"
  ] + named_oracle_directories
end

#make_oracle_directory(path) ⇒ Object



77
78
79
80
81
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 77

def make_oracle_directory(path)
  Puppet.debug "directories.rb: Creating directory #{path}"
  FileUtils.mkdir_p path
  owned_by_oracle(path)
end

#named_oracle_directoriesObject



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 52

def named_oracle_directories
  [
    "#{oracle_base}#{sep}admin#{sep}#{name}",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}adump",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}ddump",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}dpdump",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}hdump",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}pfile",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}scripts",
    "#{oracle_base}#{sep}admin#{sep}#{name}#{sep}scripts#{sep}log"
  ]
end

#oracle_directories_exists?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 65

def oracle_directories_exists?
  named_oracle_directories.any? { |d| File.directory?(d) }
end

#oracle_home_nameObject



94
95
96
97
98
99
100
101
102
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 94

def oracle_home_name
  reg = Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\\Oracle')
  reg.each_key do |regkey|
    next unless /^KEY_/.match?(regkey)

    home_reg = Win32::Registry::HKEY_LOCAL_MACHINE.open("SOFTWARE\\Oracle\\#{regkey}")
    return home_reg['ORACLE_HOME_NAME'] if home_reg['ORACLE_HOME'] == oracle_home
  end
end

#owned_by_oracle(*path) ⇒ Object



83
84
85
86
87
88
89
90
91
92
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 83

def owned_by_oracle(*path)
  Puppet.debug "directories.rb: Setting ownership for #{path}"
  if Puppet::Util::Platform.windows?
    command = "#{oracle_home}\\bin\\oradim.exe -ACL -setperm diag -USER ORA_#{oracle_home_name}_SVCACCTS -OBJTYPE dir -OBJPATH #{path[0]} -RECURSE false"
    Puppet::Util::Execution.execute(command)
  else
    FileUtils.chmod 0o775, path
    FileUtils.chown oracle_user, install_group, path
  end
end

#remove_directories(_placeholder = nil, _options = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 24

def remove_directories(_placeholder = nil, _options = {})
  remove_oracle_directory "#{oracle_base}#{sep}admin#{sep}#{name}"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}init#{name}.ora"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}spfile#{name}.ora"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}hc_#{name}.dat"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}lk#{name}.dat"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}orapw#{name}"
  remove_oracle_directory "#{oracle_home}#{sep}#{confdir}#{sep}PWD#{name}.ora"
  remove_oracle_directory "#{oracle_base}#{sep}cfgtoolslog#{sep}dbca#{sep}#{name}"
end

#remove_oracle_directory(path) ⇒ Object



35
36
37
38
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 35

def remove_oracle_directory(path)
  Puppet.debug "directories.rb: Removing file/directory #{path}"
  FileUtils.rm_rf path
end

#sepObject



20
21
22
# File 'lib/puppet_x/enterprisemodules/oracle/directories.rb', line 20

def sep
  Puppet::Util::Platform.windows? ? '\\' : '/'
end