@@ -108,3 +108,36 @@ def detach_storage(self, server, address):
108108 url = '/server/{0}/storage/detach' .format (server )
109109 res = self .post_request (url , body )
110110 return Storage ._create_storage_objs (res ['server' ]['storage_devices' ], cloud_manager = self )
111+
112+ def load_cd_rom (self , server , address ):
113+ """
114+ Loads a storage as a CD-ROM in the CD-ROM device of a server.
115+ """
116+ body = {'storage_device' : {'storage' : address }}
117+ url = '/server/{0}/cdrom/load' .format (server )
118+ res = self .post_request (url , body )
119+ return Storage ._create_storage_objs (res ['server' ]['storage_devices' ], cloud_manager = self )
120+
121+ def eject_cd_rom (self , server ):
122+ """
123+ Ejects the storage from the CD-ROM device of a server.
124+ """
125+ url = '/server/{0}/cdrom/eject' .format (server )
126+ res = self .post_request (url )
127+ return Storage ._create_storage_objs (res ['server' ]['storage_devices' ], cloud_manager = self )
128+
129+ def create_storage_backup (self , storage , title ):
130+ """
131+ Creates a point-in-time backup of a storage resource.
132+ """
133+ url = '/storage/{0}/backup' .format (storage )
134+ body = {'storage' : {'title' : title }}
135+ res = self .post_request (url , body )
136+ return Storage (cloud_manager = self , ** res ['storage' ])
137+
138+ def restore_storage_backup (self , storage ):
139+ """
140+ Restores the origin storage with data from the specified backup storage.
141+ """
142+ url = '/storage/{0}/restore' .format (storage )
143+ return self .post_request (url )
0 commit comments