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

     1  #!/usr/bin/env bats
     2  
     3  load test_helper
     4  
     5  @test "extension" {
     6    vcsim_env
     7  
     8    run govc extension.info enoent
     9    assert_failure
    10  
    11    run govc extension.info
    12    assert_success
    13  
    14    id=$(new_id)
    15  
    16    # register extension
    17    run govc extension.register $id <<EOS
    18    {
    19      "Description": {
    20        "Label": "govc",
    21        "Summary": "Go interface to vCenter"
    22      },
    23      "Key": "${id}",
    24      "Company": "VMware, Inc.",
    25      "Version": "0.2.0"
    26    }
    27  EOS
    28    assert_success
    29  
    30    # check info output is legit
    31    run govc extension.info $id
    32    assert_line "Name: $id"
    33  
    34    json=$(govc extension.info -json $id)
    35    label=$(jq -r .extensions[].description.label <<<"$json")
    36    assert_equal "govc" "$label"
    37  
    38    # change label and update extension
    39    json=$(jq -r '.extensions[] | .description.label = "novc"' <<<"$json")
    40    run govc extension.register -update $id <<<"$json"
    41    assert_success
    42  
    43    # check label changed in info output
    44    json=$(govc extension.info -json $id)
    45    label=$(jq -r .extensions[].description.label <<<"$json")
    46    assert_equal "novc" "$label"
    47  
    48    # set extension certificate to generated certificate
    49    run govc extension.setcert -cert-pem '+' $id
    50    assert_success
    51  
    52    # client certificate authentication is tested in session.bats
    53  
    54    # remove generated cert and key
    55    rm ${id}.{crt,key}
    56  
    57    run govc extension.info $(govc extension.info -json | jq -r .extensions[].key)
    58    assert_success
    59  
    60    run govc extension.unregister $id
    61    assert_success
    62  
    63    run govc extension.info $id
    64    assert_failure
    65  }