Пример #1
0
def copy(request, tenant_id, container_name, object_name):
    containers = \
            [(c.unquote_name, c.unquote_name) for c in api.swift_get_containers(
                    request, request.session.get('storage_url', None)) ]
    form, handled = CopyObject.maybe_handle(request, containers=containers)

    container_name_unquoted = unquote(container_name)
    object_name_unquoted = unquote(object_name)

    if handled:
        return handled

    form.fields['new_container_name'].initial = container_name_unquoted
    form.fields['orig_container_name'].initial = container_name_unquoted
    form.fields['orig_object_name'].initial = object_name_unquoted

    return render_to_response(
        'django_openstack/dash/objects/copy.html', {
            'container_name': container_name,
            'container_name_unquoted': container_name_unquoted,
            'object_name': object_name,
            'object_name_unquoted': object_name_unquoted,
            'copy_form': form
        },
        context_instance=template.RequestContext(request))
    def test_index(self):
        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(
                IsA(http.HttpRequest)).AndReturn([self.container])

        self.mox.ReplayAll()

        res = self.client.get(reverse('dash_containers', args=['tenant']))

        self.assertTemplateUsed(res, 'dash_containers.html')
        self.assertIn('containers', res.context)
        containers = res.context['containers']

        self.assertEqual(len(containers), 1)
        self.assertEqual(containers[0].name, 'containerName')

        self.mox.VerifyAll()
    def test_index(self):
        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(IsA(http.HttpRequest)).AndReturn(
            [self.container])

        self.mox.ReplayAll()

        res = self.client.get(reverse('dash_containers', args=['tenant']))

        self.assertTemplateUsed(res,
                                'django_openstack/dash/containers/index.html')
        self.assertIn('containers', res.context)
        containers = res.context['containers']

        self.assertEqual(len(containers), 1)
        self.assertEqual(containers[0].name, 'containerName')

        self.mox.VerifyAll()
Пример #4
0
    def test_copy_index(self):
        OBJECT_NAME = 'objectName'

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(IsA(http.HttpRequest)).AndReturn([container])

        self.mox.ReplayAll()

        res = self.client.get(
            reverse('dash_object_copy',
                    args=[self.TEST_TENANT, self.CONTAINER_NAME, OBJECT_NAME]))

        self.assertTemplateUsed(res, 'django_openstack/dash/objects/copy.html')

        self.mox.VerifyAll()
    def test_copy_index(self):
        OBJECT_NAME = 'objectName'

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(
                IsA(http.HttpRequest)).AndReturn([container])

        self.mox.ReplayAll()

        res = self.client.get(reverse('dash_object_copy',
                                      args=[self.TEST_TENANT,
                                            self.CONTAINER_NAME,
                                            OBJECT_NAME]))

        self.assertTemplateUsed(res, 'dash_object_copy.html')

        self.mox.VerifyAll()
Пример #6
0
def index(request, tenant_id):
    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    containers = api.swift_get_containers(request)

    return shortcuts.render_to_response('dash_containers.html', {
        'containers': containers,
        'delete_form': delete_form,
    }, context_instance=template.RequestContext(request))
Пример #7
0
    def test_copy(self):
        NEW_CONTAINER_NAME = self.CONTAINER_NAME
        NEW_OBJECT_NAME = 'newObjectName'
        ORIG_CONTAINER_NAME = 'origContainerName'
        ORIG_OBJECT_NAME = 'origObjectName'

        formData = {
            'method': 'CopyObject',
            'new_container_name': NEW_CONTAINER_NAME,
            'new_object_name': NEW_OBJECT_NAME,
            'orig_container_name': ORIG_CONTAINER_NAME,
            'orig_object_name': ORIG_OBJECT_NAME
        }

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(IsA(http.HttpRequest)).AndReturn([container])

        self.mox.StubOutWithMock(api, 'swift_copy_object')
        api.swift_copy_object(IsA(http.HttpRequest), ORIG_CONTAINER_NAME,
                              ORIG_OBJECT_NAME, NEW_CONTAINER_NAME,
                              NEW_OBJECT_NAME)

        self.mox.ReplayAll()

        res = self.client.post(
            reverse(
                'dash_object_copy',
                args=[self.TEST_TENANT, ORIG_CONTAINER_NAME,
                      ORIG_OBJECT_NAME]), formData)

        self.assertRedirectsNoFollow(
            res,
            reverse(
                'dash_object_copy',
                args=[self.TEST_TENANT, ORIG_CONTAINER_NAME,
                      ORIG_OBJECT_NAME]))

        self.mox.VerifyAll()
