Description
What is the problem?
If you try to examine a backup with no cluster configuration (e.g. one generated by cbbackupmgr generate) then we will crash with a nil pointer.
Why does this happen?
In backupDir.readConfig if we do not find the cluster config then we will return a nil cluster config (due to the !IsResourceNotFound term in the if condition). In backupDir.examine we use the config unconditionally.
What is the fix?
In another place we call readConfig we manually check for a nil config, so we should do the same thing here.
What is the impact of this problem?
I think a real backup should always write a cluster config file so the only way for a customer to hit it would be if they manually deleted it. This is not something we support so I think customer impact is very low.