コード例 #1
0
ファイル: tests.py プロジェクト: Tesora/tesora-horizon
    def test_values_tab_apply_action_exception(self):
        config = copy.deepcopy(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_update(
            IsA(http.HttpRequest),
            config.id,
            config_param_mgr.to_json())\
            .AndRaise(self.exceptions.trove)
        self.mox.ReplayAll()

        details_url = self._get_url_with_arg(DETAIL_URL, config.id)
        url = details_url + '?tab=configuration_details__value'

        self._test_create_altered_config_params(config, url)

        # apply changes
        res = self.client.post(url, {'action': u"values__apply_changes"})
        self.assertRedirectsNoFollow(res, url)
        self.assertEqual(res.status_code, 302)
コード例 #2
0
ファイル: tests.py プロジェクト: Tesora/tesora-horizon
    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)
コード例 #3
0
ファイル: tests.py プロジェクト: Tesora/tesora-horizon
    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)
コード例 #4
0
ファイル: tests.py プロジェクト: Tesora/tesora-horizon
    def test_values_tab_discard_action(self):
        config = self.database_configurations.first()

        api.trove.configuration_get(IsA(http.HttpRequest), config.id) \
            .MultipleTimes().AndReturn(config)
        self.mox.ReplayAll()

        details_url = self._get_url_with_arg(DETAIL_URL, config.id)
        url = details_url + '?tab=configuration_details__value'

        self._test_create_altered_config_params(config, url)

        # get the state of the configuration before discard action
        changed_configuration_values = \
            dict.copy(config_param_manager.get(self.request, config.id)
                      .get_configuration().values)

        res = self.client.post(url, {'action': u"values__discard_changes"})
        self.assertRedirectsNoFollow(res, url)

        # get the state of the configuration after discard action
        restored_configuration_values = \
            dict.copy(config_param_manager.get(self.request, config.id)
                      .get_configuration().values)

        self.assertTrue(config_param_manager.dict_has_changes(
            changed_configuration_values, restored_configuration_values))
コード例 #5
0
 def handle(self, request, data):
     try:
         config_param_manager.get(
             request, self.initial["configuration_id"]) \
             .add_param(data["name"],
                        self._adjust_type(
                            self._find_parameter(data["name"]).type,
                            data["value"]))
         messages.success(request, _('Successfully added parameter'))
     except Exception as e:
         redirect = reverse("horizon:project:database_configurations:index")
         exceptions.handle(request, _('Unable to add new parameter: %s')
                           % e.message, redirect=redirect)
     return True
コード例 #6
0
    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())
コード例 #7
0
ファイル: tabs.py プロジェクト: Tesora-Release/tesora-horizon
 def get_values_data(self):
     values_data = []
     manager = config_param_manager.get(
         self.request, self.tab_group.kwargs['configuration_id'])
     for k, v in manager.get_configuration().values.items():
         manager.add_param(k, v)
         values_data.append(manager.create_config_value(k, v))
     return values_data
コード例 #8
0
    def update_cell(self, request, datum, name,
                    cell_name, new_cell_value):
        config_param = datum

        if isinstance(config_param.value, types.IntType):
            value = int(new_cell_value)
        elif isinstance(config_param.value, types.LongType):
            value = long(new_cell_value)
        else:
            value = new_cell_value

        setattr(datum, cell_name, value)

        config_param_manager.get(request, config_param.configuration_id) \
            .update_param(name, value)

        return True
コード例 #9
0
 def get_data(self):
     try:
         configuration_id = self.kwargs['configuration_id']
         return config_param_manager.get(self.request, configuration_id) \
             .configuration_get(self.request)
     except Exception:
         redirect = reverse('horizon:project:database_configurations:index')
         msg = _('Unable to retrieve details for configuration '
                 'group: %s') % configuration_id
         exceptions.handle(self.request, msg, redirect=redirect)
コード例 #10
0
    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())
コード例 #11
0
 def get_data(self, request, name):
     return config_param_manager.get(
         request, self.table.kwargs["configuration_id"]).get_param(name)
コード例 #12
0
 def delete(self, request, obj_ids):
     configuration_id = self.table.kwargs['configuration_id']
     config_param_manager.get(request, configuration_id) \
         .delete_param(obj_ids)