Skip to content

Instantly share code, notes, and snippets.

@tbatchelli
Created March 22, 2011 07:26
Show Gist options
  • Save tbatchelli/880890 to your computer and use it in GitHub Desktop.
Save tbatchelli/880890 to your computer and use it in GitHub Desktop.
(defn debug [req comment & [key-vec]]
(println "***" comment (or key-vec "(full request)"))
(if key-vec
(pprint (get-in req key-vec))
(pprint req))
req)
(defn add-slave [req]
(let [target-node (:target-node req)
target-ip (compute/primary-ip target-node)]
(-> req
(parameter/update-for-service [:slaves]
(fn [v] (conj (or v []) target-ip)))
(debug "after adding slave" [:parameters]))))
(defn get-slaves [req]
(-> req
(debug "before getting the slaves" [:parameters] )
(parameter/get-for-service [:slaves])))
(defnode master ubuntu
:bootstrap automated-admin-user
:configure (phase
(remote-file/remote-file
"/tmp/slaves.txt"
:content (argument/delayed
[req]
(get-slaves req)))))
(defnode slave ubuntu
:bootstrap automated-admin-user
:configure add-slave)
user > (converge {slave 2 master 1} :compute service)
*** after adding slave [:parameters]
{:service {:slaves ["10.0.1.49"]},
:host
{:a5131ae3-f4b1-4db0-af6b-aa4a3bc6d367 nil,
:5e2b39ca-20ad-4aca-b5d9-8d30930dda5e nil,
:bf861f6a-2b85-4e99-af99-bdfafa8a3b24 nil}}
*** after adding slave [:parameters]
{:service {:slaves ["10.0.1.49" "10.0.1.50"]},
:host
{:a5131ae3-f4b1-4db0-af6b-aa4a3bc6d367 nil,
:5e2b39ca-20ad-4aca-b5d9-8d30930dda5e nil,
:bf861f6a-2b85-4e99-af99-bdfafa8a3b24 nil}}
*** before getting the slaves [:parameters]
{:host
{:95f09fc8-937f-4118-b878-03d197bd04aa nil,
:897da3a9-59fe-4848-925b-ec2c4cf8de80 nil,
:e4941a36-c94d-461e-8ce7-ad5f47fb6f24 nil}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment