/**
  * Update exisiting delivery
  *
  * @action update
  * @param string $id
  * @param KalturaDeliveryProfile $delivery
  * @return KalturaDeliveryProfile
  */
 function updateAction($id, KalturaDeliveryProfile $delivery)
 {
     DeliveryProfilePeer::setUseCriteriaFilter(false);
     $dbDelivery = DeliveryProfilePeer::retrieveByPK($id);
     DeliveryProfilePeer::setUseCriteriaFilter(true);
     if (!$dbDelivery) {
         throw new KalturaAPIException(KalturaErrors::DELIVERY_ID_NOT_FOUND, $id);
     }
     // Don't allow to update default delivery profiles from the outside
     if ($dbDelivery->getIsDefault()) {
         throw new KalturaAPIException(KalturaErrors::DELIVERY_UPDATE_ISNT_ALLOWED, $id);
     }
     $delivery->toUpdatableObject($dbDelivery);
     $dbDelivery->save();
     $delivery = KalturaDeliveryProfileFactory::getDeliveryProfileInstanceByType($dbDelivery->getType());
     $delivery->fromObject($dbDelivery, $this->getResponseProfile());
     return $delivery;
 }