Пример #1
0
    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"
Пример #2
0
    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
Пример #3
0
    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)
Пример #4
0
    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
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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)
Пример #9
0
 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
Пример #10
0
 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"},
     )
Пример #12
0
    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
Пример #13
0
    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
Пример #14
0
    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)
Пример #15
0
 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
Пример #16
0
    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)
Пример #17
0
 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'})
Пример #18
0
    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
Пример #19
0
 def test_destroy_snapshot(self):
     snap = VolumeSnapshot(id='snap-428abd35', size=10, driver=self.driver)
     resp = snap.destroy()
     self.assertTrue(resp)