Merge lp:~ibmcharmers/charms/trusty/ibmwxs/devel into lp:~saran110/charms/trusty/ibmwxs/ibmwxs-fix

Proposed by sharan
Status: Needs review
Proposed branch: lp:~ibmcharmers/charms/trusty/ibmwxs/devel
Merge into: lp:~saran110/charms/trusty/ibmwxs/ibmwxs-fix
Diff against target: 1069 lines (+987/-0) (has conflicts)
14 files modified
README.md (+131/-0)
config.yaml (+74/-0)
copyright (+14/-0)
hooks/config-changed (+441/-0)
hooks/install (+23/-0)
hooks/quorum-relation-changed (+21/-0)
hooks/quorum-relation-joined (+33/-0)
hooks/start (+50/-0)
hooks/stop (+25/-0)
icon.svg (+40/-0)
metadata.yaml (+11/-0)
tests/00-setup (+28/-0)
tests/10-bundles-test.py (+88/-0)
tests/local.yaml (+8/-0)
Conflict adding file README.md.  Moved existing file to README.md.moved.
Conflict adding file config.yaml.  Moved existing file to config.yaml.moved.
Conflict adding file copyright.  Moved existing file to copyright.moved.
Conflict adding file files.  Moved existing file to files.moved.
Conflict adding file hooks.  Moved existing file to hooks.moved.
Conflict adding file icon.svg.  Moved existing file to icon.svg.moved.
Conflict adding file metadata.yaml.  Moved existing file to metadata.yaml.moved.
Conflict adding file tests.  Moved existing file to tests.moved.
To merge this branch: bzr merge lp:~ibmcharmers/charms/trusty/ibmwxs/devel
Reviewer Review Type Date Requested Status
vsr Pending
Review via email: mp+276864@code.launchpad.net
To post a comment you must log in.
16. By <sharan><email address hidden>

Updated files

Unmerged revisions

16. By <sharan><email address hidden>

Updated files

15. By <sharan><email address hidden>

Updated files for IBMWXS

14. By sharan

Updated README.md

13. By sharan

Initial Check for IBMWXS

12. By sharan

Initial Check for IBMWXS

11. By sharan

Initial Check for IBMWXS

10. By <email address hidden>

Initial Check up for IBMWXS

9. By sharan

Initial Checkup for IBMWXS

8. By sharan

Initial Check up for IBMWXS

7. By sharan