Пример #8
0
def index(request, tenant_id):
    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    containers = api.swift_get_containers(request)

    return shortcuts.render_to_response(
    'django_openstack/dash/containers/index.html', {
        'containers': containers,
        'delete_form': delete_form,
    }, context_instance=template.RequestContext(request))
Пример #9
0
def index(request, tenant_id):
    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    containers = []
    try:
        containers = api.swift_get_containers(request)
    except Exception, e:
        msg = "Unable to retrieve containers from swift: %s" % str(e)
        LOG.exception(msg)
        messages.error(request, msg)
Пример #10
0
def index(request, tenant_id):
    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    containers = []
    try:
        containers = api.swift_get_containers(request)
    except Exception, e:
        msg = "Unable to retrieve containers from swift: %s" % str(e)
        LOG.exception(msg)
        messages.error(request, msg)
Пример #11
0
    def test_copy(self):
        NEW_CONTAINER_NAME = self.CONTAINER_NAME
        NEW_OBJECT_NAME = 'newObjectName'
        ORIG_CONTAINER_NAME = 'origContainerName'
        ORIG_OBJECT_NAME = 'origObjectName'

        formData = {'method': 'CopyObject',
                    'new_container_name': NEW_CONTAINER_NAME,
                    'new_object_name': NEW_OBJECT_NAME,
                    'orig_container_name': ORIG_CONTAINER_NAME,
                    'orig_object_name': ORIG_OBJECT_NAME}

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(
                IsA(http.HttpRequest)).AndReturn([container])

        self.mox.StubOutWithMock(api, 'swift_copy_object')
        api.swift_copy_object(IsA(http.HttpRequest),
                              ORIG_CONTAINER_NAME,
                              ORIG_OBJECT_NAME,
                              NEW_CONTAINER_NAME,
                              NEW_OBJECT_NAME)

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_object_copy',
                                       args=[self.TEST_TENANT,
                                             ORIG_CONTAINER_NAME,
                                             ORIG_OBJECT_NAME]),
                              formData)

        self.assertRedirectsNoFollow(res, reverse('dash_object_copy',
                                                  args=[self.TEST_TENANT,
                                                        ORIG_CONTAINER_NAME,
                                                        ORIG_OBJECT_NAME]))

        self.mox.VerifyAll()
Пример #12
0
def index(request, tenant_id):
    marker = request.GET.get('marker', None)

    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    containers = api.swift_get_containers(request, marker=marker)

    return shortcuts.render_to_response(
    'django_openstack/dash/containers/index.html', {
        'containers': containers,
        'delete_form': delete_form,
    }, context_instance=template.RequestContext(request))
Пример #13
0
def copy(request, tenant_id, container_name, object_name):
    containers = [(c.name, c.name) for c in api.swift_get_containers(request)]
    form, handled = CopyObject.maybe_handle(request, containers=containers)

    if handled:
        return handled

    form.fields["new_container_name"].initial = container_name
    form.fields["orig_container_name"].initial = container_name
    form.fields["orig_object_name"].initial = object_name

    return render_to_response(
        "django_openstack/dash/objects/copy.html",
        {"container_name": container_name, "object_name": object_name, "copy_form": form},
        context_instance=template.RequestContext(request),
    )
Пример #14
0
    def test_swift_get_containers(self):
        containers = (TEST_RETURN, TEST_RETURN + "2")

        swift_api = self.stub_swift_api()

        swift_api.get_all_containers().AndReturn(containers)

        self.mox.ReplayAll()

        ret_val = api.swift_get_containers(self.request)

        self.assertEqual(len(ret_val), len(containers))
        for container in ret_val:
            self.assertIsInstance(container, api.Container)
            self.assertIn(container._apiresource, containers)

        self.mox.VerifyAll()
