author | saurabh.vyas@oracle.com |
Tue, 26 Jan 2016 11:13:13 -0800 | |
changeset 5340 | d02afa922d41 |
permissions | -rw-r--r-- |
5340
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
1 |
From 075ff30d7d8bbeca1af634718f3cb19099bc44b3 Mon Sep 17 00:00:00 2001 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
2 |
From: Abhiram Moturi <[email protected]> |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
3 |
Date: Mon, 10 Aug 2015 14:23:09 +0000 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
4 |
Subject: [PATCH] ZFSSA driver to return project 'available' space |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
5 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
6 |
This fix allows the iSCSI driver to return the 'available' space |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
7 |
property at project level instead of the pool level which is more |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
8 |
accurate in cases when storage is not thin provisioned. |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
9 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
10 |
Change-Id: I52dec5e527eab393fd464fbc7f4f910fafb67268 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
11 |
Closes-Bug: #1479342 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
12 |
--- |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
13 |
--- cinder-2014.2.2/cinder/volume/drivers/zfssa/zfssarest.py.~1~ 2015-11-08 22:01:48.358042338 -0800 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
14 |
+++ cinder-2014.2.2/cinder/volume/drivers/zfssa/zfssarest.py 2015-11-08 22:02:05.691920138 -0800 |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
15 |
@@ -82,7 +82,7 @@ |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
16 |
'ret.status': ret.status, |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
17 |
'ret.data': ret.data}) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
18 |
LOG.error(exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
19 |
- raise exception.InvalidVolume(reason=exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
20 |
+ raise exception.VolumeBackendAPIException(data=exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
21 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
22 |
val = json.loads(ret.data) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
23 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
24 |
@@ -95,10 +95,31 @@ |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
25 |
LOG.error(exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
26 |
raise exception.InvalidInput(reason=pool) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
27 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
28 |
- avail = val['pool']['usage']['available'] |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
29 |
total = val['pool']['usage']['total'] |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
30 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
31 |
- return avail, total |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
32 |
+ return total |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
33 |
+ |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
34 |
+ def get_project_stats(self, pool, project): |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
35 |
+ """Get available space of a project.""" |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
36 |
+ svc = '/api/storage/v1/pools/%s/projects/%s' % (pool, project) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
37 |
+ ret = self.rclient.get(svc) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
38 |
+ if ret.status != restclient.Status.OK: |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
39 |
+ exception_msg = (_('Error Getting Project Stats: ' |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
40 |
+ 'Pool: %(pool)s ' |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
41 |
+ 'Project: %(project)s ' |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
42 |
+ 'Return code: %(ret.status)d ' |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
43 |
+ 'Message: %(ret.data)s.') |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
44 |
+ % {'pool': pool, |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
45 |
+ 'project': project, |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
46 |
+ 'ret.status': ret.status, |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
47 |
+ 'ret.data': ret.data}) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
48 |
+ LOG.error(exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
49 |
+ raise exception.VolumeBackendAPIException(data=exception_msg) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
50 |
+ |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
51 |
+ val = json.loads(ret.data) |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
52 |
+ avail = val['project']['space_available'] |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
53 |
+ |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
54 |
+ return avail |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
55 |
|
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
56 |
def create_project(self, pool, project, compression=None, logbias=None): |
d02afa922d41
21241934 ZFSSA driver should return free (vs available) space
saurabh.vyas@oracle.com
parents:
diff
changeset
|
57 |
"""Create a project on a pool |