VMware {code} Community
acwang27
Contributor
Contributor

How to add an item to "Tasks (Console)" of vSphere Web Client

Hi all,

 

I am a total newbie in VMware SDK developing. I am trying to track action progress for my extension (plugin) using the Task Console but I could not find any sample code to help. I tried to piece the following code together but it was not working (no errors either). I am using vSphere Web Client version 6.0.

 

        ServiceContent service = getServiceContent(serverGuid)

        // create task manager

        // ManagedObjectReference taskMgrRef = service.getTaskManager();

        // create scheduled task manager

        ManagedObjectReference scheduledTaskMgrRef = service.getScheduledTaskManager();

      

        // root folder

        ManagedObjectReference rootFolder = service.getRootFolder();

      

        // create scheduled task

        ScheduledTaskSpec scheduledTaskSpec = new ScheduledTaskSpec();

        scheduledTaskSpec.setName("TEST_SCHEDULE");

        scheduledTaskSpec.setEnabled(Boolean.TRUE);

        scheduledTaskSpec.setDescription("addAppliance-scheduledTask");

        // set action

        CreateTaskAction action = new CreateTaskAction();

        action.setTaskTypeId("TEST_SCHEDULE_sampletask");

        scheduledTaskSpec.setAction(action);

        // set scheduler

        OnceTaskScheduler onceTaskScheduler = new OnceTaskScheduler();

        scheduledTaskSpec.setScheduler(onceTaskScheduler);

        // set scheduler

        OnceTaskScheduler onceTaskScheduler = new OnceTaskScheduler();

        scheduledTaskSpec.setScheduler(onceTaskScheduler);

      

        ManagedObjectReference scheduledTask = null;

        try {

              scheduledTask = _vimPort.createObjectScheduledTask(cheduledTaskMgrRef, rootFolder, scheduledTaskSpec);

        } catch (DuplicateNameFaultMsg | InvalidNameFaultMsg | RuntimeFaultFaultMsg e) {

                                                                                                            
             String errorMessage =                                 String.format( 
    "An Exception Occurred while getCustomFieldDefs " +
    "in addDatastore call, details - %s.",
    e.getMessage());
                                                                      
      logger.log(Level.SEVERE, errorMessage);
      throw new VMwareRequestException(errorMessage);
      }  

 

  

 

Is there anything wrong in the code? I am also confused that should I use task manager or scheduled task manager?

Could anybody help me on that?

Thanks in advance!

0 Kudos
0 Replies