예제 #1
0
 def test_get_changed_fields_snapshot(self):
     vol = cinderlib.Volume(self.backend, size=1, extra_specs={'k': 'v'})
     snap = cinderlib.Snapshot(vol)
     self.persistence.set_snapshot(snap)
     snap._ovo.display_name = "abcde"
     result = self.persistence.get_changed_fields(snap)
     self.assertEqual(result, {'display_name': snap._ovo.display_name})
예제 #2
0
    def test_set_snapshot(self):
        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        snap = cinderlib.Snapshot(vol, name='disk')

        self.assertDictEqual({}, self.persistence.snapshots)

        self.persistence.set_snapshot(snap)
        self.assertDictEqual({snap.id: snap}, self.persistence.snapshots)
예제 #3
0
    def test_set_connection(self):
        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        conn = cinderlib.Connection(self.backend, volume=vol, connector={})

        self.assertDictEqual({}, self.persistence.connections)

        self.persistence.set_connection(conn)
        self.assertDictEqual({conn.id: conn}, self.persistence.connections)
예제 #4
0
 def test_create_volume_with_default_volume_type(self):
     vol = cinderlib.Volume(self.backend, size=1, name='disk')
     self.persistence.set_volume(vol)
     self.assertEqual(self.persistence.DEFAULT_TYPE.id, vol.volume_type_id)
     self.assertIs(self.persistence.DEFAULT_TYPE, vol.volume_type)
     res = sqla_api.volume_type_get(self.context, vol.volume_type_id)
     self.assertIsNotNone(res)
     self.assertEqual('__DEFAULT__', res['name'])
예제 #5
0
파일: base.py 프로젝트: karmab/cinderlib
 def create_volumes(self, data):
     vols = []
     for d in data:
         d.setdefault('backend_or_vol', self.backend)
         vol = cinderlib.Volume(**d)
         vols.append(vol)
         self.persistence.set_volume(vol)
     return self.sorted(vols)
예제 #6
0
파일: base.py 프로젝트: openstack/cinderlib
    def test_volume_refresh_with_conn_and_snaps(self, get_conns_mock,
                                                get_snaps_mock, get_mock):
        vol = self.create_n_volumes(1)[0]
        vol_id = vol.id
        vol.local_attach = mock.sentinel.local_attach
        get_mock.return_value = cinderlib.Volume(vol)

        vol.refresh()

        get_mock.assert_called_once_with(vol_id)
        get_conns_mock.assert_called_once_with()
        get_snaps_mock.assert_called_once_with()
        self.assertIs(mock.sentinel.local_attach, vol.local_attach)
예제 #7
0
파일: base.py 프로젝트: openstack/cinderlib
    def test_volume_refresh(self, get_conns_mock, get_snaps_mock, get_mock):
        vol = self.create_n_volumes(1)[0]
        vol_id = vol.id
        # This is to simulate situation where the persistence does lazy loading
        vol._snapshots = vol._connections = None
        get_mock.return_value = cinderlib.Volume(vol)

        vol.refresh()

        get_mock.assert_called_once_with(vol_id)
        get_conns_mock.assert_not_called()
        get_snaps_mock.assert_not_called()
        self.assertIsNone(vol.local_attach)
예제 #8
0
    def test_set_volume(self):
        res = sqla_api.volume_get_all(self.context)
        self.assertListEqual([], res)

        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        expected = {'availability_zone': vol.availability_zone,
                    'size': vol.size, 'name': vol.name}

        self.persistence.set_volume(vol)

        db_vol = sqla_api.volume_get(self.context, vol.id)
        actual = {'availability_zone': db_vol.availability_zone,
                  'size': db_vol.size, 'name': db_vol.display_name}

        self.assertDictEqual(expected, actual)
예제 #9
0
    def test_set_snapshot(self):
        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        snap = cinderlib.Snapshot(vol, name='disk')

        self.assertEqual(0, len(sqla_api.snapshot_get_all(self.context)))

        self.persistence.set_snapshot(snap)

        db_entries = sqla_api.snapshot_get_all(self.context)
        self.assertEqual(1, len(db_entries))

        ovo_snap = cinder_ovos.Snapshot(self.context)
        ovo_snap._from_db_object(ovo_snap._context, ovo_snap, db_entries[0])
        cl_snap = cinderlib.Snapshot(vol, __ovo=ovo_snap)

        self.assertEqualObj(snap, cl_snap)
예제 #10
0
    def test_set_connection(self):
        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        conn = cinderlib.Connection(self.backend, volume=vol, connector={})

        self.assertEqual(0,
                         len(sqla_api.volume_attachment_get_all(self.context)))

        self.persistence.set_connection(conn)

        db_entries = sqla_api.volume_attachment_get_all(self.context)
        self.assertEqual(1, len(db_entries))

        ovo_conn = cinder_ovos.VolumeAttachment(self.context)
        ovo_conn._from_db_object(ovo_conn._context, ovo_conn, db_entries[0])
        cl_conn = cinderlib.Connection(vol.backend, volume=vol, __ovo=ovo_conn)

        self.assertEqualObj(conn, cl_conn)
예제 #11
0
 def test_delete_volume_not_found(self):
     vols = self.create_n_volumes(2)
     fake_vol = cinderlib.Volume(backend_or_vol=self.backend)
     self.persistence.delete_volume(fake_vol)
     res = self.persistence.get_volumes()
     self.assertListEqualObj(vols, self.sorted(res))
예제 #12
0
    def test_set_volume(self):
        vol = cinderlib.Volume(self.backend, size=1, name='disk')
        self.assertDictEqual({}, self.persistence.volumes)

        self.persistence.set_volume(vol)
        self.assertDictEqual({vol.id: vol}, self.persistence.volumes)