From cf7694f0dbf9b5f81057f00c35cfe626f22a71ec Mon Sep 17 00:00:00 2001 From: Amrith Kumar Date: Thu, 17 Jul 2014 14:07:35 -0400 Subject: [PATCH] Logging audit for guestagent/cassandra Adjust logging to conform to logging standards. Cleaned up some messages that were unclear and changed many messages from LOG.info to LOG.debug. Fixed a pattern of exception handlers using LOG.error to log the exception (instead of LOG.exception) Change-Id: I828fbb38b6bf6eb36c349d83475ca46c28779225 Partial-Bug: #1324206 --- .../guestagent/datastore/cassandra/manager.py | 20 ++++-- .../guestagent/datastore/cassandra/service.py | 67 +++++++++---------- .../guestagent/datastore/cassandra/system.py | 2 - 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/trove/guestagent/datastore/cassandra/manager.py b/trove/guestagent/datastore/cassandra/manager.py index d4a7f80da7..e759881605 100644 --- a/trove/guestagent/datastore/cassandra/manager.py +++ b/trove/guestagent/datastore/cassandra/manager.py @@ -61,9 +61,9 @@ class Manager(periodic_task.PeriodicTasks): def prepare(self, context, packages, databases, memory_mb, users, device_path=None, mount_point=None, backup_info=None, config_contents=None, root_password=None, overrides=None): - LOG.info(_("Setting status BUILDING")) + LOG.info(_("Setting status of instance to BUILDING.")) self.appStatus.begin_install() - LOG.info("Installing cassandra") + LOG.debug("Installing cassandra.") self.app.install_if_needed(packages) self.app.init_storage_structure(mount_point) @@ -96,7 +96,7 @@ class Manager(periodic_task.PeriodicTasks): self.app.start_db() self.appStatus.end_install_or_restart() - LOG.info(_('"prepare" call has finished.')) + LOG.info(_("Completed setup of Cassandra database instance.")) def change_passwords(self, context, users): raise exception.DatastoreOperationNotSupported( @@ -167,38 +167,46 @@ class Manager(periodic_task.PeriodicTasks): def mount_volume(self, context, device_path=None, mount_point=None): device = volume.VolumeDevice(device_path) device.mount(mount_point, write_to_fstab=False) - LOG.debug("Mounted the volume.") + LOG.debug("Mounted the device %s at the mount point %s." % + (device_path, mount_point)) def unmount_volume(self, context, device_path=None, mount_point=None): device = volume.VolumeDevice(device_path) device.unmount(mount_point) - LOG.debug("Unmounted the volume.") + LOG.debug("Unmounted the device %s from the mount point %s." % + (device_path, mount_point)) def resize_fs(self, context, device_path=None, mount_point=None): device = volume.VolumeDevice(device_path) device.resize_fs(mount_point) - LOG.debug("Resized the filesystem") + LOG.debug("Resized the filesystem at %s." % mount_point) def update_overrides(self, context, overrides, remove=False): + LOG.debug("Updating overrides.") raise exception.DatastoreOperationNotSupported( operation='update_overrides', datastore=MANAGER) def apply_overrides(self, context, overrides): + LOG.debug("Applying overrides.") raise exception.DatastoreOperationNotSupported( operation='apply_overrides', datastore=MANAGER) def get_replication_snapshot(self, master_config): + LOG.debug("Getting replication snapshot.") raise exception.DatastoreOperationNotSupported( operation='get_replication_snapshot', datastore=MANAGER) def attach_replication_slave(self, snapshot, slave_config): + LOG.debug("Attaching replication slave.") raise exception.DatastoreOperationNotSupported( operation='attach_replication_slave', datastore=MANAGER) def detach_replication_slave(self): + LOG.debug("Detaching replication slave.") raise exception.DatastoreOperationNotSupported( operation='detach_replication_slave', datastore=MANAGER) def demote_replication_master(self): + LOG.debug("Demoting replication master.") raise exception.DatastoreOperationNotSupported( operation='demote_replication_master', datastore=MANAGER) diff --git a/trove/guestagent/datastore/cassandra/service.py b/trove/guestagent/datastore/cassandra/service.py index 936182ca1f..8f66220e69 100644 --- a/trove/guestagent/datastore/cassandra/service.py +++ b/trove/guestagent/datastore/cassandra/service.py @@ -42,10 +42,10 @@ class CassandraApp(object): def install_if_needed(self, packages): """Prepare the guest machine with a cassandra server installation.""" - LOG.info(_("Preparing Guest as Cassandra Server")) + LOG.info(_("Preparing Guest as a Cassandra Server")) if not packager.pkg_is_installed(packages): self._install_db(packages) - LOG.info(_("Dbaas install_if_needed complete")) + LOG.debug("Cassandra install_if_needed complete") def complete_install_or_restart(self): self.status.end_install_or_restart() @@ -62,9 +62,8 @@ class CassandraApp(object): try: cmd = system.INIT_FS % mount_point utils.execute_with_timeout(cmd, shell=True) - except exception.ProcessExecutionError as e: - LOG.error(_("Error while initiating storage structure.")) - LOG.error(e) + except exception.ProcessExecutionError: + LOG.exception(_("Error while initiating storage structure.")) def start_db(self, update_db=False): self._enable_db_on_boot() @@ -72,6 +71,7 @@ class CassandraApp(object): utils.execute_with_timeout(system.START_CASSANDRA, shell=True) except exception.ProcessExecutionError: + LOG.exception(_("Error starting Cassandra")) pass if not (self.status. @@ -82,9 +82,8 @@ class CassandraApp(object): try: utils.execute_with_timeout(system.CASSANDRA_KILL, shell=True) - except exception.ProcessExecutionError as p: - LOG.error(_("Error killing stalled Cassandra start command.")) - LOG.error(p) + except exception.ProcessExecutionError: + LOG.exception(_("Error killing Cassandra start command.")) self.status.end_install_or_restart() raise RuntimeError(_("Could not start Cassandra")) @@ -98,14 +97,14 @@ class CassandraApp(object): if not (self.status.wait_for_real_status_to_change_to( rd_instance.ServiceStatuses.SHUTDOWN, self.state_change_wait_time, update_db)): - LOG.error(_("Could not stop Cassandra")) + LOG.error(_("Could not stop Cassandra.")) self.status.end_install_or_restart() - raise RuntimeError(_("Could not stop Cassandra")) + raise RuntimeError(_("Could not stop Cassandra.")) def restart(self): try: self.status.begin_restart() - LOG.info(_("Restarting DB")) + LOG.info(_("Restarting Cassandra server.")) self.stop_db() self.start_db() finally: @@ -113,27 +112,26 @@ class CassandraApp(object): def _install_db(self, packages): """Install cassandra server""" - LOG.debug("Installing cassandra server") + LOG.debug("Installing cassandra server.") packager.pkg_install(packages, None, system.INSTALL_TIMEOUT) - LOG.debug("Finished installing cassandra server") + LOG.debug("Finished installing Cassandra server") def write_config(self, config_contents): - LOG.info(_('Defining temp config holder at ' - '%s') % system.CASSANDRA_TEMP_CONF) + LOG.debug('Defining temp config holder at %s.' % + system.CASSANDRA_TEMP_CONF) with open(system.CASSANDRA_TEMP_CONF, 'w+') as conf: conf.write(config_contents) - LOG.info(_('Writing new config')) + LOG.info(_('Writing new config.')) utils.execute_with_timeout("sudo", "mv", system.CASSANDRA_TEMP_CONF, system.CASSANDRA_CONF) - LOG.info(_('Overriding old config')) def read_conf(self): """Returns cassandra.yaml in dict structure.""" - LOG.info(_("Opening cassandra.yaml")) + LOG.debug("Opening cassandra.yaml.") with open(system.CASSANDRA_CONF, 'r') as config: - LOG.info(_("Preparing YAML object from cassandra.yaml")) + LOG.debug("Preparing YAML object from cassandra.yaml.") yamled = yaml.load(config.read()) return yamled @@ -142,10 +140,10 @@ class CassandraApp(object): yamled = self.read_conf() yamled.update({key: value}) - LOG.info(_("Updating cassandra.yaml with %(key)s: %(value)s") - % {'key': key, 'value': value}) + LOG.debug("Updating cassandra.yaml with %(key)s: %(value)s." + % {'key': key, 'value': value}) dump = yaml.dump(yamled, default_flow_style=False) - LOG.info(_("Dumping YAML to stream")) + LOG.debug("Dumping YAML to stream.") self.write_config(dump) def update_conf_with_group(self, group): @@ -159,10 +157,10 @@ class CassandraApp(object): update({'seeds': value})) else: yamled.update({key: value}) - LOG.info(_("Updating cassandra.yaml with %(key)s: %(value)s") - % {'key': key, 'value': value}) + LOG.debug("Updating cassandra.yaml with %(key)s: %(value)s." + % {'key': key, 'value': value}) dump = yaml.dump(yamled, default_flow_style=False) - LOG.info(_("Dumping YAML to stream")) + LOG.debug("Dumping YAML to stream") self.write_config(dump) def make_host_reachable(self): @@ -174,20 +172,20 @@ class CassandraApp(object): self.update_conf_with_group(updates) def start_db_with_conf_changes(self, config_contents): - LOG.info(_("Starting cassandra with conf changes...")) - LOG.info(_("inside the guest - cassandra is running %s...") - % self.status.is_running) + LOG.info(_("Starting Cassandra with configuration changes.")) + LOG.debug("Inside the guest - Cassandra is running %s." + % self.status.is_running) if self.status.is_running: LOG.error(_("Cannot execute start_db_with_conf_changes because " - "cassandra state == %s!") % self.status) + "Cassandra state == %s.") % self.status) raise RuntimeError("Cassandra not stopped.") - LOG.info(_("Initiating config.")) + LOG.debug("Initiating config.") self.write_config(config_contents) self.start_db(True) def reset_configuration(self, configuration): config_contents = configuration['config_contents'] - LOG.info(_("Resetting configuration")) + LOG.debug("Resetting configuration") self.write_config(config_contents) @@ -203,9 +201,6 @@ class CassandraAppStatus(service.BaseDbStatus): return rd_instance.ServiceStatuses.RUNNING else: return rd_instance.ServiceStatuses.SHUTDOWN - except exception.ProcessExecutionError as e: - LOG.error(_("Process execution %s") % e) - return rd_instance.ServiceStatuses.SHUTDOWN - except OSError as e: - LOG.error(_("OS Error %s") % e) + except (exception.ProcessExecutionError, OSError): + LOG.exception(_("Error getting Cassandra status")) return rd_instance.ServiceStatuses.SHUTDOWN diff --git a/trove/guestagent/datastore/cassandra/system.py b/trove/guestagent/datastore/cassandra/system.py index f81071af1e..ce64091471 100644 --- a/trove/guestagent/datastore/cassandra/system.py +++ b/trove/guestagent/datastore/cassandra/system.py @@ -14,9 +14,7 @@ # under the License. from trove.common import cfg -from trove.openstack.common import log as logging -LOG = logging.getLogger(__name__) CONF = cfg.CONF CASSANDRA_DATA_DIR = "/var/lib/cassandra/data"