github.com/vmware/govmomi@v0.43.0/govc/test/guest.bats (about) 1 #!/usr/bin/env bats 2 3 load test_helper 4 5 vcsim_guest() { 6 require_docker 7 vcsim_env -autostart=false 8 9 vm=DC0_H0_VM0 10 11 name=$(docker_name $vm) 12 13 if docker inspect "$name" ; then 14 flunk "$vm container still exists" 15 fi 16 17 export GOVC_VM=$vm GOVC_GUEST_LOGIN=user:pass 18 19 run govc object.collect -s vm/$vm guest.toolsStatus 20 assert_success toolsNotInstalled 21 22 run govc object.collect -s vm/$vm guest.toolsRunningStatus 23 assert_success guestToolsNotRunning 24 25 govc vm.change -vm $vm -e "RUN.container=--tmpfs /tmp nginx" 26 27 govc vm.power -on $vm 28 29 if ! docker inspect "$name" ; then 30 flunk "$vm container does not exist" 31 fi 32 33 run govc object.collect -s vm/$vm guest.toolsStatus 34 assert_success toolsOk 35 36 run govc object.collect -s vm/$vm guest.toolsRunningStatus 37 assert_success guestToolsRunning 38 } 39 40 @test "guest file manager" { 41 vcsim_guest 42 43 run govc guest.mkdir /tmp/foo 44 assert_success 45 46 run govc guest.mkdir /tmp/foo/bar/baz 47 assert_failure 48 49 run govc guest.mkdir -p /tmp/foo/bar/baz 50 assert_success 51 52 run govc guest.rmdir /tmp/foo 53 assert_failure # not empty 54 55 run govc guest.rmdir -r /tmp/foo 56 assert_success 57 58 run govc guest.mktemp -d 59 assert_success 60 tmp="$output" 61 62 run govc guest.rmdir "$tmp" 63 assert_success 64 65 run govc guest.rmdir "$tmp" 66 assert_failure # does not exist 67 68 run govc guest.mktemp 69 assert_success 70 tmp="$output" 71 72 run govc guest.ls 73 assert_failure # InvalidArgument 74 75 run govc guest.ls /enoent 76 assert_failure # InvalidArgument 77 78 run govc guest.ls "$tmp" 79 assert_success 80 assert_matches "$tmp" 81 assert_matches "rw-------" # 0600 82 83 84 run govc guest.chmod 0644 "$tmp" 85 assert_success 86 87 run govc guest.chown 0:0 "$tmp" 88 assert_success 89 90 run govc guest.ls "$tmp" 91 assert_success 92 assert_matches "$tmp" 93 assert_matches "rw-r--r--" # 0644 94 95 run govc guest.ls "$(dirname "$tmp")" 96 assert_success 97 assert_matches "$tmp" 98 99 run govc guest.mv "$tmp" "$tmp-new" 100 assert_success 101 102 run govc guest.ls "$tmp" 103 assert_failure 104 105 run govc guest.ls "$tmp-new" 106 assert_success 107 108 run govc guest.upload -l '' README.md "$tmp" 109 assert_failure # unauthenticated 110 111 run govc guest.upload README.md "$tmp" 112 assert_success 113 114 run govc guest.download "$tmp" - 115 assert_success "$(cat README.md)" 116 117 run govc guest.rmdir "$tmp" 118 assert_failure # not a directory 119 120 run govc guest.rm "$tmp" 121 assert_success 122 123 run govc guest.rm "$tmp" 124 assert_failure # does not exist 125 } 126 127 @test "guest process manager" { 128 vcsim_guest 129 130 run govc guest.kill -p 123456 131 assert_failure # process does not exist 132 133 run govc guest.start -l '' /bin/df 134 assert_failure # unauthenticated 135 136 run govc guest.start /bin/df -h 137 assert_success 138 pid="$output" 139 140 run govc guest.ps -p "$pid" 141 assert_success 142 assert_matches /bin/df 143 144 run govc guest.ps -x 145 assert_success 146 147 run govc guest.kill -p "$pid" 148 assert_success 149 150 run govc guest.run uname -a 151 assert_success 152 assert_matches Linux 153 154 run govc guest.run -e FOO=bar -C /tmp env 155 assert_success 156 assert_matches FOO=bar 157 assert_matches PWD=/tmp 158 } 159 160 @test "guest tools status" { 161 vcsim_guest 162 163 run govc vm.power -r $GOVC_VM 164 assert_success 165 166 run govc object.collect -s vm/$vm guest.toolsStatus 167 assert_success toolsOk 168 169 run govc object.collect -s vm/$vm guest.toolsRunningStatus 170 assert_success guestToolsRunning 171 172 run govc vm.power -off $GOVC_VM 173 assert_success 174 175 run govc object.collect -s vm/$vm guest.toolsStatus 176 assert_success toolsNotRunning 177 178 run govc object.collect -s vm/$vm guest.toolsRunningStatus 179 assert_success guestToolsNotRunning 180 181 run govc guest.run uname -a 182 assert_failure # powered off 183 }