Exemple #1
0
 def test_create(self):
     sot = volume.Volume(**VOLUME)
     self.assertEqual(VOLUME["id"], sot.id)
     self.assertEqual(VOLUME["status"], sot.status)
     self.assertEqual(VOLUME["attachments"], sot.attachments)
     self.assertEqual(VOLUME["availability_zone"], sot.availability_zone)
     self.assertFalse(sot.is_bootable)
     self.assertEqual(VOLUME["created_at"], sot.created_at)
     self.assertEqual(VOLUME["description"], sot.description)
     self.assertEqual(VOLUME["volume_type"], sot.volume_type)
     self.assertEqual(VOLUME["snapshot_id"], sot.snapshot_id)
     self.assertEqual(VOLUME["source_volid"], sot.source_volume_id)
     self.assertEqual(VOLUME["metadata"], sot.metadata)
     self.assertEqual(VOLUME["volume_image_metadata"],
                      sot.volume_image_metadata)
     self.assertEqual(VOLUME["size"], sot.size)
     self.assertEqual(VOLUME["imageRef"], sot.image_id)
     self.assertEqual(VOLUME["os-vol-host-attr:host"], sot.host)
     self.assertEqual(VOLUME["os-vol-tenant-attr:tenant_id"],
                      sot.project_id)
     self.assertEqual(VOLUME["os-vol-mig-status-attr:migstat"],
                      sot.migration_status)
     self.assertEqual(VOLUME["os-vol-mig-status-attr:name_id"],
                      sot.migration_id)
     self.assertEqual(VOLUME["replication_status"], sot.replication_status)
     self.assertEqual(VOLUME["os-volume-replication:extended_status"],
                      sot.extended_replication_status)
     self.assertEqual(VOLUME["consistencygroup_id"],
                      sot.consistency_group_id)
     self.assertEqual(VOLUME["os-volume-replication:driver_data"],
                      sot.replication_driver_data)
     self.assertFalse(sot.is_encrypted)
Exemple #2
0
    def test_extend(self):
        sot = volume.Volume(**VOLUME)

        self.assertIsNone(sot.extend(self.sess, '20'))

        url = 'volumes/%s/action' % FAKE_ID
        body = {"os-extend": {"new_size": "20"}}
        headers = {'Accept': ''}
        self.sess.post.assert_called_with(url, json=body, headers=headers)
    def test_set_volume_readonly_false(self):
        sot = volume.Volume(**VOLUME)

        self.assertIsNone(sot.set_readonly(self.sess, False))

        url = 'volumes/%s/action' % FAKE_ID
        body = {'os-update_readonly_flag': {'readonly': False}}
        headers = {'Accept': ''}
        self.sess.post.assert_called_with(url, json=body, headers=headers)
    def test_retype(self):
        sot = volume.Volume(**VOLUME)

        self.assertIsNone(sot.retype(self.sess, 'rbd', 'on-demand'))

        url = 'volumes/%s/action' % FAKE_ID
        body = {
            'os-retype': {
                'new_type': 'rbd',
                'migration_policy': 'on-demand'
            }
        }
        headers = {'Accept': ''}
        self.sess.post.assert_called_with(url, json=body, headers=headers)
Exemple #5
0
 def test_create(self):
     sot = volume.Volume(**VOLUME)
     self.assertEqual(VOLUME["id"], sot.id)
     self.assertEqual(VOLUME["status"], sot.status)
     self.assertEqual(VOLUME["attachments"], sot.attachments)
     self.assertEqual(VOLUME["availability_zone"], sot.availability_zone)
     self.assertFalse(sot.is_bootable)
     self.assertEqual(VOLUME["created_at"], sot.created_at)
     self.assertEqual(VOLUME["description"], sot.description)
     self.assertEqual(VOLUME["volume_type"], sot.volume_type)
     self.assertEqual(VOLUME["snapshot_id"], sot.snapshot_id)
     self.assertEqual(VOLUME["source_volid"], sot.source_volume_id)
     self.assertEqual(VOLUME["metadata"], sot.metadata)
     self.assertEqual(VOLUME["volume_image_metadata"],
                      sot.volume_image_metadata)
     self.assertEqual(VOLUME["size"], sot.size)
     self.assertEqual(VOLUME["imageRef"], sot.image_id)
    def test_basic(self):
        sot = volume.Volume(VOLUME)
        self.assertEqual("volume", sot.resource_key)
        self.assertEqual("volumes", sot.resources_key)
        self.assertEqual("/volumes", sot.base_path)
        self.assertTrue(sot.allow_fetch)
        self.assertTrue(sot.allow_create)
        self.assertTrue(sot.allow_commit)
        self.assertTrue(sot.allow_delete)
        self.assertTrue(sot.allow_list)

        self.assertDictEqual({"name": "name",
                              "status": "status",
                              "all_projects": "all_tenants",
                              "project_id": "project_id",
                              "limit": "limit",
                              "marker": "marker"},
                             sot._query_mapping._mapping)
    def create_one_sdk_volume(attrs=None):
        """Create a fake volume.

        :param dict attrs:
            A dictionary with all attributes of volume
        :return:
            A FakeResource object with id, name, status, etc.
        """
        attrs = attrs or {}

        # Set default attribute
        volume_info = {
            'id': 'volume-id' + uuid.uuid4().hex,
            'name': 'volume-name' + uuid.uuid4().hex,
            'description': 'description' + uuid.uuid4().hex,
            'status': random.choice(['available', 'in_use']),
            'size': random.randint(1, 20),
            'volume_type':
                random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
            'bootable':
                random.choice(['true', 'false']),
            'metadata': {
                'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
                'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
                'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex},
            'snapshot_id': random.randint(1, 5),
            'availability_zone': 'zone' + uuid.uuid4().hex,
            'attachments': [{
                'device': '/dev/' + uuid.uuid4().hex,
                'server_id': uuid.uuid4().hex,
            }, ],
        }

        # Overwrite default attributes if there are some attributes set
        volume_info.update(attrs)
        return volume.Volume(**volume_info)