# composer-cli — Lorax 28.21 documentation

# composer-cli

Authors: | Brian C. Lane <bcl@redhat.com>

`composer-cli` is used to interact with the `lorax-composer` API server, managing blueprints, exploring available packages, and building new images.

It requires lorax-composer to be installed on the local system, and the user running it needs to be a member of the `weldr` group. They do not need to be root, but all of the security precautions apply.

## composer-cli cmdline arguments

Lorax Composer commandline tool

    usage: composer-cli [-h] [-j] [-s SOCKET] [--log LOG] [-a APIVER]
                        [--test TESTMODE] [-V]
                        ...

### Positional Arguments

`args` |

### Named Arguments

`-j, --json` | Output the raw JSON response instead of the normal output. Default: False
`-s, --socket` | Path to the socket file to listen on Default: “/run/weldr/api.socket”
`--log` | Path to logfile (./composer-cli.log)
`-a, --api` | API Version to use Default: “0”
`--test` | Pass test mode to compose. 1=Mock compose with fail. 2=Mock compose with finished. Default: 0
`-V` | show program’s version number and exit Default: False

compose start <BLUEPRINT> <TYPE>
  Start a compose using the selected blueprint and output type.
compose types
  List the supported output types.
compose status
  List the status of all running and finished composes.
compose list [waiting|running|finished|failed]
  List basic information about composes.
compose log <UUID> [<SIZE>]
  Show the last SIZE kB of the compose log.
compose cancel <UUID>
  Cancel a running compose and delete any intermediate results.
compose delete <UUID,…>
  Delete the listed compose results.
compose info <UUID>
  Show detailed information on the compose.
compose metadata <UUID>
  Download the metadata use to create the compose to <uuid>-metadata.tar
compose logs <UUID>
  Download the compose logs to <uuid>-logs.tar
compose results <UUID>
  Download all of the compose results; metadata, logs, and image to <uuid>.tar
compose image <UUID>
  Download the output image from the compose. Filename depends on the type.
blueprints list
  List the names of the available blueprints.
blueprints show <BLUEPRINT,…>
  Display the blueprint in TOML format.
blueprints changes <BLUEPRINT,…>
  Display the changes for each blueprint.
blueprints diff <BLUEPRINT> <FROM-COMMIT> <TO-COMMIT>
  Display the differences between 2 versions of a blueprint. FROM-COMMIT can be a commit hash or NEWEST TO-COMMIT can be a commit hash, NEWEST, or WORKSPACE
blueprints save <BLUEPRINT,…>
  Save the blueprint to a file, <BLUEPRINT>.toml
blueprints delete <BLUEPRINT>
  Delete a blueprint from the server
blueprints depsolve <BLUEPRINT,…>
  Display the packages needed to install the blueprint.
blueprints push <BLUEPRINT>
  Push a blueprint TOML file to the server.
blueprints freeze <BLUEPRINT,…>
  Display the frozen blueprint’s modules and packages.
blueprints freeze show <BLUEPRINT,…>
  Display the frozen blueprint in TOML format.
blueprints freeze save <BLUEPRINT,…>
  Save the frozen blueprint to a file, <blueprint-name>.frozen.toml.
blueprints tag <BLUEPRINT>
  Tag the most recent blueprint commit as a release.
blueprints undo <BLUEPRINT> <COMMIT>
  Undo changes to a blueprint by reverting to the selected commit.
blueprints workspace <BLUEPRINT>
  Push the blueprint TOML to the temporary workspace storage.
modules list
  List the available modules.
projects list
  List the available projects.
projects info <PROJECT,…>
  Show details about the listed projects.
sources list
  List the available sources
sources info <SOURCE-NAME,…>
  Details about the source.
sources add <SOURCE.TOML>
  Add a package source to the server.
sources change <SOURCE.TOML>
  Change an existing source
sources delete <SOURCE-NAME>
  Delete a package source.

status show Show API server status.

## Edit a Blueprint

Start out by listing the available blueprints using `composer-cli blueprints list`, pick one and save it to the local directory by running `composer-cli blueprints save http-server`. If there are no blueprints available you can copy one of the examples from the test suite.

Edit the file (it will be saved with a .toml extension) and change the description, add a package or module to it. Send it back to the server by running `composer-cli blueprints push http-server.toml`. You can verify that it was saved by viewing the changelog - `composer-cli blueprints changes http-server`.

## Build an image

Build a `qcow2` disk image from this blueprint by running `composer-cli compose start http-server qcow2`. It will print a UUID that you can use to keep track of the build. You can also cancel the build if needed.

The available types of images is displayed by `composer-cli compose types`. Currently this consists of: ami, ext4-filesystem, live-iso, partitioned-disk, qcow2, tar, vhd, vmdk

## Monitor the build status

Monitor it using `composer-cli compose status`, which will show the status of all the builds on the system. You can view the end of the anaconda build logs once it is in the `RUNNING` state using `composer-cli compose log UUID` where UUID is the UUID returned by the start command.

Once the build is in the `FINISHED` state you can download the image.

## Download the image

Downloading the final image is done with `composer-cli compose image UUID` and it will save the qcow2 image as `UUID-disk.qcow2` which you can then use to boot a VM like this:

    qemu-kvm --name test-image -m 1024 -hda ./UUID-disk.qcow2