github.com/vmware/govmomi@v0.43.0/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 }