예제 #1
0
    def test_explore_default_provider2(self):
        Storage.explore_provider(self.MyPvd, default_for_snap=True)
        self.assertEqual(Storage.default_snap_provider, self.MyPvd.type)
        self.assertFalse(Storage.default_vol_provider)

        self.assertTrue(isinstance(Storage.lookup_provider(self.MyPvd.type), self.MyPvd))
        self.assertTrue(isinstance(Storage.lookup_provider(None, True), self.MyPvd))
예제 #2
0
    def test_with_ignores(self):
        class VolConfig(VolumeConfig):
            vg = None
            base64_whatever = None
            only_in_volume_config = None
            only_in_snapshot_config = None

        class Vol(VolConfig, Volume):
            _ignores = ('only_in_snapshot_config')

        class Snap(VolConfig, Snapshot):
            _ignores = ('only_in_volume_config', )

        class VolPvd(VolumeProvider):
            type = 'mimimi'
            vol_class = Vol
            snap_class = Snap

        Storage.explore_provider(VolPvd)

        vol = Storage.create(type='mimimi',
                             device='/dev/sdo',
                             vg='vg0',
                             only_in_volume_config='4u',
                             only_in_snapshot_config='4s')
        snap = vol.snapshot()
        snap_cnf = snap.config()
        vol_cnf = vol.config()

        self.assertFalse('only_in_volume_config' in snap_cnf)
        self.assertEqual(snap_cnf['vg'], 'vg0')

        self.assertFalse('only_in_snapshot_config' in vol_cnf)
        self.assertTrue(vol_cnf['base64_whatever'] is None)
예제 #3
0
파일: test.py 프로젝트: AnyBucket/scalarizr
    def test_with_ignores(self):
        class VolConfig(VolumeConfig):
            vg = None
            base64_whatever = None
            only_in_volume_config = None
            only_in_snapshot_config = None

        class Vol(VolConfig, Volume):
            _ignores = ('only_in_snapshot_config')

        class Snap(VolConfig, Snapshot):
            _ignores = ('only_in_volume_config',)

        class VolPvd(VolumeProvider):
            type = 'mimimi'
            vol_class = Vol
            snap_class = Snap
        Storage.explore_provider(VolPvd)


        vol = Storage.create(
                type='mimimi',
                device='/dev/sdo',
                vg='vg0',
                only_in_volume_config='4u',
                only_in_snapshot_config='4s'
        )
        snap = vol.snapshot()
        snap_cnf = snap.config()
        vol_cnf = vol.config()

        self.assertFalse('only_in_volume_config' in snap_cnf)
        self.assertEqual(snap_cnf['vg'], 'vg0')

        self.assertFalse('only_in_snapshot_config' in vol_cnf)
        self.assertTrue(vol_cnf['base64_whatever'] is None)
예제 #4
0
	def blank_config(self, cnf):
		cnf.pop('snapshot_id', None)

	def destroy(self, vol, force=False, **kwargs):
		'''
		@type vol: CSVolume
		'''
		super(CSVolumeProvider, self).destroy(vol)
		conn = self._new_conn()
		if conn:
			voltool.detach_volume(conn, vol.id, LOG)
			voltool.delete_volume(conn, vol.id, LOG)
		vol.device = None							
	
	def destroy_snapshot(self, snap):
		conn = self._new_conn()
		if conn:
			LOG.debug('Deleting EBS snapshot %s', snap.id)
			conn.deleteSnapshot(id=snap.id)
	
	@devname_not_empty		
	def detach(self, vol, force=False):
		super(CSVolumeProvider, self).detach(vol)
		conn = self._new_conn()
		if conn:
			voltool.detach_volume(conn, vol.id, LOG)
		vol.device = None


Storage.explore_provider(CSVolumeProvider)
예제 #5
0
    def detach(self, vol, force=False):
        super(EbsVolumeProvider, self).detach(vol)

        try:
            pl = bus.platform
            conn = pl.new_ec2_conn()
            vol.detached = True
        except AttributeError:
            pass
        else:
            ebstool.detach_volume(conn, vol.id, self._logger)
        finally:
            vol.device = None


Storage.explore_provider(EbsVolumeProvider, default_for_snap=True)


class S3TransferProvider(TransferProvider):
    schema = 's3'
    urlparse.uses_netloc.append(schema)

    acl = None

    _logger = None
    _bucket = None

    def __init__(self, acl='aws-exec-read'):
        self._logger = logging.getLogger(__name__)
        self.acl = acl
예제 #6
0
    def blank_config(self, cnf):
        cnf.pop('snapshot_id', None)

    def destroy(self, vol, force=False, **kwargs):
        '''
        @type vol: CSVolume
        '''
        super(CSVolumeProvider, self).destroy(vol)
        conn = self._new_conn()
        if conn:
            voltool.detach_volume(conn, vol.id, LOG)
            voltool.delete_volume(conn, vol.id, LOG)
        vol.device = None

    def destroy_snapshot(self, snap):
        conn = self._new_conn()
        if conn:
            LOG.debug('Deleting EBS snapshot %s', snap.id)
            conn.deleteSnapshot(id=snap.id)

    @devname_not_empty
    def detach(self, vol, force=False):
        super(CSVolumeProvider, self).detach(vol)
        conn = self._new_conn()
        if conn:
            voltool.detach_volume(conn, vol.id, LOG)
        vol.device = None


Storage.explore_provider(CSVolumeProvider)
예제 #7
0
        super(EbsVolumeProvider, self).detach(vol)

        try:
            pl = bus.platform
            conn = pl.new_ec2_conn()
            vol.detached = True
        except AttributeError:
            pass
        else:
            ebstool.detach_volume(conn, vol.id, self._logger)
        finally:
            vol.device = None



Storage.explore_provider(EbsVolumeProvider, default_for_snap=True)

class S3TransferProvider(TransferProvider):
    schema  = 's3'
    urlparse.uses_netloc.append(schema)

    acl     = None

    _logger = None
    _bucket = None

    def __init__(self, acl='aws-exec-read'):
        self._logger = logging.getLogger(__name__)
        self.acl = acl

    def configure(self, remote_path):
예제 #8
0
 def setUp(self):
     self.VolPvd.vol_class = self.Vol
     Storage.explore_provider(self.VolPvd)
예제 #9
0
 def test_explore_provider(self):
     Storage.explore_provider(self.MyPvd)
     self.assertFalse(Storage.default_snap_provider)
     self.assertFalse(Storage.default_vol_provider)
     self.assertTrue(isinstance(Storage.lookup_provider(self.MyPvd.type), self.MyPvd))