summaryrefslogtreecommitdiff
path: root/doc/examples/part-handler-v2.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/part-handler-v2.txt')
-rw-r--r--doc/examples/part-handler-v2.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/examples/part-handler-v2.txt b/doc/examples/part-handler-v2.txt
new file mode 100644
index 00000000..554c34a5
--- /dev/null
+++ b/doc/examples/part-handler-v2.txt
@@ -0,0 +1,38 @@
+#part-handler
+# vi: syntax=python ts=4
+# this is an example of a version 2 part handler.
+# the differences between the initial part-handler version
+# and v2 is:
+# * handle_part receives a 5th argument, 'frequency'
+# frequency will be either 'always' or 'per-instance'
+# * handler_version must be set
+#
+# A handler declaring version 2 will be called on all instance boots, with a
+# different 'frequency' argument.
+
+handler_version = 2
+
+def list_types():
+ # return a list of mime-types that are handled by this module
+ return(["text/plain", "text/go-cubs-go"])
+
+def handle_part(data,ctype,filename,payload,frequency):
+ # data: the cloudinit object
+ # ctype: '__begin__', '__end__', or the specific mime-type of the part
+ # filename: the filename for the part, or dynamically generated part if
+ # no filename is given attribute is present
+ # payload: the content of the part (empty for begin or end)
+ # frequency: the frequency that this cloud-init run is running for
+ # this is either 'per-instance' or 'always'. 'per-instance'
+ # will be invoked only on the first boot. 'always' will
+ # will be called on subsequent boots.
+ if ctype == "__begin__":
+ print "my handler is beginning, frequency=%s" % frequency
+ return
+ if ctype == "__end__":
+ print "my handler is ending, frequency=%s" % frequency
+ return
+
+ print "==== received ctype=%s filename=%s ====" % (ctype,filename)
+ print payload
+ print "==== end ctype=%s filename=%s" % (ctype, filename)