def test_install_vertica(self): mock_status = MagicMock() App = VerticaApp(status=mock_status) App.write_config = MagicMock(return_value=None) App.install_vertica() self.assertEqual(subprocess.check_call.call_count, 1) self.assertTrue(App.write_config.called)
def test_create_db(self): mock_status = MagicMock() App = VerticaApp(status=mock_status) App._get_database_password = MagicMock(return_value='text') App.create_db() self.assertTrue(App._get_database_password.called) self.assertEqual(subprocess.check_call.call_count, 1)
def test_install_if_needed_package_installed(self): mock_status = MagicMock() service.packager = MagicMock() service.packager.pkg_is_installed = MagicMock(return_value=True) App = VerticaApp(status=mock_status) App.install_if_needed(['vertica']) self.assertTrue(service.packager.pkg_is_installed.called) self.assertFalse(service.packager.pkg_install.called)
def test_write_config(self): mock_status = MagicMock() App = VerticaApp(status=mock_status) App.write_config("sometext") self.assertEqual(utils.execute_with_timeout.call_count, 1)
def test_generate_database_password(self): mock_status = MagicMock() App = VerticaApp(status=mock_status) App._generate_database_password() self.assertEqual(utils.execute_with_timeout.call_count, 1)
def test_prepare_for_install_vertica(self): mock_status = MagicMock() App = VerticaApp(status=mock_status) App.prepare_for_install_vertica() self.assertEqual(utils.execute.call_count, 1)
def __init__(self): self.appStatus = VerticaAppStatus() self.app = VerticaApp(self.appStatus) super(Manager, self).__init__('vertica')
class Manager(manager.Manager): def __init__(self): self.appStatus = VerticaAppStatus() self.app = VerticaApp(self.appStatus) super(Manager, self).__init__('vertica') @property def status(self): return self.appStatus @property def configuration_manager(self): return self.app.configuration_manager def do_prepare(self, context, packages, databases, memory_mb, users, device_path, mount_point, backup_info, config_contents, root_password, overrides, cluster_config, snapshot): """This is called from prepare in the base class.""" if device_path: device = volume.VolumeDevice(device_path) # unmount if device is already mounted device.unmount_device(device_path) device.format() if os.path.exists(mount_point): # rsync any existing data device.migrate_data(mount_point) # mount the volume device.mount(mount_point) LOG.debug("Mounted the volume.") self.app.install_if_needed(packages) self.app.prepare_for_install_vertica() if cluster_config is None: self.app.install_vertica() self.app.create_db() self.app.add_udls() if config_contents: self.app.configuration_manager.save_configuration( config_contents) elif cluster_config['instance_type'] not in ["member", "master"]: raise RuntimeError(_("Bad cluster configuration: instance type " "given as %s.") % cluster_config['instance_type']) def restart(self, context): LOG.debug("Restarting the database.") self.app.restart() LOG.debug("Restarted the database.") def stop_db(self, context, do_not_start_on_reboot=False): LOG.debug("Stopping the database.") self.app.stop_db(do_not_start_on_reboot=do_not_start_on_reboot) LOG.debug("Stopped the database.") def reset_configuration(self, context, configuration): """ Currently this method does nothing. This method needs to be implemented to enable rollback of flavor-resize on guestagent side. """ LOG.debug("Resetting Vertica configuration.") pass def enable_root(self, context): LOG.debug("Enabling root.") return self.app.enable_root() def enable_root_with_password(self, context, root_password=None): LOG.debug("Enabling root.") return self.app.enable_root(root_password) def is_root_enabled(self, context): LOG.debug("Checking if root is enabled.") return self.app.is_root_enabled() def start_db_with_conf_changes(self, context, config_contents): LOG.debug("Starting with configuration changes.") self.app.start_db_with_conf_changes(config_contents) def get_public_keys(self, context, user): LOG.debug("Retrieving public keys for %s." % user) return self.app.get_public_keys(user) def authorize_public_keys(self, context, user, public_keys): LOG.debug("Authorizing public keys for %s." % user) return self.app.authorize_public_keys(user, public_keys) def install_cluster(self, context, members): try: LOG.debug("Installing cluster on members: %s." % members) self.app.install_cluster(members) self.app.add_udls() LOG.debug("install_cluster call has finished.") except Exception: LOG.exception(_('Cluster installation failed.')) self.appStatus.set_status(rd_ins.ServiceStatuses.FAILED) raise def update_overrides(self, context, overrides, remove=False): LOG.debug("Updating overrides.") if remove: self.app.remove_overrides() else: self.app.update_overrides(context, overrides, remove) def apply_overrides(self, context, overrides): if overrides: LOG.debug("Applying overrides: " + str(overrides)) self.app.apply_overrides(overrides) def grow_cluster(self, context, members): try: LOG.debug("Growing cluster to members: %s." % members) self.app.grow_cluster(members) LOG.debug("grow_cluster call has finished.") except Exception: LOG.exception(_('Cluster grow failed.')) self.appStatus.set_status(rd_ins.ServiceStatuses.FAILED) raise def shrink_cluster(self, context, members): try: LOG.debug("Shrinking cluster members: %s." % members) self.app.shrink_cluster(members) LOG.debug("shrink_cluster call has finished.") except Exception: LOG.exception(_('Cluster shrink failed.')) self.appStatus.set_status(rd_ins.ServiceStatuses.FAILED) raise def mark_design_ksafe(self, context, k): try: LOG.debug("Setting vertica k-safety to %s." % k) self.app.mark_design_ksafe(k) except Exception: LOG.exception(_('K-safety setting failed.')) self.appStatus.set_status(rd_ins.ServiceStatuses.FAILED) raise