Exemplo n.º 1
0
def save_option_pool(user, type, description):
    '''if id:
        sp = OptionPool.objects.get(id=id)

        sp.type = type
        sp.description = description
        sp.save()


    else:'''

    sp = OptionPool(type=type, name=description)
    sp.save()

    return sp
    def test_save_pool_given_fail_on_execute_limit_script_for_pool(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            ScriptAlterLimitPoolException())

        response = self.client.post('/api/pools/save/',
                                    self.load_pool_json('pool.json'),
                                    format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals('Failed to execute limits script for pool.',
                          response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
    def test_save_pool_given_pool_already_having_an_identifier_saved(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            CreatedPoolIdentifierException())

        response = self.client.post('/api/pools/save/',
                                    self.load_pool_json('pool.json'),
                                    format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals('Pool already created. Cannot change Identifier.',
                          response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
    def test_save_pool_given_fail_on_change_pool_limits(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            ScriptAlterLimitPoolDiffMembersException())

        response = self.client.post('/api/pools/save/',
                                    self.load_pool_json('pool.json'),
                                    format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals(
            'Failed to change limits for pool. Members limit differs from pool default limit     Set all members with the same default limit before changing default pool limit.',
            response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
    def test_save_pool_given_pool_associated_with_one_or_more_vips(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            UpdateEnvironmentVIPException())

        response = self.client.post('/api/pools/save/',
                                    self.load_pool_json('pool.json'),
                                    format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals(
            'Ambiente nao pode ser alterado pois o server pool esta associado com um ou mais VIP.',
            response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
    def test_save_pool_given_pool_already_created_on_equipment(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            UpdateEnvironmentPoolCreatedException())

        response = self.client.post('/api/pools/save/',
                                    self.load_pool_json('pool.json'),
                                    format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals(
            'Ambiente nao pode ser alterado pois o server pool ja esta criado no equipamento.',
            response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
    def test_save_pool_given_invalid_real_data(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            (self.create_server_pool_model(), None))
        prepare_to_save_reals_mock = self.mock_prepare_to_save_reals(
            InvalidRealPoolException())

        response = self.client.post(
            '/api/pools/save/', self.load_pool_json('pool.json'), format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals('Parametros invalidos do real.',
                          response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
        self.assertTrue(prepare_to_save_reals_mock.called)
    def test_save_pool_given_environment_not_linked_to_vip_environment(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            (self.create_server_pool_model(), None))
        prepare_to_save_reals_mock = self.mock_prepare_to_save_reals(
            [self.create_real_dict()])
        reals_can_associate_server_pool_mock = self.mock_reals_can_associate_server_pool(
            EnvironmentEnvironmentVipNotBoundedException())

        response = self.client.post(
            '/api/pools/save/', self.load_pool_json('pool.json'), format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals(
            'There is no link between environment and environment vip.', response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
        self.assertTrue(prepare_to_save_reals_mock.called)
        self.assertTrue(reals_can_associate_server_pool_mock.called)
    def test_save_pool_given_script_error_change_pool_priority(self):
        self.mock_get_service_down_action_by_environment(
            OptionPool(name='none'))
        self.mock_filter_server_pool_by_identifier(None)
        self.mock_get_or_create_healthcheck(Healthcheck())
        save_pool_mock = self.mock_save_server_pool(
            (self.create_server_pool_model(), None))
        prepare_to_save_reals_mock = self.mock_prepare_to_save_reals(
            [self.create_real_dict()])
        reals_can_associate_server_pool_mock = self.mock_reals_can_associate_server_pool(
            None)
        save_server_pool_member_mock = self.mock_save_server_pool_member(
            ScriptAlterPriorityPoolMembersException())

        response = self.client.post(
            '/api/pools/save/', self.load_pool_json('pool.json'), format='json')
        self.assertEquals(400, response.status_code)
        self.assertEquals(
            'Failed to execute priority script for pool.', response.data.get('detail'))
        self.assertTrue(save_pool_mock.called)
        self.assertTrue(prepare_to_save_reals_mock.called)
        self.assertTrue(reals_can_associate_server_pool_mock.called)
        self.assertTrue(save_server_pool_member_mock.called)