The Wazi Deploy generation command

This command generates the deployment plan that lists the deployment steps. These steps will be run by the Ansible® or Python translator to deploy the application artifacts to the z/OS target environment. The generation command also produces a deployment plan report in HTML format.

To start the generation, enter a wazideploy-generate UNIX command line and specify its arguments.

Two upload types are available with The Wazi Deploy packager command (wazideploy-package):
  • The archive upload type, which is the default value. In this case the wazideploy-package command generates a .tar file. You can also provide a .tar file without using the wazideploy-package command. In both cases, the basic usage is to only provide the .tar file and the deployment method as inputs to the wazideploy-generate command.
  • The folder upload type. In this case you must provide the manifest generated by the wazideploy-package command and the deployment method as inputs to the wazideploy-generate command. The wazideploy-generate command generates the .tar file for you.

The following code shows the syntax of the command.

usage: wazideploy-generate [-h] -dm deploymentMethod [-m manifests] -dp deploymentPlan [-dpn deploymentPlanName] [-dpv deploymentPlanVersion] [-dpd deploymentPlanDescription]
                           [-dpr deploymentPlanReport] [-pof packageOutputFile] [-pif packageInputFiles] [-cf configFile] [-lcf logConfigFile] [-t tags] [-st skipTags]
                           [-yvt {strict,warning,skip}] [-wf workingFolder] [-v]

Deployer Program Description

options:
  -h, --help            show this help message and exit
  -dm deploymentMethod, --deploymentMethod deploymentMethod
                        The deployment method to use (required).
  -m manifests, --manifests manifests
                        The list of manifests states (comma separated list) (optional).
  -dp deploymentPlan, --deploymentPlan deploymentPlan
                        The path of the generated deployment plan (required).
  -dpn deploymentPlanName, --deploymentPlanName deploymentPlanName
                        The name of the deployment plan. (default: tag 'name' in first manifest or first package name)
  -dpv deploymentPlanVersion, --deploymentPlanVersion deploymentPlanVersion
                        The version of the deployment plan. (default: tag 'version' in first manifest or empty)
  -dpd deploymentPlanDescription, --deploymentPlanDescription deploymentPlanDescription
                        The description of the deployment plan. (default: tag 'description' in first manifest or empty)
  -dpr deploymentPlanReport, --deploymentPlanReport deploymentPlanReport
                        The path of the generated deployment plan report (optional)(default: DeploymentPlanReport.html)
  -pof packageOutputFile, --packageOutputFile packageOutputFile
                        The path of the generated package tar file (optional).
  -pif packageInputFiles, --packageInputFiles packageInputFiles
                        The list of packages files to deploy (comma separated list) (optional).
  -cf configFile, --configFile configFile
                        The path to the configuration file (optional).
  -lcf logConfigFile, --logConfigFile logConfigFile
                        The logging configuration file (optional)
  -t tags, --tags tags  Only handle activities, actions and steps tagged with these values (comma separated list) (optional).
  -st skipTags, --skipTags skipTags
                        Only handle activities, actions and steps whose tags do not match these values (comma separated list) (optional).
  -yvt {strict,warning,skip}, --yamlValidationType {strict,warning,skip}
                        Yaml schema compliance validation type for manifests, deployment method and current deployment state (default: strict)
  -wf workingFolder, --workingFolder workingFolder
                        The path to the working folder (default: OS system tmp folder)
  -v, --version         Print product version and exit
Note: The deployment method and the configuration file that are used as input to the Wazi Deploy generation command must be UTF-8 encoded.

The following table describes the arguments of the command line. Each argument has a long name and a short name, which are equivalent.

Table 1. Arguments of the command line
Argument long name Argument short name Description Required
--help -h The command line help. No
--deploymentMethod -dm
The deployment method to use.
Yes
--manifests -m The application manifest, or the comma-separated list of the application manifests. The first manifest of the list has the highest priority.

The manifests are generated by the Wazi Deploy packager.

In a static deployment, the manifests are generated by the Wazi Deploy packager if its uploadType argument is set to folder. In that case, in the Wazi Deploy generation command, you must not specify the --packageInputFiles argument based on the manifest. The generation command will produce a .tar file to the path that is specified in the --packageOutputFile argument.

No
--deploymentPlanName -dpn
The name of the deployment plan.

