docs: def _get_snapshots_recursively(snapshots, snapshot_location):
          """
          Recursively traverses child snapshots and returns dictinary of snapshots
          :param snapshots: list of snapshots to examine
          :param snapshot_location: current path of snapshots
          :return: dictinary of snapshot path and snapshot instances
          :rtype: dict(str,vim.vm.Snapshot)
          """
          snapshot_paths = collections.OrderedDict()
  
          if not snapshots:
              return snapshot_paths
  
          for snapshot in snapshots:
              if snapshot_location:
                  current_snapshot_path = SnapshotRetriever.combine(snapshot_location, snapshot.name)
              else:
                  current_snapshot_path = snapshot.name
  
              snapshot_paths[current_snapshot_path] = snapshot.snapshot
              child_snapshots = SnapshotRetriever._get_snapshots_recursively(snapshot.childSnapshotList,
                                                                             current_snapshot_path)
              snapshot_paths.update(child_snapshots)
  
          return snapshot_paths