// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/troubleshooting/velero-cli-tool.adoc

:_mod-docs-content-type: PROCEDURE
[id="migration-debugging-velero-resources_{context}"]
= Debugging Velero resources with the Velero CLI tool

[role="_abstract"]
Debug `Backup` and `Restore` custom resources (CRs) and retrieve logs with the Velero CLI tool. The Velero CLI tool provides more detailed information than the OpenShift CLI tool.

.Procedure

* Use the `oc exec` command to run a Velero CLI command:
+
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> <command> <cr_name>
----
+
.Example `oc exec` command
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
----

* List all Velero CLI commands by using the following `velero --help` option:
+
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  --help
----

* Retrieve the logs of a `Backup` or `Restore` CR by using the following `velero logs` command:
+
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> logs <cr_name>
----
+
.Example `velero logs` command
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
----

* Retrieve a summary of warnings and errors associated with a `Backup` or `Restore` CR by using the following `velero describe` command:
+
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> describe <cr_name>
----
+
.Example `velero describe` command
[source,terminal,subs="attributes+"]
----
$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
  backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
----
+
The following types of restore errors and warnings are shown in the output of a `velero describe` request:
+
* `Velero`: A list of messages related to the operation of Velero itself, for example, messages related to connecting to the cloud, reading a backup file, and so on
+
* `Cluster`:  A list of messages related to backing up or restoring cluster-scoped resources
+
* `Namespaces`: A list of list of messages related to backing up or restoring resources stored in namespaces

+
One or more errors in one of these categories results in a `Restore` operation receiving the status of `PartiallyFailed` and not `Completed`. Warnings do not lead to a change in the completion status.

+

Consider the following points for these restore errors:

* For resource-specific errors, that is, `Cluster` and `Namespaces` errors, the `restore describe --details` output includes a resource list that includes all resources that Velero restored. For any resource that has such an error, check if the resource is actually in the cluster.

* For resource-specific errors, that is, `Cluster` and `Namespaces` errors, the `restore describe --details` output includes a resource list that includes all resources that Velero restored. For any resource that has such an error, check if the resource is actually in the cluster.

* If there are `Velero` errors but no resource-specific errors in the output of a `describe` command, it is possible that the restore completed without any actual problems in restoring workloads. In this case, carefully validate post-restore applications.
+
For example, if the output contains `PodVolumeRestore` or node agent-related errors, check the status of `PodVolumeRestores` and `DataDownloads`. If none of these are failed or still running, then volume data might have been fully restored.
