コード例 #1
0
 def perform_create(self, serializer: VolumeSnapshotCreateSerializer):
     if not validate_cloud_objects_limit():
         raise APIBadRequest(
             _('Licence cloud objects limit reached. Please check your license.'
               ))
     volume_id = serializer.validated_data.get('volume_id')
     volume = Volume.objects.filter(id=volume_id).first()
     if volume:
         os_api = OSApi.from_request(request=self.request)
         try:
             volume_snapshot = os_api.volume_snapshots.create(
                 region_name=volume.region,
                 **serializer.validated_data,
             )
             activity_helper.add_current_activity_params(
                 object_id=volume_snapshot.id)
         except Exception as e:
             handle(self.request, message=str(e))
         return Response(
             {'detail': _('Volume snapshot creation in progress')})
     else:
         raise APIBadRequest(
             _('Cannot create volume snapshot as related volume does not exist'
               ))
コード例 #2
0
 def os_api(self):
     return OSApi.from_request(request=self.request)
コード例 #3
0
 def get_openstack_volume_snapshot(self, volume_snapshot=None):
     volume_snapshot = volume_snapshot or self.get_object()
     os_api = OSApi.from_request(request=self.request)
     return os_api.volume_snapshots.get(volume_snapshot=volume_snapshot)