You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -20,7 +19,13 @@ This plugin offers an interface from XL Release to Urban Code Deploy Server.
20
19
21
20
## Requirements
22
21
23
-
* XL Release** 9.0.0+
22
+
Changes introduced in version 2.0.0 -
23
+
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.
24
+
2. It is now possible to set a UCD Application Process Request for a future date/time deployment.
25
+
26
+
## Requirements
27
+
28
+
* XL Release** 9.8.0+
24
29
* This plugin has been tested with XL Release 9.8.0 and UCD 7.1.0
25
30
26
31
## Installation
@@ -39,7 +44,8 @@ The List System Configuration task will list the system attributes as name value
39
44
40
45
### Application Process Request
41
46
42
-
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). The Application Process Request ID is retrieved for display or stored in an XL Release variable.
47
+
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 .
48
+
The Application Process Request ID is retrieved for display or stored in an XL Release variable.
@@ -51,7 +57,7 @@ Given an Application Process Request ID, this task will poll UCD for the status
51
57
52
58
### Synchronous Application Process
53
59
54
-
The Synchronous Application Process task will invoke a UCD Application Process Request and then immediately poll for the status of that request. The Request ID, Request Status and Request Result are output.
60
+
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.
@@ -67,30 +73,19 @@ Build and package the plugins with...
67
73
./gradlew assemble
68
74
```
69
75
70
-
### To run integration tests
71
-
72
-
1. Clone this git project to your local dev environment
73
-
2. You will need to have Docker and Docker Compose installed.
74
-
3. The XL-Release docker image uses the community trial license
75
-
4. Open a terminal in the root of the xlr-ucd-plugin project and run the following gradle task
76
-
77
-
```bash
78
-
./gradlew clean integrationTest
79
-
```
80
-
81
-
The test will set up a temporary xlr/ucd testbed using docker. After testing is complete, the test docker containers are stopped and removed.
82
-
83
76
### To run demo or dev version (set up docker containers for both XLR and UCD platform)
84
77
85
78
NOTE:
86
79
87
-
1. For requirements, see the 'To run integration tests' above.
88
-
2. You will need to be able to run a bash script
89
-
3. You will need to have [curl](https://curl.haxx.se/) and [jq](https://stedolan.github.io/jq/) installed
90
-
4. XL Release will run on the [localhost port 15516](http://localhost:15516/).
91
-
5. The XL Release username / password is admin / admin.
92
-
6. The UCD Server runs on the [localhost port 8443](https://localhost:8443/)
93
-
7. The UCD username / password is admin / admin
80
+
1. Clone this git project to your local dev environment
81
+
2. You will need to have Docker and Docker Compose installed.
82
+
3. The XL-Release docker image uses the community trial license
83
+
4. You will need to be able to run a bash script
84
+
5. You will need to have [curl](https://curl.haxx.se/) and [jq](https://stedolan.github.io/jq/) installed
85
+
6. XL Release will run on the [localhost port 15516](http://localhost:15516/).
86
+
7. The XL Release username / password is admin / admin.
87
+
8. The UCD Server runs on the [localhost port 8443](https://localhost:8443/)
88
+
9. The UCD username / password is admin / admin
94
89
95
90
* Before running the demo, be sure to create the plugin by opening a terminal, cd into the plugin source code directory, and run
96
91
@@ -104,7 +99,13 @@ NOTE:
104
99
docker-compose up
105
100
```
106
101
107
-
* After XLR and the UCD Platform starts up, open a terminal in the directory src/test/resources/docker/initialize and run the initialize_demo.sh script. 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'.
102
+
* After XLR and the UCD Platform starts up, open a terminal in the directory src/test/resources/docker/initialize and run
103
+
104
+
```bash
105
+
./initialize_demo.sh
106
+
```
107
+
108
+
* 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'.
108
109
109
110
* To shut down and remove the docker containers - in a terminal, cd to the src/test/resources/docker directory, and run
Copy file name to clipboardExpand all lines: src/main/resources/synthetic.xml
+8-11Lines changed: 8 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
<?xml version='1.0' encoding='UTF-8'?>
2
2
<!--
3
3
4
-
Copyright 2020 XEBIALABS
4
+
Copyright 2021 XEBIALABS
5
5
6
6
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
description="Map containing the properties for the application process."kind="map_string_string"
53
53
required="false"/>
54
+
<propertyname="scheduleDate"category="input"label="(Optional) Future Date and Time to Schedule Process "
55
+
description="You can optionally schedule the application process for a future start. Use a 24 hour clock for hours. Format: yyyy-mm-
56
+
dd HH:mm Example: 2021-03-23 13:30 This string will be interpreted by your UCD server so be certain to consider that server's time zone."required="false"/>
kind="integer"description="Number of times to retry check for task status, 0 means indefinite."/>
65
-
63
+
<!-- Inputs -->
64
+
<propertyname="scheduleDate"category="input"label="(Optional) Future Date and Time to Schedule Process "
65
+
description="You can optionally schedule the application process for a future start. Use a 24 hour clock for hours. Format: yyyy-mm-
66
+
dd HH:mm Example: 2021-03-23 13:30 This string will be interpreted by your UCD server so be certain to consider that server's time zone."required="false"/>
Copy file name to clipboardExpand all lines: src/main/resources/ucd/HttpRequest.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
#
2
-
# Copyright 2020 XEBIALABS
2
+
# Copyright 2021 XEBIALABS
3
3
#
4
4
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Copy file name to clipboardExpand all lines: src/main/resources/ucd/TestConnection.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
#
2
-
# Copyright 2020 XEBIALABS
2
+
# Copyright 2021 XEBIALABS
3
3
#
4
4
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Copy file name to clipboardExpand all lines: src/main/resources/ucd/UCDClient.py
+49-11Lines changed: 49 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
#
2
-
# Copyright 2020 XEBIALABS
2
+
# Copyright 2021 XEBIALABS
3
3
#
4
4
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
5
#
@@ -11,22 +11,31 @@
11
11
12
12
importjson
13
13
importtime
14
+
importlogging
15
+
importdatetime
14
16
15
17
fromucd.HttpRequestimportHttpRequest
16
18
19
+
logger=logging.getLogger(__name__)
20
+
21
+
logger.debug("In UCDClient")
22
+
# In the case we have a future scheduled ucd_applicationprocessrequest, we don't want to log all those status messages
print ("Received Request Status: [%s] with Request Result: [%s]\n").format(variables['requestStatus'], variables['requestResult'])
124
+
# log task status
125
+
ifvariables['requestResult'] isnotNoneandvariables['requestResult'] in ('SCHEDULED FOR FUTURE'):
126
+
ifnotshouldSupressLogging:
127
+
logger.debug("Received Request Status: Request Id: [%s], Request Status: [%s] with Request Result: [%s], will surpress printout until result change.\n"% (variables['requestId'], variables['requestStatus'], variables['requestResult']))
128
+
#print ("Received Request Status: [%s] with Request Result: [%s], will surpress printout until result change.\n" % (variables['requestStatus'], variables['requestResult']))
Copy file name to clipboardExpand all lines: src/main/resources/ucd/UCDClientUtil.py
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
#
2
-
# Copyright 2020 XEBIALABS
2
+
# Copyright 2021 XEBIALABS
3
3
#
4
4
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
0 commit comments