github.com/vmware/govmomi@v0.37.2/govc/test/ls.bats (about)

     1  #!/usr/bin/env bats
     2  
     3  load test_helper
     4  
     5  @test "ls" {
     6    vcsim_env
     7  
     8    run govc ls
     9    assert_success
    10    # /dc/{vm,network,host,datastore}
    11    n=${#lines[@]}
    12    [ $n -ge 4 ]
    13  
    14    run govc ls -json
    15    assert_success
    16  
    17    run govc ls -xml
    18    assert_success
    19  
    20    # list entire inventory
    21    run govc ls '/**'
    22    assert_success
    23    [ ${#lines[@]} -ge $n ]
    24  
    25    run govc ls ./...
    26    assert_success
    27    [ ${#lines[@]} -ge $n ]
    28  
    29    run govc ls -t HostSystem '*'
    30    assert_success
    31    [ ${#lines[@]} -eq 0 ]
    32  
    33    run govc ls host
    34    assert_success
    35    [ ${#lines[@]} -ge 1 ]
    36  
    37    run govc ls enoent
    38    assert_success
    39    [ ${#lines[@]} -eq 0 ]
    40  }
    41  
    42  @test "ls -R" {
    43    vcsim_env -esx
    44  
    45    # search entire inventory
    46    run govc ls ./...
    47    assert_success
    48    # should have at least 1 dc + folders, 1 host, 1 network, 1 datastore
    49    [ ${#lines[@]} -ge 9 ]
    50  
    51    run govc ls -t HostSystem ./...
    52    assert_success
    53    [ ${#lines[@]} -eq 1 ]
    54  
    55    run govc ls -t Datacenter /...
    56    assert_success
    57    [ ${#lines[@]} -eq 1 ]
    58  
    59    run govc ls -t ResourcePool host/...
    60    assert_success
    61    [ ${#lines[@]} -ge 1 ]
    62  
    63    run govc ls -t ResourcePool vm/...
    64    assert_success
    65    [ ${#lines[@]} -eq 0 ]
    66  
    67    c=$(govc ls -t ComputeResource ./... | head -1)
    68    run govc ls -t ResourcePool "$c/..."
    69    assert_success
    70    [ ${#lines[@]} -ge 1 ]
    71  }
    72  
    73  @test "ls vm" {
    74    vcsim_env -esx
    75  
    76    vm=$(new_empty_vm)
    77  
    78    run govc ls vm
    79    assert_success
    80    [ ${#lines[@]} -ge 1 ]
    81  
    82    run govc ls vm/$vm
    83    assert_success
    84    [ ${#lines[@]} -eq 1 ]
    85  
    86    run govc ls /*/vm/$vm
    87    assert_success
    88    [ ${#lines[@]} -eq 1 ]
    89  }
    90  
    91  @test "ls network" {
    92    vcsim_env -esx
    93  
    94    run govc ls network
    95    assert_success
    96    [ ${#lines[@]} -ge 1 ]
    97  
    98    local path=${lines[0]}
    99    run govc ls "$path"
   100    assert_success
   101    [ ${#lines[@]} -eq 1 ]
   102  
   103    run govc ls "network/$(basename "$path")"
   104    assert_success
   105    [ ${#lines[@]} -eq 1 ]
   106  
   107    run govc ls "/*/network/$(basename "$path")"
   108    assert_success
   109    [ ${#lines[@]} -eq 1 ]
   110  }
   111  
   112  @test "ls multi ds" {
   113    vcsim_env -dc 2
   114  
   115    run govc ls
   116    assert_success
   117    # /DC0/{vm,network,host,datastore}
   118    [ ${#lines[@]} -eq 4 ]
   119  
   120    run govc ls /DC*
   121    assert_success
   122    # /DC[0,1]/{vm,network,host,datastore}
   123    [ ${#lines[@]} -eq 8 ]
   124  
   125    # here 'vm' is relative to /DC0
   126    run govc ls vm
   127    assert_success
   128    [ ${#lines[@]} -gt 0 ]
   129  
   130    unset GOVC_DATACENTER
   131  
   132    run govc ls
   133    assert_success
   134    # /DC[0,1]
   135    [ ${#lines[@]} -eq 2 ]
   136  
   137    run govc ls -dc enoent
   138    assert_failure
   139    [ ${#lines[@]} -gt 0 ]
   140  
   141    # here 'vm' is relative to '/' - so there are no matches
   142    run govc ls vm
   143    assert_success
   144    [ ${#lines[@]} -eq 0 ]
   145  
   146    # ls all vms in all datacenters
   147    run govc ls */vm
   148    assert_success
   149    [ ${#lines[@]} -gt 0 ]
   150  }
   151  
   152  @test "ls moref" {
   153    vcsim_env -esx
   154  
   155    # ensure the vm folder isn't empty
   156    run govc vm.create -on=false "$(new_id)"
   157    assert_success
   158  
   159    # list dc folder paths
   160    folders1=$(govc ls)
   161    # list dc folder refs | govc ls -L ; should output the same paths
   162    folders2=$(govc ls -i | xargs govc ls -L)
   163  
   164    assert_equal "$folders1" "$folders2"
   165  
   166    for folder in $folders1
   167    do
   168      # list paths in $folder
   169      items1=$(govc ls "$folder")
   170      # list refs in $folder | govc ls -L ; should output the same paths
   171      items2=$(govc ls -i "$folder" | $xargs -d '\n' govc ls -L)
   172  
   173      assert_equal "$items1" "$items2"
   174    done
   175  
   176    ref=ViewManager:ViewManager
   177    path=$(govc ls -L $ref)
   178    assert_equal "$ref" "$path"
   179  
   180    path=$(govc ls -L Folder:ha-folder-root)
   181    assert_equal "/" "$path"
   182  }
   183  
   184  @test "ls substr" {
   185    # Test fix for issue #815, introduced by b35abbc
   186  
   187    vcsim_env
   188  
   189    id=$(new_id)
   190  
   191    run govc vm.create -on=false "${id}"
   192    assert_success
   193  
   194    run govc vm.create -on=false "bar${id}"
   195    assert_success
   196  
   197    assert [ "$(govc ls "vm/$id" | wc -l)" -eq 1 ]
   198  }