Являются ли запросы RESTConf атомарными с помощью YANG-PATCH? - PullRequest
0 голосов
/ 14 декабря 2018

Я установил устройство NETCONF в ODL.Затем, используя интерфейс RESTConf в ODL, я пытаюсь отправить несколько изменений на устройство за одну транзакцию, чтобы исследовать поведение при сбое одного из этих изменений.Будет ли это вызвать откат или нет.

Для этого я использовал YANG-PATCH и включил несколько правок.Я заметил, что если запросы не соответствуют моделям в ODL, они не будут обработаны.Однако, если проверка прошла успешно, запросы отправляются на устройство NETCONF.Я заметил, что каждое редактирование в YANG-PATCH отправляется как отдельный запрос NETCONF, и если второй запрос не выполняется на устройстве, то при первом редактировании откат не инициируется.

Я немного покопался и обнаружил, что в спецификациях PATCH (RFC5789), на которые ссылается YANG-PATCH (RFC8072), указано, что запросы должны быть атомарными во всех отношениях или вообще без них.

Ответ от устройства показан ниже, и вы можете видеть, что ошибка указана в ответе JSON, но оба редактирования, кажется, завершены.


Версия Opendaylight - фтор (0.9.1)


Ответ

  {
  "ietf-yang-patch:yang-patch-status": {
    "patch-id": "0",
    "errors": {
      "error": [
        {
          "error-type": "application",
          "error-tag": "operation-failed",
          "error-message": "Commit of transaction org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteRunningTx@42de5ea3 failed"
        }
      ]
    },
    "edit-status": {
      "edit": [
        {
          "edit-id": "edit1",
          "ok": [
            null
          ]
        },
        {
          "edit-id": "edit1",
          "ok": [
            null
          ]
        }
      ]
    }
  }
}
...