Code Monkey home page Code Monkey logo

xlr-ucd-plugin's Introduction

XL Release UCD Plugin

Codacy Badge Code Climate License: MIT Github All Releases

This document describes the functionality provided by the XL Release xlr-ucd-plugin.

See the XL Release reference manual for background information on XL Release and release automation concepts.

This is a 'See It Work' plugin project, meaning the code base includes functionality that makes it easy to spin up and configure a dockerized version of the XebiaLabs platform with this plugin api already installed. Using the provided test data, you can then try out the plugin features. This is useful for familiarizing yourself with the plugin functionality, for demonstrations, for testing and for further plugin development. See the Demo/Dev section.

The plugin code base also includes a gradle task for automatic integration testing.

Overview

This plugin offers an interface from XL Release to Urban Code Deploy Server.

Requirements

Changes introduced in version 2.0.0 - 1. Polling for tasks that retrieve Status information has been replaced with the Release Schedule Task mechanism. This allows tasks to resume even if Release is rebooted. If your template includes polling parameters, you will see an alert indicator in your task, but the task will still work without changes. 2. It is now possible to set a UCD Application Process Request for a future date/time deployment.

Requirements

  • XL Release** 9.8.0+
  • This plugin has been tested with XL Release 9.8.0 and UCD 7.1.0

Installation

  • Copy the latest JAR file from the releases page into the XL_RELEASE_SERVER/plugins/__local__ directory.
  • Restart the XL Release server.

Usage

List System Configuration

The List System Configuration task will list the system attributes as name value pairs.

sys_config sys_config_done

Application Process Request

The Application Process Request task will invoke an Application Process Request in UCD for the given Application, Application Process, Environment and Versions (as defined in UCD). If Future Date and Time is set, UDC will put the request into a pending state until that time. The Date/Time string must be in the format yyyy-mm-dd HH:mm ,use a 24 hour clock for hours. Example: 2021-03-23 13:30 . The Application Process Request ID is retrieved for display or stored in an XL Release variable.

app_process_request

Application Process Request Status

Given an Application Process Request ID, this task will poll UCD for the status of the request. The Request Status and Request Result are then output.

status

Synchronous Application Process

The Synchronous Application Process task will invoke a UCD Application Process Request and then immediately poll for the status of that request. If Future Date and Time is set, UDC will put the request into a pending state until that time. The Date/Time string must be in the format yyyy-mm-dd HH:mm ,use a 24 hour clock for hours. Example: 2021-03-23 13:30 . The Request ID, Request Status and Request Result are output.

sync_process_request

Configure the UCD Server in XL Release

server-configuration

Developers

Build and package the plugins with...

./gradlew assemble

To run demo or dev version (set up docker containers for both XLR and UCD platform)

NOTE:

  1. Clone this git project to your local dev environment
  2. You will need to have Docker and Docker Compose installed.
  3. The XL-Release docker image uses the community trial license
  4. You will need to be able to run a bash script
  5. You will need to have curl and jq installed
  6. XL Release will run on the localhost port 15516.
  7. The XL Release username / password is admin / admin.
  8. The UCD Server runs on the localhost port 8443
  9. The UCD username / password is admin / admin
  • Note: As of June 2021, the UCD images do not appear to be available on DockerHub. Lynn D'Amato and Dave Roberts have local copies.

  • Before running the demo, be sure to create the plugin by opening a terminal, cd into the plugin source code directory, and run

./gradlew clean build
  • To run the dev/demo mode, open a terminal, cd into the src/test/resources/docker directory of the plugin code and run
docker-compose up
  • After XLR and the UCD Platform starts up, open a terminal in the directory src/test/resources/docker/initialize and run
./initialize_demo.sh
  • This will populate both XLR and the UCD Server with the demo data. You can then log into XLR, create and then run a release based upon the imported template name 'ucdTest'.

  • To shut down and remove the docker containers - in a terminal, cd to the src/test/resources/docker directory, and run

docker-compose down

References

xlr-ucd-plugin's People

Contributors

droberts2013 avatar ielshal avatar jdewinne avatar karthiksonti24 avatar ladamato avatar ndebuhr avatar nitheshrayuduv avatar t-j-f avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xlr-ucd-plugin's Issues

Feature: Allow Snapshots to be used over Versions in Process Requests

The UrbanCode Process Request API allows the use of Snapshots over specific Components : Versions.

https://www.ibm.com/support/knowledgecenter/SS4GSP_6.2.5/com.ibm.udeploy.api.doc/topics/rest_cli_applicationprocessrequest_request_put.html

"snapshot": "Snapshot name or ID (Optional)",

The feature to specify this in XL Release UCD Plugin would be extremely Beneficial as some of our Applications have a large amount of Components where users organise/deploy them via Snapshots.

Application Process Request Status not working as expected

Hi there, I have a query that is running 30 seconds in UCD, which I'm calling from a template in XLR. I tried setting the polling interval to 10 seconds, polling 10 times, and it received a status back to XLR only after (1010) = 100 seconds, not when the job finished in UCD. I then tried (1020) and (10* 25), with the same result. I only received back a status of "Closed" with a Request Status of "Succeeded", after 200 and 250 seconds, respectively. I then tried 10 seconds with the polling interval at 0 (infinite), and after 7 minutes of waiting for a response back (query ran 30 seconds in UCD), I aborted. How is this request status polling supposed to work -- should it not respond back with a status when the query is done?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.