/** * 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); } }