Esempio n. 1
0
    def test_clone_image_authorization(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data
        self.configuration.sf_allow_template_caching = True
        sfv = SolidFireDriver(configuration=self.configuration)

        # Make sure if it's NOT public and we're NOT the owner it
        # doesn't try and cache
        _fake_image_meta = {
            'id': '17c550bb-a411-44c0-9aaf-0d96dd47f501',
            'updated_at': datetime.datetime(2013, 9, 28, 15, 27, 36, 325355),
            'properties': {
                'virtual_size': 1
            },
            'is_public': False,
            'owner': 'wrong-owner'
        }
        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt, self.mock_volume, 'fake',
                                         _fake_image_meta, 'fake'))

        # And is_public False, but the correct owner does work
        # expect raise AccountNotFound as that's the next call after
        # auth checks
        _fake_image_meta['owner'] = 'testprjid'
        self.assertRaises(exception.SolidFireAccountNotFound, sfv.clone_image,
                          self.ctxt, self.mock_volume, 'fake',
                          _fake_image_meta, 'fake')

        # And is_public True, even if not the correct owner
        _fake_image_meta['is_public'] = True
        _fake_image_meta['owner'] = 'wrong-owner'
        self.assertRaises(exception.SolidFireAccountNotFound, sfv.clone_image,
                          self.ctxt, self.mock_volume, 'fake',
                          _fake_image_meta, 'fake')
Esempio n. 2
0
    def test_clone_image_not_configured(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data

        sfv = SolidFireDriver(configuration=self.configuration)
        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt, self.mock_volume, 'fake',
                                         self.fake_image_meta, 'fake'))
Esempio n. 3
0
    def test_clone_image_not_configured(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data

        sfv = SolidFireDriver(configuration=self.configuration)
        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt,
                                         self.mock_volume,
                                         'fake',
                                         self.fake_image_meta,
                                         'fake'))
Esempio n. 4
0
    def test_clone_image_virt_size_not_set(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data
        self.configuration.sf_allow_template_caching = True
        sfv = SolidFireDriver(configuration=self.configuration)

        # Don't run clone_image if virtual_size property not on image
        _fake_image_meta = {
            'id': '17c550bb-a411-44c0-9aaf-0d96dd47f501',
            'updated_at': datetime.datetime(2013, 9, 28, 15, 27, 36, 325355),
            'is_public': True,
            'owner': 'testprjid'
        }

        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt, self.mock_volume, 'fake',
                                         _fake_image_meta, 'fake'))
Esempio n. 5
0
    def test_clone_image_virt_size_not_set(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data
        self.configuration.sf_allow_template_caching = True
        sfv = SolidFireDriver(configuration=self.configuration)

        # Don't run clone_image if virtual_size property not on image
        _fake_image_meta = {'id': '17c550bb-a411-44c0-9aaf-0d96dd47f501',
                            'updated_at': datetime.datetime(2013, 9,
                                                            28, 15,
                                                            27, 36,
                                                            325355),
                            'is_public': True,
                            'owner': 'testprjid'}

        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt,
                                         self.mock_volume,
                                         'fake',
                                         _fake_image_meta,
                                         'fake'))
Esempio n. 6
0
    def test_clone_image_authorization(self, _mock_issue_api_request):
        _mock_issue_api_request.return_value = self.mock_stats_data
        self.configuration.sf_allow_template_caching = True
        sfv = SolidFireDriver(configuration=self.configuration)

        # Make sure if it's NOT public and we're NOT the owner it
        # doesn't try and cache
        _fake_image_meta = {'id': '17c550bb-a411-44c0-9aaf-0d96dd47f501',
                            'updated_at': datetime.datetime(2013, 9,
                                                            28, 15,
                                                            27, 36,
                                                            325355),
                            'properties': {'virtual_size': 1},
                            'is_public': False,
                            'owner': 'wrong-owner'}
        self.assertEqual((None, False),
                         sfv.clone_image(self.ctxt,
                                         self.mock_volume,
                                         'fake',
                                         _fake_image_meta,
                                         'fake'))

        # And is_public False, but the correct owner does work
        # expect raise AccountNotFound as that's the next call after
        # auth checks
        _fake_image_meta['owner'] = 'testprjid'
        self.assertRaises(exception.SolidFireAccountNotFound,
                          sfv.clone_image, self.ctxt,
                          self.mock_volume, 'fake',
                          _fake_image_meta, 'fake')

        # And is_public True, even if not the correct owner
        _fake_image_meta['is_public'] = True
        _fake_image_meta['owner'] = 'wrong-owner'
        self.assertRaises(exception.SolidFireAccountNotFound,
                          sfv.clone_image, self.ctxt,
                          self.mock_volume, 'fake',
                          _fake_image_meta, 'fake')