Exemplo n.º 1
0
    def test_restore_backup(self):
        policy.check((), IsA(http.HttpRequest)).MultipleTimes().AndReturn(True)
        backup = self.database_backups.first()
        api.trove.backup_get(IsA(http.HttpRequest), IsA(six.text_type)) \
            .AndReturn(self.database_backups.first())
        api.trove.backup_list(IsA(http.HttpRequest)).AndReturn(
            self.database_backups.list())
        api.trove.configuration_list(IsA(http.HttpRequest)) \
            .AndReturn(self.database_configurations.list())
        api.trove.datastore_flavors(IsA(http.HttpRequest),
                                    IsA(six.string_types),
                                    IsA(six.string_types)) \
            .AndReturn(self.flavors.list())
        api.trove.datastore_list(IsA(http.HttpRequest)) \
            .AndReturn(self.datastores.list())
        api.trove.datastore_version_list(IsA(http.HttpRequest),
                                         backup.datastore['type']) \
            .AndReturn(self.datastore_versions.list())
        api.trove.instance_list(IsA(http.HttpRequest), marker=None) \
            .AndReturn(common.Paginated(self.databases.list()))
        dash_api.cinder.volume_type_list(IsA(http.HttpRequest)).AndReturn([])
        dash_api.neutron.network_list(IsA(http.HttpRequest),
                                      tenant_id=self.tenant.id,
                                      shared=False).\
            AndReturn(self.networks.list()[:1])
        dash_api.nova.availability_zone_list(IsA(http.HttpRequest)) \
            .AndReturn(self.availability_zones.list())
        self.mox.ReplayAll()

        url = RESTORE_URL + '?backup=%s' % self.database_backups.first().id
        res = self.client.get(url)
        self.assertTemplateUsed(res, 'project/databases/launch.html')

        set_instance_detail_step = \
            [step for step in res.context_data['workflow'].steps
             if isinstance(step, create_instance.SetInstanceDetails)][0]
        fields = set_instance_detail_step.action.fields
        self.assertTrue(len(fields['datastore'].choices), 1)
        text = 'mysql - 5.6'
        choice = fields['datastore'].choices[0]
        self.assertTrue(choice[0], common_utils.hexlify(text))
        self.assertTrue(choice[1], text)

        advanced_step = [
            step for step in res.context_data['workflow'].steps
            if isinstance(step, create_instance.Advanced)
        ][0]
        fields = advanced_step.action.fields
        self.assertTrue(len(fields['initial_state'].choices), 1)
        choice = fields['initial_state'].choices[0]
        self.assertTrue(choice[0], 'backup')
        self.assertTrue(choice[1], _('Restore from Backup'))
Exemplo n.º 2
0
 def _build_flavor_widget_name(self, datastore, datastore_version):
     return common_utils.hexlify(
         self._build_datastore_display_text(datastore, datastore_version))
Exemplo n.º 3
0
 def _build_widget_field_name(self, datastore, datastore_version):
     # Since the fieldnames cannot contain an uppercase character
     # we generate a hex encoded string representation of the
     # datastore and version as the fieldname
     return common_utils.hexlify(
         self._build_datastore_display_text(datastore, datastore_version))
Exemplo n.º 4
0
    def test_restore_backup(self):
        backup = self.database_backups.first()
        self.mock_check.return_value = True
        self.mock_backup_get.return_value = self.database_backups.first()
        self.mock_backup_list.return_value = self.database_backups.list()
        self.mock_configuration_list.return_value = (
            self.database_configurations.list())
        self.mock_datastore_flavors.return_value = self.flavors.list()
        self.mock_datastore_list.return_value = self.datastores.list()
        self.mock_datastore_version_list.return_value = (
            self.datastore_versions.list())
        self.mock_instance_list.return_value = (common.Paginated(
            self.databases.list()))
        self.mock_volume_type_list.return_vlue = []
        self.mock_network_list_for_tenant.return_value = (
            self.networks.list()[:1])
        self.mock_availability_zone_list.return_value = (
            self.availability_zones.list())

        url = RESTORE_URL + '?backup=%s' % self.database_backups.first().id
        res = self.client.get(url)
        self.assert_mock_multiple_calls_with_same_arguments(
            self.mock_check, 5, mock.call((), test.IsHttpRequest()))
        self.mock_backup_get.assert_called_once_with(test.IsHttpRequest(),
                                                     test.IsA(str))
        self.mock_backup_list.assert_called_once_with(test.IsHttpRequest())
        self.mock_configuration_list.assert_called_once_with(
            test.IsHttpRequest())
        self.mock_datastore_flavors.assert_called_once_with(
            test.IsHttpRequest(), test.IsA(str), test.IsA(str))
        self.mock_datastore_list.assert_called_once_with(test.IsHttpRequest())
        self.mock_datastore_version_list.assert_called_once_with(
            test.IsHttpRequest(), backup.datastore['type'])
        self.mock_instance_list.assert_called_once_with(test.IsHttpRequest())
        self.mock_volume_type_list.assert_called_once_with(
            test.IsHttpRequest())
        self.mock_network_list_for_tenant.assert_called_once_with(
            test.IsHttpRequest(),
            self.tenant.id,
            include_pre_auto_allocate=True)
        self.mock_availability_zone_list.assert_called_once_with(
            test.IsHttpRequest())
        self.assertTemplateUsed(res, 'project/databases/launch.html')

        set_instance_detail_step = \
            [step for step in res.context_data['workflow'].steps
             if isinstance(step, create_instance.SetInstanceDetails)][0]
        fields = set_instance_detail_step.action.fields
        self.assertTrue(len(fields['datastore'].choices), 1)
        text = 'mysql - 5.6'
        choice = fields['datastore'].choices[0]
        self.assertTrue(choice[0], common_utils.hexlify(text))
        self.assertTrue(choice[1], text)

        advanced_step = [
            step for step in res.context_data['workflow'].steps
            if isinstance(step, create_instance.Advanced)
        ][0]
        fields = advanced_step.action.fields
        self.assertTrue(len(fields['initial_state'].choices), 1)
        choice = fields['initial_state'].choices[0]
        self.assertTrue(choice[0], 'backup')
        self.assertTrue(choice[1], _('Restore from Backup'))