~ibmcharmers/xenial/ibm-was-nd-node-0

Owner: rajith-pv
Status: Needs Fixing
Vote: -1 (+2 needed for approval)

CPP?: No
OIL?: No

Here is a new Charm for IBM WebSphere Application Server Network Deployment Node (WAS ND Node) 9.0.0.0 for review

The IBM WAS ND Node has to be deployed on Ubuntu on Z (s390x)

1)Run the below juju command to agree IBM WAS ND License:
juju agree ibm-im/1 ibm-was-nd/1

Follow the below steps to deploy:
2) Run the following command to deploy
juju deploy -n 2 ibm-was-nd-node --series xenial

3)Attach IBM WAS ND packages by running the below specific commands.
juju attach ibm-was-nd-node ibm_im_installer=</path/to/ibm_im_installer.zip>
juju attach ibm-was-nd-node ibm_was_nd_installer=</path/to/ibm_was_nd_installer.zip>
juju attach ibm-was-nd-node ibm_java_sdk_installer=</path/to/ibm_java_sdk_installer.zip>

4) Add relation with was nd dm and was nd node
juju add-relation ibm-was-nd-dm ibm-was-nd-node


Source code can be found in below repository
Repo: https://code.launchpad.net/~ibmcharmers/charms/xenial/ibm-was-nd-node/trunk
Repo: https://code.launchpad.net/~ibmcharmers/charms/xenial/layer-ibm-was-nd-node/trunk

The Charm has been pushed into charm store as well
branch:cs:~ibmcharmers/xenial/ibm-was-nd-node-0


Tests

Substrate Status Results Last Updated
gce PENDING 19 days ago
aws PENDING 19 days ago
lxc PENDING 19 days ago

Voted: -1
kwmonroe wrote 2 months ago
Thanks for the work on the WAS ND suite of charms!

Similar to the review for WAS ND DM, I was able to review the charm code, but I could not find WAS ND v9 installer resources. Please upload those files to our shared brickftp account, and we can verify deployment and tests. Thanks again for the work on this charm -- I'll set this review to "Needs Fixing" while we wait for access to the necessary files.

Also, I noticed the repo key in layer.yaml was pointing to the trusty repo and the included test had a syntax error. I've submitted the following merge proposal to fix these issues:

https://code.launchpad.net/~kwmonroe/charms/xenial/layer-ibm-was-nd-node/repo-key/+merge/322546

Add Comment

Login to comment/vote on this review.


Policy Checklist

Description Unreviewed Pass Fail

General

Must verify that any software installed or utilized is verified as coming from the intended source. kwmonroe
  • Any software installed from the Ubuntu or CentOS default archives satisfies this due to the apt and yum sources including cryptographic signing information.
  • Third party repositories must be listed as a configuration option that can be overridden by the user and not hard coded in the charm itself.
  • Launchpad PPAs are acceptable as the add-apt-repository command retrieves the keys securely.
  • Other third party repositories are acceptable if the signing key is embedded in the charm.
Must provide a means to protect users from known security vulnerabilities in a way consistent with best practices as defined by either operating system policies or upstream documentation. kwmonroe
Basically, this means there must be instructions on how to apply updates if you use software not from distribution channels.
Must have hooks that are idempotent.
Should be built using charm layers. kwmonroe
Should use Juju Resources to deliver required payloads. kwmonroe

Testing and Quality

charm proof must pass without errors or warnings. kwmonroe
Must include passing unit, functional, or integration tests. kwmonroe
Tests must exercise all relations. kwmonroe
Tests must exercise config. kwmonroe
set-config, unset-config, and re-set must be tested as a minimum
Must not use anything infrastructure-provider specific (i.e. querying EC2 metadata service). kwmonroe
Must be self contained unless the charm is a proxy for an existing cloud service, e.g. ec2-elb charm.
Must not use symlinks. kwmonroe
Bundles must only use promulgated charms, they cannot reference charms in personal namespaces. kwmonroe
Must call Juju hook tools (relation-*, unit-*, config-*, etc) without a hard coded path. kwmonroe
Should include a tests.yaml for all integration tests. kwmonroe

Metadata

Must include a full description of what the software does. kwmonroe
Must include a maintainer email address for a team or individual who will be responsive to contact. kwmonroe
Must include a license. Call the file 'copyright' and make sure all files' licenses are specified clearly. kwmonroe
Must be under a Free license. kwmonroe
Must have a well documented and valid README.md. kwmonroe
Must describe the service. kwmonroe
Must describe how it interacts with other services, if applicable. kwmonroe
Must document the interfaces. kwmonroe
Must show how to deploy the charm. kwmonroe
Must define external dependencies, if applicable. kwmonroe
Should link to a recommend production usage bundle and recommended configuration if this differs from the default. kwmonroe
Should reference and link to upstream documentation and best practices. kwmonroe

Security

Must not run any network services using default passwords. kwmonroe
Must verify and validate any external payload kwmonroe
  • Known and understood packaging systems that verify packages like apt, pip, and yum are ok.
  • wget | sh style is not ok.
Should make use of whatever Mandatory Access Control system is provided by the distribution. kwmonroe
Should avoid running services as root.

Source Diff

Inline diff comments 0

No comments yet.

Back to file index

README.md

  1
--- 
  2
+++ README.md
  3
@@ -0,0 +1,153 @@
  4
+Charm for IBM WebSphere Application Server ND Node (WAS ND Node) 9.0.0.0
  5
+
  6
+## Overview
  7
+
  8
+IBM WebSphere Application Server Network Deployment provides an advanced, flexible runtime environment for large-scale application deployments. It offers near-continuous availability with advanced performance and management capabilities for mission-critical applications. For details on IBM Websphere Application Server Network Deployment,  as well as information on purchasing, please visit [Product Page][WAS-ND-product-page] and at the [Passport Advantage Site] [Passport-Advantage]. More information available at the [IBM Knowledge Center] [WAS-ND-Infocenter].
  9
+
 10
+`IBM WebSphere Application Server ND Node`
 11
+
 12
+This charm is using IBM WAS ND charm as a basic layer to install IBM WAS ND Software. After WAS ND installation, this charm will creates custom profiles (cluster members) to configure dynamic cluster setup.
 13
+
 14
+**Please note that the WAS ND charms (WAS ND, WAS ND DM and WAS ND Node) will create IBM WAS ND dynamic cluster.
 15
+
 16
+`IBM SDK, Java Technology Edition`
 17
+
 18
+WebSphere Application Server now uses a separately packaged, IBM Java SDK. It requires Java SDK version 8.
 19
+
 20
+## Prerequisites
 21
+
 22
+This charm makes use of resources, a feature only available in Juju 2.0. During deploy or upgrade, you will need to specify the installable package(s) required by this charm. Download your licensed IBM WebSphere Application Server ND packages from the [Product Page][WAS-ND-9.0.0.0-download].
 23
+
 24
+### Packages for Ubuntu on Z (s390x):
 25
+
 26
+IBM Installation Manager 1.8 (`agent.installer.linux.gtk.s390x_1.8.5000.20160506_1125.zip`)
 27
+
 28
+IBM WAS ND 9.0.0(WAS_ND_V9.0_MP_ML.zip)
 29
+
 30
+IBM JAVA SDK 8 (sdk.repo.8030.java8.linux.zip)
 31
+
 32
+## Usage
 33
+
 34
