def setUp(self): ECSMockHttp.test = self ECSDriver.connectionCls.conn_class = ECSMockHttp ECSMockHttp.use_param = "Action" ECSMockHttp.type = None self.driver = ECSDriver(*ECS_PARAMS, region=self.region) self.fake_size = NodeSize( "ecs.t1.small", "ecs t1 small", None, None, None, None, self.driver ) self.fake_image = NodeImage( self.image_id, name="ubuntu 14.04 64bit", driver=self.driver ) self.fake_node = Node( id="fake-node1", name="fake-node", state=NodeState.RUNNING, public_ips=None, private_ips=None, driver=self.driver, ) self.fake_volume = StorageVolume( id="fake-volume1", name="fake-volume", size=self.fake_size, driver=self.driver, ) self.fake_snapshot = VolumeSnapshot(id="fake-snapshot1", driver=self.driver) self.fake_location = NodeLocation( id=self.region, name=self.region, country=None, driver=self.driver ) self.fake_instance_id = "fake_instance_id" self.fake_security_group_id = "fake_security_group_id"
def _to_snapshot(self, api_node): if 'snapshot' in api_node: api_node = api_node['snapshot'] extra = { 'volume_id': api_node['volumeId'], 'name': api_node['displayName'], 'created': api_node['createdAt'], 'description': api_node['displayDescription'], 'status': api_node['status'] } state = self.SNAPSHOT_STATE_MAP.get(api_node['status'], VolumeSnapshotState.UNKNOWN) try: created_td = parse_date(api_node['createdAt']) except ValueError: created_td = None snapshot = VolumeSnapshot(id=api_node['id'], driver=self, size=api_node['size'], extra=extra, created=created_td, state=state) return snapshot
def setUp(self): ECSMockHttp.test = self ECSDriver.connectionCls.conn_classes = (ECSMockHttp, ECSMockHttp) ECSMockHttp.use_param = 'Action' ECSMockHttp.type = None self.driver = ECSDriver(*ECS_PARAMS, region=self.region) self.fake_size = NodeSize('ecs.t1.small', 'ecs t1 small', None, None, None, None, self.driver) self.fake_image = NodeImage(self.image_id, name='ubuntu 14.04 64bit', driver=self.driver) self.fake_node = Node(id='fake-node1', name='fake-node', state=NodeState.RUNNING, public_ips=None, private_ips=None, driver=self.driver) self.fake_volume = StorageVolume(id='fake-volume1', name='fake-volume', size=self.fake_size, driver=self.driver) self.fake_snapshot = VolumeSnapshot(id='fake-snapshot1', driver=self.driver) self.fake_location = NodeLocation(id=self.region, name=self.region, country=None, driver=self.driver)
def _to_snapshot(self, api_node): if "snapshot" in api_node: api_node = api_node["snapshot"] extra = { "volume_id": api_node["volumeId"], "name": api_node["displayName"], "created": api_node["createdAt"], "description": api_node["displayDescription"], "status": api_node["status"], } state = self.SNAPSHOT_STATE_MAP.get( api_node["status"], VolumeSnapshotState.UNKNOWN ) try: created_td = parse_date(api_node["createdAt"]) except ValueError: created_td = None snapshot = VolumeSnapshot( id=api_node["id"], driver=self, size=api_node["size"], extra=extra, created=created_td, state=state, name=api_node["displayName"], ) return snapshot
def _to_volume_snapshot(self, data): created = datetime.datetime.strptime( data['created_at'], "%Y-%m-%dT%H:%M:%S") return VolumeSnapshot(id=data['id'], name=data['id'], created=created, state=data['status'], driver=self, extra=data)
def _to_volume_snapshot(self, data): extra = {'created_at': data['created_at'], 'resource_id': data['resource_id'], 'regions': data['regions'], 'min_disk_size': data['min_disk_size']} return VolumeSnapshot(id=data['id'], name=data['name'], size=data['size_gigabytes'], driver=self, extra=extra)
def _to_snapshot(self, snapshot): name = None for tag in snapshot["Tags"]: if tag["Key"] == "Name": name = tag["Value"] return VolumeSnapshot(id=snapshot["SnapshotId"], name=name, size=snapshot["VolumeSize"], driver=self, state=snapshot["State"], created=None, extra=snapshot)
def _to_snapshot(self, snapshot): state = self.SNAPSHOT_STATE_MAP.get(snapshot['state'], VolumeSnapshotState.UNKNOWN) extra = { 'organization': snapshot['organization'], 'volume_type': snapshot['volume_type'], } return VolumeSnapshot(id=snapshot['id'], driver=self, size=_to_lib_size(snapshot['size']), created=parse_date(snapshot['creation_date']), state=state, extra=extra)
def _to_snapshot(self, obj): extra = { 'volume_id': obj['volumeId'], 'region': obj['region'], 'description': obj['description'], 'status': obj['status'], } state = self.SNAPSHOT_STATE_MAP.get(obj['status'], VolumeSnapshotState.UNKNOWN) snapshot = VolumeSnapshot(id=obj['id'], driver=self, size=obj['size'], extra=extra, created=obj['creationDate'], state=state, name=obj['name']) return snapshot
def _to_volume_snapshot(self, data): extra = { "created_at": data["created_at"], "resource_id": data["resource_id"], "regions": data["regions"], "min_disk_size": data["min_disk_size"], } return VolumeSnapshot( id=data["id"], name=data["name"], size=data["size_gigabytes"], driver=self, extra=extra, )
def __init__(self): # pylint: disable=W0231 self._TEST_SIZE = NodeSize( id="test_id", name="test_size", ram=4096, disk=10240, bandwidth=100000, price=0, driver=self, ) self._TEST_NODE = Node( id="test_id", name="test_node", state=NodeState.RUNNING, public_ips=["1.2.3.4"], private_ips=["2.3.4.5"], driver=self, size=self._TEST_SIZE, extra={"ex_key": "ex_value"}, ) self._TEST_LOCATION = NodeLocation(id="test_location", name="location1", country="Australia", driver=self) self._TEST_VOLUME = StorageVolume( id="vol1", name="vol_name", size=40960, driver=self, state=StorageVolumeState.AVAILABLE, extra={"ex_key": "ex_value"}, ) self._TEST_VOLUME_SNAPSHOT = VolumeSnapshot(id="snap1", size=80960, driver=self) self._TEST_IMAGE = NodeImage( id="image1", name="test_image", extra={"ex_key": "ex_value"}, driver=self, ) self._TEST_KEY_PAIR = KeyPair( name="test_key", fingerprint="abc123", public_key="pub123", private_key="priv123", driver=self, extra={"ex_key": "ex_value"}, )
def _to_volume_snapshot(self, data): extra_keys = ['labels', 'status', 'usage_in_minutes', 'location_country', 'current_price', 'parent_uuid'] extra = self._extract_values_to_dict(data=data, keys=extra_keys) volume_snapshot = VolumeSnapshot(id=data['object_uuid'], driver=self.connection.driver, size=data['capacity'], extra=extra, created=parse_date( data['create_time']), state=StorageVolumeState.AVAILABLE, name=data['name']) return volume_snapshot
def _to_snapshot(self, api_node): if 'snapshot' in api_node: api_node = api_node['snapshot'] extra = { 'volume_id': api_node['volumeId'], 'name': api_node['displayName'], 'created': api_node['createdAt'], 'description': api_node['displayDescription'], 'status': api_node['status'] } snapshot = VolumeSnapshot(id=api_node['id'], driver=self, size=api_node['size'], extra=extra) return snapshot
def test_create_volume__with_snapshot(self): location = self.driver.list_locations()[0] snap_id = ('/subscriptions/99999999-9999-9999-9999-999999999999' '/resourceGroups/000000/providers/Microsoft.Compute' '/snapshots/test-snap-1') snapshot = VolumeSnapshot(id=snap_id, size=2, driver=self.driver) volume = self.driver.create_volume(2, 'test-disk-1', location, snapshot=snapshot, ex_resource_group='000000', ex_tags={'description': 'MyVolume'}) self.assertEqual( volume.extra['properties']['creationData']['createOption'], 'Copy') self.assertEqual( volume.extra['properties']['creationData']['sourceUri'], snap_id)
def _to_snapshot(self, obj): extra = { "volume_id": obj["volumeId"], "region": obj["region"], "description": obj["description"], "status": obj["status"], } state = self.SNAPSHOT_STATE_MAP.get(obj["status"], VolumeSnapshotState.UNKNOWN) snapshot = VolumeSnapshot( id=obj["id"], driver=self, size=obj["size"], extra=extra, created=obj["creationDate"], state=state, name=obj["name"], ) return snapshot
def test_create_volume__with_snapshot(self): location = self.driver.list_locations()[0] snap_id = ("/subscriptions/99999999-9999-9999-9999-999999999999" "/resourceGroups/000000/providers/Microsoft.Compute" "/snapshots/test-snap-1") snapshot = VolumeSnapshot(id=snap_id, size=2, driver=self.driver) volume = self.driver.create_volume( 2, "test-disk-1", location, snapshot=snapshot, ex_resource_group="000000", ex_tags={"description": "MyVolume"}, ) self.assertEqual( volume.extra["properties"]["creationData"]["createOption"], "Copy") self.assertEqual( volume.extra["properties"]["creationData"]["sourceUri"], snap_id)
def __init__(self): # pylint: disable=W0231 self._TEST_SIZE = NodeSize(id='test_id', name='test_size', ram=4096, disk=10240, bandwidth=100000, price=0, driver=self) self._TEST_NODE = Node(id='test_id', name='test_node', state=NodeState.RUNNING, public_ips=['1.2.3.4'], private_ips=['2.3.4.5'], driver=self, size=self._TEST_SIZE, extra={'ex_key': 'ex_value'}) self._TEST_LOCATION = NodeLocation(id='test_location', name='location1', country='Australia', driver=self) self._TEST_VOLUME = StorageVolume( id='vol1', name='vol_name', size=40960, driver=self, state=StorageVolumeState.AVAILABLE, extra={'ex_key': 'ex_value'}) self._TEST_VOLUME_SNAPSHOT = VolumeSnapshot(id='snap1', size=80960, driver=self) self._TEST_IMAGE = NodeImage(id='image1', name='test_image', extra={'ex_key': 'ex_value'}, driver=self) self._TEST_KEY_PAIR = KeyPair(name='test_key', fingerprint='abc123', public_key='pub123', private_key='priv123', driver=self, extra={'ex_key': 'ex_value'})
def _to_volume_snapshot(self, data): extra_keys = [ "labels", "status", "usage_in_minutes", "location_country", "current_price", "parent_uuid", ] extra = self._extract_values_to_dict(data=data, keys=extra_keys) volume_snapshot = VolumeSnapshot( id=data["object_uuid"], driver=self.connection.driver, size=data["capacity"], extra=extra, created=parse_date(data["create_time"]), state=StorageVolumeState.AVAILABLE, name=data["name"], ) return volume_snapshot
def test_destroy_snapshot(self): snap = VolumeSnapshot(id='snap-428abd35', size=10, driver=self.driver) resp = snap.destroy() self.assertTrue(resp)