Managing request properties


The process of application deployment requires many activities, resources, and steps to be performed. If your usual deployment process encompasses dozens or hundreds of steps that require some inputs, it can be challenging going through all the steps and providing the necessary data.

Request properties are properties that can be used within a request that is deployed and represent input arguments for the automation scripts in steps. Request properties can be added in a request or request template that you can later reuse. After you define the inputs that are required for a request to be completed, you can create corresponding properties and reference these properties in your automation scripts. Therefore, all the required inputs for a request are displayed in one place on the BMC Release Lifecycle Management Requester UI (now called Release Process Management - Requester UI, 5.0.03.001 onward) (RLM Requester UI (now called RPM Requester UI, 5.0.03.001 onward)).

Information
Example

 To deploy the JPetStore 5.0.01 application, a Requester user must specify the Build #, Change request ID, and optionally Requester ID request properties that are used as inputs in request steps.

req_prop_on_new_UI.png

The topic contains the following information:

Creating request properties

After you define the properties that are required to complete a request, you can create these properties in a request or request template using the BMC Release Process Management (RPM) Classic UI. If you create a release with a request template that contains request properties, these request properties will be displayed as inputs before you deploy the request on the RLM Requester UI (now called RPM Requester UI, 5.0.03.001 onward).

  1. In BMC Release Process Management, on the Requests tab, click the existing request or create a new one.
  2. Under the request status, click expand.
    requests_expand.png
  3. In the Request Properties section, do the following:
    1. In the Name box, enter a unique request property name (for example, build ID).

      Warning

      Note

      Ensure that the name of a request property that you create is unique comparing to other property types (for example, server or component properties) that are used in the request or request template that you are deploying.

      View the properties priority

      The priority of the properties is the following:

      1. Server property—Property assigned to a server.

      2. Step property—If a property value was specified in a request step.

      3. Component property—If a property value was specified when creating the application.

      4. Request property—Property created on a request level.

      5. Default property—If a property was created in RPM metadata.

      If you create a server and request property with the same name in the same request or request template, the server property will be used instead of the request property.

    2. In the Value box, enter a value for the request property (for example, 1006 or ifconfig).
    3. (Optional) To encrypt the request property values during the HTTP response or in the server logs, select the Private check box.
    4. (Optional) To make the request property values required during the request deployment, select the Required check box.
    5. Click Add new property.
  4. Create as many request properties as necessary.

Back to top

Using runtime request properties

All automation output parameters within a request are regarded as request properties in RPM. Therefore, you can create request properties during the request runtime using automation. If an automation script used in a request step returns a value that you need to use in another consequent step, you can write this value to a variable that will represent a runtime request property, and then reference this property in the automation script of the next step. You can use more than one request property as an automation input.

Warning

Note

SS_parameters cannot be overwritten.

To create a runtime request property

  1. Use the pack_response routine to write the output from an automation script to a variable that will represent a request property.

    • For Ruby-based scripts use pack_response 'outputArgumentName' 'outputArgumentValue'.
    • For remote shell and local shell scripts use echo "pack_response 'outputArgumentName' 'outputArgumentValue'".

    Information

    You are using a custom automation script to obtain an IP address of a remote server. The result of the ifconfig command is written to the result argument. In your automation, you must add:

    echo "pack_response 'IP_address' '$result'"

    This echo command will create a runtime request property with the IP_address name and the corresponding value of the result argument.

    For more information about using the Ruby routines, see Routines-for-local-ruby-scripts.


  2. Reference a value of the request property as an input argument in automation of the next step by using the following syntax: ${propertyName}.

    Information

    You need to verify the connection to the server the IP of which is written to the IP_address runtime request property. You can create a request step where you will use the Direct_execute task with the ping ${IP_address} command.

    ping_IP__step.png


Warning

Note

Runtime request properties can be used only within a request that you are deploying and their values are not shown on the UI and cannot be updated manually.

Back to top

To create a private runtime request property

If required, you can encrypt the values of the runtime request property.

  1. Open a script which uses the required output argument (runtime request property).
  2. In the upper section of the script body, under the appropriate output argument, add private: true.

    Warning

    Note

    Once you set the private attribute of a request property to true, you cannot decrypt it by setting the value to false.

    Information

     The following script has the Output_1 argument which is private.

    private_runtime_property.png


    Warning

    Note

    Request property becomes private after the script execution if a runtime request property has the same name as a request property created from the UI.

Editing and deleting request properties

You can edit or delete request properties using the RPM Classic UI when a request is in the CreatedPlanned, or Hold state. Request property values can also be updated during the deployment of requests on the RLM Reqeuster UI.

  1. In BMC Release Process Management, on the Requests tab, click the appropriate request for which you want to edit a property.
  2. Under the request status, click expand.
    requests_expand.png
  3. In the Request Properties section, in the Actions column, do one of the following:
    • To edit a request property, click edit_icon.png, make the appropriate changes, and then click Save.

      Warning

      Note

      If you decrypt a private request property, the value of this property is cleared.

    • To delete a request property, click delete_icon.png, and then click OK to confirm.

Back to top

Related topics

Managing-requests

Managing-releases

Managing-steps

REST-v-2-request-properties

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Release Process Management 5.0