def test_instances_tab_exception(self): try: config = self.database_configurations.first() # setup the configuration parameter manager config_param_mgr = config_param_manager.ConfigParamManager( config.id) config_param_mgr.configuration = config config_param_mgr.original_configuration_values = \ dict.copy(config.values) config_param_manager.get(IsA(http.HttpRequest), config.id) \ .MultipleTimes().AndReturn(config_param_mgr) api.trove.configuration_instances(IsA(http.HttpRequest), config.id) \ .AndRaise(self.exceptions.trove) self.mox.ReplayAll() details_url = self._get_url_with_arg(DETAIL_URL, config.id) url = details_url + '?tab=configuration_details__instance' res = self.client.get(url) table_data = res.context['instances_table'].data self.assertNotEqual(len(self.configuration_instances.list()), len(table_data)) self.assertTemplateUsed( res, 'project/database_configurations/details.html') finally: config_param_manager.delete(config.id)
def test_add_parameter_invalid_value(self): try: config = self.database_configurations.first() # setup the configuration parameter manager config_param_mgr = config_param_manager.ConfigParamManager( config.id) config_param_mgr.configuration = config config_param_mgr.original_configuration_values = \ dict.copy(config.values) config_param_manager.get(IsA(http.HttpRequest), config.id) \ .MultipleTimes().AndReturn(config_param_mgr) api.trove.configuration_parameters_list( IsA(http.HttpRequest), self.datastores.list()[1].name, self.datastore_versions.list()[1].name) \ .AndReturn(self.configuration_parameters.list()) name = self.configuration_parameters.first().name value = "non-numeric" self.mox.ReplayAll() post = { 'method': 'AddParameterForm', 'name': name, 'value': value} res = self.client.post(self._get_url_with_arg(ADD_URL, config.id), post) self.assertFormError(res, "form", 'value', ['Value must be a number.']) finally: config_param_manager.delete(config.id)
def test_add_new_parameter(self): try: config = (config_param_manager.ConfigParamManager .get_configuration() .AndReturn(self.database_configurations.first())) config_param_manager.ConfigParamManager \ .configuration_get(IsA(http.HttpRequest)) \ .AndReturn(config) api.trove.configuration_parameters_list( IsA(http.HttpRequest), self.datastores.list()[1].name, self.datastore_versions.list()[1].name) \ .AndReturn(self.configuration_parameters.list()) name = self.configuration_parameters.first().name value = 1 config_param_manager.ConfigParamManager.add_param(name, value) \ .AndReturn(value) self.mox.ReplayAll() post = { 'method': 'AddParameterForm', 'name': name, 'value': value} res = self.client.post(self._get_url_with_arg(ADD_URL, config.id), post) self.assertNoFormErrors(res) self.assertMessageCount(success=1) finally: config_param_manager.delete(config.id)
def handle(self, table, request, obj_ids): configuration_id = table.kwargs['configuration_id'] if config_param_manager.get(request, configuration_id).has_changes(): try: config_param_manager.delete(configuration_id) messages.success(request, _('Reset Parameters')) except Exception as ex: messages.error( request, _('Error resetting parameters: %s') % ex.message) return shortcuts.redirect(request.build_absolute_uri())
def handle(self, table, request, obj_ids): configuration_id = table.kwargs['configuration_id'] if config_param_manager.get(request, configuration_id).has_changes(): try: api.trove.configuration_update( request, configuration_id, config_param_manager.get( request, configuration_id).to_json()) messages.success(request, _('Applied changes to server')) except Exception: messages.error(request, _('Error applying changes')) finally: config_param_manager.delete(configuration_id) return shortcuts.redirect(request.build_absolute_uri())
def test_add_parameter_exception_on_parameters(self): try: config = (config_param_manager.ConfigParamManager .get_configuration() .AndReturn(self.database_configurations.first())) config_param_manager.ConfigParamManager \ .configuration_get(IsA(http.HttpRequest)) \ .AndReturn(config) api.trove.configuration_parameters_list( IsA(http.HttpRequest), self.datastores.list()[1].name, self.datastore_versions.list()[1].name) \ .AndRaise(self.exceptions.trove) self.mox.ReplayAll() toSuppress = ["openstack_dashboard.dashboards.project." "database_configurations.forms", ] # Suppress expected log messages in the test output loggers = [] for cls in toSuppress: logger = logging.getLogger(cls) loggers.append((logger, logger.getEffectiveLevel())) logger.setLevel(logging.CRITICAL) try: res = self.client.get( self._get_url_with_arg(ADD_URL, config.id)) self.assertEqual(res.status_code, 302) finally: # Restore the previous log levels for (log, level) in loggers: log.setLevel(level) finally: config_param_manager.delete(config.id)