Manage Volume Life cycle
| 1142 | |
| 1143 | |
| 1144 | class Volume: |
| 1145 | """Manage Volume Life cycle |
| 1146 | """ |
| 1147 | |
| 1148 | def __init__(self, items): |
| 1149 | self.__dict__.update(items) |
| 1150 | |
| 1151 | @classmethod |
| 1152 | def create(cls, apiclient, services, zoneid=None, account=None, |
| 1153 | domainid=None, diskofferingid=None, projectid=None, size=None, snapshotid=None): |
| 1154 | """Create Volume""" |
| 1155 | cmd = createVolume.createVolumeCmd() |
| 1156 | cmd.name = "-".join([services["diskname"], random_gen()]) |
| 1157 | |
| 1158 | if diskofferingid: |
| 1159 | cmd.diskofferingid = diskofferingid |
| 1160 | elif "diskofferingid" in services: |
| 1161 | cmd.diskofferingid = services["diskofferingid"] |
| 1162 | |
| 1163 | if zoneid: |
| 1164 | cmd.zoneid = zoneid |
| 1165 | elif "zoneid" in services: |
| 1166 | cmd.zoneid = services["zoneid"] |
| 1167 | |
| 1168 | if account: |
| 1169 | cmd.account = account |
| 1170 | elif "account" in services: |
| 1171 | cmd.account = services["account"] |
| 1172 | |
| 1173 | if domainid: |
| 1174 | cmd.domainid = domainid |
| 1175 | elif "domainid" in services: |
| 1176 | cmd.domainid = services["domainid"] |
| 1177 | |
| 1178 | if projectid: |
| 1179 | cmd.projectid = projectid |
| 1180 | |
| 1181 | if size: |
| 1182 | cmd.size = size |
| 1183 | |
| 1184 | if snapshotid: |
| 1185 | cmd.snapshotid = snapshotid |
| 1186 | |
| 1187 | return Volume(apiclient.createVolume(cmd).__dict__) |
| 1188 | |
| 1189 | def update(self, apiclient, **kwargs): |
| 1190 | """Updates the volume""" |
| 1191 | |
| 1192 | cmd = updateVolume.updateVolumeCmd() |
| 1193 | cmd.id = self.id |
| 1194 | [setattr(cmd, k, v) for k, v in list(kwargs.items())] |
| 1195 | return (apiclient.updateVolume(cmd)) |
| 1196 | |
| 1197 | @classmethod |
| 1198 | def create_custom_disk(cls, apiclient, services, account=None, |
| 1199 | domainid=None, diskofferingid=None, projectid=None): |
| 1200 | """Create Volume from Custom disk offering""" |
| 1201 | cmd = createVolume.createVolumeCmd() |
no outgoing calls