Skip to content

Instantly share code, notes, and snippets.

@hroi
Created May 16, 2010 00:00
Show Gist options
  • Select an option

  • Save hroi/402519 to your computer and use it in GitHub Desktop.

Select an option

Save hroi/402519 to your computer and use it in GitHub Desktop.
(ns vm-clj
(:import
(com.vmware.vim25.mo ServiceInstance
InventoryNavigator)))
(def *defaults* {:url (java.net.URL. "https://vcenter.example.com/sdk")
:username "joe"
:password "random"})
(defn get-service-instance [url username password]
(ServiceInstance. url username password))
(defn get-default-si []
(apply get-service-instance (vals *defaults*)))
(defn get-rootfolder [si]
(.getRootFolder si))
(defn get-navigator [root-folder]
(InventoryNavigator. root-folder))
(defn get-mo "Get ManagedObject references" [type nav]
(seq (. nav (searchManagedEntities type))))
(def get-datacenters (partial get-mo "Datacenter"))
(def get-networks (partial get-mo "Network"))
(def get-clusters (partial get-mo "ClusterComputResource"))
(def get-datastores (partial get-mo "Datastore"))
(def get-folders (partial get-mo "Folder"))
(def get-hosts (partial get-mo "HostSystem"))
(defn names-of [xs]
(map #(.getName %) xs))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment