Example #1
0
 def test_create_consistencygroup_from_src_volumes(self, create_snapshot,
                                                   create_volume,
                                                   delete_snapshot):
     src_cgroup = fake_cgroup(self.ctxt)
     dst_cgroup_spec = {'id': fake.CONSISTENCY_GROUP2_ID}
     dst_cgroup = fake_cgroup(self.ctxt, **dst_cgroup_spec)
     src_volume = fake_volume(self.ctxt)
     src_volumes = [src_volume]
     dst_volume_spec = {'id': fake.VOLUME2_ID}
     dst_volume = fake_volume(self.ctxt, **dst_volume_spec)
     dst_volumes = [dst_volume]
     create_snapshot.return_value = {}
     create_volume.return_value = {}
     delete_snapshot.return_value = {}
     result = self.drv.create_consistencygroup_from_src(
         self.ctxt, dst_cgroup, dst_volumes, None, None, src_cgroup,
         src_volumes)
     snapshot_name = (self.cfg.nexenta_origin_snapshot_template %
                      dst_cgroup['id'])
     snapshot_path = '%s@%s' % (self.drv.root_path, snapshot_name)
     create_payload = {'path': snapshot_path, 'recursive': True}
     create_snapshot.assert_called_with(create_payload)
     snapshot = {
         'name': snapshot_name,
         'volume_id': src_volume['id'],
         'volume_name': src_volume['name'],
         'volume_size': src_volume['size']
     }
     create_volume.assert_called_with(dst_volume, snapshot)
     delete_payload = {'defer': True, 'recursive': True}
     delete_snapshot.assert_called_with(snapshot_path, delete_payload)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #2
0
 def test_delete_consistencygroup(self, delete_volume):
     cgroup = fake_cgroup(self.ctxt)
     volume1 = fake_volume(self.ctxt)
     volume2_spec = {'id': fake.VOLUME2_ID}
     volume2 = fake_volume(self.ctxt, **volume2_spec)
     volumes = [volume1, volume2]
     delete_volume.return_value = {}
     result = self.drv.delete_consistencygroup(self.ctxt, cgroup, volumes)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #3
0
 def test_delete_consistencygroup(self, delete_volume):
     cgroup = fake_cgroup(self.ctxt)
     volume1 = fake_volume(self.ctxt)
     volume2_spec = {'id': fake.VOLUME2_ID}
     volume2 = fake_volume(self.ctxt, **volume2_spec)
     volumes = [volume1, volume2]
     delete_volume.return_value = {}
     result = self.drv.delete_consistencygroup(self.ctxt,
                                               cgroup,
                                               volumes)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #4
0
 def test_create_consistencygroup_from_src_volumes(self,
                                                   create_snapshot,
                                                   create_volume,
                                                   delete_snapshot):
     src_cgroup = fake_cgroup(self.ctxt)
     dst_cgroup_spec = {'id': fake.CONSISTENCY_GROUP2_ID}
     dst_cgroup = fake_cgroup(self.ctxt, **dst_cgroup_spec)
     src_volume = fake_volume(self.ctxt)
     src_volumes = [src_volume]
     dst_volume_spec = {'id': fake.VOLUME2_ID}
     dst_volume = fake_volume(self.ctxt, **dst_volume_spec)
     dst_volumes = [dst_volume]
     create_snapshot.return_value = {}
     create_volume.return_value = {}
     delete_snapshot.return_value = {}
     result = self.drv.create_consistencygroup_from_src(self.ctxt,
                                                        dst_cgroup,
                                                        dst_volumes,
                                                        None, None,
                                                        src_cgroup,
                                                        src_volumes)
     snapshot_name = (
         self.cfg.nexenta_origin_snapshot_template % dst_cgroup['id'])
     snapshot_path = '%s@%s' % (self.drv.root_path, snapshot_name)
     create_payload = {'path': snapshot_path, 'recursive': True}
     create_snapshot.assert_called_with(create_payload)
     snapshot = {
         'name': snapshot_name,
         'volume_id': src_volume['id'],
         'volume_name': src_volume['name'],
         'volume_size': src_volume['size']
     }
     create_volume.assert_called_with(dst_volume, snapshot)
     delete_payload = {'defer': True, 'recursive': True}
     delete_snapshot.assert_called_with(snapshot_path, delete_payload)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #5
0
 def test_update_consistencygroup(self):
     cgroup = fake_cgroup(self.ctxt)
     volume1 = fake_volume(self.ctxt)
     volume2_spec = {'id': fake.VOLUME2_ID}
     volume2 = fake_volume(self.ctxt, **volume2_spec)
     volume3_spec = {'id': fake.VOLUME3_ID}
     volume3 = fake_volume(self.ctxt, **volume3_spec)
     volume4_spec = {'id': fake.VOLUME4_ID}
     volume4 = fake_volume(self.ctxt, **volume4_spec)
     add_volumes = [volume1, volume2]
     remove_volumes = [volume3, volume4]
     result = self.drv.update_consistencygroup(self.ctxt, cgroup,
                                               add_volumes, remove_volumes)
     expected = ({}, [], [])
     self.assertEqual(expected, result)
Example #6
0
 def test_create_consistencygroup_from_src_snapshots(self, create_volume):
     cgroup = fake_cgroup(self.ctxt)
     cgsnapshot = fake_cgsnapshot(self.ctxt)
     volume = fake_volume(self.ctxt)
     snapshot = fake_snapshot(self.ctxt)
     snapshot.volume = volume
     snapshots = [snapshot]
     clone_spec = {'id': fake.VOLUME2_ID}
     clone = fake_volume(self.ctxt, **clone_spec)
     clones = [clone]
     create_volume.return_value = {}
     result = self.drv.create_consistencygroup_from_src(
         self.ctxt, cgroup, clones, cgsnapshot, snapshots, None, None)
     create_volume.assert_called_with(clone, snapshot)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #7
0
 def test_update_consistencygroup(self):
     cgroup = fake_cgroup(self.ctxt)
     volume1 = fake_volume(self.ctxt)
     volume2_spec = {'id': fake.VOLUME2_ID}
     volume2 = fake_volume(self.ctxt, **volume2_spec)
     volume3_spec = {'id': fake.VOLUME3_ID}
     volume3 = fake_volume(self.ctxt, **volume3_spec)
     volume4_spec = {'id': fake.VOLUME4_ID}
     volume4 = fake_volume(self.ctxt, **volume4_spec)
     add_volumes = [volume1, volume2]
     remove_volumes = [volume3, volume4]
     result = self.drv.update_consistencygroup(self.ctxt,
                                               cgroup,
                                               add_volumes,
                                               remove_volumes)
     expected = ({}, [], [])
     self.assertEqual(expected, result)
Example #8
0
 def test_create_consistencygroup_from_src_snapshots(self, create_volume):
     cgroup = fake_cgroup(self.ctxt)
     cgsnapshot = fake_cgsnapshot(self.ctxt)
     volume = fake_volume(self.ctxt)
     snapshot = fake_snapshot(self.ctxt)
     snapshot.volume = volume
     snapshots = [snapshot]
     clone_spec = {'id': fake.VOLUME2_ID}
     clone = fake_volume(self.ctxt, **clone_spec)
     clones = [clone]
     create_volume.return_value = {}
     result = self.drv.create_consistencygroup_from_src(self.ctxt, cgroup,
                                                        clones, cgsnapshot,
                                                        snapshots, None,
                                                        None)
     create_volume.assert_called_with(clone, snapshot)
     expected = ({}, [])
     self.assertEqual(expected, result)
Example #9
0
 def test_create_consistencygroup(self):
     cgroup = fake_cgroup(self.ctxt)
     result = self.drv.create_consistencygroup(self.ctxt, cgroup)
     expected = {}
     self.assertEqual(expected, result)