+To use this charm, you must agree to the Terms of Use. You can view the full license for `IBM Installation Manager` and `IBM WebSphere Application Server Network Deployment` products by visiting the [im-license-info](http://www-03.ibm.com/software/sla/sladb.nsf/displaylis/39AFC1C1D485C4E085257E7300548B05?OpenDocument) and [was-nd-license-info] [license-info] page.
 35
+
 36
+Search for "IBM WebSphere Application Server Network Deployment" and choose the license that applies to the version you are using.
 37
+
 38
+
 39
+## Memory and Disk Requirements
 40
+
 41
+Minimum 2.0 GB of disk space for installed image and Minimum 1 GB of physical memory recommended. 
 42
+
 43
+WebSphere Application Server ND Charm requires 15 GB of root disk to download packages and install the IBM WebSphere Application Server ND Software. By default available root disk space is 8GB.
 44
+
 45
+To request a larger root disk, run the following command:
 46
+
 47
+		juju set-constraints root-disk=15G
 48
+
 49
+### Deploy
 50
+
 51
+This charm will deploy `WAS ND Nodes` to configure WAS ND dynamic cluster. WAS ND node will act as a cluster member. When you add relation between WAS ND DM and WAS ND Node charms, WAS ND DM charm creates the dynamic cluster and Node will be added as a cluster member.
 52
+
 53
+1. Deploy the WAS ND DM charm:
 54
+
 55
+	juju deploy ibm-was-nd-dm --resource ibm_im_installer=</path/to/ibm_im_installer.zip> --resource ibm_was_nd_installer=</path/to/ibm_was_nd_installer.zip> --resource ibm_java_sdk_installer=</path/to/ibm_java_sdk_installer.zip> --series xenial
 56
+
 57
+2. Deploy the WAS ND Node charm:
 58
+
 59
+		juju deploy ibm-was-nd-node --resource ibm_im_installer=</path/to/ibm_im_installer.zip> --resource ibm_was_nd_installer=</path/to/ibm_was_nd_installer.zip> --resource ibm_java_sdk_installer=</path/to/ibm_java_sdk_installer.zip> --series xenial
 60
+		
 61
+													OR
 62
+													
 63
+		juju deploy -n <num> ibm-was-nd-node --resource ibm_im_installer=</path/to/ibm_im_installer.zip> --resource ibm_was_nd_installer=</path/to/ibm_was_nd_installer.zip> --resource ibm_java_sdk_installer=</path/to/ibm_java_sdk_installer.zip>  --series xenial
 64
+
 65
+where <num> is the number of WAS ND Node units you want to deploy
 66
+
 67
+3. Add a relation between WAS ND DM and WAS ND Node
 68
+
 69
+		juju add-relation ibm-was-nd-dm ibm-was-nd-node
 70
+
 71
+This will create WAS ND Node host which is ready to add more hosts to the WAS ND cluster. To add more units of WAS ND Node, you can use `add-unit` to add more hosts to your WAS ND cluster (each added unit will be designated as new cluster member).
 72
+
 73
+		juju add-unit ibm-was-nd-node
 74
+
 75
+This command will add a WAS ND Node to your existing WAS ND cluster.
 76
+
 77
+**Note**: This charm requires acceptance of Terms of Use. When deploying from the Charm Store, these terms will be presented to you for your consideration.
 78
+
 79
+To accept the terms:
 80
+
 81
+		juju agree ibm-im/1 ibm-was-nd/1
 82
+		juju deploy ibm-was-nd-node
 83
+
 84
+4. To Expose the IBM WAS ND Node Service to public, run the following command:
 85
+
 86
+		juju expose ibm-was-nd-node
 87
+
 88
+
 89
+### Upgrade
 90
+
 91
+Once deployed, user can upgrade the existing installation by installing fixpacks:
 92
+
 93
+If user wants to upgrade existing installation of Installtion Manger, run the following command:
 94
+
 95
+		juju attach ibm-was-nd-node ibm_im_fixpack=</path/to/fixpack.zip>
 96
+
 97
+To upgrade WAS ND Node installation:
 98
+
 99
+		juju attach ibm-was-nd-node ibm_was_nd_fp=</path/to/ibm_was_nd_fp.zip>
100
+		
101
+
102
+**Note**: WAS ND DM and WAS ND Node installation should be in same level(If you wan to upgrade WAS ND Node installation make sure that WAS ND DM also upgraded with same fixpack version). 
103
+
104
+### Verification Of WAS ND Cluster
105
+
106
+Once the IBM WAS ND Node is deployed successfully and relation is established between WAS ND DM and WAS ND Node, you can verify your WAS ND cluster by using below URLs.
107
+
108
+1. Login to DM console:
109
+
110
+		http://was-nd-dm-host:9060/ibm/console
111
+
112
+									OR
113
+
114
+		https://was-nd-dm-host:9043/ibm/console
115
+
116
+2. In the DM console click Servers > Clusters > Dynamic clusters > <dynamic_cluster_name>. On right side, click dynamic cluster members and verify the status of the cluster members. All cluster members should be started.
117
+
118
+Here was-nd-dm-host represents the public ip address of your machine, where WAS ND DM is installed. 
119
+
120
+## IBM WebSphere Application Server Network Deployment Information
121
+
122
+(1) General Information 
123
+
124
+Details about IBM WAS ND software available at [IBM Knowledge Center] [WAS-ND-Infocenter].
125
+
126
+Information on procuring WAS ND product is available at the [Passport Advantage site] [Passport-Advantage]
127
+
128
+(2) Download Information
129
+
130
+Details about WAS ND 9.0.0.0 download available [here] [[WAS-ND-9.0.0.0-download]
131
+
132
+Information about installation of WAS ND on 's390x' based machine available [here] [WAS-ND-for-s390x]  
133
+
134
+More information about IBM IM Downloadable file and WAS ND downloadable files available [here] [IBM-IM-more-info]
135
+
136
+## Contact Information
137
+
138
+For issues with this charm, please contact IBM Juju Support team <jujusupp@us.ibm.com>
139
+
140
+<!-- Links -->
141
+
142
+[WAS-ND-Infocenter]: http://www.ibm.com/support/knowledgecenter/SSAW57_9.0.0/as_ditamaps/was900_welcome_ndmp.html
143
+
144
+[WAS-ND-product-page]: http://www-03.ibm.com/software/products/en/appserv-wasnd
145
+
146
+[WAS-ND-9.0.0.0-download]: http://www-01.ibm.com/support/docview.wss?uid=swg27048323
147
+
148
+[Passport-Advantage]: http://www-01.ibm.com/software/passportadvantage/
149
+
150
+[IBM-IM-more-info]: http://www-01.ibm.com/support/docview.wss?uid=swg24038380
151
+
152
+[WAS-ND-for-s390x]: https://www.ibm.com/support/knowledgecenter/SSEQTP_9.0.0/as_ditamaps/was900_welcome_base.html
153
+
154
+[WAS-s390x-fixpack-info]: http://www-01.ibm.com/support/docview.wss?uid=swg24040035
155
+
156
+[license-info]: http://www-03.ibm.com/software/sla/sladb.nsf/lilookup/6CCA78CD870DCA5985257D90005A5351?OpenDocument
Back to file index

copyright

 1
--- 
 2
+++ copyright
 3
@@ -0,0 +1,13 @@
 4
+Copyright 2015 IBM Corporation
 5
+
 6
+This Charm is licensed under the Apache License, Version 2.0 (the "License");
 7
+you may not use this file except in compliance with the License.
 8
+You may obtain a copy of the License at
 9
+
10
+    http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+Unless required by applicable law or agreed to in writing, software
13
+distributed under the License is distributed on an "AS IS" BASIS,
14
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+See the License for the specific language governing permissions and
16
+limitations under the License.
Back to file index

icon.svg

 1
--- 
 2
+++ icon.svg
 3
@@ -0,0 +1,53 @@
 4
+<?xml version="1.0" encoding="UTF-8"?>
 5
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 6
+<!-- Creator: CorelDRAW X6 -->
 7
+<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"
 8
+viewBox="0 0 1116 1116"
 9
+ xmlns:xlink="http://www.w3.org/1999/xlink">
10
+ <defs>
11
+   <linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="558.139" y1="0" x2="558.139" y2="1116.27">
12
+    <stop offset="0" stop-color="#BFA6E6"/>
13
+    <stop offset="1" stop-color="#6C5393"/>
14
+   </linearGradient>
15
+   <mask id="id1">
16
+     <linearGradient id="id2" gradientUnits="userSpaceOnUse" x1="558.139" y1="65.2803" x2="558.139" y2="342.715">
17
+      <stop offset="0" stop-opacity="1" stop-color="white"/>
18
+      <stop offset="0.141176" stop-opacity="-10.5451" stop-color="white"/>
19
+      <stop offset="1" stop-opacity="0" stop-color="white"/>
20
+     </linearGradient>
21
+    <rect fill="url(#id2)" width="1116" height="408"/>
22
+   </mask>
23
+ </defs>
24
+ <g id="Layer_x0020_1">
25
+  <metadata id="CorelCorpID_0Corel-Layer"/>
26
+  <path id="Background" fill="url(#id0)" d="M0 754l0 -392c0,-317 45,-362 362,-362l393 0c316,0 361,45 361,362l0 392c0,317 -45,362 -361,362l-393 0c-317,0 -362,-45 -362,-362z"/>
27
+  <path fill="#999999" mask="url(#id1)" d="M0 408l0 -46c0,-317 45,-362 362,-362l393 0c316,0 361,45 361,362l0 46c0,-317 -45,-362 -361,-362l-393 0c-317,0 -362,45 -362,362z"/>
28
+  <g id="_195711952">
29
+   <path fill="#CCCCCC" fill-rule="nonzero" d="M426 711l-54 0 -54 -195 -55 195 -53 0 -71 -249 -29 0 0 -47 120 0 0 47 -32 0 41 156 54 -203 48 0 57 201 39 -154 -33 0 0 -47 121 0 0 47 -33 0 -66 249zm210 -231l-1 0 -37 102 75 0 -37 -102zm36 190l33 0 -18 -44 -104 0 -17 44 32 0 0 41 -121 0 0 -47 32 0 86 -202 -33 0 0 -47 100 0 103 249 32 0 0 47 -125 0 0 -41zm201 -47c0,7 1,12 3,18 2,5 5,10 8,14 4,5 9,8 14,10 5,3 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-13 -5,-3 -10,-5 -16,-7 -6,-2 -12,-4 -18,-6 -10,-3 -20,-6 -30,-9 -9,-4 -19,-9 -28,-16 -21,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-8 18,-13 29,-18 10,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18l0 -17 44 0 0 80 -51 0c0,-11 -4,-21 -11,-28 -8,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,5 7,9 12,12 4,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,10 10,4 20,10 30,17 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -8,37 -4,12 -11,21 -19,30 -8,8 -18,14 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -10,-4 -18,-10 -25,-19l0 19 -45 0 0 -88 52 0z"/>
30
+   <g>
31
+    <path fill="#C8C8C8" d="M425 711c-17,0 -35,0 -53,0 -18,-65 -37,-130 -55,-196 -18,66 -36,131 -55,196 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -10,0 -21,0 -32,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 15,0 31,0 47,0 19,67 38,134 57,201 13,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,68 -38,101 25,0 51,0 76,0 -13,-33 -25,-67 -38,-101zm37 189c10,0 21,0 32,0 -5,-14 -11,-29 -17,-44 -35,0 -70,0 -104,0 -6,15 -12,30 -17,44 10,0 21,0 32,0 0,14 0,28 0,42 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 10,0 21,0 31,0 0,15 0,31 0,47 -41,0 -83,0 -124,0 0,-14 0,-28 0,-42zm200 -46c0,6 1,12 3,17 2,6 5,11 9,15 4,4 8,7 14,10 5,2 11,3 18,3 12,0 23,-3 31,-11 8,-7 13,-17 13,-29 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-2 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -33,-38 -33,-65 0,-12 3,-24 8,-34 5,-11 11,-20 19,-27 9,-8 18,-14 29,-18 11,-4 22,-7 34,-7 10,0 20,2 29,6 10,3 18,9 24,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -8,7 -11,16 -11,28 0,7 1,13 4,17 3,5 7,9 11,12 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,16 22,27 5,11 7,22 7,35 0,13 -2,25 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -26,-20 0,7 0,13 0,20 -15,0 -29,0 -44,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
32
+    <path fill="#C5C5C5" d="M425 710c-18,0 -36,0 -54,0 -18,-65 -36,-130 -54,-195 -19,65 -37,130 -55,195 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -20,0 -29,0 0,-15 0,-31 0,-47 40,0 80,0 120,0 0,16 0,32 0,47 -11,0 -22,0 -32,0 14,52 28,104 42,156 17,-68 35,-135 53,-203 16,0 32,0 48,0 19,67 38,134 57,201 13,-51 26,-102 40,-154 -12,0 -23,0 -34,0 0,-15 0,-31 0,-47 40,0 81,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -26,68 -38,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-44 -34,0 -69,0 -104,0 -5,14 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,41 -40,0 -80,0 -121,0 0,-15 0,-31 0,-47 11,0 21,0 32,0 29,-67 57,-134 86,-202 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 34,0 67,0 100,0 34,83 69,166 103,249 11,0 22,0 32,0 0,16 0,32 0,47 -42,0 -83,0 -125,0 0,-13 0,-27 0,-41zm201 -46c0,6 1,11 3,17 2,5 5,10 8,14 4,5 9,8 14,10 5,3 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-12 -4,-4 -10,-6 -16,-8 -6,-2 -12,-4 -17,-6 -11,-3 -21,-6 -31,-9 -9,-4 -18,-9 -28,-16 -21,-16 -32,-37 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 10,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 44,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,16 -12,27 0,7 2,13 4,18 3,5 7,9 12,12 5,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,10 10,4 20,10 30,17 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,21 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-87 17,0 34,0 52,0z"/>
33
+    <path fill="#C1C1C1" d="M424 710c-17,0 -35,0 -53,0 -18,-65 -37,-130 -55,-195 -18,65 -36,130 -55,195 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 121,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 16,0 31,0 47,0 19,67 38,134 57,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,68 -38,102 25,0 51,0 76,0 -13,-34 -25,-68 -38,-102zm37 190c11,0 21,0 32,0 -5,-15 -11,-30 -17,-45 -35,0 -69,0 -104,0 -6,15 -12,30 -17,45 10,0 21,0 32,0 0,13 0,27 0,41 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 11,0 21,0 32,0 0,15 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-28 0,-41zm200 -47c0,6 1,12 3,17 2,6 5,11 9,15 4,4 8,7 14,10 5,2 11,3 18,3 13,0 23,-3 31,-11 9,-7 13,-17 13,-29 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-2 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -32,-38 -32,-65 0,-12 2,-24 7,-34 5,-11 11,-20 20,-27 8,-8 17,-14 28,-18 11,-4 22,-7 34,-7 10,0 20,2 29,6 10,3 18,9 24,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -7,7 -11,16 -11,28 0,7 1,13 4,18 3,4 7,8 11,11 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,17 22,27 5,11 7,22 7,35 0,13 -2,25 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -26,-19 0,6 0,13 0,19 -14,0 -29,0 -44,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
34
+    <path fill="#BEBEBE" d="M424 710c-18,0 -36,0 -54,0 -18,-66 -36,-131 -54,-196 -19,65 -37,130 -55,196 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -19,0 -29,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -22,0 -32,0 14,51 28,103 42,155 17,-67 35,-135 53,-203 16,0 32,0 48,0 19,67 38,134 57,202 13,-52 26,-103 40,-154 -11,0 -23,0 -34,0 0,-16 0,-32 0,-48 41,0 81,0 121,0 0,16 0,32 0,48 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -232c0,0 0,0 0,0 -13,34 -26,68 -38,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-44 -34,0 -69,0 -104,0 -5,14 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,42 -40,0 -80,0 -121,0 0,-16 0,-32 0,-48 11,0 21,0 32,0 29,-67 58,-134 86,-201 -11,0 -22,0 -32,0 0,-16 0,-32 0,-48 33,0 66,0 99,0 34,83 69,166 104,249 10,0 21,0 31,0 0,16 0,32 0,48 -42,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,11 3,17 2,6 5,10 8,15 4,4 9,7 14,9 6,3 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-12 -4,-4 -10,-6 -16,-8 -6,-2 -12,-4 -17,-5 -11,-4 -21,-7 -31,-10 -9,-4 -18,-9 -28,-16 -21,-16 -32,-37 -32,-65 0,-12 3,-23 7,-34 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 11,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 44,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -17,-11 -28,-11 -11,0 -20,4 -28,10 -8,7 -12,16 -12,27 0,7 2,13 4,18 3,5 7,9 12,12 5,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,11 10,3 21,9 30,16 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,22 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-10 -25,-19 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 17,0 34,0 52,0z"/>
35
+    <path fill="#BABABA" d="M424 709c-18,0 -36,0 -54,0 -18,-65 -37,-130 -55,-195 -18,65 -36,130 -55,195 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 121,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 16,0 32,0 47,0 19,67 38,134 57,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -32,0 -22,83 -44,166 -66,249zm210 -231c-1,0 -1,0 -1,0 -12,34 -25,68 -38,102 26,0 51,0 76,0 -13,-34 -25,-68 -37,-102zm36 190c11,0 22,0 32,0 -5,-15 -11,-30 -17,-45 -35,0 -69,0 -104,0 -6,15 -12,30 -17,45 10,0 21,0 32,0 0,13 0,27 0,41 -40,0 -81,0 -121,0 0,-16 0,-31 0,-47 11,0 21,0 32,0 28,-67 57,-135 86,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 11,0 21,0 32,0 0,16 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-28 0,-41zm200 -47c0,6 1,12 3,18 2,5 5,10 9,14 4,4 8,7 14,10 5,2 11,3 18,3 13,0 23,-3 31,-10 9,-8 13,-18 13,-30 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-1 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -32,-38 -32,-65 0,-12 2,-24 7,-34 5,-11 11,-20 20,-27 8,-8 17,-14 28,-18 11,-4 22,-7 34,-7 11,0 20,2 30,6 9,3 17,9 23,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -50,0 -1,-11 -4,-20 -12,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,10 -7,6 -11,15 -11,27 0,7 1,13 4,18 3,4 7,8 11,11 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,17 22,27 5,11 7,22 7,35 0,13 -2,26 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,5 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
36
+    <path fill="#B6B6B6" d="M423 709c-18,0 -36,0 -53,0 -19,-66 -37,-131 -55,-196 -19,65 -37,130 -55,196 -18,0 -35,0 -53,0 -23,-83 -47,-166 -71,-249 -10,0 -19,0 -29,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -21,0 -32,0 14,51 28,103 42,155 18,-67 35,-135 53,-203 16,0 32,0 48,0 19,67 38,134 57,202 13,-52 26,-103 40,-154 -11,0 -22,0 -34,0 0,-16 0,-32 0,-48 41,0 81,0 121,0 0,16 0,32 0,48 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -232c0,0 0,0 0,0 -13,34 -26,68 -38,102 25,0 50,0 75,0 -12,-34 -24,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-29 -17,-44 -35,0 -70,0 -105,0 -5,15 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,42 -40,0 -80,0 -120,0 0,-16 0,-32 0,-48 10,0 21,0 31,0 29,-67 58,-134 86,-201 -11,0 -21,0 -32,0 0,-16 0,-32 0,-48 33,0 66,0 99,0 34,83 69,166 104,249 10,0 21,0 31,0 0,16 0,32 0,48 -41,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,12 3,17 2,6 5,10 9,15 3,4 8,7 13,9 6,3 12,4 19,4 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -4,-5 -8,-9 -13,-12 -4,-3 -10,-6 -16,-8 -6,-2 -12,-4 -17,-5 -11,-3 -21,-7 -31,-10 -9,-4 -18,-9 -27,-16 -22,-16 -33,-37 -33,-64 0,-13 3,-24 7,-35 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 11,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 24,18 0,-6 0,-11 0,-17 14,0 28,0 43,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -16,-11 -28,-11 -11,0 -20,4 -28,10 -8,7 -12,16 -12,27 0,7 2,13 5,18 2,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 11,3 22,7 33,11 10,3 21,9 30,16 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,22 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-10 -25,-19 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 17,0 35,0 52,0z"/>
37
+    <path fill="#B3B3B3" d="M423 708c-18,0 -36,0 -54,0 -18,-65 -36,-130 -55,-195 -18,65 -36,130 -55,195 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-31 0,-47 40,0 81,0 121,0 0,16 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 16,0 32,0 47,0 19,67 38,134 57,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 40,0 80,0 120,0 0,16 0,31 0,47 -11,0 -21,0 -32,0 -22,83 -44,166 -66,249zm210 -231c-1,0 -1,0 -1,0 -12,34 -25,68 -38,102 26,0 51,0 76,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-45 -35,0 -69,0 -104,0 -6,15 -11,30 -17,45 11,0 21,0 32,0 0,13 0,27 0,41 -40,0 -81,0 -121,0 0,-16 0,-31 0,-47 11,0 21,0 32,0 28,-67 57,-135 86,-202 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 33,0 66,0 99,0 35,83 70,166 104,249 11,0 21,0 32,0 0,16 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-28 0,-41zm200 -47c0,6 1,12 3,18 2,5 5,10 9,14 4,4 8,8 14,10 5,2 11,3 18,3 13,0 23,-3 31,-10 9,-8 13,-18 13,-30 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-7 -6,-2 -12,-4 -18,-6 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 11,-20 20,-27 8,-8 18,-14 28,-18 11,-4 22,-6 34,-6 11,0 20,1 30,5 9,4 17,9 23,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -50,0 -1,-11 -4,-20 -12,-27 -7,-7 -16,-11 -27,-11 -11,0 -21,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,4 7,8 12,11 4,3 9,6 15,8 6,1 11,3 17,5 12,3 23,6 34,10 10,4 20,10 30,17 9,7 17,17 22,27 5,11 7,23 7,35 0,13 -2,26 -7,37 -4,11 -11,21 -19,29 -9,9 -18,15 -30,20 -11,5 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
38
+    <path fill="#AFAFAF" d="M422 708c-18,0 -36,0 -53,0 -19,-65 -37,-131 -55,-196 -18,65 -37,131 -55,196 -18,0 -35,0 -53,0 -23,-83 -47,-166 -71,-249 -10,0 -19,0 -29,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -21,0 -32,0 14,52 28,103 42,155 18,-67 35,-135 53,-203 16,0 32,0 48,0 19,67 38,135 57,202 13,-52 26,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -232c0,0 0,0 0,0 -13,34 -25,68 -38,102 25,0 50,0 76,0 -13,-34 -25,-68 -38,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-29 -17,-44 -35,0 -70,0 -105,0 -5,15 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,42 -40,0 -80,0 -120,0 0,-16 0,-32 0,-48 10,0 21,0 31,0 29,-67 58,-134 86,-201 -10,0 -21,0 -32,0 0,-16 0,-32 0,-48 33,0 66,0 99,0 34,83 69,166 104,249 10,0 21,0 31,0 0,16 0,32 0,48 -41,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,12 3,17 2,6 5,11 9,15 3,4 8,7 13,9 6,3 12,4 19,4 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -4,-5 -8,-9 -12,-12 -5,-3 -11,-6 -17,-8 -6,-2 -11,-4 -17,-5 -11,-3 -21,-7 -31,-10 -9,-4 -18,-9 -27,-16 -22,-16 -33,-37 -33,-64 0,-13 3,-24 7,-34 5,-11 12,-20 20,-28 9,-7 18,-13 29,-17 11,-5 22,-7 34,-7 10,0 20,2 29,5 9,4 17,10 24,18 0,-6 0,-11 0,-17 14,0 28,0 43,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -16,-11 -27,-11 -12,0 -21,4 -29,10 -8,7 -12,16 -12,27 0,8 2,13 5,18 3,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 11,3 23,7 33,11 11,4 21,9 30,16 10,8 17,17 22,28 5,11 8,22 8,35 0,13 -3,25 -7,36 -5,12 -11,22 -20,30 -8,8 -18,15 -29,19 -12,5 -24,8 -38,8 -12,0 -22,-3 -32,-7 -9,-4 -18,-10 -25,-19 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 17,0 35,0 52,0z"/>
39
+    <path fill="#ABABAB" d="M422 707c-18,0 -36,0 -54,0 -18,-65 -36,-130 -55,-195 -18,65 -36,130 -54,195 -18,0 -36,0 -53,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-31 0,-47 40,0 81,0 121,0 0,16 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-135 54,-203 16,0 32,0 48,0 19,67 37,134 56,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 40,0 80,0 120,0 0,16 0,31 0,47 -10,0 -21,0 -32,0 -22,83 -44,166 -66,249zm210 -231c0,0 -1,0 -1,0 -12,34 -25,68 -37,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-45 -35,0 -69,0 -104,0 -6,15 -11,30 -17,45 11,0 21,0 32,0 0,14 0,27 0,41 -40,0 -81,0 -121,0 0,-16 0,-31 0,-47 11,0 21,0 32,0 28,-67 57,-135 86,-202 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 33,0 66,0 99,0 35,83 70,166 104,249 11,0 21,0 32,0 0,16 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-27 0,-41zm200 -47c0,6 1,12 3,18 2,5 5,10 9,14 4,4 8,8 14,10 5,2 11,3 18,3 13,0 23,-3 31,-10 9,-8 13,-17 13,-30 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-5 -16,-7 -6,-2 -12,-4 -18,-6 -11,-3 -21,-6 -30,-10 -9,-3 -19,-8 -28,-15 -21,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 11,-19 20,-27 8,-8 18,-14 28,-18 11,-4 23,-6 34,-6 11,0 20,1 30,5 9,4 17,9 23,17 0,-5 0,-11 0,-16 15,0 29,0 43,0 0,26 0,53 0,80 -17,0 -33,0 -50,0 -1,-12 -4,-21 -12,-28 -7,-7 -16,-11 -27,-11 -11,0 -20,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,4 7,8 12,11 4,3 9,6 15,8 6,1 12,3 17,5 12,3 23,6 34,10 10,4 20,10 30,17 10,8 17,17 22,27 5,11 7,23 7,35 0,13 -2,26 -7,37 -4,11 -11,21 -19,29 -9,9 -18,15 -30,20 -11,5 -24,7 -37,7 -12,0 -23,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-88 17,0 34,0 51,0z"/>
40
+    <path fill="#A8A8A8" d="M421 707c-18,0 -36,0 -53,0 -19,-65 -37,-131 -55,-196 -18,65 -37,131 -55,196 -18,0 -35,0 -53,0 -23,-83 -47,-166 -71,-249 -9,0 -19,0 -29,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -21,0 -32,0 14,52 28,103 42,155 18,-67 36,-135 53,-203 16,0 32,0 48,0 19,67 38,135 57,202 13,-52 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,33 -25,67 -38,101 25,0 50,0 76,0 -13,-34 -25,-68 -38,-101zm36 189c11,0 22,0 33,0 -6,-15 -11,-29 -17,-44 -35,0 -70,0 -104,0 -6,15 -12,29 -18,44 11,0 22,0 32,0 0,14 0,28 0,42 -40,0 -80,0 -120,0 0,-16 0,-32 0,-48 10,0 21,0 31,0 29,-67 58,-134 87,-201 -11,0 -22,0 -33,0 0,-16 0,-32 0,-48 33,0 66,0 99,0 35,83 69,166 104,249 10,0 21,0 31,0 0,16 0,32 0,48 -41,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,12 3,17 2,6 5,11 9,15 3,4 8,7 13,9 6,3 12,4 19,4 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -4,-5 -8,-9 -12,-12 -5,-3 -11,-6 -17,-8 -6,-2 -11,-4 -17,-5 -11,-3 -21,-7 -31,-10 -9,-3 -18,-9 -27,-16 -22,-16 -33,-37 -33,-64 0,-13 3,-24 8,-34 4,-11 11,-20 19,-28 9,-7 18,-13 29,-17 11,-5 22,-7 34,-7 10,0 20,2 29,6 9,3 17,9 24,17 0,-6 0,-11 0,-17 14,0 28,0 43,0 0,27 0,54 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -16,-11 -27,-11 -11,0 -21,4 -29,10 -8,7 -12,16 -12,27 0,8 2,14 5,18 3,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 12,3 23,7 33,11 11,4 21,9 30,16 10,8 17,17 22,28 5,11 8,22 8,35 0,13 -2,25 -7,37 -5,11 -11,21 -20,29 -8,8 -18,15 -29,20 -12,4 -24,7 -38,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-11 -25,-20 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 18,0 35,0 52,0z"/>
41
+    <path fill="#A4A4A4" d="M421 706c-18,0 -36,0 -54,0 -18,-65 -36,-130 -55,-195 -18,65 -36,130 -54,195 -18,0 -36,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-31 0,-47 41,0 81,0 121,0 0,16 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-135 54,-203 16,0 32,0 48,0 19,67 38,134 56,201 14,-51 27,-102 40,-154 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 40,0 80,0 121,0 0,16 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 -1,0 -1,0 -12,34 -25,68 -37,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-45 -34,0 -69,0 -104,0 -6,15 -11,30 -17,45 11,0 21,0 32,0 0,14 0,27 0,41 -40,0 -81,0 -121,0 0,-15 0,-31 0,-47 11,0 21,0 32,0 29,-67 57,-135 86,-202 -11,0 -22,0 -33,0 0,-16 0,-31 0,-47 33,0 66,0 99,0 35,83 70,166 104,249 11,0 21,0 32,0 0,16 0,32 0,47 -42,0 -83,0 -125,0 0,-14 0,-27 0,-41zm200 -47c0,6 1,12 3,18 3,5 5,10 9,14 4,4 9,8 14,10 5,2 11,4 18,4 13,0 23,-4 32,-11 8,-7 12,-17 12,-30 0,-8 -2,-14 -5,-19 -3,-4 -7,-8 -12,-12 -5,-3 -10,-5 -16,-7 -6,-2 -12,-4 -18,-6 -10,-3 -21,-6 -30,-9 -9,-4 -19,-9 -28,-16 -21,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-8 18,-14 28,-18 11,-4 23,-6 34,-6 11,0 20,1 30,5 9,4 17,9 23,18 0,-6 0,-12 0,-17 15,0 29,0 43,0 0,26 0,53 0,80 -17,0 -33,0 -50,0 -1,-11 -4,-21 -11,-28 -8,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,4 7,8 12,11 4,3 10,6 15,8 6,1 12,3 17,5 12,3 23,6 34,10 10,4 20,10 30,17 10,8 17,17 22,27 5,11 7,23 7,35 0,13 -2,26 -7,37 -4,11 -11,21 -19,30 -8,8 -18,14 -30,19 -11,5 -24,7 -37,7 -12,0 -23,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-88 17,0 34,0 51,0z"/>
42
+    <path fill="#A1A1A1" d="M420 706c-18,0 -35,0 -53,0 -19,-65 -37,-131 -55,-196 -18,65 -37,131 -55,196 -17,0 -35,0 -53,0 -23,-83 -47,-166 -71,-249 -9,0 -19,0 -29,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -10,0 -21,0 -32,0 14,52 28,104 42,155 18,-67 36,-135 53,-203 16,0 32,0 48,0 19,68 38,135 57,202 13,-52 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-48 40,0 80,0 120,0 0,16 0,32 0,48 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,67 -38,101 25,0 50,0 76,0 -13,-34 -25,-67 -38,-101zm36 189c11,0 22,0 33,0 -6,-14 -11,-29 -17,-44 -35,0 -70,0 -104,0 -6,15 -12,30 -17,44 10,0 21,0 32,0 0,14 0,28 0,42 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-48 33,0 66,0 99,0 35,83 69,166 104,250 10,0 21,0 31,0 0,15 0,31 0,47 -41,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,12 3,17 2,6 5,11 9,15 3,4 8,7 13,10 6,2 12,3 19,3 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -3,-5 -7,-9 -12,-12 -5,-3 -11,-6 -17,-8 -5,-2 -11,-4 -17,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-9 -28,-16 -22,-16 -33,-37 -33,-64 0,-12 3,-24 8,-34 4,-11 11,-20 19,-27 9,-8 18,-14 29,-18 11,-5 22,-7 34,-7 10,0 20,2 29,6 10,3 17,9 24,17 0,-5 0,-11 0,-17 14,0 29,0 43,0 0,27 0,54 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -8,7 -12,16 -12,27 0,8 2,14 5,18 3,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 12,3 23,7 33,11 11,4 21,9 30,16 10,8 17,17 22,28 5,11 8,22 8,35 0,13 -2,25 -7,37 -5,11 -11,21 -20,29 -8,8 -18,15 -29,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -32,-6 -9,-4 -18,-11 -25,-20 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 18,0 35,0 52,0z"/>
43
+    <path fill="#9D9D9D" d="M420 705c-18,0 -36,0 -54,0 -18,-65 -36,-130 -55,-195 -18,65 -36,130 -54,195 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -20,0 -30,0 0,-15 0,-31 0,-47 41,0 81,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-135 54,-203 16,0 32,0 48,0 19,67 38,134 57,201 13,-51 26,-102 39,-154 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 40,0 80,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 -1,0 -12,34 -25,68 -37,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-45 -34,0 -69,0 -104,0 -6,15 -11,30 -17,45 11,0 21,0 32,0 0,14 0,28 0,41 -40,0 -80,0 -121,0 0,-15 0,-31 0,-47 11,0 21,0 32,0 29,-67 57,-134 86,-202 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 33,0 66,0 100,0 34,83 69,166 103,249 11,0 21,0 32,0 0,16 0,32 0,47 -42,0 -83,0 -125,0 0,-13 0,-27 0,-41zm200 -47c0,6 1,12 4,18 2,5 5,10 8,14 4,4 9,8 14,10 5,2 12,4 18,4 13,0 23,-4 32,-11 8,-7 12,-17 12,-30 0,-8 -2,-14 -5,-19 -3,-4 -7,-8 -12,-12 -5,-3 -10,-5 -16,-7 -6,-2 -12,-4 -18,-6 -10,-3 -21,-6 -30,-9 -9,-4 -19,-9 -28,-16 -21,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-8 18,-14 29,-18 10,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 43,0 0,27 0,53 0,80 -16,0 -33,0 -50,0 0,-11 -4,-21 -11,-28 -8,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,5 7,8 12,11 4,4 10,6 15,8 6,2 12,3 17,5 12,3 23,6 34,10 10,4 20,10 30,17 10,8 17,17 22,28 5,10 7,22 7,34 0,13 -2,26 -7,37 -4,11 -11,21 -19,30 -8,8 -18,14 -30,19 -11,5 -24,7 -37,7 -12,0 -23,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-88 17,0 34,0 51,0z"/>
44
+    <path fill="#999999" d="M419 705c-18,0 -35,0 -53,0 -18,-65 -37,-130 -55,-196 -18,66 -37,131 -55,196 -17,0 -35,0 -53,0 -23,-83 -47,-166 -71,-249 -9,0 -19,0 -29,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -10,0 -21,0 -32,0 14,52 28,104 42,155 18,-67 36,-135 53,-202 16,0 32,0 48,0 19,67 38,134 57,201 13,-52 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,67 -38,101 25,0 51,0 76,0 -13,-34 -25,-67 -38,-101zm36 189c11,0 22,0 33,0 -6,-14 -11,-29 -17,-44 -35,0 -70,0 -104,0 -6,15 -12,30 -17,44 10,0 21,0 32,0 0,14 0,28 0,42 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 10,0 21,0 31,0 0,15 0,31 0,47 -41,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,12 3,17 2,6 5,11 9,15 4,4 8,7 13,10 6,2 12,3 19,3 12,0 23,-3 31,-11 8,-7 13,-17 13,-30 0,-7 -2,-13 -5,-18 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-2 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-9 -28,-15 -22,-17 -33,-38 -33,-65 0,-12 3,-24 8,-34 5,-11 11,-20 19,-27 9,-8 18,-14 29,-18 11,-5 22,-7 34,-7 10,0 20,2 29,6 10,3 17,9 24,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -8,7 -12,16 -12,28 0,7 2,13 5,17 3,5 7,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 12,4 23,7 33,11 11,4 21,9 31,16 9,8 17,17 22,28 5,11 7,22 7,35 0,13 -2,25 -7,37 -5,11 -11,21 -20,29 -8,8 -18,15 -29,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -32,-6 -9,-4 -17,-11 -25,-20 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-29 0,-59 0,-88 18,0 35,0 52,0z"/>
45
+    <path fill="#969696" d="M419 704c-18,0 -36,0 -54,0 -18,-65 -36,-130 -54,-195 -19,65 -37,130 -55,195 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -20,0 -29,0 0,-15 0,-31 0,-47 40,0 80,0 120,0 0,16 0,32 0,47 -11,0 -22,0 -32,0 14,52 27,104 41,156 18,-68 36,-135 54,-203 16,0 32,0 48,0 19,67 38,134 57,201 13,-51 26,-102 39,-154 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 40,0 81,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 -1,0 -12,34 -25,68 -37,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-44 -34,0 -69,0 -104,0 -5,14 -11,29 -17,44 11,0 21,0 32,0 0,14 0,28 0,41 -40,0 -80,0 -121,0 0,-15 0,-31 0,-47 11,0 21,0 32,0 29,-67 57,-134 86,-202 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 33,0 67,0 100,0 34,83 69,166 103,249 11,0 21,0 32,0 0,16 0,32 0,47 -42,0 -83,0 -125,0 0,-13 0,-27 0,-41zm201 -47c0,7 1,12 3,18 2,5 5,10 8,14 4,5 9,8 14,10 5,2 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-13 -5,-3 -10,-5 -16,-7 -6,-2 -12,-4 -18,-6 -10,-3 -20,-6 -30,-9 -9,-4 -19,-9 -28,-16 -21,-16 -32,-38 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-8 18,-13 29,-18 10,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 44,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-21 -11,-28 -8,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,15 -12,27 0,7 1,13 4,18 3,5 7,9 12,12 4,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,10 10,4 20,10 30,17 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -8,37 -4,12 -11,21 -19,30 -8,8 -18,14 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-88 17,0 34,0 52,0z"/>
46
+    <path fill="#929292" d="M418 704c-17,0 -35,0 -53,0 -18,-65 -37,-130 -55,-196 -18,66 -36,131 -55,196 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -10,0 -21,0 -32,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 15,0 31,0 47,0 19,67 38,134 57,201 13,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,68 -38,101 25,0 51,0 76,0 -13,-33 -25,-67 -38,-101zm37 189c10,0 21,0 32,0 -5,-14 -11,-29 -17,-44 -35,0 -70,0 -104,0 -6,15 -12,30 -17,44 10,0 21,0 32,0 0,14 0,28 0,42 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 10,0 21,0 31,0 0,15 0,31 0,47 -41,0 -83,0 -124,0 0,-14 0,-28 0,-42zm200 -46c0,6 1,12 3,17 2,6 5,11 9,15 4,4 8,7 14,10 5,2 11,3 18,3 12,0 23,-3 31,-11 8,-7 13,-17 13,-29 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-2 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -33,-38 -33,-65 0,-12 3,-24 8,-34 5,-11 11,-20 19,-27 9,-8 18,-14 29,-18 11,-5 22,-7 34,-7 10,0 20,2 29,6 10,3 18,9 24,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -8,7 -11,16 -11,28 0,7 1,13 4,17 3,5 7,9 11,12 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,16 22,27 5,11 7,22 7,35 0,13 -2,25 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -26,-20 0,7 0,13 0,20 -15,0 -29,0 -44,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
47
+    <path fill="#8E8E8E" d="M418 703c-18,0 -36,0 -54,0 -18,-65 -36,-130 -54,-195 -19,65 -37,130 -55,195 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-249 -10,0 -20,0 -29,0 0,-15 0,-31 0,-47 40,0 80,0 120,0 0,16 0,32 0,47 -11,0 -22,0 -32,0 14,52 28,104 42,156 17,-68 35,-135 53,-203 16,0 32,0 48,0 19,67 38,134 57,201 13,-51 26,-102 40,-154 -12,0 -23,0 -34,0 0,-15 0,-31 0,-47 40,0 81,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -26,68 -38,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-44 -34,0 -69,0 -104,0 -5,14 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,41 -40,0 -80,0 -121,0 0,-15 0,-31 0,-47 11,0 21,0 32,0 29,-67 57,-134 86,-202 -11,0 -22,0 -33,0 0,-15 0,-31 0,-47 34,0 67,0 100,0 34,83 69,166 103,249 11,0 22,0 32,0 0,16 0,32 0,47 -42,0 -83,0 -125,0 0,-13 0,-27 0,-41zm201 -47c0,7 1,12 3,18 2,5 5,10 8,14 4,5 9,8 14,10 5,3 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-12 -4,-4 -10,-6 -16,-8 -6,-2 -12,-4 -17,-6 -11,-3 -21,-6 -31,-9 -9,-4 -18,-9 -28,-16 -21,-16 -32,-37 -32,-65 0,-12 2,-23 7,-34 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 10,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 44,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -17,-11 -28,-11 -11,0 -20,3 -28,10 -8,6 -12,16 -12,27 0,7 2,13 4,18 3,5 7,9 12,12 5,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,10 10,4 20,10 30,17 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,21 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -10,-4 -18,-10 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-58 0,-88 17,0 34,0 52,0z"/>
48
+    <path fill="#8B8B8B" d="M417 703c-17,0 -35,0 -53,0 -18,-65 -37,-130 -55,-195 -18,65 -36,130 -55,195 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 121,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 16,0 31,0 47,0 19,67 38,134 57,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 -22,83 -44,166 -66,249zm210 -231c0,0 0,0 0,0 -13,34 -25,68 -38,102 25,0 51,0 76,0 -13,-34 -25,-68 -38,-102zm37 190c11,0 21,0 32,0 -5,-15 -11,-30 -17,-45 -35,0 -69,0 -104,0 -6,15 -12,30 -17,45 10,0 21,0 32,0 0,13 0,27 0,41 -41,0 -81,0 -121,0 0,-16 0,-32 0,-47 10,0 21,0 31,0 29,-68 58,-135 87,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 11,0 21,0 32,0 0,15 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-28 0,-41zm200 -47c0,6 1,12 3,17 2,6 5,11 9,15 4,4 8,7 14,10 5,2 11,3 18,3 13,0 23,-3 31,-11 9,-7 13,-17 13,-29 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-2 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -32,-38 -32,-65 0,-12 2,-24 7,-34 5,-11 11,-20 20,-27 8,-8 17,-14 28,-18 11,-4 22,-7 34,-7 10,0 20,2 29,6 10,3 18,9 24,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,9 -7,7 -11,16 -11,28 0,7 1,13 4,18 3,4 7,8 11,11 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,17 22,27 5,11 7,22 7,35 0,13 -2,25 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,4 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -26,-19 0,6 0,13 0,19 -14,0 -29,0 -44,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
49
+    <path fill="#878787" d="M417 703c-18,0 -36,0 -54,0 -18,-66 -36,-131 -54,-196 -19,65 -37,130 -55,196 -18,0 -35,0 -53,0 -24,-83 -47,-166 -71,-250 -10,0 -19,0 -29,0 0,-15 0,-31 0,-47 40,0 80,0 120,0 0,16 0,32 0,47 -11,0 -22,0 -32,0 14,52 28,104 42,156 17,-68 35,-135 53,-203 16,0 32,0 48,0 19,67 38,134 57,201 13,-51 26,-102 40,-154 -11,0 -23,0 -34,0 0,-15 0,-31 0,-47 41,0 81,0 121,0 0,16 0,32 0,47 -11,0 -22,0 -33,0 -22,84 -44,167 -66,250zm210 -232c0,0 0,0 0,0 -13,34 -26,68 -38,102 25,0 50,0 75,0 -12,-34 -25,-68 -37,-102zm36 190c11,0 22,0 33,0 -6,-15 -12,-30 -18,-44 -34,0 -69,0 -104,0 -5,14 -11,29 -17,44 11,0 22,0 32,0 0,14 0,28 0,42 -40,0 -80,0 -121,0 0,-16 0,-32 0,-48 11,0 21,0 32,0 29,-67 58,-134 86,-202 -11,0 -22,0 -32,0 0,-15 0,-31 0,-47 33,0 66,0 99,0 34,83 69,166 104,249 10,0 21,0 31,0 0,16 0,32 0,48 -42,0 -83,0 -125,0 0,-14 0,-28 0,-42zm201 -46c0,6 1,11 3,17 2,6 5,10 8,15 4,4 9,7 14,9 6,3 12,4 19,4 12,0 22,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-14 -5,-18 -3,-5 -7,-9 -12,-12 -4,-4 -10,-6 -16,-8 -6,-2 -12,-4 -17,-5 -11,-4 -21,-7 -31,-10 -9,-4 -18,-9 -28,-16 -21,-16 -32,-37 -32,-65 0,-12 3,-23 7,-34 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 11,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 23,18 0,-6 0,-11 0,-17 15,0 29,0 44,0 0,27 0,53 0,80 -17,0 -34,0 -51,0 0,-11 -4,-20 -11,-28 -7,-7 -17,-11 -28,-11 -11,0 -20,4 -28,10 -8,7 -12,16 -12,27 0,7 2,13 4,18 3,5 7,9 12,12 5,3 10,5 15,7 6,2 12,3 18,5 11,3 22,7 33,11 10,3 21,9 30,16 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,21 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-10 -25,-19 0,7 0,13 0,20 -15,0 -30,0 -45,0 0,-30 0,-59 0,-88 17,0 34,0 52,0z"/>
50
+    <path fill="#848484" d="M417 702c-18,0 -36,0 -54,0 -18,-65 -37,-130 -55,-195 -18,65 -36,130 -55,195 -17,0 -35,0 -52,0 -24,-83 -48,-166 -71,-249 -10,0 -20,0 -30,0 0,-16 0,-32 0,-47 40,0 80,0 121,0 0,15 0,31 0,47 -11,0 -22,0 -33,0 14,52 28,104 42,156 18,-68 36,-136 54,-203 16,0 32,0 47,0 19,67 38,134 57,201 14,-51 27,-103 40,-154 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 40,0 80,0 120,0 0,15 0,31 0,47 -11,0 -22,0 -32,0 -22,83 -44,166 -66,249zm210 -231c-1,0 -1,0 -1,0 -12,34 -25,68 -38,102 26,0 51,0 76,0 -13,-34 -25,-68 -37,-102zm36 190c11,0 22,0 32,0 -5,-15 -11,-30 -17,-45 -35,0 -69,0 -104,0 -6,15 -12,30 -17,45 10,0 21,0 32,0 0,13 0,27 0,41 -40,0 -81,0 -121,0 0,-16 0,-31 0,-47 11,0 21,0 32,0 28,-67 57,-135 86,-202 -11,0 -22,0 -33,0 0,-16 0,-32 0,-47 33,0 66,0 99,0 35,83 69,166 104,249 11,0 21,0 32,0 0,16 0,31 0,47 -42,0 -84,0 -125,0 0,-14 0,-28 0,-41zm200 -47c0,6 1,12 3,18 2,5 5,10 9,14 4,4 8,7 14,10 5,2 11,3 18,3 13,0 23,-3 31,-10 9,-8 13,-18 13,-30 0,-8 -2,-14 -5,-19 -3,-5 -7,-9 -12,-12 -5,-3 -10,-6 -16,-8 -6,-1 -12,-3 -18,-5 -11,-3 -21,-6 -30,-10 -10,-3 -19,-8 -28,-15 -22,-16 -32,-38 -32,-65 0,-12 2,-24 7,-34 5,-11 11,-20 20,-27 8,-8 17,-14 28,-18 11,-4 22,-7 34,-7 11,0 20,2 30,6 9,3 17,9 23,17 0,-5 0,-11 0,-16 14,0 29,0 43,0 0,26 0,53 0,79 -17,0 -34,0 -50,0 -1,-11 -4,-20 -12,-27 -7,-8 -16,-11 -27,-11 -11,0 -21,3 -29,10 -7,6 -11,15 -11,27 0,7 1,13 4,18 3,4 7,8 11,11 5,3 10,6 16,7 6,2 11,4 17,6 12,3 23,6 33,10 11,4 21,9 31,17 9,7 17,17 22,27 5,11 7,22 7,35 0,13 -2,26 -7,37 -5,11 -11,21 -19,29 -9,9 -19,15 -30,20 -12,5 -24,7 -38,7 -11,0 -22,-2 -31,-6 -10,-4 -18,-11 -25,-19 0,6 0,13 0,19 -15,0 -30,0 -45,0 0,-29 0,-59 0,-88 17,0 34,0 51,0z"/>
51
+   </g>
52
+   <path fill="gray" fill-rule="nonzero" d="M416 702l-54 0 -54 -196 -55 196 -53 0 -71 -249 -29 0 0 -48 120 0 0 48 -32 0 42 155 53 -203 48 0 57 202 40 -154 -34 0 0 -48 121 0 0 48 -33 0 -66 249zm210 -232l0 0 -38 102 75 0 -37 -102zm36 190l33 0 -17 -44 -105 0 -17 44 32 0 0 42 -120 0 0 -48 31 0 86 -201 -32 0 0 -48 99 0 104 249 31 0 0 48 -125 0 0 -42zm201 -46c0,6 1,12 3,17 2,6 5,10 9,15 3,4 8,7 13,9 6,3 12,4 19,4 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -4,-5 -8,-9 -13,-12 -4,-3 -10,-6 -16,-8 -6,-2 -12,-4 -17,-5 -11,-3 -21,-7 -31,-10 -9,-4 -18,-9 -27,-16 -22,-16 -33,-37 -33,-64 0,-13 3,-24 7,-35 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 11,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 24,18l0 -17 43 0 0 80 -51 0c0,-11 -4,-20 -11,-28 -7,-7 -16,-11 -28,-11 -11,0 -20,4 -28,10 -8,7 -12,16 -12,27 0,7 2,13 5,18 2,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 11,3 22,7 33,11 10,3 21,9 30,16 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,22 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-10 -25,-19l0 20 -45 0 0 -88 52 0z"/>
53
+   <path fill="white" fill-rule="nonzero" d="M416 702l-54 0 -54 -196 -55 196 -53 0 -71 -249 -29 0 0 -48 120 0 0 48 -32 0 42 155 53 -203 48 0 57 202 40 -154 -34 0 0 -48 121 0 0 48 -33 0 -66 249zm210 -232l0 0 -38 102 75 0 -37 -102zm36 190l33 0 -17 -44 -105 0 -17 44 32 0 0 42 -120 0 0 -48 31 0 86 -201 -32 0 0 -48 99 0 104 249 31 0 0 48 -125 0 0 -42zm201 -46c0,6 1,12 3,17 2,6 5,10 9,15 3,4 8,7 13,9 6,3 12,4 19,4 12,0 23,-4 31,-11 8,-7 12,-17 12,-30 0,-7 -1,-13 -4,-18 -4,-5 -8,-9 -13,-12 -4,-3 -10,-6 -16,-8 -6,-2 -12,-4 -17,-5 -11,-3 -21,-7 -31,-10 -9,-4 -18,-9 -27,-16 -22,-16 -33,-37 -33,-64 0,-13 3,-24 7,-35 5,-10 12,-19 20,-27 8,-7 18,-13 29,-18 11,-4 22,-6 34,-6 10,0 20,2 29,5 9,4 17,10 24,18l0 -17 43 0 0 80 -51 0c0,-11 -4,-20 -11,-28 -7,-7 -16,-11 -28,-11 -11,0 -20,4 -28,10 -8,7 -12,16 -12,27 0,7 2,13 5,18 2,5 6,9 11,12 5,3 10,5 16,7 5,2 11,4 17,5 11,3 22,7 33,11 10,3 21,9 30,16 10,8 17,17 22,28 5,10 8,22 8,34 0,14 -3,26 -7,37 -5,12 -12,22 -20,30 -8,8 -18,15 -30,19 -11,5 -24,7 -37,7 -12,0 -22,-2 -32,-6 -9,-4 -18,-10 -25,-19l0 20 -45 0 0 -88 52 0z"/>
54
+  </g>
55
+ </g>
56
+</svg>
Back to file index

layer.yaml

1
--- 
2
+++ layer.yaml
3
@@ -0,0 +1,2 @@
4
+repo: bzr+ssh://bazaar.launchpad.net/~ibmcharmers/charms/trusty/layer-ibm-was-nd-node/trunk/
5
+includes: ['layer:ibm-was-nd', 'interface:dm-node']
Back to file index

metadata.yaml

 1
--- 
 2
+++ metadata.yaml
 3
@@ -0,0 +1,14 @@
 4
+name: ibm-was-nd-node
 5
+summary: WebSphere Application Server Network Deployment Cluster Node
 6
+maintainer: IBM Juju Support Team <jujusupp@us.ibm.com> 
 7
+description: |
 8
+ IBM WebSphere Application Server Network Deployment provides an advanced, flexible runtime environment for large-scale application deployments. It offers near-continuous availability with advanced performance and management capabilities for mission-critical applications.
 9
+tags: 
10
+  - ibm
11
+  - misc
12
+subordinate: false
13
+terms:
14
+  - ibm-was-nd/1
15
+requires:
16
+  cluster-node:
17
+    interface: dm-node
Back to file index

reactive/ibm-was-nd-node.sh

  1
--- 
  2
+++ reactive/ibm-was-nd-node.sh
  3
@@ -0,0 +1,216 @@
  4
+#!/bin/bash
  5
+set -ex
  6
+
  7
+source charms.reactive.sh
  8
+reactive_states=`charms.reactive -y get_states`
  9
+
 10
+WAS_ND_INSTALL_PATH=/root/IBM/WebSphere/AppServer/V9/ND
 11
+IM_INSTALL_PATH=/opt/IBM/InstallationManager
 12
+profile_template_path="$WAS_ND_INSTALL_PATH/profileTemplates/default"
 13
+hostname=`unit-get private-address`
 14
+ARCHITECTURE=`uname -m`
 15
+dm_username=""
 16
+dm_password=""
 17
+juju-log "IBM WAS ND Node: host name is $hostname"
 18
+profile_name="_profile"
 19
+profile_name=$hostname$profile_name
 20
+juju-log "IBM WAS ND Node: profile name is $profile_name"
 21
+
 22
+if [ -f $CHARM_DIR/files/dm_credentials.txt ]; then
 23
+    source $CHARM_DIR/files/dm_credentials.txt
 24
+    dm_username=$username
 25
+    dm_password=$password
 26
+fi
 27
+
 28
+install_was_nd_fixpack() {
 29
+ if [ "$ARCHITECTURE" == "s390x" ];then
 30
+    if $IM_INSTALL_PATH/eclipse/tools/imcl install com.ibm.websphere.ND.v9 -acceptLicense -repositories $CHARM_DIR/../resources//WAS-ND-FP -installationDirectory $WAS_ND_INSTALL_PATH  -showProgress
 31
+    then
 32
+      set_state 'ibm-was-nd-node.updated'
 33
+      status-set active "IBM WAS ND: WAS ND installation upgraded successfully!"
 34
+    else
 35
+     status-set blocked "IBM WAS ND: Error while upgrading WAS ND!"
 36
+     return 1
 37
+    fi
 38
+ fi
 39
+}
 40
+
 41
+@when 'ibm-was-nd.installed'
 42
+@when_not 'ibm-was-nd-node.profile.ready'
 43
+function create_default_profile(){
 44
+  juju-log "IBM WAS ND Node: Creating custom profile to federate."
 45
+  $WAS_ND_INSTALL_PATH/bin/manageprofiles.sh -create -profileName $profile_name -templatePath $profile_template_path 
 46
+  juju-log "IBM WAS ND Node: Profile creation completed."
 47
+  set_state 'ibm-was-nd-node.profile.ready'
 48
+}
 49
+
 50
+@when 'ibm-was-nd.installed'
 51
+@when_not 'ibm-was-nd-node.updated'
 52
+function update_was_nd_node(){
 53
+
 54
+ # Get the WAS ND fixpack resources
 55
+  juju-log "IBM WAS ND Node: fetching the ibm_was_nd_fp resource"
 56
+  status-set maintenance "fetching the ibm_was_nd_fp resource"
 57
+  was_nd_fp=`resource-get 'ibm_was_nd_fp' || echo unavailable`
 58
+
 59
+ #If we don't have a fixpack, just exit successfully; there's nothing to do.
 60
+  if [ "$was_nd_fp" = "unavailable" ]; then
 61
+    juju-log "IBM WAS ND Node: no ibm_was_nd_fixpack packages to install"
 62
+    status-set active "IBM WAS ND is ready"
 63
+    return 0
 64
+  fi
 65
+
 66
+  #If we detect the fixpack is just a placeholder in charm store, just exit successfully; there's nothing to do.
 67
+  ibm_was_fp_isempty=`file $was_nd_fp | { grep -q empty && echo "True"; } || echo "False"`
 68
+  if [ "$ibm_was_fp1_isempty" = "True" ]; then
 69
+    juju-log "IBM WAS ND Node: no ibm_was_nd_fixpack packages to install $was_nd_fp are empty"
 70
+    status-set active "IBM WAS ND is ready"
 71
+    return 0
 72
+  fi
 73
+  was_fixpack_packages="$was_nd_fp1"
 74
+  juju-log "IBM WAS ND Node: Fixpacks provided for upgrade $was_fixpack_packages"
 75
+
 76
+  if [ ! -d $CHARM_DIR/../resources/WAS_ND/FP ]; then
 77
+    mkdir $CHARM_DIR/../resources/WAS_ND/FP
 78
+  fi
 79
+
 80
+  for was_fp_pkg in $was_fixpack_packages; do
 81
+    juju-log "IBM WAS ND Node: was_fp_pkg====="$was_fp_pkg
 82
+    if [ -f $was_fp_pkg ]; then
 83
+      ARCHIVE_DIR=`dirname $was_fp_pkg`
 84
+      juju-log "IBM WAS ND Node: extracting the ibm_was_nd_fp resources"
 85
+      status-set maintenance "extracting the ibm_was_nd_fp resources"
 86
+      if ! unzip $was_fp_pkg -d $ARCHIVE_DIR/../WAS_ND/FP
 87
+        then
 88
+          juju-log "IBM WAS ND Node: Unable to extract the WAS ND fixpack content. Verify whether the package is corrupt."
 89
+          # Remove corrupt archive file
 90
+          status-set blocked "IBM WAS ND packages are corrupt"
 91
+          rm -rf $ARCHIVE_DIR/../WAS_ND/FP
 92
+          return 0
 93
+      else
 94
+          juju-log "IBM WAS ND Node: $was_fp_pkg extracted successfully"
 95
+      fi
 96
+    fi
 97
+  done
 98
+  if charms.reactive is_state 'ibm-was-nd-node.added'; then
 99
+    remove_from_cluster
100
+  fi
101
+
102
+  install_was_nd_fixpack
103
+}
104
+
105
+@hook 'upgrade-charm'
106
+function check_fixpack(){
107
+  # The upgrade-charm hook will fire when a new resource is pushed for this
108
+  # charm. This is a good time to determine if we need to deal with a new
109
+  # fixpack.
110
+  if ! charms.reactive is_state 'ibm-was-nd-node.updated'; then
111
+    # If there is no prior fixpack installed (because ibm-was-nd-node.updated is not
112
+    # set), do nothing since update_was_nd_node will handle that case.
113
+    juju-log "IBM WAS ND Node: no fixpack has been installed; nothing to upgrade."
114
+    return 0
115
+  else
116
+    # If we have a fixpack packges already (because ibm-was-nd.updated is set),
117
+    # we should fetch the latest fixpack packages and determine if it is new.
118
+    #  - If it is new, set our states so install_was_nd_fixpack is called again
119
+    #  - If it is not new, do nothing
120
+    juju-log "IBM WAS ND Node: scanning for new fixpacks to install"
121
+    WAS_FP_DIR="$CHARM_DIR/../resources/ibm_was_nd_fp"
122
+    CUR_FP="$WAS_FP_DIR/ibm_was_nd_fp.zip"
123
+    if [ -f $CUR_FP ]; then
124
+    CUR_FP_MD5=`md5sum "$CUR_FP" | awk '{print $1}'`
125
+    fi
126
+    NEW_FP=`resource-get 'ibm_was_nd_fp' || echo unavailable`
127
+
128
+    if [ "$NEW_FP" = "unavailable" ]; then
129
+      juju-log "IBM WAS ND Node: no fixpacks to install"
130
+    elif [ -f $NEW_FP ]; then
131
+      NEW_FP_MD5=`md5sum "$NEW_FP" | awk '{print $1}'`
132
+    fi
133
+
134
+    if [ "$CUR_FP_MD5" != "$NEW_FP_MD5" ]; then
135
+      juju-log "IBM WAS ND Node: new fixpack detected ($CUR_FP with $CUR_FP_MD5 versus $NEW_FP with $NEW_FP_MD5 )"
136
+      rm -rf $CHARM_DIR/../resources/WAS_ND/FP
137
+      remove_state 'ibm-was-nd-node.updated'
138
+    else
139
+      juju-log "IBM WAS ND Node: no new fixpack to install"
140
+    fi
141
+  fi
142
+}
143
+
144
+@when 'ibm-was-nd-node.profile.ready' 'cluster-node.connected'
145
+@when_not 'ibm-was-nd-node.hostname.set'
146
+function set_node_host_name(){
147
+  node_host_name=`hostname`
148
+  relation_call --state=cluster-node.connected set_was_node_hostname $node_host_name || true
149
+  set_state 'ibm-was-nd-node.hostname.set'
150
+}
151
+
152
+@when 'ibm-was-nd-node.profile.ready' 'cluster-node.ready'
153
+@when_not 'ibm-was-nd-node.added'
154
+function add_was_nd_node(){
155
+  juju-log "IBM WAS ND Node: *******In add_was_nd_node reactive function of WAS ND Node charm*******"
156
+  dm_host=$(relation_call --state=cluster-node.connected get_was_dm_hostname) || true
157
+  dm_ip=$(relation_call --state=cluster-node.connected get_was_dm_ip) || true
158
+  juju-log "IBM WAS ND Node: I got the dm host name $dm_host $dm_ip"
159
+  if [ "$dm_host" == "None" ]; then
160
+    juju-log "IBM WAS ND Node: Waiting for the data......."
161
+    return 0
162
+  else
163
+  juju-log "IBM WAS ND Node: got dmgr host $dm_host $dm_ip"
164
+  cd /etc
165
+    if grep -q "$dm_ip $dm_host" hosts
166
+    then
167
+      juju-log "IBM WAS ND Node: Host file already updated"
168
+    else
169
+      juju-log "IBM WAS ND Node: Updating Host file"
170
+      echo "$dm_ip $dm_host" >> /etc/hosts
171
+    fi
172
+  fi
173
+  dm_username=$(relation_call --state=cluster-node.connected get_dmgradminuser) || true
174
+  juju-log "I got the dm user name $dm_username"
175
+  dm_password=$(relation_call --state=cluster-node.connected get_dmgrpwd) || true
176
+  juju-log "I got the dm password $dm_password"
177
+  if [ ! -d $CHARM_DIR/files ]; then
178
+    mkdir $CHARM_DIR/files
179
+  fi
180
+  if [ ! -f $CHARM_DIR/files/dm_credentials.txt ]; then
181
+    touch $CHARM_DIR/files/dm_credentials.txt
182
+    echo "username=$dm_username" >> $CHARM_DIR/files/dm_credentials.txt
183
+    echo "password=$dm_password" >> $CHARM_DIR/files/dm_credentials.txt
184
+  fi
185
+  if $WAS_ND_INSTALL_PATH/profiles/$profile_name/bin/addNode.sh $dm_host -username $dm_username -password $dm_password
186
+  then
187
+    $WAS_ND_INSTALL_PATH/profiles/$profile_name/bin/startServer.sh server1
188
+    juju-log "Profile Federated to deployment manager."
189
+    set_state 'ibm-was-nd-node.added'
190
+  else
191
+    juju-log "IBM WAS ND Node: Error occured while adding node to the deployment manager."
192
+   return 1
193
+   fi
194
+}
195
+
196
+@when 'cluster-node.departed'
197
+function remove_from_cluster(){
198
+  juju-log "IBM WAS ND Node: *******In remove_from_cluster reactive function of WAS ND Node charm*******"
199
+  juju-log "IBM WAS ND Node:"
200
+  #Removing Federated profile from deployment manager cell"
201
+  #dm_username=$(relation_call --state=cluster-node.departed get_dmgradminuser) || true
202
+  juju-log "IBM WAS ND Node: I got the dm user name $dm_username"
203
+  #dm_password=$(relation_call --state=cluster-node.departed get_dmgrpwd) || true
204
+  juju-log "IBM WAS ND nODE: I got the dm password $dm_password"
205
+  if [ -f $CHARM_DIR/files/dm_credentials.txt ]
206
+  then
207
+    if $WAS_ND_INSTALL_PATH/profiles/$profile_name/bin/removeNode.sh -username $dm_username -password $dm_password
208
+  then
209
+    juju-log "Removed Federated profile from deployment manager cell"
210
+      rm -rf $CHARM_DIR/files/dm_credentials.txt
211
+    else
212
+    juju-log "IBM WAS ND Node: Error occured while removing node from the deployment manager."
213
+      return 1
214
+    fi
215
+    remove_state 'ibm-was-nd-node.added'
216
+   fi
217
+}
218
+reactive_handler_main
219
+
Back to file index

revision

1
--- 
2
+++ revision
3
@@ -0,0 +1 @@
4
+0
Back to file index

tests/01-deploy.py

 1
--- 
 2
+++ tests/01-deploy.py
 3
@@ -0,0 +1,57 @@
 4
+#!/usr/bin/env python3
 5
+
 6
+
 7
+import amulet
 8
+import re
 9
+import requests
10
+import unittest
11
+
12
+seconds_to_wait = 20000
13
+
14
+
15
+class TestDeploy(unittest.TestCase):
16
+    """
17
+    Deployment test for the IBM WAS ND Node charm.
18
+    """
19
+    def setUp(self):
20
+        self.d = amulet.Deployment(series='xenail')
21
+        self.d.add('ibm-was-nd', 'cs:~ibmcharmers/xenail/ibm-was-nd-node')
22
+        self.d.add('ibm-http', 'cs:~ibmcharmers/xenial/ibm-http'
23
+        self.d.add('ibm-http', 'cs:~ibmcharmers/xenial/ibm-was-nd-node')
24
+        self.d.relate('ibm-was-nd-dm:was-ihs', 'ibm-http:ihs')
25
+        self.d.relate('ibm-was-nd-dm:dm-node', 'ibm-was-nd-node:cluster-node')
26
+        self.d.setup(seconds_to_wait)
27
+        self.d.sentry.wait(seconds_to_wait)
28
+
29
+    def test_deploy_with_placeholder_resource(self):
30
+        # The status message when using placeholder resources will include the
31
+        # string "ibm_was_nd_installer resource". If we see that, the test is
32
+        # successful.
33
+        sentry_re = re.compile('ibm_was_nd_installer resource')
34
+        self.d.sentry.wait_for_messages({"ibm-was-nd": sentry_re})
35
+
36
+    def test_was_nd_dm_deployed(self):
37
+        self.assertTrue(self.d.deployed)
38
+        unit = self.d.sentry['ibm-was-nd-dm'][0]
39
+        state_was_nd_dm = unit.info['agent-state']
40
+        print('WAS ND DM is %s' % state_was_nd_dm)
41
+        url = 'http://%s:9060/ibm/console' % unit.info['public-address']
42
+        https_url = 'https://%s:9043/ibm/console' % unit.info['public-address']
43
+        response = requests.get(url, verify=False)
44
+        response = requests.get(https_url, verify=False)
45
+        # Raise an exception if the url was not a valid web page.
46
+        response.raise_for_status()
47
+
48
+    def test_was_nd_dm_ihs(self):
49
+        http_unit = self.d.sentry['ibm-http'][0]
50
+        state_http = http_unit.info['agent-state']
51
+        print('Http Server is %s' % state_http)
52
+        url = 'http://%s:80' % http_unit.info['public-address']
53
+        snoop_url = 'http://%s:80/snoop' % http_unit.info['public-address']
54
+        response = requests.get(url, verify=False)
55
+        response = requests.get(snoop_url, verify=False)
56
+        response.raise_for_status()
57
+
58
+
59
+if __name__ == '__main__':
60
+    unittest.main()
Back to file index

tests/tests.yaml

1
--- 
2
+++ tests/tests.yaml
3
@@ -0,0 +1,5 @@
4
+packages:
5
+  - amulet
6
+  - python3
7
+  - unzip
8
+  - pwgen