Пример #15
0
 def handle(self, request, data):
     storage_url = data['storage_url']
     storage_urls = data['storage_urls']
     if storage_url:
         target_url = storage_url
     elif storage_urls:
         target_url = storage_urls
     containers = []
     try:
         containers = api.swift_get_containers(request, target_url)
         request.session['storage_url'] = target_url
         if not request.session.get('storage_url_list', None):
             request.session['storage_url_list'] =  set()
         request.session['storage_url_list'].add(target_url)
     except Exception, e:
         msg = "Unable to retrieve containers from swift: %s" % str(e)
         LOG.exception(msg)
         messages.error(request, msg)
         return shortcuts.redirect('dash_containers' , request.user.tenant_id)
Пример #16
0
 def handle(self, request, data):
     storage_url = data['storage_url']
     storage_urls = data['storage_urls']
     if storage_url:
         target_url = storage_url
     elif storage_urls:
         target_url = storage_urls
     containers = []
     try:
         containers = api.swift_get_containers(request, target_url)
         request.session['storage_url'] = target_url
         if not request.session.get('storage_url_list', None):
             request.session['storage_url_list'] = set()
         request.session['storage_url_list'].add(target_url)
     except Exception, e:
         msg = "Unable to retrieve containers from swift: %s" % str(e)
         LOG.exception(msg)
         messages.error(request, msg)
         return shortcuts.redirect('dash_containers',
                                   request.user.tenant_id)
Пример #17
0
def copy(request, tenant_id, container_name, object_name):
    containers = \
            [(c.name, c.name) for c in api.swift_get_containers(
                    request)]
    form, handled = CopyObject.maybe_handle(request,
            containers=containers)

    if handled:
        return handled

    form.fields['new_container_name'].initial = container_name
    form.fields['orig_container_name'].initial = container_name
    form.fields['orig_object_name'].initial = object_name

    return render_to_response(
        'django_openstack/dash/objects/copy.html',
        {'container_name': container_name,
         'object_name': object_name,
         'copy_form': form},
        context_instance=template.RequestContext(request))
Пример #18
0
def _index(request, tenant_id, expire_session):

    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    if expire_session and request.session.has_key('storage_url'):
        print 'removing session'
        del request.session['storage_url']
    storage_urls = request.session.get('storage_url_list', [])
    storage_url = request.session.get('storage_url', None)
    storage_url_form, handled = OtherContainer.maybe_handle(
        request, storage_urls=storage_urls, storage_url=storage_url)
    if handled:
        return handled

    containers = []
    try:
        containers = api.swift_get_containers(request, storage_url)
    except Exception, e:
        msg = "Unable to retrieve containers from swift: %s" % str(e)
        LOG.exception(msg)
        messages.error(request, msg)
Пример #19
0
def copy(request, tenant_id, container_name, object_name):
    containers = \
            [(c.unquote_name, c.unquote_name) for c in api.swift_get_containers(
                    request, request.session.get('storage_url', None)) ]
    form, handled = CopyObject.maybe_handle(request, containers=containers)

    container_name_unquoted = unquote(container_name)
    object_name_unquoted = unquote(object_name)

    if handled:
        return handled

    form.fields['new_container_name'].initial = container_name_unquoted
    form.fields['orig_container_name'].initial = container_name_unquoted
    form.fields['orig_object_name'].initial = object_name_unquoted

    return render_to_response(
        'django_openstack/dash/objects/copy.html',
        {'container_name': container_name,
         'container_name_unquoted' : container_name_unquoted,
         'object_name': object_name,
         'object_name_unquoted' : object_name_unquoted,
         'copy_form': form},
        context_instance=template.RequestContext(request))
Пример #20
0
def _index(request, tenant_id, expire_session):

    delete_form, handled = DeleteContainer.maybe_handle(request)
    if handled:
        return handled

    if expire_session and request.session.has_key('storage_url'):
       print 'removing session'
       del request.session['storage_url']
    storage_urls = request.session.get('storage_url_list', [])
    storage_url = request.session.get('storage_url', None)
    storage_url_form, handled = OtherContainer.maybe_handle(request,
                  storage_urls=storage_urls, storage_url=storage_url)
    if handled:
        return handled


    containers = []
    try:
        containers = api.swift_get_containers(request, storage_url)
    except Exception, e:
        msg = "Unable to retrieve containers from swift: %s" % str(e)
        LOG.exception(msg)
        messages.error(request, msg)