-
Notifications
You must be signed in to change notification settings - Fork 545
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[oracle] Add initial implementation of oracle plugin #3889
base: main
Are you sure you want to change the base?
Conversation
Related: RHEL-59870, TYCHE-732 Signed-off-by: David Wolstromer <dwolstro@redhat.com>
Congratulations! One of the builds has completed. 🍾 You can install the built RPMs by following these steps:
Please note that the RPMs should be used only in a testing environment. |
ora_tab = self.get_option('oratab') | ||
|
||
if os.path.isfile(ora_tab): | ||
self._log_warn("Found file oratab") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should we warn on this?
with open(ora_tab, 'r', encoding='UTF-8') as ofile: | ||
# Since the oratab file can have multiple unique SID | ||
# entries that point to the same oracle home directory, | ||
# keep track of the unique paths so we don't gather | ||
# duplicate files | ||
path_list = [] | ||
for line in ofile.read().splitlines(): | ||
if not line.startswith('#') and \ | ||
not line.isspace() and \ | ||
len(line) != 0: | ||
words = line.split(':') | ||
# check if this path has already been collected | ||
if not words[1] in path_list: | ||
path_list.append(words[1]) | ||
oracle_path = words[1] | ||
if not oracle_path.endswith('/'): | ||
oracle_path = f"{oracle_path}/" | ||
self.add_copy_spec([ | ||
f"{oracle_path}dbs/init*.ora", | ||
f"{oracle_path}dbs/spfile*.ora" | ||
]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can button this up a little bit, and not have to manually track unique entries:
path_list = set()
with open(ora_tab, 'r', encoding='UTF-8') as ofile:
for line in ofile.read().splitlines():
if line.startswith('#') or not line.strip():
continue
path_list.add(line.split(':')[1])
dbfiles = [
'dbs/init*.ora',
'dbs/spfile*.ora'
]
self.add_copy_spec([
self.path_join(path, dbfile) for dbfile in dbfiles for path in path_list
])
profiles = ('services',) | ||
packages = ('oracle',) | ||
|
||
pw_warn_text = " (password visible in process listings)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't seem to use this anywhere?
from sos.report.plugins import Plugin, RedHatPlugin, PluginOpt | ||
|
||
|
||
class Oracle(Plugin, RedHatPlugin): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a more specific component name to use here perhaps? I think there may be some ambiguity with this and Oracle Linux as a distribution, or the Oracle DB offering, etc...
Since the plugin is centered around oratab
, would that make sense as a name? I'll admit I'm not familiar with what the component/service surrounding oratab is, so maybe that doesn't fit.
Related: RHEL-59870, TYCHE-732
Please place an 'X' inside each '[]' to confirm you adhere to our Contributor Guidelines