@@ -20,64 +20,72 @@ def get_storages(self, storage_type='normal'):
2020 res = self .get_request ('/storage/' + storage_type )
2121 return Storage ._create_storage_objs (res ['storages' ], cloud_manager = self )
2222
23- def get_storage (self , UUID ):
23+ def get_storage (self , storage ):
2424 """
2525 Return a Storage object from the API.
2626 """
27- res = self .get_request ('/storage/' + UUID )
28- return Storage . _create_storage_obj ( res ['storage' ], cloud_manager = self )
27+ res = self .get_request ('/storage/' + str ( storage ) )
28+ return Storage ( cloud_manager = self , ** res ['storage' ])
2929
3030 def create_storage (self , size = 10 , tier = 'maxiops' , title = 'Storage disk' , zone = 'fi-hel1' ):
3131 """
3232 Create a Storage object. Returns an object based on the API's response.
3333 """
34- body = dict ()
35- body ['storage' ] = {
36- 'size' : size ,
37- 'tier' : tier ,
38- 'title' : title ,
39- 'zone' : zone
34+ body = {
35+ 'storage' : {
36+ 'size' : size ,
37+ 'tier' : tier ,
38+ 'title' : title ,
39+ 'zone' : zone
40+ }
4041 }
4142 res = self .post_request ('/storage' , body )
42- return Storage . _create_storage_obj ( res ['storage' ], cloud_manager = self )
43+ return Storage ( cloud_manager = self , ** res ['storage' ])
4344
44- def modify_storage (self , UUID , size , title ):
45+ def _modify_storage (self , storage , size , title ):
46+ body = {'storage' : {}}
47+ if size :
48+ body ['storage' ]['size' ] = size
49+ if title :
50+ body ['storage' ]['title' ] = title
51+ return self .request ('PUT' , '/storage/' + str (storage ), body )
52+
53+ def modify_storage (self , storage , size , title ):
4554 """
4655 Modify a Storage object. Returns an object based on the API's response.
4756 """
48- body = Storage .prepare_put_body (size , title )
49- res = self .request ('PUT' , '/storage/' + UUID , body )
50- return Storage ._create_storage_obj (res ['storage' ], cloud_manager = self )
57+ res = self ._modify_storage (str (storage ), size , title )
58+ return Storage (cloud_manager = self , ** res ['storage' ])
5159
5260 def delete_storage (self , UUID ):
5361 """
5462 Destroy a Storage object.
5563 """
5664 return self .request ('DELETE' , '/storage/' + UUID )
5765
58- def attach_storage (self , server_uuid , storage_uuid , storage_type , address ):
66+ def attach_storage (self , server , storage , storage_type , address ):
5967 """
6068 Attach a Storage object to a Server. Return a list of the server's storages.
6169 """
6270 body = {'storage_device' : {}}
63- if storage_uuid :
64- body ['storage_device' ]['storage' ] = storage_uuid
71+ if storage :
72+ body ['storage_device' ]['storage' ] = str ( storage )
6573
6674 if storage_type :
6775 body ['storage_device' ]['type' ] = storage_type
6876
6977 if address :
7078 body ['storage_device' ]['address' ] = address
7179
72- url = '/server/{0}/storage/attach' .format (server_uuid )
80+ url = '/server/{0}/storage/attach' .format (server )
7381 res = self .post_request (url , body )
7482 return Storage ._create_storage_objs (res ['server' ]['storage_devices' ], cloud_manager = self )
7583
76- def detach_storage (self , server_uuid , address ):
84+ def detach_storage (self , server , address ):
7785 """
7886 Detach a Storage object to a Server. Return a list of the server's storages.
7987 """
8088 body = {'storage_device' : {'address' : address }}
81- url = '/server/{0}/storage/detach' .format (server_uuid )
89+ url = '/server/{0}/storage/detach' .format (server )
8290 res = self .post_request (url , body )
8391 return Storage ._create_storage_objs (res ['server' ]['storage_devices' ], cloud_manager = self )
0 commit comments