By default, this name corresponds to the name field of the first manifest that is listed in the --manifests argument, or to the name of the first .tar package that is listed in the --packageInputFiles argument.

No
--deploymentPlanVersion -dpv
The version of the deployment plan.

By default, this version corresponds to the version field of the first manifest that is listed in the --manifests argument, or is empty.

No
--deploymentPlanDescription -dpd
The description of the deployment plan.

By default, this version corresponds to the description field of the first manifest that is listed in the --manifests argument, or to the description of the first .tar package that is listed in the --packageInputFiles argument.

No
--deploymentPlan -dp The path to the generated deployment plan. Yes
--deploymentPlanReport -dpr
The path to the generated report of the deployment plan.

It defaults to DeploymentPlanReport.html.

No
--packageOutputFile -pof
In a static deployment, the path where the input .tar package file is to be downloaded to or built. This argument is valid only if one or both of the following conditions are met:
  • The --packageInputFiles arguments refer to a URL that starts with https.
  • The --packageInputFiles argument contains multiple inputs.
No
--packageInputFiles -pif A comma-separated list of packages. The first package of the list has the highest priority.

In a static deployment, the path to the input .tar package file (or package files) to deploy.

The .tar package can be on the file system. You can also give the repository manager URL location of the .tar file.

The .tar package must contain files with file extensions, which will be considered as the artifact types in the deployment method. If a wazideploy_manifest.yml manifest file is present at the root of this .tar package, the generation command analyzes this manifest file.

No
--configFile -cf
The path to the configuration file that contains the credentials to the artifact repository.

It is required if --packageOutputFile is specified.

No
--logConfigFile -lcf
The logging configuration file to customize the default log file.
No
--tags -t
Tags to include activities, actions, and steps in the deployment.

The tags that you enter must correspond to tags that are indicated on activities, actions, or steps in the The deployment method. If you enter several tags, you must separate them with a comma.

No
--skipTags -st
Tags to exclude activities, actions, and steps from the deployment.

The tags that you enter must correspond to tags that are indicated on activities, actions, or steps in the The deployment method. If you enter several tags, you must separate them with a comma.

No
--yamlValidationType -yvt
The type of validation for the YAML files such as The deployment method.
You can enter the following values:
  • strict (default value) to block the deployment when YAML errors are detected.
  • warning to deploy despite YAML errors.
  • skip to skip the validation of the YAML files.

See Validation of the YAML files to understand the format of the YAML validation errors.

No
--workingFolder -wf The path to the working folder. No
--version -v The Wazi Deploy version. No

The following code shows a sample command line for a static deployment that deploys the .tar file as is:

wazideploy-generate\
  --deploymentMethod wazi_deploy_test/input/deployment_method.yml\ 
  --deploymentPlan wazi_deploy_test/output/deployment_plan.yml\
  --packageInputFiles wazi_deploy_test/input/input_package.tar

Validation of the YAML files

You can use the --yamlValidationType argument to scan and validate the syntax of the Wazi Deploy YAML files. The validation scans the fields of the YAML files and compares them with the lists of the allowed properties, the lists of the mandatory properties, or the list of the possible field values.

If errors are detected, they are displayed in the console and, by default, the deployment is not run.

The following example shows how some errors, which were detected on a deployment method, are displayed in the console:
input/deployment_method.yml
'actions' is a required property - Path : $.activities[0]
Additional properties are not allowed ('testko' was unexpected) - Path : $.activities[1]
'True' is not of type 'boolean' - Path : $.activities[1].is_artifact
None is not of type 'array' - Path : $.activities[1].actions[0].steps[0].tags
The following lines are displayed for each file where at least one error was detected:
  • The first line is the whole path to the file where the errors were detected.

    In the example, the errors were detected on a deployment method.

  • The next lines list the errors and, after a dash (-), the error context.
    In the example, the following errors were detected:
    • The actions property is missing. The error was found in the first activity of the deployment method.
      Note: A list begins at 0.
    • A testko field is not one of the possible fields of an activity. This field was wrongly added to the second activity of the deployment method.
    • "True" is not a possible value for the Boolean that was expected. A Boolean must be declared without quotation mark. The error was found on the is_artifact line of the second activity.
    • No word was specified where an array of words was expected. The error was found in the tags line of the second activity of the deployment method, in the first step of its first action.