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