Initial Check for IBMWXS

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'README.md'
--- README.md 1970-01-01 00:00:00 +0000
+++ README.md 2015-11-11 11:37:05 +0000
@@ -0,0 +1,131 @@
1Charm for IBM® WebSphere® eXtreme Scale V8.6.0.7
2
3# Overview
4IBM® WebSphere® eXtreme Scale is an elastic, scalable, in-memory data grid (IMDG). It is designed to help you handle exponential growth of transactions. With WebSphere eXtreme Scale, you can expect an enhanced quality of service in high-performance computing environments.
5
6For details on IBM Websphere Extreme Scale please visit [WXS Product page][wxs-installation-step].
7This charm installs IBM® WebSphere® eXtreme Scale V8.6.0.7 in standalone mode on amd64 architecture.
8
9# Usage
10Download your licensed IBM® WebSphere® eXtreme Scale software for Ubuntu and put up its contents on a web server like Apache and configure Apache to serve this package.This package can be then accessed using a URL from the web server.
11
12Download your licensed IBM Installation Manager software version 1.8 and above and upload to your apache repository
13
14Download your licensed IBM Websphere eXtreme Scale Base software 8.6.0 and upload to your apache repository
15
16Download your licensed IBM Websphere eXtreme Scale software fixpack version 8.6.0.7 version and upload to your apache repository
17
18# Creating the repositories in Apache
19Run steps below with admin access
20
21Install needed packages
22 ```apt-get install dpkg-dev apache2```
23Create a repository on Apache server under your Apache repository directory.
24Configure Apache server to allow access to the repository.
25
26To install IBM Websphere Extreme Scale you need to install IBM Installation Manager software as prerequisite.
27To install IBM Installation Manager you need to get the packages for ubuntu, for information about the software and builds please visit
28[IBM Installation Manager Steps][im-installation-step].
29
30To install IBM products you must agree to the license. License information can be found [WXS Software license agreement][wxs-license].
31
32To install Websphere Extreme Scale product you need to get the packages for ubuntu, please visit
33[WXS Installation Steps][wxs-installation-step].
34
35Deploy charms as below:
36```juju deploy ibmwxs``` This will execute Websphere Extreme Scale software install prerequisite steps(it will install IBM Installation Manager) and install Websphere Extreme Scale product
37
38At this point the charm will wait until the user accepts the license. If you agree to the license for IBM Installation Manager and IBM Websphere Extreme Scale products, run the following commands:
39
40```juju set ibmwxs accept-ibm-im-license=True```
41
42```juju set ibmwxs accept-ibm-wxs-license=True```
43
44In case after installing the product if you set license to "False", Product will get uninstalled and to reinstall the product you need to accept the license first using ```juju set wxs accept-ibm-wxs-license=True``` command.
45
46If you need a relation between the WXS charm, add a unit on different container as
47```juju add-unit ibmwxs``` but adding a unit on the same container can not be done.
48
49# Configuration
50
51See config.yaml file for more information.
52
53 `accept-ibm-wxs-license`
54Before you can use or install IBM Websphere Extreme Scale,
55you must accept the terms of International License
56Agreement for Non-Warranted Programs and additional license information.
57Please read the license agreement carefully.
58
59Set the value of accept-ibm-wxs-license to True if you agree to IBM Websphere Extreme Scale license.
60
61**The IBM Websphere Extreme Scale software cannot be installed until the terms and
62conditions are accepted. The charm will not function correctly until
63this configuration option is set to True.**
64
65`url`:
66The web server URL from which IBM IM, IBM WXS base and fixpack install packages can be downloaded.
67
68`im_file_name`:
69The IBM Installation Manager Package name. If not set, it is assigned the value "agent.installer.linux.gtk.x86_64_1.8.2000.20150303_1526.zip" for x86_64 based machine.
70
71`wxs_base_file_name`:
72The WXS Base Package name. If not set, it is assigned the value "WS_XSCALE_V8.6_MP_ML.zip" for x86_64 based machine.
73
74`wxs_fixpack_file_name`:
75The WXS Base Package name. If not set, it is assigned the value "8.6.0-WS-WXS-FP0000007.zip" for x86_64 based machine.
76
77`sha_im`:
78Checksum value to check integrity of IBM IM package. The Charm uses sha1sum to check the integrity. For example, run the command:
79<sha1sum agent.installer.linux.gtk.x86_64_1.8.2000.20150303_1526.zip | cut -d " " -f1> to get the checksum value for IBM Installation Manager package. If empty, it does not carry out the integrity check. The user should not change this value unless the corresponding installer package changes.
80
81`sha_base`:
82Checksum value to check integrity of IBM WXS base package. The Charm uses sha1sum to check the integrity. For example, run the command: <sha1sum WS_XSCALE_V8.6_MP_ML.zip | cut -d " " -f1> to get the checksum value for IBM WXS base package. If empty, it does not carry out the integrity check. The user should not change this value unless the corresponding installer package changes.
83
84`sha_fixpack`:
85Checksum value to check integrity of IBM WXS fixpack package. The Charm uses sha1sum to check the integrity. For example, run the command: <sha1sum 8.6.0-WS-WXS-FP0000007.zip | cut -d " " -f1> to get the checksum value for IBM WXS fixpack package. If empty, it does not carry out the integrity check. The user should not change this value unless the corresponding installer package changes.
86
87After deploying IBMWXS, to test whether the product is working or not, run the runclient.sh command which is present in /opt/ibm/WXS/ObjectGrid/gettingstarted/. Now run the script as below
88
89for insertion of the record
90
91./runclient.sh i key value
92
93to get the record
94
95./runclient.sh g key
96
97when you run the above script, you will get the corresponding value from the grid.
98
99IBM WXS Information
100-------------------
101
102(1) General Information
103
104Information on IBM WXS available at the [WXS Infocenter][product-page]
105
106(2) Download Information
107
108Information on procuring WXS product is available at the [Passport Advantage Site][passport-wxs]
109
110(3) Peer Relation Information
111
112Information on peer relation for catalogServer and containerServer at the [WXS Infocenter][wxs-relation]
113
114(4) Contact Information
115
116For issues with this charm, please contact IBM Juju Support Team <jujusupp@us.ibm.com>
117
118
119<!-- Links -->
120
121[product-page]: http://www-01.ibm.com/support/knowledgecenter/SSTVLU_8.6.0/com.ibm.websphere.extremescale.doc/kc_welcome-xs.html
122
123[passport-wxs]: http://www-01.ibm.com/software/passportadvantage/
124
125[wxs-relation]: http://www-01.ibm.com/support/knowledgecenter/SSTVLU_8.6.0/com.ibm.websphere.extremescale.doc/cxscatservbp.html?lang=en
126
127[wxs-installation-step]: http://www.ibm.com/software/products/en/websphere-extreme-scale
128
129[im-installation-step]:http://www-01.ibm.com/support/docview.wss?uid=swg27025142
130
131[wxs-license]: http://www-03.ibm.com/software/sla/sladb.nsf/lilookup/53D234CCEB5C2EC585257E3C0062B9F6?OpenDocument
0132
=== renamed file 'README.md' => 'README.md.moved'
=== added file 'config.yaml'
--- config.yaml 1970-01-01 00:00:00 +0000
+++ config.yaml 2015-11-11 11:37:05 +0000
@@ -0,0 +1,74 @@
1options:
2 url:
3 type: string
4 default: ""
5 description: |
6 URL to download IBM Websphere Extreme Scale packages. If not set or set
7 incorrectly, the charm cannot install the IBM WXS software.
8 wxs_base_file_name:
9 type: string
10 default: ""
11 description: |
12 Name of the WXS base package. If not set, the Charm uses a predefined
13 package name for download from the url location. If the predefined
14 package is not available at url location or if set incorrectly,
15 the charm cannot install the IBM WXS software.
16 wxs_fixpack_file_name:
17 type: string
18 default: ""
19 description: |
20 Name of the WXS fix pack package. If not set, the Charm uses a predefined
21 package name for download from the url location. If the predefined
22 package is not available at url location or if set incorrectly,
23 the charm cannot install the IBM WXS software.
24 im_file_name:
25 type: string
26 default: ""
27 description: |
28 Name of the IBM IM package. If not set, the Charm uses a predefined
29 package name for download from the url location. If the predefined
30 package is not available at url location or if set incorrectly,
31 the charm cannot install the IBM IM software.
32 accept-ibm-wxs-license:
33 type: boolean
34 default: False
35 description: |
36 The IBM Websphere Extreme Scale (WXS) software can only be used by
37 accepting the terms and conditions for IBM Websphere Extreme Scale License.
38 Setting this option to True
39 indicates that you have read and accepted the IBM WXS terms and
40 conditions found in the license file. The details about accessing
41 the license(s) can be found in the README.
42 Do not set this to False if a relation exists
43 accept-ibm-im-license:
44 type: boolean
45 default: False
46 description: |
47 The IBM Installation Manager software comes with special terms and
48 conditions from IBM. The Installation Manager software can only be used by
49 accepting the license terms and conditions.
50 sha_im:
51 type: string
52 default: "f35653e20c7925d43007a1cff83623c979109ac5"
53 description: |
54 Checksum value to check integrity of IBM IM pacakage. The Charm uses
55 sha1sum to check the integrity. For example, run the command:
56 <sha1sum agent.installer.linux.gtk.x86_64_1.8.2000.20150303_1526.zip | cut -d " " -f1>
57 to get the checksum value for IBM Installation Manager pacakage.
58 If empty, it does not carry out the integrity check.
59 sha_base:
60 type: string
61 default: "801bb88913e90413a271b6102d67276a9129dcf3"
62 description: |
63 Checksum value to check integrity of IBM WXS base pacakage. The Charm uses
64 sha1sum to check the integrity. For example, run the command:
65 <sha1sum WS_XSCALE_V8.6_MP_ML.zip | cut -d " " -f1> to get the checksum value
66 for IBM WXS base pacakage. If empty, it does not carry out the integrity check.
67 sha_fixpack:
68 type: string
69 default: "6e99ec379ed99521a184fbe0086c9d16055a67db"
70 description: |
71 Checksum value to check integrity of IBM WXS fixpack pacakage. The Charm uses
72 sha1sum to check the integrity. For example, run the command:
73 <sha1sum 8.6.0-WS-WXS-FP0000007.zip | cut -d " " -f1> to get the checksum value
74 for IBM WXS fixpack pacakage. If empty, it does not carry out the integrity check.
075
=== renamed file 'config.yaml' => 'config.yaml.moved'
=== added file 'copyright'
--- copyright 1970-01-01 00:00:00 +0000
+++ copyright 2015-11-11 11:37:05 +0000
@@ -0,0 +1,14 @@
1Copyright 2015 IBM Corporation
2
3This Charm is licensed under the Apache License, Version 2.0 (the "License");
4you may not use this file except in compliance with the License.
5You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9Unless required by applicable law or agreed to in writing, software
10distributed under the License is distributed on an "AS IS" BASIS,
11WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12See the License for the specific language governing permissions and
13limitations under the License.
14
015
=== renamed file 'copyright' => 'copyright.moved'
=== added directory 'files'
=== renamed directory 'files' => 'files.moved'
=== added directory 'files/archives'
=== added directory 'files/archives/IM'
=== added directory 'hooks'
=== renamed directory 'hooks' => 'hooks.moved'
=== added file 'hooks/config-changed'
--- hooks/config-changed 1970-01-01 00:00:00 +0000
+++ hooks/config-changed 2015-11-11 11:37:05 +0000
@@ -0,0 +1,441 @@
1#!/bin/bash
2# config-changed occurs everytime a new configuration value is updated (juju set)
3
4set -e
5IM_INSTALL_PATH=/opt/IBM/InstallationManager
6WXS_INSTALL_PATH=/opt/ibm/WXS
7ARCHIVE_DIR=$CHARM_DIR/files/archives
8# Check whether IM is installed
9is_im_installed()
10{
11 if [ -f $IM_INSTALL_PATH/eclipse/IBMIM ]; then
12 echo "True"
13 else
14 echo "False"
15 fi
16}
17
18#Remove IM, if installed
19remove_im_software()
20{
21 im_installed=`is_im_installed`
22 if [ $im_installed == True ]; then
23 #Uninstalling IM
24 /root/var/ibm/InstallationManager/uninstall/uninstallc
25 fi
26}
27
28stop_wxs_servers()
29{
30if [ -d $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/ ]; then
31 set +e
32 ps -ef | grep "[c]ontainer"
33 ipaddress=`unit-get private-address`
34 if [ $? == 0 ]; then
35 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/stopcontainer.sh c1
36 if [ $? == 0 ]; then
37 juju-log "containerServer stopped successfully"
38 else
39 juju-log "Error while stopping containerServer"
40 exit 1
41 fi
42 else
43 juju-log "containerServer is not running"
44 fi
45
46 ps -ef | grep "[c]atalog"
47 if [ $? == 0 ]; then
48 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/stopcat.sh
49 if [ $? == 0 ]; then
50 juju-log "catalogServer stopped successfully"
51 else
52 juju-log "Error while stopping catalogServer"
53 exit 1
54 fi
55 else
56 juju-log "catalogServer is not running"
57 fi
58 set -e
59fi
60}
61
62is_wxs_installed()
63{
64 if [ -d $WXS_INSTALL_PATH ]; then
65 echo "True"
66 else
67 echo "False"
68 fi
69}
70
71#remove IBM IM if license not accepted
72
73remove_unaccepted_im_software()
74{
75 if [ $1 == False ]; then
76 wxs_installed=`is_wxs_installed`
77 if [ "$wxs_installed" == "True" ]; then
78 juju-log "Can not uninstall IM as it has WXS product installed"
79 exit 0
80 fi
81 juju-log "Removing IBM IM (if installed) as the license agreement is not accepted."
82 remove_im_software
83 fi
84}
85
86# Remove Websphere Extreme Scale, if installed
87remove_wxs_software()
88{
89 im_installed=`is_im_installed`
90 # Check IM package availability
91 if [ $im_installed == False ]; then
92 juju-log "IM is not present. Cannot proceed with WXS uninstall."
93 exit 0
94 fi
95 wxs_installed=`is_wxs_installed`
96 if [ "$wxs_installed" == "True" ]; then
97 juju-log "Stop WXS servers"
98 stop_wxs_servers
99 juju-log "Uninstall Websphere Extreme Scale"
100 $IM_INSTALL_PATH/eclipse/tools/imcl uninstall com.ibm.websphere.WXS.v86 -acceptLicense -installationDirectory $WXS_INSTALL_PATH
101 if [ "$?" != "0" ]; then
102 juju-log "Websphere Extreme Scale could not be uninstalled"
103 exit 1
104 fi
105 rm -rf $WXS_INSTALL_PATH
106 fi
107 juju-log "Removing Websphere Extreme Scale software completed"
108}
109# Remove Websphere Extreme Scale if license not accpeted
110remove_unaccepted_software()
111{
112 if [ $1 == False ]; then
113 juju-log "Remove IBM Websphere Extreme Scale (if installed) as the license agreement is not accepted."
114 wxs_installed=`is_wxs_installed`
115 if [ "$wxs_installed" == "True" ]; then
116 remove_wxs_software
117 fi
118 fi
119}
120
121wxs_base_installable=`config-get wxs_base_file_name`
122wxs_fixpack_installable=`config-get wxs_fixpack_file_name`
123im_installable=`config-get im_file_name`
124URL=`config-get url`
125im_license_accepted=`config-get accept-ibm-im-license`
126wxs_license_accepted=`config-get accept-ibm-wxs-license`
127ARCHITECTURE=`uname -m`
128cfg_base_pkg_name=""
129cfg_fixpack_pkg_name=""
130
131#Download IM Package
132download_IM()
133{
134 juju-log "Checking for the IM and archive dir is $ARCHIVE_DIR and if[ -f $ARCHIVE_DIR/IM/*.zip]"
135 #Exit if URL to download package is null
136 if [ "$URL" == "" ]; then
137 juju-log "IBM WXS: URL to download IBM IM package is not configured."
138 exit 0
139 fi
140
141 # If an install was done, get the name of the package from which it was done
142 if [ -f $ARCHIVE_DIR/IM/*.zip ]; then
143 impkg_name=`ls $ARCHIVE_DIR/IM/*.zip`
144
145 if [ $? == 0 ]; then
146 impkg_name=`basename $impkg_name`
147 fi
148 fi
149
150 # Get the package name to check whether the user wants to install a different package
151 cfg_im_pkg_name=`config-get im_file_name`
152
153 # Set package name to a predefined value if the user has not provided a package name
154 if [ "$cfg_im_pkg_name" == "" ]; then
155 if [ "$ARCHITECTURE" == "x86_64" ]; then
156 cfg_im_pkg_name="agent.installer.linux.gtk.x86_64_1.8.2000.20150303_1526.zip"
157 else
158 juju-log "IBM WXS: Platform not supported."
159 exit 1
160 fi
161 fi
162
163 # The user has configured a different package name
164 if [ "$impkg_name" != "$cfg_im_pkg_name" ]; then
165
166 #Download the new IM package
167 set +e
168 juju-log "IBM WXS: Downloading IM package."
169 wget -t 2 -P $ARCHIVE_DIR/IM $URL/$cfg_im_pkg_name
170
171 if [ $? == 0 ]; then
172 juju-log "IBM WXS: Downloaded IM package."
173 # Delete previously downloaded and installed IM software
174 if [ "$impkg_name" != "" ]; then
175 juju-log "IBM WXS: Deleting the older IM package."
176 rm -rf $ARCHIVE_DIR/IM/$impkg_name
177 remove_unaccepted_im_software "False"
178 fi
179
180 else
181 juju-log "IBM WXS: Download of IM package failed."
182 juju-log "IBM WXS: Ensure the download URL and package name are correctly set in the charm configuration."
183 exit 0
184 fi
185 set -e
186
187 fi
188
189 # Check integrity of downloaded package
190 SHA_IM=`config-get sha_im`
191 if [ "$SHA_IM" == "" ]; then
192 juju-log "IBM WXS: Please provide valid sha_im value for your package."
193 exit 0
194 elif [ "$SHA_IM" != "`sha1sum $ARCHIVE_DIR/IM/$cfg_im_pkg_name | cut -d" " -f1`" ]; then
195 juju-log "IBM WXS: IBM IM package is corrupt."
196 exit 0
197 fi
198}
199
200# Downlaod WXS package
201download_WXS()
202{
203 #Exit if URL to download package is null
204 if [ "$URL" == "" ]; then
205 juju-log "IBM WXS: URL to download IBM WXS package is not configured."
206 exit 0
207 fi
208
209 # If an install was done, get the name of the base package from which it was done
210 if [ -f $ARCHIVE_DIR/*V8.6*.zip ]; then
211 base_pkg_name=`ls $ARCHIVE_DIR/*V8.6*.zip`
212 if [ $? == 0 ]; then
213 base_pkg_name=`basename $base_pkg_name`
214 fi
215 fi
216
217 # If an install was done, get the name of the fixpack package from which it was done
218 if [ -f $ARCHIVE_DIR/*FP*.zip ]; then
219 fixpack_pkg_name=`ls $ARCHIVE_DIR/*FP*.zip`
220 if [ $? == 0 ]; then
221 fixpack_pkg_name=`basename $fixpack_pkg_name`
222 fi
223 fi
224
225 # Get the package name to check whether the user wants to install a different package
226 cfg_base_pkg_name=`config-get wxs_base_file_name`
227 cfg_fixpack_pkg_name=`config-get wxs_fixpack_file_name`
228
229 # Set base package name to a predefined value if the user has not provided a package name
230 if [ "$cfg_base_pkg_name" == "" ]; then
231 if [ "$ARCHITECTURE" == "x86_64" ]; then
232 cfg_base_pkg_name="WS_XSCALE_V8.6_MP_ML.zip"
233 else
234 juju-log "IBM WXS: Platform not supported."
235 exit 1
236 fi
237 fi
238
239 # Set fixpack package name to a predefined value if the user has not provided a package name
240 if [ "$cfg_fixpack_pkg_name" == "" ]; then
241 if [ "$ARCHITECTURE" == "x86_64" ]; then
242 cfg_fixpack_pkg_name="8.6.0-WS-WXS-FP0000007.zip"
243 else
244 juju-log "IBM WXS: Platform not supported."
245 exit 1
246 fi
247 fi
248
249 # The user has configured a different package name
250 if [ "$base_pkg_name" != "$cfg_base_pkg_name" ]; then
251
252 #Download the new WXS package
253 set +e
254 juju-log "IBM WXS: Download WXS Base package."
255
256 wget -t 2 -P $ARCHIVE_DIR/ $URL/$cfg_base_pkg_name
257
258 if [ $? == 0 ]; then
259 # Delete previously downloaded and installed WXS software
260 if [ "$base_pkg_name" != "" ]; then
261 juju-log "IBM WXS: Deleting the older WXS package."
262 rm $ARCHIVE_DIR/$base_pkg_name
263 rm -rf $WXS_INSTALL_PATH
264 fi
265 else
266 juju-log "IBM WXS: Download of WXS base package failed."
267 exit 0
268 fi
269 set -e
270 fi
271
272 # The user has configured a different package name
273 if [ "$fixpack_pkg_name" != "$cfg_fixpack_pkg_name" ]; then
274
275 #Download the new WXS package
276 set +e
277 juju-log "IBM WXS: Download WXS Fix Pack package."
278
279 wget -t 2 -P $ARCHIVE_DIR/ $URL/$cfg_fixpack_pkg_name
280
281 if [ $? == 0 ]; then
282 # Delete previously downloaded and installed WXS software
283 if [ "$fixpack_pkg_name" != "" ]; then
284 juju-log "IBM WXS: Deleting the older WXS package."
285 rm $ARCHIVE_DIR/$fixpack_pkg_name
286 rm -rf $WXS_INSTALL_PATH
287 fi
288 else
289 juju-log "IBM WXS: Download of WXS fixpack package failed."
290 exit 0
291 fi
292 set -e
293 fi
294
295 # Check integrity of downloaded packages
296 SHA_BASE=`config-get sha_base`
297 if [ "$SHA_BASE" == "" ]; then
298 juju-log "IBM WXS: Please provide valid sha_base value for your package."
299 exit 0
300 elif [ "$SHA_BASE" != "`sha1sum $ARCHIVE_DIR/$cfg_base_pkg_name | cut -d" " -f1`" ]; then
301 juju-log "IBM WXS: IBM WXS Base package is corrupt."
302 exit 0
303 fi
304 SHA_FIXPACK=`config-get sha_fixpack`
305 if [ "$SHA_FIXPACK" == "" ]; then
306 juju-log "IBM WXS: Please provide valid sha_fixpack value for your package."
307 exit 0
308 elif [ "$SHA_FIXPACK" != "`sha1sum $ARCHIVE_DIR/$cfg_fixpack_pkg_name | cut -d" " -f1`" ]; then
309 juju-log "IBM WXS: IBM WXS Fix Pack package is corrupt."
310 exit 0
311 fi
312}
313
314juju-log "IBM IM for WXS install: Begin config-changed"
315# Remove IM if license not accepted abase exit. Else install it
316remove_unaccepted_im_software $im_license_accepted
317
318if [ $im_license_accepted == False ]; then
319 juju-log "IBM IM License not accepted."
320elif [ $im_license_accepted == True ]; then
321 juju-log "IBM IM License accepted"
322 im_inst=`is_im_installed`
323 if [ $im_inst == False ]; then
324 juju-log "Download and extract IM packages"
325 download_IM
326 #extract IM package if download succeeded
327 if [ -f $ARCHIVE_DIR/IM/*.zip ]; then
328 if [ -f $ARCHIVE_DIR/IM/userinstc ]; then
329 juju-log "IBM WXS: IM binary package is already extracted"
330 else
331 juju-log "IBM WXS: Extracting IM binary package"
332 unzip $ARCHIVE_DIR/IM/*.zip -d $ARCHIVE_DIR/IM
333 if [ $? != 0 ]; then
334 juju-log "IBM WXS: Unable to extract the IM package content. Verify whether the package is corrupt."
335 #Remove corrupt archive file
336 rm -rf $ARCHIVE_DIR/IM/*.zip
337 exit 0
338 fi
339 fi
340 fi
341 juju-log "IM installation started"
342 # Check IM package availability
343 if [ -f $ARCHIVE_DIR/IM/userinstc ]; then
344 juju-log "IM Packages available for installation.";
345 cp $ARCHIVE_DIR/IM/install.xml $ARCHIVE_DIR/IM/silent_install.xml
346 sed -i "2 a \<profile kind='self' installLocation='$IM_INSTALL_PATH' id='IBM Installation Manager'>\n <data key='eclipseLocation' value='$IM_INSTALL_PATH' />\n</profile>" $ARCHIVE_DIR/IM/silent_install.xml
347 $ARCHIVE_DIR/IM/userinstc -input $ARCHIVE_DIR/IM/silent_install.xml -acceptlicense
348 if [ $? == 0 ]; then
349 juju-log "IM is installed successfully"
350 else
351 juju-log "Error while installing IM"
352 exit 1
353 fi
354 else
355 juju-log "IM Packages missing. Please check README file.";
356 juju-log "Upgrade IM charm after adding the IM packages";
357 exit 1
358 fi
359 fi
360else
361 juju-log " Acceptable values for license are 'True' or 'False'"
362fi
363
364# Remove Websphere Extreme Scale if license not accepted and exit. Else install it
365remove_unaccepted_software $wxs_license_accepted
366if [ $wxs_license_accepted == False ]; then
367 juju-log "IBM WXS: IBM WXS License not accepted."
368elif [ $wxs_license_accepted == True ]; then
369 juju-log "IBM WXS: IBM WXS License accepted."
370
371 wxs_inst=`is_wxs_installed`
372 im_installed=`is_im_installed`
373 if [ $wxs_inst == False ]; then
374 # Check IM package availability
375 if [ $im_installed == False ]; then
376 juju-log "IM is not present. You should make sure that you accepted License for both IM and WXS"
377 exit 0
378 fi
379 download_WXS
380
381 #extract WXS packages if download succeeded
382 if [ -f $ARCHIVE_DIR/$cfg_base_pkg_name ]; then
383 if [ -d $ARCHIVE_DIR/WXS_8600 ]; then
384 juju-log "WXS base binary package is already extracted"
385 else
386 juju-log "IBM WXS: Extracting WXS base binary package"
387 unzip $ARCHIVE_DIR/$cfg_base_pkg_name -d $ARCHIVE_DIR
388 if [ $? != 0 ]; then
389 juju-log "IBM WXS: Unable to extract the WXS package content. Verify whether the package is corrupt."
390 #Remove corrupt archive file
391 rm -rf $ARCHIVE_DIR/$cfg_base_pkg_name
392 exit 0
393 fi
394 fi
395 fi
396
397 if [ -f $ARCHIVE_DIR/$cfg_fixpack_pkg_name ]; then
398 if [ -d $ARCHIVE_DIR/8607 ]; then
399 juju-log "WXS fixpack binary package is already extracted"
400 else
401 juju-log "IBM WXS: Extracting WXS fixpack binary package"
402 unzip $ARCHIVE_DIR/$cfg_fixpack_pkg_name -d $ARCHIVE_DIR
403 if [ $? != 0 ]; then
404 juju-log "IBM WXS: Unable to extract the WXS fixpack package content. Verify whether the package is corrupt."
405 #Remove corrupt archive file
406 rm -rf $ARCHIVE_DIR/$cfg_fixpack_pkg_name
407 exit 0
408 fi
409 fi
410 fi
411
412 juju-log "WXS Base Installation started"
413 $IM_INSTALL_PATH/eclipse/tools/imcl install com.ibm.websphere.WXS.v86 -acceptLicense -installationDirectory $WXS_INSTALL_PATH -repositories $ARCHIVE_DIR/WXS_8600
414 if [ $? == 0 ]; then
415 juju-log "WXS Base is installed successfully"
416 else
417 juju-log "Error while installing WXS Base"
418 exit 1
419 fi
420
421 juju-log "WXS Fix Pack Installation started"
422 $IM_INSTALL_PATH/eclipse/tools/imcl install com.ibm.websphere.WXS.v86 -acceptLicense -installationDirectory $WXS_INSTALL_PATH -repositories $ARCHIVE_DIR
423 if [ $? == 0 ]; then
424 juju-log "WXS Fix Pack is installed successfully"
425 else
426 juju-log "Error while installing WXS Fix Pack"
427 exit 1
428 fi
429 fi
430
431 set +e
432 serverstareted=`ps -ef | grep "[c]atalog"`
433 if [ -z "$serverstareted" ]; then
434 $CHARM_DIR/hooks/start
435 else
436 juju-log "Server already started "
437 fi
438 set -e
439fi
440
441juju-log "Websphere WXS: End config-changed"
0442
=== added file 'hooks/install'
--- hooks/install 1970-01-01 00:00:00 +0000
+++ hooks/install 2015-11-11 11:37:05 +0000
@@ -0,0 +1,23 @@
1#!/bin/bash
2
3set -e
4juju-log "IBM WXS: Begin Install."
5
6# Install wget
7juju-log "IBM WXS: Download and install wget package"
8apt-get install -y wget
9juju-log "IBM WXS: wget downloaded and installed."
10
11private_address=`unit-get private-address`
12echo "$private_address `hostname`" >> /etc/hosts
13juju-log "IBM WXS: Download and install unzip package"
14apt-get install unzip
15juju-log "IBM WXS: unzip downloaded and installed."
16
17ARCHITECTURE=`uname -m`
18if [ "$ARCHITECTURE" != "x86_64" ]; then
19 juju-log "IBM WXS: Unsupported platform. IBM WXS installed with this Charm supports only the x86_64 platform."
20 exit 1
21fi
22
23juju-log "IBM WXS: End Install."
024
=== added file 'hooks/quorum-relation-changed'
--- hooks/quorum-relation-changed 1970-01-01 00:00:00 +0000
+++ hooks/quorum-relation-changed 2015-11-11 11:37:05 +0000
@@ -0,0 +1,21 @@
1#!/bin/bash
2set -e
3WXS_INSTALL_PATH=/opt/ibm/WXS
4juju-log "quorum-relation-changed started"
5catalogEndPoints=`relation-get catEndPoints`
6
7if [ $catalogEndPoints == "" ]; then
8 exit 0
9fi
10
11private_address=`unit-get private-address`
12set +e
13serverstareted=`ps -ef | grep "[c]atalog"`
14if [ -z "$serverstareted" ]; then
15 juju-log "$private_address catalogServer is not started now starting"
16 $WXS_INSTALL_PATH/ObjectGrid/bin/startXsServer.sh "$private_address-cs" -catalogServiceEndPoints $catalogEndPoints -quorum true -jvmArgs -Xmx256m
17else
18 juju-log "$private_address catalogServer is already started"
19fi
20set -e
21juju-log "quorum-relation-changed stopped"
022
=== added file 'hooks/quorum-relation-joined'
--- hooks/quorum-relation-joined 1970-01-01 00:00:00 +0000
+++ hooks/quorum-relation-joined 2015-11-11 11:37:05 +0000
@@ -0,0 +1,33 @@
1#!/bin/bash
2set -e
3WXS_INSTALL_PATH=/opt/ibm/WXS
4juju-log "quorum-relation-joined started"
5private_address=`unit-get private-address`
6catalogEndPoints=""
7relation_id=$(relation-ids quorum)
8clientPort="6601"
9listenerPort="2809"
10peerPort="6602"
11catEndPoints=""
12
13for relation_lis in $(relation-list); do
14 ip_address=`relation-get -r $relation_id private-address $relation_lis`
15 catalogEndPoints="$catalogEndPoints$ip_address-cs:$ip_address:$clientPort:$peerPort,"
16done
17
18catalogEndPoints="$catalogEndPoints$private_address-cs:$private_address:$clientPort:$peerPort"
19set +e
20serverstareted=`ps -ef | grep "[c]atalog"`
21
22if [ -z "$serverstareted" ]; then
23 juju-log "catalogServer not yet all started"
24else
25 $WXS_INSTALL_PATH/ObjectGrid/bin/xscmd.sh -c teardown -sl "$private_address-cs"
26 while [ "`sudo fuser -n tcp 2809`" != "" ]; do
27 sudo fuser -n tcp -k 2809
28 done
29fi
30
31relation-set catEndPoints=$catalogEndPoints
32set -e
33juju-log "quorum-relation-joined ended"
034
=== added file 'hooks/start'
--- hooks/start 1970-01-01 00:00:00 +0000
+++ hooks/start 2015-11-11 11:37:05 +0000
@@ -0,0 +1,50 @@
1#!/bin/bash
2
3set -e
4WXS_INSTALL_PATH=/opt/ibm/WXS
5
6
7if [ -d $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/ ]; then
8 juju-log "Start catalog server"
9 set +e
10 serverstareted=`ps -ef | grep "[c]atalog"`
11 if [ -z "$serverstareted" ]; then
12
13 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/startcat.sh
14 if [ $? == 0 ]; then
15 juju-log "catalogServer started successfully"
16 else
17 juju-log "Error while starting catalogServer"
18 exit 1
19 fi
20
21 juju-log "Start container server"
22 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/startcontainer.sh c1
23 if [ $? == 0 ]; then
24 juju-log "containerServer started successfully"
25 else
26 juju-log "Error while starting containerServer"
27 exit 1
28 fi
29
30 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/runclient.sh i key1 value1
31 if [ $? == 0 ]; then
32 juju-log "Inserted TestValue [value=value1] with key TestKey [key=key1] successfully"
33 else
34 juju-log "Error while inserting TestValue [value=value1] with key TestKey [key=key1]"
35 exit 1
36 fi
37
38 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/runclient.sh g key1
39 if [ $? == 0 ]; then
40 juju-log "Value is TestValue [value=value1]"
41 else
42 juju-log "Error while retrieving TestValue"
43 exit 1
44 fi
45 else
46 juju-log "Servers alrealdy started no need to start in start hook"
47 fi
48 set -e
49fi
50juju-log "IBM WXS: End Start hook."
051
=== added file 'hooks/stop'
--- hooks/stop 1970-01-01 00:00:00 +0000
+++ hooks/stop 2015-11-11 11:37:05 +0000
@@ -0,0 +1,25 @@
1#!/bin/bash
2set -e
3WXS_INSTALL_PATH=/opt/ibm/WXS
4juju-log "IBM WXS: Begin Stop hook."
5
6if [ -d $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/ ]; then
7
8 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/stopcontainer.sh c1
9 if [ $? == 0 ]; then
10 juju-log "containerServer stopped successfully"
11 else
12 juju-log "Error while stopping containerServer"
13 exit 1
14 fi
15
16 $WXS_INSTALL_PATH/ObjectGrid/gettingstarted/stopcat.sh
17 if [ $? == 0 ]; then
18 juju-log "catalogServer stopped successfully"
19 else
20 juju-log "Error while stopping catalogServer"
21 exit 1
22 fi
23fi
24
25juju-log "IBM WXS: End Stop hook."
026
=== added file 'icon.svg'
--- icon.svg 1970-01-01 00:00:00 +0000
+++ icon.svg 2015-11-11 11:37:05 +0000
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<!-- Creator: CorelDRAW X6 -->
4<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="1in" height="0.999996in" version="1.1" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd"
5viewBox="0 0 1000 1000"
6 xmlns:xlink="http://www.w3.org/1999/xlink">
7 <defs>
8 <linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="500.002" y1="999.996" x2="500.002" y2="0">
9 <stop offset="0" stop-color="#0465B2"/>
10 <stop offset="1" stop-color="#7ED3F7"/>
11 </linearGradient>
12 <mask id="id1">
13 <linearGradient id="id2" gradientUnits="userSpaceOnUse" x1="500.002" y1="58.4805" x2="500.002" y2="307.017">
14 <stop offset="0" stop-opacity="1" stop-color="white"/>
15 <stop offset="0.141176" stop-opacity="48.6863" stop-color="white"/>
16 <stop offset="1" stop-opacity="0" stop-color="white"/>
17 </linearGradient>
18 <rect fill="url(#id2)" width="1000" height="365"/>
19 </mask>
20 <radialGradient id="id3" gradientUnits="userSpaceOnUse" cx="613.782" cy="372.832" r="261.194" fx="613.782" fy="372.832">
21 <stop offset="0" stop-color="#7ED3F7"/>
22 <stop offset="1" stop-color="#0465B2"/>
23 </radialGradient>
24 <radialGradient id="id4" gradientUnits="userSpaceOnUse" cx="613.782" cy="372.832" r="261.194" fx="613.782" fy="372.832">
25 <stop offset="0" stop-color="#0465B2"/>
26 <stop offset="1" stop-color="#07425A"/>
27 </radialGradient>
28 </defs>
29 <g id="Layer_x0020_1">
30 <metadata id="CorelCorpID_0Corel-Layer"/>
31 <g id="_927323728">
32 <path id="Background" fill="url(#id0)" d="M0 676l0 -352c0,-283 41,-324 324,-324l352 0c284,0 324,41 324,324l0 352c0,283 -40,324 -324,324l-352 0c-283,0 -324,-41 -324,-324z"/>
33 <path fill="#999999" mask="url(#id1)" d="M0 365l0 -41c0,-283 41,-324 324,-324l352 0c284,0 324,41 324,324l0 41c0,-283 -40,-324 -324,-324l-352 0c-283,0 -324,41 -324,324z"/>
34 <path fill="#7ED3F7" fill-rule="nonzero" d="M500 126c103,0 197,42 264,110 68,67 110,161 110,264 0,103 -42,197 -110,264 -67,68 -161,110 -264,110 -103,0 -197,-42 -264,-110 -68,-67 -110,-161 -110,-264 0,-103 42,-197 110,-264 67,-68 161,-110 264,-110zm237 137c-61,-60 -145,-98 -237,-98 -92,0 -176,38 -237,98 -60,61 -98,145 -98,237 0,92 38,176 98,237 61,60 145,98 237,98 92,0 176,-38 237,-98 60,-61 98,-145 98,-237 0,-92 -38,-176 -98,-237z"/>
35 <circle fill="url(#id3)" cx="500" cy="500" r="335"/>
36 <circle fill="url(#id4)" cx="500" cy="500" r="335"/>
37 <polygon fill="#C9EFFF" fill-rule="nonzero" points="616,687 559,687 500,479 442,687 386,687 311,422 279,422 279,372 407,372 407,422 373,422 418,588 474,372 525,372 586,586 628,422 593,422 593,372 721,372 721,422 686,422 "/>
38 </g>
39 </g>
40</svg>
041
=== renamed file 'icon.svg' => 'icon.svg.moved'
=== added file 'metadata.yaml'
--- metadata.yaml 1970-01-01 00:00:00 +0000
+++ metadata.yaml 2015-11-11 11:37:05 +0000
@@ -0,0 +1,11 @@
1name: ibmwxs
2summary: IBM WebSphere Extreme Scale
3maintainer: IBM Juju Support Team <jujusupp@us.ibm.com>
4description: IBM® WebSphere® eXtreme Scale is an elastic, scalable, in-memory data grid (IMDG). It is designed to help you handle exponential growth of transactions. With WebSphere eXtreme Scale, you can expect an enhanced quality of service in high-performance computing environments.
5tags:
6 - misc
7 - IBM
8subordinate: false
9peers:
10 quorum:
11 interface: wxs-quorum
012
=== renamed file 'metadata.yaml' => 'metadata.yaml.moved'
=== added directory 'tests'
=== renamed directory 'tests' => 'tests.moved'
=== added file 'tests/00-setup'
--- tests/00-setup 1970-01-01 00:00:00 +0000
+++ tests/00-setup 2015-11-11 11:37:05 +0000
@@ -0,0 +1,28 @@
1#!/bin/bash
2
3# ATTENTION: wxs_url must contain the repository with
4# your WXS packages
5
6WXS_URL=${WXS_URL?Error: IBM WXS repository must be defined in tests/00-setup}
7WXS_BASE_PKG=${WXS_BASE_PKG?Error: IBM WXS base package be defined in tests/00-setup}
8WXS_FIX_PKG=${WXS_FIX_PKG?Error: IBM WXS fix package be defined in tests/00-setup}
9IM_NAME=${IM_NAME?Error: IBM IM file name to be defined in tests/00-setup}
10SHA_BASE_PKG=${SHA_BASE_PKG?Error: IBM WXS sha base package be defined in tests/00-setup}
11SHA_FIX_PKG=${SHA_FIX_PKG?Error: IBM WXS sha fixpack package be defined in tests/00-setup}
12SHA_IM_PKG=${SHA_IM_PKG?Error: IBM WXS sha IM package be defined in tests/00-setup}
13
14# Add a local configuration file
15cat << EOF > local.yaml
16wxs:
17 wxs_url: "$WXS_URL"
18 wxs_base_package: "$WXS_BASE_PKG"
19 wxs_fix_pkg: "$WXS_FIX_PKG"
20 im_name: "$IM_NAME"
21 sha_base_pkg: "$SHA_BASE_PKG"
22 sha_fix_pkg: "$SHA_FIX_PKG"
23 sha_im_pkg: "$SHA_IM_PKG"
24EOF
25
26add-apt-repository ppa:juju/stable -y
27apt-get update
28apt-get install amulet -y
029
=== added file 'tests/10-bundles-test.py'
--- tests/10-bundles-test.py 1970-01-01 00:00:00 +0000
+++ tests/10-bundles-test.py 2015-11-11 11:37:05 +0000
@@ -0,0 +1,88 @@
1#!/usr/bin/env python3
2
3# This amulet test deploys the bundles.yaml file in this directory.
4
5import os
6import unittest
7import yaml
8import amulet
9import sys
10#import urllib
11
12# Lots of prereqs on this charm (eg: java), so give it a large timeout
13seconds_to_wait = 1000
14
15
16class BundleTest(unittest.TestCase):
17 """ Create a class for testing the charm in the unit test framework. """
18 @classmethod
19 def setUpClass(cls):
20 """ Set up an amulet deployment using the bundle. """
21 d = amulet.Deployment(series='trusty')
22 # We have a contextual test, if no config is present, initialze the
23 # test with an empty configuration set
24 config = {}
25 local_path = os.path.join(os.path.dirname(__file__), 'local.yaml')
26 with open(local_path, "r") as fd:
27 config = yaml.safe_load(fd)
28
29 url = config.get('wxs').get('wxs_url')
30 print('Using URL %s' % url)
31 # Test if a WXS url for the repository is defined
32 if not url:
33 print("You need to define a url for the IBMWXS packages repository.\n"
34 "Edit local.yaml or tests/00-setup and run it again.")
35 sys.exit(1)
36
37 basepkg = config.get('wxs').get('wxs_base_package')
38 print('Using IBMWXS base package %s' % basepkg)
39 if not basepkg:
40 print("You need to define a base package name for IBM WXS.\n"
41 "Edit local.yaml or tests/00-setup and run it again.")
42 sys.exit(1)
43
44 fixpkg = config.get('wxs').get('wxs_fix_pkg')
45 print('Using IBMWXS fix package %s' % fixpkg)
46 if not fixpkg:
47 print("You need to define a fix package name for IBM WXS.\n"
48 "Edit local.yaml or tests/00-setup and run it again.")
49 sys.exit(1)
50
51 imname = config.get('wxs').get('im_name')
52 print('Using IBMWXS IM package %s' % imname)
53 if not imname:
54 print("You need to define a IM package name for IBM WXS.\n"
55 "Edit local.yaml or tests/00-setup and run it again.")
56 sys.exit(1)
57 sha_base_pkg = config.get('wxs').get('sha_base_pkg')
58 print('Using IBMWXS sha base package %s' % sha_base_pkg)
59 if not sha_base_pkg:
60 print("You need to define a SHA Base package for IBM WXS.\n"
61 "Edit local.yaml or tests/00-setup and run it again.")
62 sys.exit(1)
63 sha_fix_pkg = config.get('wxs').get('sha_fix_pkg')
64 print('Using IBMWXS sha fix package %s' % sha_fix_pkg)
65 if not sha_fix_pkg:
66 print("You need to define a SHA FIX package for IBM WXS.\n"
67 "Edit local.yaml or tests/00-setup and run it again.")
68 sys.exit(1)
69 sha_im_pkg = config.get('wxs').get('sha_im_pkg')
70 print('Using IBMWXS sha IM package %s' % sha_im_pkg)
71 if not sha_im_pkg:
72 print("You need to define a SHA IM package for IBM WXS.\n"
73 "Edit local.yaml or tests/00-setup and run it again.")
74 sys.exit(1)
75 # Software doesn't actually install until you accept the license
76 d.add('wxs')
77 d.configure('wxs', { 'accept-ibm-wxs-license': True, 'accept-ibm-im-license':True , 'wxs_url': url, 'wxs_base_package' : basepkg, 'wxs_fix_pkg':fixpkg, 'im_name':imname, 'sha_base_pkg':sha_base_pkg, 'sha_fix_pkg':sha_fix_pkg, 'sha_im_pkg':sha_im_pkg })
78
79 d.setup(seconds_to_wait)
80 d.sentry.wait(seconds_to_wait)
81 cls.d = d
82
83 def test_deployed(self):
84 """ Test to see if the bundle deployed successfully. """
85 self.assertTrue(self.d.deployed)
86
87if __name__ == '__main__':
88 unittest.main()
089
=== added file 'tests/local.yaml'
--- tests/local.yaml 1970-01-01 00:00:00 +0000
+++ tests/local.yaml 2015-11-11 11:37:05 +0000
@@ -0,0 +1,8 @@
1wxs:
2 wxs_url: "http://9.124.100.99/debs/WXS/"
3 wxs_base_package: "WS_XSCALE_V8.6_MP_ML.zip"
4 wxs_fix_pkg: "8.6.0-WS-WXS-FP0000007.zip"
5 im_name: "agent.installer.linux.gtk.x86_64_1.8.2000.20150303_1526.zip"
6 sha_base_pkg: "801bb88913e90413a271b6102d67276a9129dcf3"
7 sha_fix_pkg: "6e99ec379ed99521a184fbe0086c9d16055a67db"
8 sha_im_pkg: "f35653e20c7925d43007a1cff83623c979109ac5"

Subscribers

People subscribed via source and target branches

to all changes: