Удалить средство доставки

В этом документе описывается, как удалить транспортное средство доставки. Предполагается, что вы настроили Fleet Engine. См. раздел «Настройка Fleet Engine» .

Основные принципы удаления транспортных средств доставки

Ваша система может использовать Fleet Engine для удаления транспортного средства доставки в следующих ситуациях:

  • Для выполнения операций очистки во время тестирования API Fleet Engine.
  • Для немедленного удаления транспортного средства доставки, которое больше не требуется.

Для удаления транспортного средства отправьте запрос, используя gRPC или REST.

  • Метод DeleteDeliveryVehicle() : gRPC или REST
  • Сообщение DeleteDeliveryVehicleRequest : только для gRPC

Используйте соответствующие учетные данные для служебной учетной записи вашего проекта, как описано в разделе Fleet Engine: Роли служебных учетных записей .

Пример: удалить транспортное средство доставки

Java

В следующем примере показано, как использовать библиотеку Java gRPC для удаления транспортного средства доставки. Полный список поддерживаемых языков см. в разделе «Клиентские библиотеки для служб запланированных задач» .

  static final String PROJECT_ID = "my-rideshare-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;

  DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
      DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();

  try {
    deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The delivery vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are tasks(s) that reference delivery vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

ОТДЫХ

В следующем примере показано, как удалить транспортное средство доставки из Fleet Engine с помощью REST, выполнив вызов метода DeleteDeliveryVehicle .

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
  # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -X DELETE -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"

Если операция удаления прошла успешно, API возвращает пустой ответ.

Обработка ошибок

При удалении транспортного средства может возникнуть ошибка FAILED_PRECONDITION , в этом случае существуют задачи, которые ссылаются на это транспортное средство. Чтобы продолжить удаление:

  1. Вызовите функцию ListTasks , чтобы найти задачу (или задачи), в которых упоминается транспортное средство доставки.
  2. Вызовите функцию DeleteTask для удаления каждой из найденных задач.

Что дальше?