diff options
author | Ryan Harper <ryan.harper@canonical.com> | 2020-08-17 11:06:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-17 12:06:20 -0400 |
commit | a4b6b96f30bdd994ab535b222cf4b4bf09f20668 (patch) | |
tree | b663314d2bc85a48460306d215e107bb4af3787c /doc/rtd/topics/format.rst | |
parent | ef041fd822a2cf3a4022525e942ce988b1f95180 (diff) | |
download | vyos-cloud-init-a4b6b96f30bdd994ab535b222cf4b4bf09f20668.tar.gz vyos-cloud-init-a4b6b96f30bdd994ab535b222cf4b4bf09f20668.zip |
cli: add devel make-mime subcommand (#518)
* cli: add devel make-mime subcommand
Cloud-init documents an in-source-tree tool, make-mime.py used to
help users create multi-part mime user-data. This tool is not shipped
in the cloud-init install and unavailable at runtime. This patch
takes tools/make-mime.py and makes the functionality available via
the devel subcommand.
The primary interface of --attach file:content-type is still present.
The cli now adds:
-l, --list-types Print out a list of supported content-types
-f, --force Ignore errors for unsupported content-types
The tool will now raise a RunTime error if the supplied content-type
is not supported (or more likely a typo:
x-shell-script vs. x-shellscript)
* make-mime: write to stderr and exit 1 instead of raising RuntimeError
* Update example to match docs
* Update docs for make-mime subcommand
* Remove tools/make-mime.py; replaced by cloud-init devel make-mime
Co-authored-by: Rick Harding <rharding@mitechie.com>
Diffstat (limited to 'doc/rtd/topics/format.rst')
-rw-r--r-- | doc/rtd/topics/format.rst | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/doc/rtd/topics/format.rst b/doc/rtd/topics/format.rst index 1d0a7097..d03e4caf 100644 --- a/doc/rtd/topics/format.rst +++ b/doc/rtd/topics/format.rst @@ -23,33 +23,35 @@ Using a mime-multi part file, the user can specify more than one type of data. For example, both a user data script and a cloud-config type could be specified. -Supported content-types: +Supported content-types are listed from the cloud-init subcommand make-mime:: -- text/cloud-boothook -- text/cloud-config -- text/cloud-config-archive -- text/jinja2 -- text/part-handler -- text/upstart-job -- text/x-include-once-url -- text/x-include-url -- text/x-shellscript + % cloud-init devel make-mime --list-types + cloud-boothook + cloud-config + cloud-config-archive + cloud-config-jsonp + jinja2 + part-handler + upstart-job + x-include-once-url + x-include-url + x-shellscript -Helper script to generate mime messages ---------------------------------------- -The cloud-init codebase includes a helper script to generate MIME multi-part -files: `make-mime.py`_. +Helper subcommand to generate mime messages +------------------------------------------- -``make-mime.py`` takes pairs of (filename, "text/" mime subtype) separated by -a colon (e.g. ``config.yaml:cloud-config``) and emits a MIME multipart -message to stdout. An example invocation, assuming you have your cloud config -in ``config.yaml`` and a shell script in ``script.sh`` and want to store the -multipart message in ``user-data``:: +The cloud-init subcommand can generate MIME multi-part files: `make-mime`_. - ./tools/make-mime.py -a config.yaml:cloud-config -a script.sh:x-shellscript > user-data +``make-mime`` subcommand takes pairs of (filename, "text/" mime subtype) +separated by a colon (e.g. ``config.yaml:cloud-config``) and emits a MIME +multipart message to stdout. An example invocation, assuming you have your +cloud config in ``config.yaml`` and a shell script in ``script.sh`` and want +to store the multipart message in ``user-data``:: -.. _make-mime.py: https://github.com/canonical/cloud-init/blob/master/tools/make-mime.py + % cloud-init devel make-mime -a config.yaml:cloud-config -a script.sh:x-shellscript > user-data + +.. _make-mime: https://github.com/canonical/cloud-init/blob/master/cloudinit/cmd/devel/make_mime.py User-Data Script |