Example #1
0
  /**
   * Main Constructor Takes a ServiceInstance object created by the login splash
   *
   * @param ServiceInstance si
   * @see LoginSplash
   */
  public CommandEngine(ServiceInstance si, Main main) {
    super(si);
    this.main = main;
    vmTemplates = new ArrayList<Template>();
    vmRootEntities = new ArrayList<VirtualMachineExt>();
    vmFolders = new ArrayList<FolderExt>();
    networks = new ArrayList<Network>();

    try {
      Folder rootFolder = si.getRootFolder();
      ManagedEntity[] datacenters = rootFolder.getChildEntity();
      for (int i = 0; i < datacenters.length; i++) {
        if (datacenters[i] instanceof Datacenter
            && datacenters[i].getName().equalsIgnoreCase(DATACENTER)) {
          dc = (Datacenter) datacenters[i];
        }
      }

      // Set the template directory and the project directory
      for (ManagedEntity each : dc.getVmFolder().getChildEntity()) {
        if (each instanceof Folder && each.getName().equalsIgnoreCase(TEMPLATE_FOLDER)) {
          templateDir = (Folder) each;
        } else if (each instanceof Folder && each.getName().equalsIgnoreCase(ROOT_FOLDER)) {
          rootDir = (Folder) each;
        }
      }

      // Set the target datastore for new VM deployments
      for (ManagedEntity each : dc.getDatastoreFolder().getChildEntity()) {
        if (each instanceof Datastore && each.getName().equalsIgnoreCase(TARGET_DATASTORE)) {
          targetDatastore = (Datastore) each;
        }
      }

      // Get Networks - only happens once per load
      for (ManagedEntity each : dc.getNetworkFolder().getChildEntity()) {
        if (each instanceof Network) {
          networks.add(((Network) each));
        }
      }

      refresh();
    } catch (RemoteException e) {
      disconnect();
      LOG.printStackTrace(e);
    } catch (Exception e) {
      LOG.printStackTrace(e);
    }
  }