-
Notifications
You must be signed in to change notification settings - Fork 667
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create coredump group of commands to handle corefile management
Signed-off-by: Rajendra Dendukuri <rajendra.dendukuri@broadcom.com>
- Loading branch information
1 parent
4e1755d
commit d3459d7
Showing
4 changed files
with
110 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import os | ||
import click | ||
import utilities_common.cli as clicommon | ||
from swsssdk import ConfigDBConnector | ||
|
||
@click.group(cls=clicommon.AbbreviationGroup, name="coredump") | ||
def coredump(): | ||
""" Configure coredump """ | ||
if os.geteuid() != 0: | ||
exit("Root privileges are required for this operation") | ||
pass | ||
|
||
@coredump.command() | ||
@click.argument('disable', required=False) | ||
def disable(disable): | ||
"""Administratively Disable coredump generation""" | ||
config_db = ConfigDBConnector() | ||
config_db.connect() | ||
table = "COREDUMP" | ||
key = "config" | ||
config_db.set_entry(table, key, {"enabled": "false"}) | ||
|
||
@coredump.command() | ||
@click.argument('enable', required=False) | ||
def enable(enable): | ||
"""Administratively Enable coredump generation""" | ||
config_db = ConfigDBConnector() | ||
config_db.connect() | ||
table = "COREDUMP" | ||
key = "config" | ||
config_db.set_entry(table, key, {"enabled": "true"}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
import os | ||
import click | ||
import utilities_common.cli as clicommon | ||
from swsssdk import ConfigDBConnector | ||
|
||
# | ||
# 'coredumpctl' group ("show coredump") | ||
# | ||
|
||
@click.group(cls=clicommon.AliasedGroup, name="coredump") | ||
def coredump(): | ||
"""Show core dump events encountered""" | ||
pass | ||
|
||
# 'config' subcommand ("show coredump config") | ||
@coredump.command('config') | ||
@click.option('--verbose', is_flag=True, help="Enable verbose output") | ||
def core_config(verbose): | ||
""" Show coredump configuration """ | ||
# Default admin mode | ||
admin_mode = True | ||
# Obtain config from Config DB | ||
config_db = ConfigDBConnector() | ||
if config_db is not None: | ||
config_db.connect() | ||
table_data = config_db.get_table('COREDUMP') | ||
if table_data is not None: | ||
config_data = table_data.get('config') | ||
if config_data is not None: | ||
admin_mode = config_data.get('enabled') | ||
if admin_mode is not None and admin_mode.lower() == 'false': | ||
admin_mode = False | ||
|
||
# Core dump administrative mode | ||
if admin_mode: | ||
click.echo('Coredump : %s' % 'Enabled') | ||
else: | ||
click.echo('Coredump : %s' % 'Disabled') | ||
|
||
# 'list' subcommand ("show coredump list") | ||
@coredump.command('list') | ||
@click.argument('pattern', required=False) | ||
@click.option('--verbose', is_flag=True, help="Enable verbose output") | ||
def core_list(verbose, pattern): | ||
""" List available coredumps """ | ||
|
||
if not os.geteuid()==0: | ||
click.echo("Note: To list all the core files please run the command with root privileges\n") | ||
|
||
if os.path.exists("/usr/bin/coredumpctl"): | ||
cmd = "coredumpctl list" | ||
if pattern is not None: | ||
cmd = cmd + " " + pattern | ||
clicommon.run_command(cmd, display_cmd=verbose) | ||
else: | ||
exit("Note: Install systemd-coredump package to run this command") | ||
|
||
# 'info' subcommand ("show coredump info") | ||
@coredump.command('info') | ||
@click.argument('pattern', required=False) | ||
@click.option('--verbose', is_flag=True, help="Enable verbose output") | ||
def core_info(verbose, pattern): | ||
""" Show information about one or more coredumps """ | ||
|
||
if not os.geteuid()==0: | ||
click.echo("Note: To view all the core files please run the command with root privileges\n") | ||
|
||
if os.path.exists("/usr/bin/coredumpctl"): | ||
cmd = "coredumpctl info" | ||
if pattern is not None: | ||
cmd = cmd + " " + pattern | ||
clicommon.run_command(cmd, display_cmd=verbose) | ||
else: | ||
exit("Note: Install systemd-coredump package to run this command") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters