首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vSphere -自动化-sdk-vSphere未验证-vSphere 6.5

vSphere -自动化-sdk-vSphere未验证-vSphere 6.5
EN

Stack Overflow用户
提问于 2019-12-10 13:51:36
回答 1查看 331关注 0票数 0

我正在尝试使用Java SDK (https://github.com/vmware/vsphere-automation-sdk-java)克隆一个vsphere VM,我能够运行所有可用的示例,如列出VM和创建VM等。但是当我尝试执行vmService.instantClone(instantCloneSpec)时,它遇到了这个特定的错误。

代码:

代码语言:javascript
复制
import java.util.Collections;
import java.util.List;

import com.vmware.vcenter.VMTypes;
import org.apache.commons.cli.Option;
import com.vmware.vcenter.VM;
import org.camunda.bpm.getstarted.loanapproval.common.SamplesAbstractBase;




public class CloneVmManager extends SamplesAbstractBase {



    private VM vmService;

    /**
     * Define the options specific to this sample and configure the sample using
     * command-line arguments or a config file
     *
     * @param args command line arguments passed to the sample
     */
    protected void parseArgs(String[] args) {
        List<Option> optionList = Collections.<Option>emptyList();
        super.parseArgs(optionList, args);
    }

    protected void setup() throws Exception {
        this.vmService =
                vapiAuthHelper.getStubFactory()
                        .createStub(VM.class, sessionStubConfig);



    }

    protected void run() throws Exception {
        // TODO: Add your sample code here
     try {
         VMTypes.InstantClonePlacementSpec placementSpec= new VMTypes.InstantClonePlacementSpec();
         placementSpec.setDatastore("datastore1");
         placementSpec.setFolder("cvs");
         VMTypes.InstantCloneSpec instantCloneSpec =new VMTypes.InstantCloneSpec();
         instantCloneSpec.setName("instantClone1");
//         instantCloneSpec.setSource("tpl_reproxy-6_10-wax-CentOS6-h9-ver2.4");
         instantCloneSpec.setSource("_Ubuntu_19_Template");
         instantCloneSpec.setDisconnectAllNics(true);
         instantCloneSpec.setPlacement(placementSpec);
         vmService.instantClone(instantCloneSpec);
     }catch (Exception e){
         System.out.println("something went wrong"+e.getMessage());
         e.printStackTrace();
     }


    }
    protected void cleanup() throws Exception {
        // TODO: Add cleanup here
    }

    public static void main(String[] args) throws Exception {
        /*
         * Execute the sample using the command line arguments or parameters
         * from the configuration file. This executes the following steps:
         * 1. Parse the arguments required by the sample
         * 2. Login to the server
         * 3. Setup any resources required by the sample run
         * 4. Run the sample
         * 5. Cleanup any data created by the sample run, if cleanup=true
         * 6. Logout of the server
         */
//        new CloneVmManager().execute(args);
    }

    public void runcustom(String[] args) throws Exception{
        System.out.println("inside clone vm");
        for(String s:args){
            System.out.println("arg:->"+s);

        }
        new CloneVmManager().execute(args);
    }

}

正如您所看到的,它显示您容易受到中间人攻击,因为我提供了--skip-server-verification arg,所以我不确定这是身份验证问题。

我的arg应该是这样的:

代码语言:javascript
复制
    String arg[] = {
            "--server","192.168.1.1","--username","administrator@vsphere.local","--password","password","--skip-server-verification"}

错误:

代码语言:javascript
复制
2019-12-10 11:06:33.685  WARN 1140 --- [nio-8080-exec-3] c.v.v.i.p.c.r.h.TrustAllX509TrustManager : Skipped the validation of a certificate chain due to configuration policy. Your co
nnection is not secure!
2019-12-10 11:06:33.729  WARN 1140 --- [nio-8080-exec-3] c.v.v.i.p.c.r.h.AllowAllHostnameVerifier : Cannot validate the identity of 192.168.1.160 due to the hostname-verification bei
ng disabled. You are susceptible to man-in-the-middle attacks!
something went wrongUnauthenticated (com.vmware.vapi.std.errors.unauthenticated) => {
    messages = [LocalizableMessage (com.vmware.vapi.std.localizable_message) => {
    id = vapi.method.authentication.required,
    defaultMessage = This method requires authentication.,
    args = [],
    params = <null>,
    localized = <null>
}],
    data = <null>,
    errorType = UNAUTHENTICATED,
    challenge = <null>
}
com.vmware.vapi.std.errors.Unauthenticated: Unauthenticated (com.vmware.vapi.std.errors.unauthenticated) => {
    messages = [LocalizableMessage (com.vmware.vapi.std.localizable_message) => {
    id = vapi.method.authentication.required,
    defaultMessage = This method requires authentication.,
    args = [],
    params = <null>,
    localized = <null>
}],
    data = <null>,
    errorType = UNAUTHENTICATED,
    challenge = <null>
}
        at com.vmware.vapi.std.errors.Unauthenticated._newInstance2(Unauthenticated.java:244)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 01:12:24

vSphere 6.5中不提供VM#instantClone应用编程接口。即使在6.7或最新的6.7 U3中,它也不可用。目前,它仅在AWS上的VMC中可用。

“此方法是在vSphere接口6.7.1中添加的。”参考文档中的语句(引用6.7 U1)是错误的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59261012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档