Skip to content
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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dwolstroRH
Copy link
Contributor

Related: RHEL-59870, TYCHE-732


Please place an 'X' inside each '[]' to confirm you adhere to our Contributor Guidelines

  • Is the commit message split over multiple lines and hard-wrapped at 72 characters?
  • Is the subject and message clear and concise?
  • Does the subject start with [plugin_name] if submitting a plugin patch or a [section_name] if part of the core sosreport code?
  • Does the commit contain a Signed-off-by: First Lastname email@example.com?
  • Are any related Issues or existing PRs properly referenced via a Closes (Issue) or Resolved (PR) line?
  • Are all passwords or private data gathered by this PR obfuscated?

Related: RHEL-59870, TYCHE-732

Signed-off-by: David Wolstromer <dwolstro@redhat.com>
@arif-ali arif-ali added Status/Needs Review This issue still needs a review from project members Kind/New plugin New plugin being added labels Dec 19, 2024
Copy link

Congratulations! One of the builds has completed. 🍾

You can install the built RPMs by following these steps:

  • sudo yum install -y dnf-plugins-core on RHEL 8
  • sudo dnf install -y dnf-plugins-core on Fedora
  • dnf copr enable packit/sosreport-sos-3889
  • And now you can install the packages.

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")
Copy link
Member

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?

Comment on lines +33 to +53
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"
])
Copy link
Member

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)"
Copy link
Member

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):
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Kind/New plugin New plugin being added Status/Needs Review This issue still needs a review from project members
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants