Merge lp:~nskaggs/juju-ci-tools/add-term-charms into lp:juju-ci-tools

Proposed by Nicholas Skaggs
Status: Superseded
Proposed branch: lp:~nskaggs/juju-ci-tools/add-term-charms
Merge into: lp:juju-ci-tools
Diff against target: 62465 lines (+57418/-0) (has conflicts)
911 files modified
.bzrignore (+4/-0)
bundles-lxc.yaml (+56/-0)
bundles-lxd.yaml (+56/-0)
centos7/dummy-sink/README (+1/-0)
centos7/dummy-sink/config.yaml (+5/-0)
centos7/dummy-sink/copyright (+1/-0)
centos7/dummy-sink/hooks/source-relation-changed (+3/-0)
centos7/dummy-sink/metadata.yaml (+10/-0)
centos7/dummy-source/README (+1/-0)
centos7/dummy-source/config.yaml (+5/-0)
centos7/dummy-source/copyright (+1/-0)
centos7/dummy-source/hooks/config-changed (+6/-0)
centos7/dummy-source/metadata.yaml (+10/-0)
centos7/dummy-subordinate/README (+10/-0)
centos7/dummy-subordinate/config.yaml (+5/-0)
centos7/dummy-subordinate/copyright (+1/-0)
centos7/dummy-subordinate/hooks/config-changed (+16/-0)
centos7/dummy-subordinate/hooks/install (+3/-0)
centos7/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
centos7/dummy-subordinate/hooks/start (+3/-0)
centos7/dummy-subordinate/hooks/stop (+1/-0)
centos7/dummy-subordinate/metadata.yaml (+18/-0)
charms-centos/dummy-sink/README (+1/-0)
charms-centos/dummy-sink/config.yaml (+5/-0)
charms-centos/dummy-sink/copyright (+1/-0)
charms-centos/dummy-sink/hooks/install (+4/-0)
charms-centos/dummy-sink/hooks/source-relation-changed (+13/-0)
charms-centos/dummy-sink/hooks/start (+4/-0)
charms-centos/dummy-sink/metadata.yaml (+12/-0)
charms-centos/dummy-source/README (+1/-0)
charms-centos/dummy-source/config.yaml (+5/-0)
charms-centos/dummy-source/copyright (+1/-0)
charms-centos/dummy-source/hooks/config-changed (+16/-0)
charms-centos/dummy-source/hooks/install (+4/-0)
charms-centos/dummy-source/hooks/start (+4/-0)
charms-centos/dummy-source/metadata.yaml (+12/-0)
charms-centos/dummy-subordinate/README (+10/-0)
charms-centos/dummy-subordinate/config.yaml (+5/-0)
charms-centos/dummy-subordinate/copyright (+1/-0)
charms-centos/dummy-subordinate/hooks/config-changed (+16/-0)
charms-centos/dummy-subordinate/hooks/install (+3/-0)
charms-centos/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
charms-centos/dummy-subordinate/hooks/start (+3/-0)
charms-centos/dummy-subordinate/hooks/stop (+1/-0)
charms-centos/dummy-subordinate/metadata.yaml (+18/-0)
charms-win/dummy-sink/README (+1/-0)
charms-win/dummy-sink/config.yaml (+5/-0)
charms-win/dummy-sink/copyright (+1/-0)
charms-win/dummy-sink/hooks/install.ps1 (+2/-0)
charms-win/dummy-sink/hooks/source-relation-changed.ps1 (+8/-0)
charms-win/dummy-sink/hooks/start.ps1 (+2/-0)
charms-win/dummy-sink/metadata.yaml (+21/-0)
charms-win/dummy-source/README (+1/-0)
charms-win/dummy-source/config.yaml (+5/-0)
charms-win/dummy-source/copyright (+1/-0)
charms-win/dummy-source/hooks/config-changed.ps1 (+7/-0)
charms-win/dummy-source/hooks/install.ps1 (+2/-0)
charms-win/dummy-source/hooks/sink-relation-joined.ps1 (+2/-0)
charms-win/dummy-source/hooks/start.ps1 (+2/-0)
charms-win/dummy-source/metadata.yaml (+21/-0)
charms/canonical-terms-example/.ignored (+1/-0)
charms/canonical-terms-example/config.yaml (+5/-0)
charms/canonical-terms-example/hooks/install (+2/-0)
charms/canonical-terms-example/metadata.yaml (+8/-0)
charms/canonical-terms-example/revision (+1/-0)
charms/chaos-monkey/README (+43/-0)
charms/chaos-monkey/actions.yaml (+51/-0)
charms/chaos-monkey/actions/show-logs (+20/-0)
charms/chaos-monkey/actions/show-monkey-ids (+13/-0)
charms/chaos-monkey/actions/start (+63/-0)
charms/chaos-monkey/config.yaml (+15/-0)
charms/chaos-monkey/copyright (+1/-0)
charms/chaos-monkey/hooks/config-changed (+1/-0)
charms/chaos-monkey/hooks/extract_chaos_monkey.bash (+9/-0)
charms/chaos-monkey/hooks/install (+5/-0)
charms/chaos-monkey/hooks/start (+1/-0)
charms/chaos-monkey/hooks/stop (+1/-0)
charms/chaos-monkey/hooks/upgrade-charm (+2/-0)
charms/chaos-monkey/icon.svg (+425/-0)
charms/chaos-monkey/metadata.yaml (+20/-0)
charms/client-forwardproxy/Makefile (+24/-0)
charms/client-forwardproxy/README (+21/-0)
charms/client-forwardproxy/config.yaml (+13/-0)
charms/client-forwardproxy/copyright (+1/-0)
charms/client-forwardproxy/hooks/config-changed (+61/-0)
charms/client-forwardproxy/hooks/install (+22/-0)
charms/client-forwardproxy/hooks/stop (+6/-0)
charms/client-forwardproxy/icon.svg (+1163/-0)
charms/client-forwardproxy/metadata.yaml (+16/-0)
charms/client-forwardproxy/revision (+1/-0)
charms/client-forwardproxy/scripts/setup-lxd.sh (+29/-0)
charms/dummy-resource/bar.txt (+1/-0)
charms/dummy-resource/baz.txt (+1/-0)
charms/dummy-resource/config.yaml (+5/-0)
charms/dummy-resource/foo.txt (+1/-0)
charms/dummy-resource/hooks/config-changed (+16/-0)
charms/dummy-resource/hooks/install (+17/-0)
charms/dummy-resource/metadata.yaml (+23/-0)
charms/dummy-resource/revision (+1/-0)
charms/dummy-sink/README (+3/-0)
charms/dummy-sink/config.yaml (+5/-0)
charms/dummy-sink/copyright (+1/-0)
charms/dummy-sink/hooks/config-changed (+1/-0)
charms/dummy-sink/hooks/install (+3/-0)
charms/dummy-sink/hooks/source-relation-changed (+13/-0)
charms/dummy-sink/hooks/start (+3/-0)
charms/dummy-sink/metadata.yaml (+16/-0)
charms/dummy-source/README (+3/-0)
charms/dummy-source/config.yaml (+5/-0)
charms/dummy-source/copyright (+1/-0)
charms/dummy-source/hooks/config-changed (+16/-0)
charms/dummy-source/hooks/install (+3/-0)
charms/dummy-source/hooks/start (+3/-0)
charms/dummy-source/metadata.yaml (+17/-0)
charms/dummy-subordinate/README (+10/-0)
charms/dummy-subordinate/config.yaml (+5/-0)
charms/dummy-subordinate/copyright (+1/-0)
charms/dummy-subordinate/hooks/config-changed (+16/-0)
charms/dummy-subordinate/hooks/install (+3/-0)
charms/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
charms/dummy-subordinate/hooks/start (+3/-0)
charms/dummy-subordinate/hooks/stop (+1/-0)
charms/dummy-subordinate/metadata.yaml (+18/-0)
charms/fill-logs/README.md (+3/-0)
charms/fill-logs/actions.yaml (+25/-0)
charms/fill-logs/actions/actions.go (+149/-0)
charms/fill-logs/actions/fill-machine (+3/-0)
charms/fill-logs/actions/fill-unit (+3/-0)
charms/fill-logs/actions/machine-size (+3/-0)
charms/fill-logs/actions/unit-size (+3/-0)
charms/fill-logs/config.yaml (+1/-0)
charms/fill-logs/hooks/install (+5/-0)
charms/fill-logs/metadata.yaml (+13/-0)
charms/jenkins-juju-ci/README.md (+16/-0)
charms/jenkins-juju-ci/config.yaml (+10/-0)
charms/jenkins-juju-ci/copyright (+17/-0)
charms/jenkins-juju-ci/hooks/config-changed (+141/-0)
charms/jenkins-juju-ci/hooks/install (+61/-0)
charms/jenkins-juju-ci/hooks/upgrade-charm (+20/-0)
charms/jenkins-juju-ci/icon.svg (+596/-0)
charms/jenkins-juju-ci/metadata.yaml (+21/-0)
charms/jenkins-juju-ci/scripts/place-slave.sh (+30/-0)
charms/jenkins-juju-ci/scripts/start-jenkins-slave.sh (+9/-0)
charms/jenkins-slave/README.md (+24/-0)
charms/jenkins-slave/config.yaml (+20/-0)
charms/jenkins-slave/copyright (+17/-0)
charms/jenkins-slave/files/default/jenkins-slave (+51/-0)
charms/jenkins-slave/files/init/jenkins-slave.conf (+19/-0)
charms/jenkins-slave/files/logrotate.d/jenkins-slave (+9/-0)
charms/jenkins-slave/files/systemd/system/jenkins-slave.service (+10/-0)
charms/jenkins-slave/hooks/config-changed (+64/-0)
charms/jenkins-slave/hooks/install (+20/-0)
charms/jenkins-slave/hooks/slave-relation-joined (+20/-0)
charms/jenkins-slave/hooks/start (+3/-0)
charms/jenkins-slave/hooks/stop (+3/-0)
charms/jenkins-slave/icon.svg (+596/-0)
charms/jenkins-slave/metadata.yaml (+18/-0)
charms/jenkins-slave/scripts/place-slave.sh (+30/-0)
charms/jenkins-slave/scripts/start-jenkins-slave.sh (+9/-0)
charms/mysql/README.md (+99/-0)
charms/mysql/config.yaml (+70/-0)
charms/mysql/copyright (+17/-0)
charms/mysql/exec.d/charm-helper/charm-pre-install (+5/-0)
charms/mysql/hooks/common.py (+121/-0)
charms/mysql/hooks/config-changed (+356/-0)
charms/mysql/hooks/db-relation-broken (+21/-0)
charms/mysql/hooks/db-relation-joined (+87/-0)
charms/mysql/hooks/ha_relations.py (+146/-0)
charms/mysql/hooks/install (+29/-0)
charms/mysql/hooks/lib/ceph_utils.py (+268/-0)
charms/mysql/hooks/lib/cluster_utils.py (+130/-0)
charms/mysql/hooks/lib/utils.py (+283/-0)
charms/mysql/hooks/master-relation-changed (+86/-0)
charms/mysql/hooks/monitors-relation-broken (+8/-0)
charms/mysql/hooks/monitors-relation-departed (+3/-0)
charms/mysql/hooks/monitors-relation-joined (+7/-0)
charms/mysql/hooks/monitors.common.bash (+8/-0)
charms/mysql/hooks/munin-relation-changed (+26/-0)
charms/mysql/hooks/munin-relation-joined (+6/-0)
charms/mysql/hooks/shared_db_relations.py (+140/-0)
charms/mysql/hooks/slave-relation-broken (+9/-0)
charms/mysql/hooks/slave-relation-changed (+89/-0)
charms/mysql/hooks/slave-relation-joined (+2/-0)
charms/mysql/hooks/start (+1/-0)
charms/mysql/hooks/stop (+3/-0)
charms/mysql/hooks/upgrade-charm (+27/-0)
charms/mysql/icon.svg (+335/-0)
charms/mysql/keys/repo.percona.com (+30/-0)
charms/mysql/metadata.yaml (+45/-0)
charms/mysql/monitors.yaml (+13/-0)
charms/mysql/revision (+1/-0)
charms/mysql/scripts/add_to_cluster (+13/-0)
charms/mysql/scripts/remove_from_cluster (+4/-0)
charms/network-health/README.ex (+3/-0)
charms/network-health/actions.yaml (+10/-0)
charms/network-health/actions/ping.py (+50/-0)
charms/network-health/actions/unit-info.py (+77/-0)
charms/network-health/layer.yaml (+1/-0)
charms/network-health/metadata.yaml (+20/-0)
charms/network-health/reactive/network-health.py (+7/-0)
charms/peer-xplod/README (+32/-0)
charms/peer-xplod/config.yaml (+18/-0)
charms/peer-xplod/copyright (+19/-0)
charms/peer-xplod/hooks/config-changed (+7/-0)
charms/peer-xplod/hooks/install (+4/-0)
charms/peer-xplod/hooks/output-relation-changed (+7/-0)
charms/peer-xplod/hooks/start (+6/-0)
charms/peer-xplod/hooks/stop (+7/-0)
charms/peer-xplod/hooks/update.py (+156/-0)
charms/peer-xplod/hooks/upgrade-charm (+6/-0)
charms/peer-xplod/hooks/xplod-relation-changed (+6/-0)
charms/peer-xplod/metadata.yaml (+16/-0)
charms/simple-resource-http/README (+1/-0)
charms/simple-resource-http/config.yaml (+5/-0)
charms/simple-resource-http/copyright (+1/-0)
charms/simple-resource-http/files/default-file.txt (+1/-0)
charms/simple-resource-http/hooks/config-changed (+21/-0)
charms/simple-resource-http/hooks/install (+3/-0)
charms/simple-resource-http/hooks/start (+3/-0)
charms/simple-resource-http/metadata.yaml (+21/-0)
charms/simple-resource-http/scripts/simple-server.py (+38/-0)
charms/squid-forwardproxy/Makefile (+24/-0)
charms/squid-forwardproxy/README (+24/-0)
charms/squid-forwardproxy/config.yaml (+11/-0)
charms/squid-forwardproxy/copyright (+1/-0)
charms/squid-forwardproxy/hooks/config-changed (+40/-0)
charms/squid-forwardproxy/hooks/install (+14/-0)
charms/squid-forwardproxy/hooks/start (+6/-0)
charms/squid-forwardproxy/hooks/stop (+6/-0)
charms/squid-forwardproxy/icon.svg (+1163/-0)
charms/squid-forwardproxy/metadata.yaml (+16/-0)
charms/squid-forwardproxy/revision (+1/-0)
charms/statusstresser/README.md (+52/-0)
charms/statusstresser/copyright (+17/-0)
charms/statusstresser/hooks/config-changed (+2/-0)
charms/statusstresser/hooks/install (+3/-0)
charms/statusstresser/icon.svg (+279/-0)
charms/statusstresser/metadata.yaml (+15/-0)
charms/statusstresser/revision (+1/-0)
charms/statusstresser/tests/00-setup.sh (+7/-0)
charms/statusstresser/tests/10-deploy-test.py (+71/-0)
charms/ubuntu/README.md (+52/-0)
charms/ubuntu/copyright (+17/-0)
charms/ubuntu/hooks/install (+2/-0)
charms/ubuntu/icon.svg (+279/-0)
charms/ubuntu/metadata.yaml (+14/-0)
charms/ubuntu/revision (+1/-0)
charms/ubuntu/tests/00-setup.sh (+7/-0)
charms/ubuntu/tests/10-deploy-test.py (+71/-0)
charms/wordpress/README.md (+199/-0)
charms/wordpress/config.yaml (+20/-0)
charms/wordpress/copyright (+17/-0)
charms/wordpress/exec.d/charm-helper/charm-pre-install (+5/-0)
charms/wordpress/files/_debug/apc.php (+1364/-0)
charms/wordpress/files/_debug/info.php (+3/-0)
charms/wordpress/files/charm/apache/etc_apache2_conf-d_php5-fpm.conf (+6/-0)
charms/wordpress/files/charm/apache/etc_apache2_sites-enabled_loadbalancer (+21/-0)
charms/wordpress/files/charm/apache/etc_apache2_sites-enabled_wordpress (+20/-0)
charms/wordpress/files/charm/nginx/etc_nginx_nginx.conf (+58/-0)
charms/wordpress/files/charm/nginx/etc_nginx_sites-enabled_loadbalancer (+51/-0)
charms/wordpress/files/charm/nginx/etc_nginx_sites-enabled_wordpress (+82/-0)
charms/wordpress/files/charm/php/php5-fpm_pool.d_www.conf (+42/-0)
charms/wordpress/files/charm/php/php5_conf.d_apc.ini (+13/-0)
charms/wordpress/files/charm/wordpress/advanced-cache.php (+28/-0)
charms/wordpress/hooks/cache-relation-changed (+16/-0)
charms/wordpress/hooks/cache-relation-departed (+16/-0)
charms/wordpress/hooks/config-changed (+170/-0)
charms/wordpress/hooks/db-relation-changed (+102/-0)
charms/wordpress/hooks/db-relation-departed (+5/-0)
charms/wordpress/hooks/install (+65/-0)
charms/wordpress/hooks/loadbalancer-relation-changed (+37/-0)
charms/wordpress/hooks/loadbalancer-relation-joined (+173/-0)
charms/wordpress/hooks/nfs-relation-changed (+32/-0)
charms/wordpress/hooks/nfs-relation-departed (+20/-0)
charms/wordpress/hooks/restart (+4/-0)
charms/wordpress/hooks/start (+5/-0)
charms/wordpress/hooks/stop (+5/-0)
charms/wordpress/hooks/upgrade-charm (+23/-0)
charms/wordpress/hooks/website-relation-joined (+4/-0)
charms/wordpress/icon.svg (+301/-0)
charms/wordpress/inc/common (+215/-0)
charms/wordpress/metadata.yaml (+28/-0)
charms/wordpress/revision (+1/-0)
landscape-scalable.yaml (+48/-0)
mediawiki-scalable.yaml (+121/-0)
network-health-2-machines.yaml (+76/-0)
network-health-3-machines.yaml (+114/-0)
openstack-baremetal-7-default.yaml (+335/-0)
openstack-base-lxc.yaml (+262/-0)
openstack-base-lxd.yaml (+262/-0)
precise/dummy-sink/README (+3/-0)
precise/dummy-sink/config.yaml (+5/-0)
precise/dummy-sink/copyright (+1/-0)
precise/dummy-sink/hooks/config-changed (+1/-0)
precise/dummy-sink/hooks/install (+3/-0)
precise/dummy-sink/hooks/source-relation-changed (+13/-0)
precise/dummy-sink/hooks/start (+3/-0)
precise/dummy-sink/hooks/stop (+1/-0)
precise/dummy-sink/metadata.yaml (+10/-0)
precise/dummy-source/README (+3/-0)
precise/dummy-source/config.yaml (+5/-0)
precise/dummy-source/copyright (+1/-0)
precise/dummy-source/hooks/config-changed (+16/-0)
precise/dummy-source/hooks/install (+3/-0)
precise/dummy-source/hooks/start (+3/-0)
precise/dummy-source/hooks/stop (+1/-0)
precise/dummy-source/metadata.yaml (+10/-0)
precise/mysql/README.md (+99/-0)
precise/mysql/config.yaml (+80/-0)
precise/mysql/copyright (+17/-0)
precise/mysql/hooks/common.py (+119/-0)
precise/mysql/hooks/config-changed (+356/-0)
precise/mysql/hooks/db-relation-broken (+21/-0)
precise/mysql/hooks/db-relation-joined (+87/-0)
precise/mysql/hooks/ha_relations.py (+148/-0)
precise/mysql/hooks/install (+27/-0)
precise/mysql/hooks/lib/ceph_utils.py (+316/-0)
precise/mysql/hooks/lib/cluster_utils.py (+130/-0)
precise/mysql/hooks/lib/utils.py (+283/-0)
precise/mysql/hooks/master-relation-changed (+86/-0)
precise/mysql/hooks/monitors-relation-broken (+8/-0)
precise/mysql/hooks/monitors-relation-departed (+3/-0)
precise/mysql/hooks/monitors-relation-joined (+7/-0)
precise/mysql/hooks/monitors.common.bash (+8/-0)
precise/mysql/hooks/munin-relation-changed (+26/-0)
precise/mysql/hooks/munin-relation-joined (+6/-0)
precise/mysql/hooks/shared_db_relations.py (+140/-0)
precise/mysql/hooks/slave-relation-broken (+9/-0)
precise/mysql/hooks/slave-relation-changed (+89/-0)
precise/mysql/hooks/slave-relation-joined (+2/-0)
precise/mysql/hooks/start (+1/-0)
precise/mysql/hooks/stop (+3/-0)
precise/mysql/hooks/upgrade-charm (+27/-0)
precise/mysql/icon.svg (+335/-0)
precise/mysql/keys/repo.percona.com (+30/-0)
precise/mysql/metadata.yaml (+37/-0)
precise/mysql/monitors.yaml (+13/-0)
precise/mysql/revision (+1/-0)
precise/mysql/scripts/add_to_cluster (+13/-0)
precise/mysql/scripts/remove_from_cluster (+4/-0)
precise/ubuntu/README.md (+52/-0)
precise/ubuntu/copyright (+17/-0)
precise/ubuntu/hooks/install (+2/-0)
precise/ubuntu/icon.svg (+279/-0)
precise/ubuntu/metadata.yaml (+7/-0)
precise/ubuntu/revision (+1/-0)
precise/ubuntu/tests/00-setup.sh (+7/-0)
precise/ubuntu/tests/10-deploy-test.py (+71/-0)
precise/wordpress/README.md (+199/-0)
precise/wordpress/config.yaml (+20/-0)
precise/wordpress/copyright (+17/-0)
precise/wordpress/files/_debug/apc.php (+1364/-0)
precise/wordpress/files/_debug/info.php (+3/-0)
precise/wordpress/files/charm/apache/etc_apache2_conf-d_php5-fpm.conf (+6/-0)
precise/wordpress/files/charm/apache/etc_apache2_sites-enabled_loadbalancer (+21/-0)
precise/wordpress/files/charm/apache/etc_apache2_sites-enabled_wordpress (+20/-0)
precise/wordpress/files/charm/nginx/etc_nginx_nginx.conf (+58/-0)
precise/wordpress/files/charm/nginx/etc_nginx_sites-enabled_loadbalancer (+51/-0)
precise/wordpress/files/charm/nginx/etc_nginx_sites-enabled_wordpress (+82/-0)
precise/wordpress/files/charm/php/php5-fpm_pool.d_www.conf (+42/-0)
precise/wordpress/files/charm/php/php5_conf.d_apc.ini (+13/-0)
precise/wordpress/files/charm/wordpress/advanced-cache.php (+28/-0)
precise/wordpress/hooks/cache-relation-changed (+16/-0)
precise/wordpress/hooks/cache-relation-departed (+16/-0)
precise/wordpress/hooks/config-changed (+164/-0)
precise/wordpress/hooks/db-relation-changed (+100/-0)
precise/wordpress/hooks/db-relation-departed (+5/-0)
precise/wordpress/hooks/install (+51/-0)
precise/wordpress/hooks/loadbalancer-relation-changed (+37/-0)
precise/wordpress/hooks/loadbalancer-relation-joined (+173/-0)
precise/wordpress/hooks/nfs-relation-changed (+32/-0)
precise/wordpress/hooks/nfs-relation-departed (+20/-0)
precise/wordpress/hooks/restart (+4/-0)
precise/wordpress/hooks/start (+5/-0)
precise/wordpress/hooks/stop (+5/-0)
precise/wordpress/hooks/upgrade-charm (+23/-0)
precise/wordpress/hooks/website-relation-joined (+4/-0)
precise/wordpress/icon.svg (+301/-0)
precise/wordpress/inc/common (+215/-0)
precise/wordpress/metadata.yaml (+20/-0)
precise/wordpress/revision (+1/-0)
scale-lxc.yaml (+31/-0)
scale-lxd.yaml (+31/-0)
scale2-lxc.yaml (+38/-0)
scale2-lxd.yaml (+38/-0)
scale2lxd.yaml (+38/-0)
simple-scale-bundle-lxc.yaml (+198/-0)
simple-scale-bundle-lxd.yaml (+198/-0)
trusty/chaos-monkey/README (+43/-0)
trusty/chaos-monkey/actions.yaml (+51/-0)
trusty/chaos-monkey/actions/show-logs (+20/-0)
trusty/chaos-monkey/actions/show-monkey-ids (+13/-0)
trusty/chaos-monkey/actions/start (+63/-0)
trusty/chaos-monkey/config.yaml (+15/-0)
trusty/chaos-monkey/copyright (+1/-0)
trusty/chaos-monkey/hooks/config-changed (+1/-0)
trusty/chaos-monkey/hooks/extract_chaos_monkey.bash (+9/-0)
trusty/chaos-monkey/hooks/install (+5/-0)
trusty/chaos-monkey/hooks/start (+1/-0)
trusty/chaos-monkey/hooks/stop (+1/-0)
trusty/chaos-monkey/hooks/upgrade-charm (+2/-0)
trusty/chaos-monkey/icon.svg (+425/-0)
trusty/chaos-monkey/metadata.yaml (+12/-0)
trusty/dummy-sink/README (+3/-0)
trusty/dummy-sink/config.yaml (+5/-0)
trusty/dummy-sink/copyright (+1/-0)
trusty/dummy-sink/hooks/config-changed (+1/-0)
trusty/dummy-sink/hooks/install (+3/-0)
trusty/dummy-sink/hooks/source-relation-changed (+13/-0)
trusty/dummy-sink/hooks/start (+3/-0)
trusty/dummy-sink/hooks/stop (+1/-0)
trusty/dummy-sink/metadata.yaml (+10/-0)
trusty/dummy-source/README (+3/-0)
trusty/dummy-source/config.yaml (+5/-0)
trusty/dummy-source/copyright (+1/-0)
trusty/dummy-source/hooks/config-changed (+16/-0)
trusty/dummy-source/hooks/install (+3/-0)
trusty/dummy-source/hooks/start (+3/-0)
trusty/dummy-source/hooks/stop (+1/-0)
trusty/dummy-source/metadata.yaml (+10/-0)
trusty/dummy-subordinate/README (+10/-0)
trusty/dummy-subordinate/config.yaml (+5/-0)
trusty/dummy-subordinate/copyright (+1/-0)
trusty/dummy-subordinate/hooks/config-changed (+16/-0)
trusty/dummy-subordinate/hooks/install (+3/-0)
trusty/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
trusty/dummy-subordinate/hooks/start (+3/-0)
trusty/dummy-subordinate/hooks/stop (+1/-0)
trusty/dummy-subordinate/metadata.yaml (+18/-0)
trusty/fill-logs/README.md (+3/-0)
trusty/fill-logs/actions.yaml (+25/-0)
trusty/fill-logs/actions/actions.go (+149/-0)
trusty/fill-logs/actions/fill-machine (+3/-0)
trusty/fill-logs/actions/fill-unit (+3/-0)
trusty/fill-logs/actions/machine-size (+3/-0)
trusty/fill-logs/actions/unit-size (+3/-0)
trusty/fill-logs/config.yaml (+1/-0)
trusty/fill-logs/hooks/install (+5/-0)
trusty/fill-logs/metadata.yaml (+6/-0)
trusty/haproxy/.bzrignore (+10/-0)
trusty/haproxy/Makefile (+40/-0)
trusty/haproxy/README.md (+241/-0)
trusty/haproxy/charm-helpers.yaml (+4/-0)
trusty/haproxy/cm.py (+193/-0)
trusty/haproxy/config-manager.txt (+6/-0)
trusty/haproxy/config.yaml (+226/-0)
trusty/haproxy/copyright (+17/-0)
trusty/haproxy/data/openssl.cnf (+20/-0)
trusty/haproxy/files/metrics/haproxy_to_statsd.sh (+27/-0)
trusty/haproxy/files/nrpe/check_haproxy.sh (+39/-0)
trusty/haproxy/files/nrpe/check_haproxy_queue_depth.sh (+30/-0)
trusty/haproxy/hooks/charmhelpers/__init__.py (+38/-0)
trusty/haproxy/hooks/charmhelpers/contrib/__init__.py (+15/-0)
trusty/haproxy/hooks/charmhelpers/contrib/charmsupport/__init__.py (+15/-0)
trusty/haproxy/hooks/charmhelpers/contrib/charmsupport/nrpe.py (+360/-0)
trusty/haproxy/hooks/charmhelpers/contrib/charmsupport/volumes.py (+175/-0)
trusty/haproxy/hooks/charmhelpers/core/__init__.py (+15/-0)
trusty/haproxy/hooks/charmhelpers/core/decorators.py (+57/-0)
trusty/haproxy/hooks/charmhelpers/core/fstab.py (+134/-0)
trusty/haproxy/hooks/charmhelpers/core/hookenv.py (+683/-0)
trusty/haproxy/hooks/charmhelpers/core/host.py (+450/-0)
trusty/haproxy/hooks/charmhelpers/core/services/__init__.py (+18/-0)
trusty/haproxy/hooks/charmhelpers/core/services/base.py (+329/-0)
trusty/haproxy/hooks/charmhelpers/core/services/helpers.py (+267/-0)
trusty/haproxy/hooks/charmhelpers/core/strutils.py (+42/-0)
trusty/haproxy/hooks/charmhelpers/core/sysctl.py (+56/-0)
trusty/haproxy/hooks/charmhelpers/core/templating.py (+68/-0)
trusty/haproxy/hooks/charmhelpers/core/unitdata.py (+477/-0)
trusty/haproxy/hooks/charmhelpers/fetch/__init__.py (+447/-0)
trusty/haproxy/hooks/charmhelpers/fetch/archiveurl.py (+161/-0)
trusty/haproxy/hooks/charmhelpers/fetch/bzrurl.py (+78/-0)
trusty/haproxy/hooks/charmhelpers/fetch/giturl.py (+71/-0)
trusty/haproxy/hooks/hooks.py (+1362/-0)
trusty/haproxy/hooks/install (+17/-0)
trusty/haproxy/hooks/munin-relation-changed (+29/-0)
trusty/haproxy/hooks/tests/test_config_changed_hooks.py (+189/-0)
trusty/haproxy/hooks/tests/test_helpers.py (+1023/-0)
trusty/haproxy/hooks/tests/test_install.py (+89/-0)
trusty/haproxy/hooks/tests/test_metrics.py (+75/-0)
trusty/haproxy/hooks/tests/test_nrpe_hooks.py (+24/-0)
trusty/haproxy/hooks/tests/test_peer_hooks.py (+292/-0)
trusty/haproxy/hooks/tests/test_reverseproxy_hooks.py (+650/-0)
trusty/haproxy/hooks/tests/test_statistics_hooks.py (+60/-0)
trusty/haproxy/hooks/tests/test_upgrade_charm.py (+22/-0)
trusty/haproxy/hooks/tests/test_website_hooks.py (+149/-0)
trusty/haproxy/hooks/tests/utils_for_tests.py (+21/-0)
trusty/haproxy/icon.svg (+402/-0)
trusty/haproxy/metadata.yaml (+30/-0)
trusty/haproxy/setup.cfg (+4/-0)
trusty/haproxy/tarmac_tests.sh (+6/-0)
trusty/haproxy/templates/metrics_cronjob.template (+3/-0)
trusty/haproxy/templates/nrpe_service.tmpl (+10/-0)
trusty/haproxy/tests/00_setup.sh (+14/-0)
trusty/haproxy/tests/10_deploy_test.py (+182/-0)
trusty/haproxy/tests/default_apache.tmpl (+41/-0)
trusty/jenkins-slave/README.md (+23/-0)
trusty/jenkins-slave/config.yaml (+9/-0)
trusty/jenkins-slave/copyright (+17/-0)
trusty/jenkins-slave/hooks/install (+55/-0)
trusty/jenkins-slave/hooks/install.d/README.md (+7/-0)
trusty/jenkins-slave/hooks/slave-relation-changed (+28/-0)
trusty/jenkins-slave/hooks/slave-relation-departed (+3/-0)
trusty/jenkins-slave/hooks/slave-relation-joined (+20/-0)
trusty/jenkins-slave/hooks/start (+3/-0)
trusty/jenkins-slave/hooks/stop (+3/-0)
trusty/jenkins-slave/icon.svg (+596/-0)
trusty/jenkins-slave/metadata.yaml (+14/-0)
trusty/jenkins-slave/revision (+1/-0)
trusty/mysql/README.md (+99/-0)
trusty/mysql/config.yaml (+70/-0)
trusty/mysql/copyright (+17/-0)
trusty/mysql/exec.d/charm-helper/charm-pre-install (+5/-0)
trusty/mysql/hooks/common.py (+121/-0)
trusty/mysql/hooks/config-changed (+356/-0)
trusty/mysql/hooks/db-relation-broken (+21/-0)
trusty/mysql/hooks/db-relation-joined (+87/-0)
trusty/mysql/hooks/ha_relations.py (+146/-0)
trusty/mysql/hooks/install (+29/-0)
trusty/mysql/hooks/lib/ceph_utils.py (+268/-0)
trusty/mysql/hooks/lib/cluster_utils.py (+130/-0)
trusty/mysql/hooks/lib/utils.py (+283/-0)
trusty/mysql/hooks/master-relation-changed (+86/-0)
trusty/mysql/hooks/monitors-relation-broken (+8/-0)
trusty/mysql/hooks/monitors-relation-departed (+3/-0)
trusty/mysql/hooks/monitors-relation-joined (+7/-0)
trusty/mysql/hooks/monitors.common.bash (+8/-0)
trusty/mysql/hooks/munin-relation-changed (+26/-0)
trusty/mysql/hooks/munin-relation-joined (+6/-0)
trusty/mysql/hooks/shared_db_relations.py (+140/-0)
trusty/mysql/hooks/slave-relation-broken (+9/-0)
trusty/mysql/hooks/slave-relation-changed (+89/-0)
trusty/mysql/hooks/slave-relation-joined (+2/-0)
trusty/mysql/hooks/start (+1/-0)
trusty/mysql/hooks/stop (+3/-0)
trusty/mysql/hooks/upgrade-charm (+27/-0)
trusty/mysql/icon.svg (+335/-0)
trusty/mysql/keys/repo.percona.com (+30/-0)
trusty/mysql/metadata.yaml (+37/-0)
trusty/mysql/monitors.yaml (+13/-0)
trusty/mysql/revision (+1/-0)
trusty/mysql/scripts/add_to_cluster (+13/-0)
trusty/mysql/scripts/remove_from_cluster (+4/-0)
trusty/statusstresser/README.md (+52/-0)
trusty/statusstresser/copyright (+17/-0)
trusty/statusstresser/hooks/config-changed (+2/-0)
trusty/statusstresser/hooks/install (+3/-0)
trusty/statusstresser/icon.svg (+279/-0)
trusty/statusstresser/metadata.yaml (+7/-0)
trusty/statusstresser/revision (+1/-0)
trusty/statusstresser/tests/00-setup.sh (+7/-0)
trusty/statusstresser/tests/10-deploy-test.py (+71/-0)
trusty/ubuntu/README.md (+52/-0)
trusty/ubuntu/copyright (+17/-0)
trusty/ubuntu/hooks/install (+2/-0)
trusty/ubuntu/icon.svg (+279/-0)
trusty/ubuntu/metadata.yaml (+7/-0)
trusty/ubuntu/revision (+1/-0)
trusty/ubuntu/tests/00-setup.sh (+7/-0)
trusty/ubuntu/tests/10-deploy-test.py (+71/-0)
trusty/wordpress/README.md (+199/-0)
trusty/wordpress/config.yaml (+20/-0)
trusty/wordpress/copyright (+17/-0)
trusty/wordpress/exec.d/charm-helper/charm-pre-install (+5/-0)
trusty/wordpress/files/_debug/apc.php (+1364/-0)
trusty/wordpress/files/_debug/info.php (+3/-0)
trusty/wordpress/files/charm/apache/etc_apache2_conf-d_php5-fpm.conf (+6/-0)
trusty/wordpress/files/charm/apache/etc_apache2_sites-enabled_loadbalancer (+21/-0)
trusty/wordpress/files/charm/apache/etc_apache2_sites-enabled_wordpress (+20/-0)
trusty/wordpress/files/charm/nginx/etc_nginx_nginx.conf (+58/-0)
trusty/wordpress/files/charm/nginx/etc_nginx_sites-enabled_loadbalancer (+51/-0)
trusty/wordpress/files/charm/nginx/etc_nginx_sites-enabled_wordpress (+82/-0)
trusty/wordpress/files/charm/php/php5-fpm_pool.d_www.conf (+42/-0)
trusty/wordpress/files/charm/php/php5_conf.d_apc.ini (+13/-0)
trusty/wordpress/files/charm/wordpress/advanced-cache.php (+28/-0)
trusty/wordpress/hooks/cache-relation-changed (+16/-0)
trusty/wordpress/hooks/cache-relation-departed (+16/-0)
trusty/wordpress/hooks/config-changed (+170/-0)
trusty/wordpress/hooks/db-relation-changed (+102/-0)
trusty/wordpress/hooks/db-relation-departed (+5/-0)
trusty/wordpress/hooks/install (+65/-0)
trusty/wordpress/hooks/loadbalancer-relation-changed (+37/-0)
trusty/wordpress/hooks/loadbalancer-relation-joined (+173/-0)
trusty/wordpress/hooks/nfs-relation-changed (+32/-0)
trusty/wordpress/hooks/nfs-relation-departed (+20/-0)
trusty/wordpress/hooks/restart (+4/-0)
trusty/wordpress/hooks/start (+5/-0)
trusty/wordpress/hooks/stop (+5/-0)
trusty/wordpress/hooks/upgrade-charm (+23/-0)
trusty/wordpress/hooks/website-relation-joined (+4/-0)
trusty/wordpress/icon.svg (+301/-0)
trusty/wordpress/inc/common (+215/-0)
trusty/wordpress/metadata.yaml (+20/-0)
trusty/wordpress/revision (+1/-0)
win2012hvr2/dummy-sink/README (+1/-0)
win2012hvr2/dummy-sink/config.yaml (+5/-0)
win2012hvr2/dummy-sink/copyright (+1/-0)
win2012hvr2/dummy-sink/hooks/source-relation-changed.ps1 (+4/-0)
win2012hvr2/dummy-sink/metadata.yaml (+10/-0)
win2012hvr2/dummy-source/README (+1/-0)
win2012hvr2/dummy-source/config.yaml (+5/-0)
win2012hvr2/dummy-source/copyright (+1/-0)
win2012hvr2/dummy-source/hooks/config-changed.ps1 (+5/-0)
win2012hvr2/dummy-source/hooks/sink-relation-joined.ps1 (+2/-0)
win2012hvr2/dummy-source/metadata.yaml (+10/-0)
xenial/dummy-sink/README (+3/-0)
xenial/dummy-sink/config.yaml (+5/-0)
xenial/dummy-sink/copyright (+1/-0)
xenial/dummy-sink/hooks/config-changed (+1/-0)
xenial/dummy-sink/hooks/install (+3/-0)
xenial/dummy-sink/hooks/source-relation-changed (+13/-0)
xenial/dummy-sink/hooks/start (+3/-0)
xenial/dummy-sink/hooks/stop (+1/-0)
xenial/dummy-sink/metadata.yaml (+10/-0)
xenial/dummy-source/README (+3/-0)
xenial/dummy-source/config.yaml (+5/-0)
xenial/dummy-source/copyright (+1/-0)
xenial/dummy-source/hooks/config-changed (+16/-0)
xenial/dummy-source/hooks/install (+3/-0)
xenial/dummy-source/hooks/sink-relation-joined (+16/-0)
xenial/dummy-source/hooks/start (+3/-0)
xenial/dummy-source/hooks/stop (+1/-0)
xenial/dummy-source/metadata.yaml (+10/-0)
xenial/dummy-subordinate/README (+10/-0)
xenial/dummy-subordinate/config.yaml (+5/-0)
xenial/dummy-subordinate/copyright (+1/-0)
xenial/dummy-subordinate/hooks/config-changed (+16/-0)
xenial/dummy-subordinate/hooks/install (+3/-0)
xenial/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
xenial/dummy-subordinate/hooks/start (+3/-0)
xenial/dummy-subordinate/hooks/stop (+1/-0)
xenial/dummy-subordinate/metadata.yaml (+18/-0)
xenial/jenkins-slave/README.md (+23/-0)
xenial/jenkins-slave/config.yaml (+9/-0)
xenial/jenkins-slave/copyright (+17/-0)
xenial/jenkins-slave/hooks/config-changed (+55/-0)
xenial/jenkins-slave/hooks/install (+55/-0)
xenial/jenkins-slave/hooks/install.d/README.md (+7/-0)
xenial/jenkins-slave/hooks/slave-relation-broken (+3/-0)
xenial/jenkins-slave/hooks/slave-relation-changed (+28/-0)
xenial/jenkins-slave/hooks/slave-relation-departed (+3/-0)
xenial/jenkins-slave/hooks/slave-relation-joined (+20/-0)
xenial/jenkins-slave/hooks/start (+3/-0)
xenial/jenkins-slave/hooks/stop (+3/-0)
xenial/jenkins-slave/hooks/upgrade-charm (+55/-0)
xenial/jenkins-slave/icon.svg (+596/-0)
xenial/jenkins-slave/metadata.yaml (+14/-0)
xenial/jenkins-slave/revision (+1/-0)
xenial/mysql/README.md (+99/-0)
xenial/mysql/config.yaml (+70/-0)
xenial/mysql/copyright (+17/-0)
xenial/mysql/exec.d/charm-helper/charm-pre-install (+5/-0)
xenial/mysql/hooks/ceph-relation-changed (+146/-0)
xenial/mysql/hooks/ceph-relation-joined (+146/-0)
xenial/mysql/hooks/cluster-relation-changed (+146/-0)
xenial/mysql/hooks/common.py (+119/-0)
xenial/mysql/hooks/config-changed (+356/-0)
xenial/mysql/hooks/db-admin-relation-joined (+87/-0)
xenial/mysql/hooks/db-relation-broken (+21/-0)
xenial/mysql/hooks/db-relation-joined (+87/-0)
xenial/mysql/hooks/ha-relation-changed (+146/-0)
xenial/mysql/hooks/ha-relation-joined (+146/-0)
xenial/mysql/hooks/ha_relations.py (+146/-0)
xenial/mysql/hooks/install (+27/-0)
xenial/mysql/hooks/lib/ceph_utils.py (+268/-0)
xenial/mysql/hooks/lib/cluster_utils.py (+130/-0)
xenial/mysql/hooks/lib/utils.py (+283/-0)
xenial/mysql/hooks/local-monitors-relation-joined (+7/-0)
xenial/mysql/hooks/master-relation-broken (+86/-0)
xenial/mysql/hooks/master-relation-changed (+86/-0)
xenial/mysql/hooks/master-relation-departed (+86/-0)
xenial/mysql/hooks/monitors-relation-broken (+8/-0)
xenial/mysql/hooks/monitors-relation-departed (+3/-0)
xenial/mysql/hooks/monitors-relation-joined (+7/-0)
xenial/mysql/hooks/monitors.common.bash (+8/-0)
xenial/mysql/hooks/munin-relation-changed (+26/-0)
xenial/mysql/hooks/munin-relation-joined (+6/-0)
xenial/mysql/hooks/shared-db-relation-changed (+140/-0)
xenial/mysql/hooks/shared-db-relation-joined (+140/-0)
xenial/mysql/hooks/shared_db_relations.py (+140/-0)
xenial/mysql/hooks/slave-relation-broken (+9/-0)
xenial/mysql/hooks/slave-relation-changed (+89/-0)
xenial/mysql/hooks/slave-relation-departed (+9/-0)
xenial/mysql/hooks/slave-relation-joined (+2/-0)
xenial/mysql/hooks/start (+1/-0)
xenial/mysql/hooks/stop (+3/-0)
xenial/mysql/hooks/upgrade-charm (+27/-0)
xenial/mysql/icon.svg (+335/-0)
xenial/mysql/metadata.yaml (+37/-0)
xenial/mysql/monitors.yaml (+13/-0)
xenial/mysql/revision (+1/-0)
xenial/mysql/scripts/add_to_cluster (+13/-0)
xenial/mysql/scripts/remove_from_cluster (+4/-0)
xenial/ubuntu/README.md (+52/-0)
xenial/ubuntu/copyright (+17/-0)
xenial/ubuntu/hooks/install (+2/-0)
xenial/ubuntu/icon.svg (+279/-0)
xenial/ubuntu/metadata.yaml (+7/-0)
xenial/ubuntu/revision (+1/-0)
xenial/ubuntu/tests/00-setup.sh (+7/-0)
xenial/ubuntu/tests/10-deploy-test.py (+71/-0)
xenial/wordpress/README.md (+199/-0)
xenial/wordpress/config.yaml (+20/-0)
xenial/wordpress/copyright (+17/-0)
xenial/wordpress/exec.d/charm-helper/charm-pre-install (+5/-0)
xenial/wordpress/files/_debug/apc.php (+1364/-0)
xenial/wordpress/files/_debug/info.php (+3/-0)
xenial/wordpress/files/charm/apache/etc_apache2_conf-d_php5-fpm.conf (+6/-0)
xenial/wordpress/files/charm/apache/etc_apache2_sites-enabled_loadbalancer (+21/-0)
xenial/wordpress/files/charm/apache/etc_apache2_sites-enabled_wordpress (+20/-0)
xenial/wordpress/files/charm/nginx/etc_nginx_nginx.conf (+58/-0)
xenial/wordpress/files/charm/nginx/etc_nginx_sites-enabled_loadbalancer (+51/-0)
xenial/wordpress/files/charm/nginx/etc_nginx_sites-enabled_wordpress (+82/-0)
xenial/wordpress/files/charm/php/php5-fpm_pool.d_www.conf (+42/-0)
xenial/wordpress/files/charm/php/php5_conf.d_apc.ini (+13/-0)
xenial/wordpress/files/charm/wordpress/advanced-cache.php (+28/-0)
xenial/wordpress/hooks/cache-relation-broken (+16/-0)
xenial/wordpress/hooks/cache-relation-changed (+16/-0)
xenial/wordpress/hooks/cache-relation-departed (+16/-0)
xenial/wordpress/hooks/config-changed (+164/-0)
xenial/wordpress/hooks/db-relation-broken (+5/-0)
xenial/wordpress/hooks/db-relation-changed (+100/-0)
xenial/wordpress/hooks/db-relation-departed (+5/-0)
xenial/wordpress/hooks/install (+63/-0)
xenial/wordpress/hooks/loadbalancer-rebuild (+173/-0)
xenial/wordpress/hooks/loadbalancer-relation-broken (+173/-0)
xenial/wordpress/hooks/loadbalancer-relation-changed (+37/-0)
xenial/wordpress/hooks/loadbalancer-relation-departed (+173/-0)
xenial/wordpress/hooks/loadbalancer-relation-joined (+173/-0)
xenial/wordpress/hooks/nfs-relation-broken (+20/-0)
xenial/wordpress/hooks/nfs-relation-changed (+32/-0)
xenial/wordpress/hooks/nfs-relation-departed (+20/-0)
xenial/wordpress/hooks/restart (+4/-0)
xenial/wordpress/hooks/start (+5/-0)
xenial/wordpress/hooks/stop (+5/-0)
xenial/wordpress/hooks/upgrade-charm (+23/-0)
xenial/wordpress/hooks/website-relation-joined (+4/-0)
xenial/wordpress/icon.svg (+301/-0)
xenial/wordpress/inc/common (+215/-0)
xenial/wordpress/metadata.yaml (+20/-0)
xenial/wordpress/revision (+1/-0)
yakkety/dummy-sink/README (+3/-0)
yakkety/dummy-sink/config.yaml (+5/-0)
yakkety/dummy-sink/copyright (+1/-0)
yakkety/dummy-sink/hooks/config-changed (+1/-0)
yakkety/dummy-sink/hooks/install (+3/-0)
yakkety/dummy-sink/hooks/source-relation-changed (+13/-0)
yakkety/dummy-sink/hooks/start (+3/-0)
yakkety/dummy-sink/hooks/stop (+1/-0)
yakkety/dummy-sink/metadata.yaml (+10/-0)
yakkety/dummy-source/README (+3/-0)
yakkety/dummy-source/config.yaml (+5/-0)
yakkety/dummy-source/copyright (+1/-0)
yakkety/dummy-source/hooks/config-changed (+16/-0)
yakkety/dummy-source/hooks/install (+3/-0)
yakkety/dummy-source/hooks/sink-relation-joined (+16/-0)
yakkety/dummy-source/hooks/start (+3/-0)
yakkety/dummy-source/hooks/stop (+1/-0)
yakkety/dummy-source/metadata.yaml (+10/-0)
yakkety/dummy-subordinate/README (+10/-0)
yakkety/dummy-subordinate/config.yaml (+5/-0)
yakkety/dummy-subordinate/copyright (+1/-0)
yakkety/dummy-subordinate/hooks/config-changed (+16/-0)
yakkety/dummy-subordinate/hooks/install (+3/-0)
yakkety/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
yakkety/dummy-subordinate/hooks/start (+3/-0)
yakkety/dummy-subordinate/hooks/stop (+1/-0)
yakkety/dummy-subordinate/metadata.yaml (+18/-0)
yakkety/jenkins-slave/README.md (+23/-0)
yakkety/jenkins-slave/config.yaml (+9/-0)
yakkety/jenkins-slave/copyright (+17/-0)
yakkety/jenkins-slave/hooks/config-changed (+55/-0)
yakkety/jenkins-slave/hooks/install (+55/-0)
yakkety/jenkins-slave/hooks/install.d/README.md (+7/-0)
yakkety/jenkins-slave/hooks/slave-relation-broken (+3/-0)
yakkety/jenkins-slave/hooks/slave-relation-changed (+28/-0)
yakkety/jenkins-slave/hooks/slave-relation-departed (+3/-0)
yakkety/jenkins-slave/hooks/slave-relation-joined (+20/-0)
yakkety/jenkins-slave/hooks/start (+3/-0)
yakkety/jenkins-slave/hooks/stop (+3/-0)
yakkety/jenkins-slave/hooks/upgrade-charm (+55/-0)
yakkety/jenkins-slave/icon.svg (+596/-0)
yakkety/jenkins-slave/metadata.yaml (+14/-0)
yakkety/jenkins-slave/revision (+1/-0)
yakkety/mysql/README.md (+99/-0)
yakkety/mysql/config.yaml (+70/-0)
yakkety/mysql/copyright (+17/-0)
yakkety/mysql/exec.d/charm-helper/charm-pre-install (+5/-0)
yakkety/mysql/hooks/ceph-relation-changed (+146/-0)
yakkety/mysql/hooks/ceph-relation-joined (+146/-0)
yakkety/mysql/hooks/cluster-relation-changed (+146/-0)
yakkety/mysql/hooks/common.py (+119/-0)
yakkety/mysql/hooks/config-changed (+356/-0)
yakkety/mysql/hooks/db-admin-relation-joined (+87/-0)
yakkety/mysql/hooks/db-relation-broken (+21/-0)
yakkety/mysql/hooks/db-relation-joined (+87/-0)
yakkety/mysql/hooks/ha-relation-changed (+146/-0)
yakkety/mysql/hooks/ha-relation-joined (+146/-0)
yakkety/mysql/hooks/ha_relations.py (+146/-0)
yakkety/mysql/hooks/install (+27/-0)
yakkety/mysql/hooks/lib/ceph_utils.py (+268/-0)
yakkety/mysql/hooks/lib/cluster_utils.py (+130/-0)
yakkety/mysql/hooks/lib/utils.py (+283/-0)
yakkety/mysql/hooks/local-monitors-relation-joined (+7/-0)
yakkety/mysql/hooks/master-relation-broken (+86/-0)
yakkety/mysql/hooks/master-relation-changed (+86/-0)
yakkety/mysql/hooks/master-relation-departed (+86/-0)
yakkety/mysql/hooks/monitors-relation-broken (+8/-0)
yakkety/mysql/hooks/monitors-relation-departed (+3/-0)
yakkety/mysql/hooks/monitors-relation-joined (+7/-0)
yakkety/mysql/hooks/monitors.common.bash (+8/-0)
yakkety/mysql/hooks/munin-relation-changed (+26/-0)
yakkety/mysql/hooks/munin-relation-joined (+6/-0)
yakkety/mysql/hooks/shared-db-relation-changed (+140/-0)
yakkety/mysql/hooks/shared-db-relation-joined (+140/-0)
yakkety/mysql/hooks/shared_db_relations.py (+140/-0)
yakkety/mysql/hooks/slave-relation-broken (+9/-0)
yakkety/mysql/hooks/slave-relation-changed (+89/-0)
yakkety/mysql/hooks/slave-relation-departed (+9/-0)
yakkety/mysql/hooks/slave-relation-joined (+2/-0)
yakkety/mysql/hooks/start (+1/-0)
yakkety/mysql/hooks/stop (+3/-0)
yakkety/mysql/hooks/upgrade-charm (+27/-0)
yakkety/mysql/icon.svg (+335/-0)
yakkety/mysql/metadata.yaml (+37/-0)
yakkety/mysql/monitors.yaml (+13/-0)
yakkety/mysql/revision (+1/-0)
yakkety/mysql/scripts/add_to_cluster (+13/-0)
yakkety/mysql/scripts/remove_from_cluster (+4/-0)
yakkety/ubuntu/README.md (+52/-0)
yakkety/ubuntu/copyright (+17/-0)
yakkety/ubuntu/hooks/install (+2/-0)
yakkety/ubuntu/icon.svg (+279/-0)
yakkety/ubuntu/metadata.yaml (+7/-0)
yakkety/ubuntu/revision (+1/-0)
yakkety/ubuntu/tests/00-setup.sh (+7/-0)
yakkety/ubuntu/tests/10-deploy-test.py (+71/-0)
yakkety/wordpress/README.md (+199/-0)
yakkety/wordpress/config.yaml (+20/-0)
yakkety/wordpress/copyright (+17/-0)
yakkety/wordpress/exec.d/charm-helper/charm-pre-install (+5/-0)
yakkety/wordpress/files/_debug/apc.php (+1364/-0)
yakkety/wordpress/files/_debug/info.php (+3/-0)
yakkety/wordpress/files/charm/apache/etc_apache2_conf-d_php5-fpm.conf (+6/-0)
yakkety/wordpress/files/charm/apache/etc_apache2_sites-enabled_loadbalancer (+21/-0)
yakkety/wordpress/files/charm/apache/etc_apache2_sites-enabled_wordpress (+20/-0)
yakkety/wordpress/files/charm/nginx/etc_nginx_nginx.conf (+58/-0)
yakkety/wordpress/files/charm/nginx/etc_nginx_sites-enabled_loadbalancer (+51/-0)
yakkety/wordpress/files/charm/nginx/etc_nginx_sites-enabled_wordpress (+82/-0)
yakkety/wordpress/files/charm/php/php5-fpm_pool.d_www.conf (+42/-0)
yakkety/wordpress/files/charm/php/php5_conf.d_apc.ini (+13/-0)
yakkety/wordpress/files/charm/wordpress/advanced-cache.php (+28/-0)
yakkety/wordpress/hooks/cache-relation-broken (+16/-0)
yakkety/wordpress/hooks/cache-relation-changed (+16/-0)
yakkety/wordpress/hooks/cache-relation-departed (+16/-0)
yakkety/wordpress/hooks/config-changed (+164/-0)
yakkety/wordpress/hooks/db-relation-broken (+5/-0)
yakkety/wordpress/hooks/db-relation-changed (+100/-0)
yakkety/wordpress/hooks/db-relation-departed (+5/-0)
yakkety/wordpress/hooks/install (+63/-0)
yakkety/wordpress/hooks/loadbalancer-rebuild (+173/-0)
yakkety/wordpress/hooks/loadbalancer-relation-broken (+173/-0)
yakkety/wordpress/hooks/loadbalancer-relation-changed (+37/-0)
yakkety/wordpress/hooks/loadbalancer-relation-departed (+173/-0)
yakkety/wordpress/hooks/loadbalancer-relation-joined (+173/-0)
yakkety/wordpress/hooks/nfs-relation-broken (+20/-0)
yakkety/wordpress/hooks/nfs-relation-changed (+32/-0)
yakkety/wordpress/hooks/nfs-relation-departed (+20/-0)
yakkety/wordpress/hooks/restart (+4/-0)
yakkety/wordpress/hooks/start (+5/-0)
yakkety/wordpress/hooks/stop (+5/-0)
yakkety/wordpress/hooks/upgrade-charm (+23/-0)
yakkety/wordpress/hooks/website-relation-joined (+4/-0)
yakkety/wordpress/icon.svg (+301/-0)
yakkety/wordpress/inc/common (+215/-0)
yakkety/wordpress/metadata.yaml (+20/-0)
yakkety/wordpress/revision (+1/-0)
zesty/dummy-sink/README (+3/-0)
zesty/dummy-sink/config.yaml (+5/-0)
zesty/dummy-sink/copyright (+1/-0)
zesty/dummy-sink/hooks/config-changed (+1/-0)
zesty/dummy-sink/hooks/install (+3/-0)
zesty/dummy-sink/hooks/source-relation-changed (+13/-0)
zesty/dummy-sink/hooks/start (+3/-0)
zesty/dummy-sink/hooks/stop (+1/-0)
zesty/dummy-sink/metadata.yaml (+10/-0)
zesty/dummy-source/README (+3/-0)
zesty/dummy-source/config.yaml (+5/-0)
zesty/dummy-source/copyright (+1/-0)
zesty/dummy-source/hooks/config-changed (+16/-0)
zesty/dummy-source/hooks/install (+3/-0)
zesty/dummy-source/hooks/sink-relation-joined (+16/-0)
zesty/dummy-source/hooks/start (+3/-0)
zesty/dummy-source/hooks/stop (+1/-0)
zesty/dummy-source/metadata.yaml (+10/-0)
zesty/dummy-subordinate/README (+10/-0)
zesty/dummy-subordinate/config.yaml (+5/-0)
zesty/dummy-subordinate/copyright (+1/-0)
zesty/dummy-subordinate/hooks/config-changed (+16/-0)
zesty/dummy-subordinate/hooks/install (+3/-0)
zesty/dummy-subordinate/hooks/sink-relation-joined (+16/-0)
zesty/dummy-subordinate/hooks/start (+3/-0)
zesty/dummy-subordinate/hooks/stop (+1/-0)
zesty/dummy-subordinate/metadata.yaml (+18/-0)
zesty/ubuntu/README.md (+52/-0)
zesty/ubuntu/copyright (+17/-0)
zesty/ubuntu/hooks/install (+2/-0)
zesty/ubuntu/icon.svg (+279/-0)
zesty/ubuntu/metadata.yaml (+7/-0)
zesty/ubuntu/revision (+1/-0)
zesty/ubuntu/tests/00-setup.sh (+7/-0)
zesty/ubuntu/tests/10-deploy-test.py (+71/-0)
Conflict adding file .bzrignore.  Moved existing file to .bzrignore.moved.
To merge this branch: bzr merge lp:~nskaggs/juju-ci-tools/add-term-charms
Reviewer Review Type Date Requested Status
Juju Release Engineering Pending
Review via email: mp+321312@code.launchpad.net

Description of the change

This adds charms needed for the new terms, metrics and plans charms testing.

To post a comment you must log in.
85. By Nicholas Skaggs

merge trunk

Unmerged revisions

85. By Nicholas Skaggs

merge trunk

84. By Nicholas Skaggs

add canonical terms

83. By Michael Skalka

VIPL maas tags

82. By Michael Skalka

bundle rename, action entry

81. By Michael Skalka

unit-info reporting, lint fixes

80. By Michael Skalka

nh-maas-bundles

79. By Michael Skalka

Added network-healh charm

78. By Curtis Hovey

Added 1.x zesty charms.

77. By Curtis Hovey

Update 2x dummy charms to support zesty

76. By Curtis Hovey

Added dummy-subordinate for 1.25 testing.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.bzrignore'
2--- .bzrignore 1970-01-01 00:00:00 +0000
3+++ .bzrignore 2017-03-29 15:30:42 +0000
4@@ -0,0 +1,4 @@
5+../*.assert
6+../*.snap
7+../charms/network-health/deps/*
8+../charms/network-health/builds/*
9
10=== renamed file '.bzrignore' => '.bzrignore.moved'
11=== added file 'bundles-lxc.yaml'
12--- bundles-lxc.yaml 1970-01-01 00:00:00 +0000
13+++ bundles-lxc.yaml 2017-03-29 15:30:42 +0000
14@@ -0,0 +1,56 @@
15+dense-scaled:
16+ services:
17+ juju-gui:
18+ charm: "cs:trusty/juju-gui-16"
19+ num_units: 1
20+ options:
21+ "login-help": "null"
22+ password: "null"
23+ "ssl-cert-contents": "null"
24+ "ssl-key-contents": "null"
25+ annotations:
26+ "gui-x": "425.87542724609375"
27+ "gui-y": "25.871253967285156"
28+ to:
29+ - "0"
30+ apache2:
31+ charm: "cs:trusty/apache2-1"
32+ constraints: mem=2G
33+ num_units: 1
34+ annotations:
35+ "gui-x": "742.5529174804688"
36+ "gui-y": "28.562591552734375"
37+ "apache2-reverseproxy":
38+ charm: "cs:~abentley/trusty/apache2-reverseproxy-4"
39+ num_units: 0
40+ annotations:
41+ "gui-x": "737.6683349609375"
42+ "gui-y": "318.2304229736328"
43+ haproxy:
44+ charm: "cs:trusty/haproxy-2"
45+ constraints: mem=2G
46+ num_units: 1
47+ annotations:
48+ "gui-x": "1152.2492065429688"
49+ "gui-y": "321.7662353515625"
50+ "python-django":
51+ charm: "cs:trusty/python-django-12"
52+ num_units: 2
53+ options:
54+ django_allowed_hosts: "null"
55+ django_extra_settings: "null"
56+ "unit-config": "null"
57+ annotations:
58+ "gui-x": "1164.0284423828125"
59+ "gui-y": "660.1253356933594"
60+ to:
61+ - "lxc:haproxy=0"
62+ - "lxc:haproxy=0"
63+ relations:
64+ - - "haproxy:reverseproxy"
65+ - "python-django:website"
66+ - - "apache2-reverseproxy:website"
67+ - "apache2:website"
68+ - - "apache2-reverseproxy:website"
69+ - "haproxy:website"
70+ series: trusty
71
72=== added file 'bundles-lxd.yaml'
73--- bundles-lxd.yaml 1970-01-01 00:00:00 +0000
74+++ bundles-lxd.yaml 2017-03-29 15:30:42 +0000
75@@ -0,0 +1,56 @@
76+dense-scaled:
77+ services:
78+ juju-gui:
79+ charm: "cs:trusty/juju-gui-16"
80+ num_units: 1
81+ options:
82+ "login-help": "null"
83+ password: "null"
84+ "ssl-cert-contents": "null"
85+ "ssl-key-contents": "null"
86+ annotations:
87+ "gui-x": "425.87542724609375"
88+ "gui-y": "25.871253967285156"
89+ to:
90+ - "0"
91+ apache2:
92+ charm: "cs:trusty/apache2-1"
93+ constraints: mem=2G
94+ num_units: 1
95+ annotations:
96+ "gui-x": "742.5529174804688"
97+ "gui-y": "28.562591552734375"
98+ "apache2-reverseproxy":
99+ charm: "cs:~abentley/trusty/apache2-reverseproxy-4"
100+ num_units: 0
101+ annotations:
102+ "gui-x": "737.6683349609375"
103+ "gui-y": "318.2304229736328"
104+ haproxy:
105+ charm: "cs:trusty/haproxy-2"
106+ constraints: mem=2G
107+ num_units: 1
108+ annotations:
109+ "gui-x": "1152.2492065429688"
110+ "gui-y": "321.7662353515625"
111+ "python-django":
112+ charm: "cs:trusty/python-django-12"
113+ num_units: 2
114+ options:
115+ django_allowed_hosts: "null"
116+ django_extra_settings: "null"
117+ "unit-config": "null"
118+ annotations:
119+ "gui-x": "1164.0284423828125"
120+ "gui-y": "660.1253356933594"
121+ to:
122+ - "lxd:haproxy=0"
123+ - "lxd:haproxy=0"
124+ relations:
125+ - - "haproxy:reverseproxy"
126+ - "python-django:website"
127+ - - "apache2-reverseproxy:website"
128+ - "apache2:website"
129+ - - "apache2-reverseproxy:website"
130+ - "haproxy:website"
131+ series: trusty
132
133=== added directory 'centos7'
134=== added directory 'centos7/dummy-sink'
135=== added file 'centos7/dummy-sink/README'
136--- centos7/dummy-sink/README 1970-01-01 00:00:00 +0000
137+++ centos7/dummy-sink/README 2017-03-29 15:30:42 +0000
138@@ -0,0 +1,1 @@
139+CentOS version of basic dummy-sink testing charm.
140
141=== added file 'centos7/dummy-sink/config.yaml'
142--- centos7/dummy-sink/config.yaml 1970-01-01 00:00:00 +0000
143+++ centos7/dummy-sink/config.yaml 2017-03-29 15:30:42 +0000
144@@ -0,0 +1,5 @@
145+options:
146+ token:
147+ type: string
148+ default: ''
149+ description: Token used to prove that the relation is working
150
151=== added file 'centos7/dummy-sink/copyright'
152--- centos7/dummy-sink/copyright 1970-01-01 00:00:00 +0000
153+++ centos7/dummy-sink/copyright 2017-03-29 15:30:42 +0000
154@@ -0,0 +1,1 @@
155+Copyright 2014 Canonical Ltd.
156
157=== added directory 'centos7/dummy-sink/hooks'
158=== added file 'centos7/dummy-sink/hooks/source-relation-changed'
159--- centos7/dummy-sink/hooks/source-relation-changed 1970-01-01 00:00:00 +0000
160+++ centos7/dummy-sink/hooks/source-relation-changed 2017-03-29 15:30:42 +0000
161@@ -0,0 +1,3 @@
162+#!/bin/bash
163+mkdir -p /var/run/dummy-sink
164+relation-get token > /var/run/dummy-sink/token
165
166=== added file 'centos7/dummy-sink/metadata.yaml'
167--- centos7/dummy-sink/metadata.yaml 1970-01-01 00:00:00 +0000
168+++ centos7/dummy-sink/metadata.yaml 2017-03-29 15:30:42 +0000
169@@ -0,0 +1,10 @@
170+name: dummy-sink
171+maintainer: Martin Packman <martin.packman@canonical.com>
172+summary: Dummy charm that accepts data
173+description: |
174+ This dummy charm is used to verify that a relationship is created correctly
175+provides:
176+ source:
177+ interface: dummy-token
178+categories:
179+ - misc
180
181=== added directory 'centos7/dummy-source'
182=== added file 'centos7/dummy-source/README'
183--- centos7/dummy-source/README 1970-01-01 00:00:00 +0000
184+++ centos7/dummy-source/README 2017-03-29 15:30:42 +0000
185@@ -0,0 +1,1 @@
186+CentOS version of basic dummy-source testing charm.
187
188=== added file 'centos7/dummy-source/config.yaml'
189--- centos7/dummy-source/config.yaml 1970-01-01 00:00:00 +0000
190+++ centos7/dummy-source/config.yaml 2017-03-29 15:30:42 +0000
191@@ -0,0 +1,5 @@
192+options:
193+ token:
194+ type: string
195+ default: ''
196+ description: Token used to prove that the relation is working
197
198=== added file 'centos7/dummy-source/copyright'
199--- centos7/dummy-source/copyright 1970-01-01 00:00:00 +0000
200+++ centos7/dummy-source/copyright 2017-03-29 15:30:42 +0000
201@@ -0,0 +1,1 @@
202+Copyright 2014 Canonical Ltd.
203
204=== added directory 'centos7/dummy-source/hooks'
205=== added file 'centos7/dummy-source/hooks/config-changed'
206--- centos7/dummy-source/hooks/config-changed 1970-01-01 00:00:00 +0000
207+++ centos7/dummy-source/hooks/config-changed 2017-03-29 15:30:42 +0000
208@@ -0,0 +1,6 @@
209+#!/bin/bash
210+set -eux
211+token="$(config-get token)"
212+for relation_id in $(relation-ids sink); do
213+ relation-set -r $relation_id token="$token"
214+done
215
216=== added symlink 'centos7/dummy-source/hooks/sink-relation-joined'
217=== target is u'config-changed'
218=== added file 'centos7/dummy-source/metadata.yaml'
219--- centos7/dummy-source/metadata.yaml 1970-01-01 00:00:00 +0000
220+++ centos7/dummy-source/metadata.yaml 2017-03-29 15:30:42 +0000
221@@ -0,0 +1,10 @@
222+name: dummy-source
223+maintainer: Martin Packman <martin.packman@canonical.com>
224+summary: Dummy charm that provides data
225+description: |
226+ This dummy charm is used to verify that a relationship is created correctly
227+requires:
228+ sink:
229+ interface: dummy-token
230+categories:
231+ - misc
232
233=== added directory 'centos7/dummy-subordinate'
234=== added file 'centos7/dummy-subordinate/README'
235--- centos7/dummy-subordinate/README 1970-01-01 00:00:00 +0000
236+++ centos7/dummy-subordinate/README 2017-03-29 15:30:42 +0000
237@@ -0,0 +1,10 @@
238+This is dummy-subordinate charm used to bring subordinate charm
239+for dummy-sink charm.
240+
241+Deploy dummy-subordinate charm:
242+-------------------------------
243+
244+juju deploy dummy-sink
245+juju deploy dummy-subordinate
246+juju add-relation dummy-sink dummy-subordinate
247+juju config dummy-subordinate token="Canonical"
248
249=== added file 'centos7/dummy-subordinate/config.yaml'
250--- centos7/dummy-subordinate/config.yaml 1970-01-01 00:00:00 +0000
251+++ centos7/dummy-subordinate/config.yaml 2017-03-29 15:30:42 +0000
252@@ -0,0 +1,5 @@
253+options:
254+ token:
255+ type: string
256+ default: ''
257+ description: Token used to prove that the relation is working
258
259=== added file 'centos7/dummy-subordinate/copyright'
260--- centos7/dummy-subordinate/copyright 1970-01-01 00:00:00 +0000
261+++ centos7/dummy-subordinate/copyright 2017-03-29 15:30:42 +0000
262@@ -0,0 +1,1 @@
263+Copyright 2017 Canonical Ltd.
264
265=== added directory 'centos7/dummy-subordinate/hooks'
266=== added file 'centos7/dummy-subordinate/hooks/config-changed'
267--- centos7/dummy-subordinate/hooks/config-changed 1970-01-01 00:00:00 +0000
268+++ centos7/dummy-subordinate/hooks/config-changed 2017-03-29 15:30:42 +0000
269@@ -0,0 +1,16 @@
270+#!/bin/bash
271+set -eux
272+
273+juju-log -l INFO "Getting token"
274+status-set maintenance "Getting token" || true
275+token="$(config-get token)"
276+for relation_id in $(relation-ids sink); do
277+ relation-set -r $relation_id token="$token"
278+done
279+if [[ -z $token ]]; then
280+ juju-log -l WARNING "Blocked: set the token"
281+ status-set blocked "Set the token" || true
282+else
283+ juju-log -l INFO "Token is $token"
284+ status-set active "Token is $token" || true
285+fi
286
287=== added file 'centos7/dummy-subordinate/hooks/install'
288--- centos7/dummy-subordinate/hooks/install 1970-01-01 00:00:00 +0000
289+++ centos7/dummy-subordinate/hooks/install 2017-03-29 15:30:42 +0000
290@@ -0,0 +1,3 @@
291+#!/bin/sh
292+
293+status-set maintenance "Installed" || true
294
295=== added file 'centos7/dummy-subordinate/hooks/sink-relation-joined'
296--- centos7/dummy-subordinate/hooks/sink-relation-joined 1970-01-01 00:00:00 +0000
297+++ centos7/dummy-subordinate/hooks/sink-relation-joined 2017-03-29 15:30:42 +0000
298@@ -0,0 +1,16 @@
299+#!/bin/bash
300+set -eux
301+
302+juju-log -l INFO "Getting token"
303+status-set maintenance "Getting token" || true
304+token="$(config-get token)"
305+for relation_id in $(relation-ids sink); do
306+ relation-set -r $relation_id token="$token"
307+done
308+if [[ -z $token ]]; then
309+ juju-log -l WARNING "Blocked: set the token"
310+ status-set blocked "Set the token" || true
311+else
312+ juju-log -l INFO "Token is $token"
313+ status-set active "Token is $token" || true
314+fi
315
316=== added file 'centos7/dummy-subordinate/hooks/start'
317--- centos7/dummy-subordinate/hooks/start 1970-01-01 00:00:00 +0000
318+++ centos7/dummy-subordinate/hooks/start 2017-03-29 15:30:42 +0000
319@@ -0,0 +1,3 @@
320+#!/bin/sh
321+
322+status-set maintenance "Started" || true
323
324=== added file 'centos7/dummy-subordinate/hooks/stop'
325--- centos7/dummy-subordinate/hooks/stop 1970-01-01 00:00:00 +0000
326+++ centos7/dummy-subordinate/hooks/stop 2017-03-29 15:30:42 +0000
327@@ -0,0 +1,1 @@
328+#!/bin/sh
329
330=== added file 'centos7/dummy-subordinate/metadata.yaml'
331--- centos7/dummy-subordinate/metadata.yaml 1970-01-01 00:00:00 +0000
332+++ centos7/dummy-subordinate/metadata.yaml 2017-03-29 15:30:42 +0000
333@@ -0,0 +1,18 @@
334+name: dummy-subordinate
335+maintainer: Juju-QA <aaron.bentley+cjqa@canonical.com>
336+subordinate: true
337+summary: Dummy subordinate charm that accepts data
338+description: |
339+ This dummy subordinate charm is used to verify that a relationship is created correctly
340+requires:
341+ sink:
342+ interface: dummy-token
343+ scope: container
344+categories:
345+ - misc
346+series:
347+ - xenial
348+ - trusty
349+ - precise
350+ - yakkety
351+ - zesty
352
353=== added directory 'charms'
354=== added directory 'charms-centos'
355=== added directory 'charms-centos/dummy-sink'
356=== added file 'charms-centos/dummy-sink/README'
357--- charms-centos/dummy-sink/README 1970-01-01 00:00:00 +0000
358+++ charms-centos/dummy-sink/README 2017-03-29 15:30:42 +0000
359@@ -0,0 +1,1 @@
360+CentOS version of basic dummy-sink testing charm.
361
362=== added file 'charms-centos/dummy-sink/config.yaml'
363--- charms-centos/dummy-sink/config.yaml 1970-01-01 00:00:00 +0000
364+++ charms-centos/dummy-sink/config.yaml 2017-03-29 15:30:42 +0000
365@@ -0,0 +1,5 @@
366+options:
367+ token:
368+ type: string
369+ default: ''
370+ description: Token used to prove that the relation is working
371
372=== added file 'charms-centos/dummy-sink/copyright'
373--- charms-centos/dummy-sink/copyright 1970-01-01 00:00:00 +0000
374+++ charms-centos/dummy-sink/copyright 2017-03-29 15:30:42 +0000
375@@ -0,0 +1,1 @@
376+Copyright 2014 Canonical Ltd.
377
378=== added directory 'charms-centos/dummy-sink/hooks'
379=== added file 'charms-centos/dummy-sink/hooks/install'
380--- charms-centos/dummy-sink/hooks/install 1970-01-01 00:00:00 +0000
381+++ charms-centos/dummy-sink/hooks/install 2017-03-29 15:30:42 +0000
382@@ -0,0 +1,4 @@
383+#!/bin/bash
384+set -eux
385+
386+status-set maintenance "Installed" || true
387
388=== added file 'charms-centos/dummy-sink/hooks/source-relation-changed'
389--- charms-centos/dummy-sink/hooks/source-relation-changed 1970-01-01 00:00:00 +0000
390+++ charms-centos/dummy-sink/hooks/source-relation-changed 2017-03-29 15:30:42 +0000
391@@ -0,0 +1,13 @@
392+#!/bin/bash
393+set -eux
394+
395+mkdir -p /var/run/dummy-sink
396+token=$(relation-get token)
397+echo "$token" > /var/run/dummy-sink/token
398+if [[ -z $token ]]; then
399+ juju-log -l INFO "Waiting for token"
400+ status-set waiting "Waiting for token" || true
401+else
402+ juju-log -l INFO "Token is $token"
403+ status-set active "Token is $token" || true
404+fi
405
406=== added file 'charms-centos/dummy-sink/hooks/start'
407--- charms-centos/dummy-sink/hooks/start 1970-01-01 00:00:00 +0000
408+++ charms-centos/dummy-sink/hooks/start 2017-03-29 15:30:42 +0000
409@@ -0,0 +1,4 @@
410+#!/bin/bash
411+set -eux
412+
413+status-set maintenance "Started" || true
414
415=== added file 'charms-centos/dummy-sink/metadata.yaml'
416--- charms-centos/dummy-sink/metadata.yaml 1970-01-01 00:00:00 +0000
417+++ charms-centos/dummy-sink/metadata.yaml 2017-03-29 15:30:42 +0000
418@@ -0,0 +1,12 @@
419+name: dummy-sink
420+maintainer: Martin Packman <martin.packman@canonical.com>
421+summary: Dummy charm that accepts data
422+description: |
423+ This dummy charm is used to verify that a relationship is created correctly
424+provides:
425+ source:
426+ interface: dummy-token
427+categories:
428+ - misc
429+series:
430+ - centos7
431
432=== added directory 'charms-centos/dummy-source'
433=== added file 'charms-centos/dummy-source/README'
434--- charms-centos/dummy-source/README 1970-01-01 00:00:00 +0000
435+++ charms-centos/dummy-source/README 2017-03-29 15:30:42 +0000
436@@ -0,0 +1,1 @@
437+CentOS version of basic dummy-source testing charm.
438
439=== added file 'charms-centos/dummy-source/config.yaml'
440--- charms-centos/dummy-source/config.yaml 1970-01-01 00:00:00 +0000
441+++ charms-centos/dummy-source/config.yaml 2017-03-29 15:30:42 +0000
442@@ -0,0 +1,5 @@
443+options:
444+ token:
445+ type: string
446+ default: ''
447+ description: Token used to prove that the relation is working
448
449=== added file 'charms-centos/dummy-source/copyright'
450--- charms-centos/dummy-source/copyright 1970-01-01 00:00:00 +0000
451+++ charms-centos/dummy-source/copyright 2017-03-29 15:30:42 +0000
452@@ -0,0 +1,1 @@
453+Copyright 2014 Canonical Ltd.
454
455=== added directory 'charms-centos/dummy-source/hooks'
456=== added file 'charms-centos/dummy-source/hooks/config-changed'
457--- charms-centos/dummy-source/hooks/config-changed 1970-01-01 00:00:00 +0000
458+++ charms-centos/dummy-source/hooks/config-changed 2017-03-29 15:30:42 +0000
459@@ -0,0 +1,16 @@
460+#!/bin/bash
461+set -eux
462+
463+juju-log -l INFO "Getting token"
464+status-set maintenance "Getting token" || true
465+token="$(config-get token)"
466+for relation_id in $(relation-ids sink); do
467+ relation-set -r $relation_id token="$token"
468+done
469+if [[ -z $token ]]; then
470+ juju-log -l WARNING "Blocked: set the token"
471+ status-set blocked "Set the token" || true
472+else
473+ juju-log -l INFO "Token is $token"
474+ status-set active "Token is $token" || true
475+fi
476
477=== added file 'charms-centos/dummy-source/hooks/install'
478--- charms-centos/dummy-source/hooks/install 1970-01-01 00:00:00 +0000
479+++ charms-centos/dummy-source/hooks/install 2017-03-29 15:30:42 +0000
480@@ -0,0 +1,4 @@
481+#!/bin/bash
482+set -eux
483+
484+status-set maintenance "Installed" || true
485
486=== added symlink 'charms-centos/dummy-source/hooks/sink-relation-joined'
487=== target is u'config-changed'
488=== added file 'charms-centos/dummy-source/hooks/start'
489--- charms-centos/dummy-source/hooks/start 1970-01-01 00:00:00 +0000
490+++ charms-centos/dummy-source/hooks/start 2017-03-29 15:30:42 +0000
491@@ -0,0 +1,4 @@
492+#!/bin/bash
493+set -eux
494+
495+status-set maintenance "Started" || true
496
497=== added file 'charms-centos/dummy-source/metadata.yaml'
498--- charms-centos/dummy-source/metadata.yaml 1970-01-01 00:00:00 +0000
499+++ charms-centos/dummy-source/metadata.yaml 2017-03-29 15:30:42 +0000
500@@ -0,0 +1,12 @@
501+name: dummy-source
502+maintainer: Martin Packman <martin.packman@canonical.com>
503+summary: Dummy charm that provides data
504+description: |
505+ This dummy charm is used to verify that a relationship is created correctly
506+requires:
507+ sink:
508+ interface: dummy-token
509+categories:
510+ - misc
511+series:
512+ - centos7
513
514=== added directory 'charms-centos/dummy-subordinate'
515=== added file 'charms-centos/dummy-subordinate/README'
516--- charms-centos/dummy-subordinate/README 1970-01-01 00:00:00 +0000
517+++ charms-centos/dummy-subordinate/README 2017-03-29 15:30:42 +0000
518@@ -0,0 +1,10 @@
519+This is dummy-subordinate charm used to bring subordinate charm
520+for dummy-sink charm.
521+
522+Deploy dummy-subordinate charm:
523+-------------------------------
524+
525+juju deploy dummy-sink
526+juju deploy dummy-subordinate
527+juju add-relation dummy-sink dummy-subordinate
528+juju config dummy-subordinate token="Canonical"
529
530=== added file 'charms-centos/dummy-subordinate/config.yaml'
531--- charms-centos/dummy-subordinate/config.yaml 1970-01-01 00:00:00 +0000
532+++ charms-centos/dummy-subordinate/config.yaml 2017-03-29 15:30:42 +0000
533@@ -0,0 +1,5 @@
534+options:
535+ token:
536+ type: string
537+ default: ''
538+ description: Token used to prove that the relation is working
539
540=== added file 'charms-centos/dummy-subordinate/copyright'
541--- charms-centos/dummy-subordinate/copyright 1970-01-01 00:00:00 +0000
542+++ charms-centos/dummy-subordinate/copyright 2017-03-29 15:30:42 +0000
543@@ -0,0 +1,1 @@
544+Copyright 2017 Canonical Ltd.
545
546=== added directory 'charms-centos/dummy-subordinate/hooks'
547=== added file 'charms-centos/dummy-subordinate/hooks/config-changed'
548--- charms-centos/dummy-subordinate/hooks/config-changed 1970-01-01 00:00:00 +0000
549+++ charms-centos/dummy-subordinate/hooks/config-changed 2017-03-29 15:30:42 +0000
550@@ -0,0 +1,16 @@
551+#!/bin/bash
552+set -eux
553+
554+juju-log -l INFO "Getting token"
555+status-set maintenance "Getting token" || true
556+token="$(config-get token)"
557+for relation_id in $(relation-ids sink); do
558+ relation-set -r $relation_id token="$token"
559+done
560+if [[ -z $token ]]; then
561+ juju-log -l WARNING "Blocked: set the token"
562+ status-set blocked "Set the token" || true
563+else
564+ juju-log -l INFO "Token is $token"
565+ status-set active "Token is $token" || true
566+fi
567
568=== added file 'charms-centos/dummy-subordinate/hooks/install'
569--- charms-centos/dummy-subordinate/hooks/install 1970-01-01 00:00:00 +0000
570+++ charms-centos/dummy-subordinate/hooks/install 2017-03-29 15:30:42 +0000
571@@ -0,0 +1,3 @@
572+#!/bin/sh
573+
574+status-set maintenance "Installed" || true
575
576=== added file 'charms-centos/dummy-subordinate/hooks/sink-relation-joined'
577--- charms-centos/dummy-subordinate/hooks/sink-relation-joined 1970-01-01 00:00:00 +0000
578+++ charms-centos/dummy-subordinate/hooks/sink-relation-joined 2017-03-29 15:30:42 +0000
579@@ -0,0 +1,16 @@
580+#!/bin/bash
581+set -eux
582+
583+juju-log -l INFO "Getting token"
584+status-set maintenance "Getting token" || true
585+token="$(config-get token)"
586+for relation_id in $(relation-ids sink); do
587+ relation-set -r $relation_id token="$token"
588+done
589+if [[ -z $token ]]; then
590+ juju-log -l WARNING "Blocked: set the token"
591+ status-set blocked "Set the token" || true
592+else
593+ juju-log -l INFO "Token is $token"
594+ status-set active "Token is $token" || true
595+fi
596
597=== added file 'charms-centos/dummy-subordinate/hooks/start'
598--- charms-centos/dummy-subordinate/hooks/start 1970-01-01 00:00:00 +0000
599+++ charms-centos/dummy-subordinate/hooks/start 2017-03-29 15:30:42 +0000
600@@ -0,0 +1,3 @@
601+#!/bin/sh
602+
603+status-set maintenance "Started" || true
604
605=== added file 'charms-centos/dummy-subordinate/hooks/stop'
606--- charms-centos/dummy-subordinate/hooks/stop 1970-01-01 00:00:00 +0000
607+++ charms-centos/dummy-subordinate/hooks/stop 2017-03-29 15:30:42 +0000
608@@ -0,0 +1,1 @@
609+#!/bin/sh
610
611=== added file 'charms-centos/dummy-subordinate/metadata.yaml'
612--- charms-centos/dummy-subordinate/metadata.yaml 1970-01-01 00:00:00 +0000
613+++ charms-centos/dummy-subordinate/metadata.yaml 2017-03-29 15:30:42 +0000
614@@ -0,0 +1,18 @@
615+name: dummy-subordinate
616+maintainer: Juju-QA <aaron.bentley+cjqa@canonical.com>
617+subordinate: true
618+summary: Dummy subordinate charm that accepts data
619+description: |
620+ This dummy subordinate charm is used to verify that a relationship is created correctly
621+requires:
622+ sink:
623+ interface: dummy-token
624+ scope: container
625+categories:
626+ - misc
627+series:
628+ - xenial
629+ - trusty
630+ - precise
631+ - yakkety
632+ - zesty
633
634=== added directory 'charms-win'
635=== added directory 'charms-win/dummy-sink'
636=== added file 'charms-win/dummy-sink/README'
637--- charms-win/dummy-sink/README 1970-01-01 00:00:00 +0000
638+++ charms-win/dummy-sink/README 2017-03-29 15:30:42 +0000
639@@ -0,0 +1,1 @@
640+Windows version of basic dummy-sink testing charm.
641
642=== added file 'charms-win/dummy-sink/config.yaml'
643--- charms-win/dummy-sink/config.yaml 1970-01-01 00:00:00 +0000
644+++ charms-win/dummy-sink/config.yaml 2017-03-29 15:30:42 +0000
645@@ -0,0 +1,5 @@
646+options:
647+ token:
648+ type: string
649+ default: ''
650+ description: Token used to prove that the relation is working
651
652=== added file 'charms-win/dummy-sink/copyright'
653--- charms-win/dummy-sink/copyright 1970-01-01 00:00:00 +0000
654+++ charms-win/dummy-sink/copyright 2017-03-29 15:30:42 +0000
655@@ -0,0 +1,1 @@
656+Copyright 2015 Canonical Ltd.
657
658=== added directory 'charms-win/dummy-sink/hooks'
659=== added file 'charms-win/dummy-sink/hooks/install.ps1'
660--- charms-win/dummy-sink/hooks/install.ps1 1970-01-01 00:00:00 +0000
661+++ charms-win/dummy-sink/hooks/install.ps1 2017-03-29 15:30:42 +0000
662@@ -0,0 +1,2 @@
663+juju-log.exe "Installed"
664+status-set.exe "waiting" "Installed"
665
666=== added file 'charms-win/dummy-sink/hooks/source-relation-changed.ps1'
667--- charms-win/dummy-sink/hooks/source-relation-changed.ps1 1970-01-01 00:00:00 +0000
668+++ charms-win/dummy-sink/hooks/source-relation-changed.ps1 2017-03-29 15:30:42 +0000
669@@ -0,0 +1,8 @@
670+status-set.exe "maintenance" "Updating token"
671+$path = join-path $ENV:ProgramData dummy-sink
672+mkdir $path
673+$tokenpath = join-path $path token
674+relation-get token > $tokenpath
675+$current_token = relation-get token
676+juju-log.exe "Token is $current_token"
677+status-set.exe "active" "Token is $current_token"
678
679=== added file 'charms-win/dummy-sink/hooks/start.ps1'
680--- charms-win/dummy-sink/hooks/start.ps1 1970-01-01 00:00:00 +0000
681+++ charms-win/dummy-sink/hooks/start.ps1 2017-03-29 15:30:42 +0000
682@@ -0,0 +1,2 @@
683+juju-log.exe "Started"
684+status-set.exe "waiting" "Started"
685
686=== added file 'charms-win/dummy-sink/metadata.yaml'
687--- charms-win/dummy-sink/metadata.yaml 1970-01-01 00:00:00 +0000
688+++ charms-win/dummy-sink/metadata.yaml 2017-03-29 15:30:42 +0000
689@@ -0,0 +1,21 @@
690+name: dummy-sink
691+maintainer: Martin Packman <martin.packman@canonical.com>
692+summary: Dummy charm that accepts data
693+description: |
694+ This dummy charm is used to verify that a relationship is created correctly
695+provides:
696+ source:
697+ interface: dummy-token
698+categories:
699+ - misc
700+series:
701+ - win2012hvr2
702+ - win2012hv
703+ - win2012r2
704+ - win2012
705+ - win2016
706+ - win2016nano
707+ - win10
708+ - win8
709+ - win81
710+ - win7
711
712=== added directory 'charms-win/dummy-source'
713=== added file 'charms-win/dummy-source/README'
714--- charms-win/dummy-source/README 1970-01-01 00:00:00 +0000
715+++ charms-win/dummy-source/README 2017-03-29 15:30:42 +0000
716@@ -0,0 +1,1 @@
717+Windows version of basic dummy-source testing charm.
718
719=== added file 'charms-win/dummy-source/config.yaml'
720--- charms-win/dummy-source/config.yaml 1970-01-01 00:00:00 +0000
721+++ charms-win/dummy-source/config.yaml 2017-03-29 15:30:42 +0000
722@@ -0,0 +1,5 @@
723+options:
724+ token:
725+ type: string
726+ default: ''
727+ description: Token used to prove that the relation is working
728
729=== added file 'charms-win/dummy-source/copyright'
730--- charms-win/dummy-source/copyright 1970-01-01 00:00:00 +0000
731+++ charms-win/dummy-source/copyright 2017-03-29 15:30:42 +0000
732@@ -0,0 +1,1 @@
733+Copyright 2015 Canonical Ltd.
734
735=== added directory 'charms-win/dummy-source/hooks'
736=== added file 'charms-win/dummy-source/hooks/config-changed.ps1'
737--- charms-win/dummy-source/hooks/config-changed.ps1 1970-01-01 00:00:00 +0000
738+++ charms-win/dummy-source/hooks/config-changed.ps1 2017-03-29 15:30:42 +0000
739@@ -0,0 +1,7 @@
740+$token = config-get token
741+$relations = relation-ids sink
742+foreach ($relation_id in $relations.split()) {
743+ relation-set -r $relation_id token="$token"
744+}
745+juju-log.exe "Token is $token"
746+status-set.exe "active" "Token is $token"
747
748=== added file 'charms-win/dummy-source/hooks/install.ps1'
749--- charms-win/dummy-source/hooks/install.ps1 1970-01-01 00:00:00 +0000
750+++ charms-win/dummy-source/hooks/install.ps1 2017-03-29 15:30:42 +0000
751@@ -0,0 +1,2 @@
752+juju-log.exe "Installed"
753+status-set.exe "waiting" "Installed"
754
755=== added file 'charms-win/dummy-source/hooks/sink-relation-joined.ps1'
756--- charms-win/dummy-source/hooks/sink-relation-joined.ps1 1970-01-01 00:00:00 +0000
757+++ charms-win/dummy-source/hooks/sink-relation-joined.ps1 2017-03-29 15:30:42 +0000
758@@ -0,0 +1,2 @@
759+$script = join-path $PSScriptRoot config-changed.ps1
760+& $script
761
762=== added file 'charms-win/dummy-source/hooks/start.ps1'
763--- charms-win/dummy-source/hooks/start.ps1 1970-01-01 00:00:00 +0000
764+++ charms-win/dummy-source/hooks/start.ps1 2017-03-29 15:30:42 +0000
765@@ -0,0 +1,2 @@
766+juju-log.exe Started"
767+status-set.exe "waiting" "Started"
768
769=== added file 'charms-win/dummy-source/metadata.yaml'
770--- charms-win/dummy-source/metadata.yaml 1970-01-01 00:00:00 +0000
771+++ charms-win/dummy-source/metadata.yaml 2017-03-29 15:30:42 +0000
772@@ -0,0 +1,21 @@
773+name: dummy-source
774+maintainer: Martin Packman <martin.packman@canonical.com>
775+summary: Dummy charm that provides data
776+description: |
777+ This dummy charm is used to verify that a relationship is created correctly
778+requires:
779+ sink:
780+ interface: dummy-token
781+categories:
782+ - misc
783+series:
784+ - win2012hvr2
785+ - win2012hv
786+ - win2012r2
787+ - win2012
788+ - win2016
789+ - win2016nano
790+ - win10
791+ - win8
792+ - win81
793+ - win7
794
795=== added directory 'charms/canonical-terms-example'
796=== added directory 'charms/canonical-terms-example/.dir'
797=== added file 'charms/canonical-terms-example/.dir/ignored'
798=== added file 'charms/canonical-terms-example/.ignored'
799--- charms/canonical-terms-example/.ignored 1970-01-01 00:00:00 +0000
800+++ charms/canonical-terms-example/.ignored 2017-03-29 15:30:42 +0000
801@@ -0,0 +1,1 @@
802+#
803\ No newline at end of file
804
805=== added file 'charms/canonical-terms-example/config.yaml'
806--- charms/canonical-terms-example/config.yaml 1970-01-01 00:00:00 +0000
807+++ charms/canonical-terms-example/config.yaml 2017-03-29 15:30:42 +0000
808@@ -0,0 +1,5 @@
809+options:
810+ title: {default: My Title, description: A descriptive title used for the service., type: string}
811+ outlook: {description: No default outlook., type: string}
812+ username: {default: admin001, description: The name of the initial account (given admin permissions)., type: string}
813+ skill-level: {description: A number indicating skill., type: int}
814
815=== added directory 'charms/canonical-terms-example/hooks'
816=== added file 'charms/canonical-terms-example/hooks/install'
817--- charms/canonical-terms-example/hooks/install 1970-01-01 00:00:00 +0000
818+++ charms/canonical-terms-example/hooks/install 2017-03-29 15:30:42 +0000
819@@ -0,0 +1,2 @@
820+#!/bin/bash
821+echo "Done!"
822
823=== added file 'charms/canonical-terms-example/metadata.yaml'
824--- charms/canonical-terms-example/metadata.yaml 1970-01-01 00:00:00 +0000
825+++ charms/canonical-terms-example/metadata.yaml 2017-03-29 15:30:42 +0000
826@@ -0,0 +1,8 @@
827+name: canonical-terms-example
828+summary: "Example charm demonstrating multiple terms."
829+description: |
830+ This charm demonstrates requiring agreements to more than one term as a
831+ precondition of deploying a charm.
832+terms:
833+ - "lorem-ipsum"
834+ - "canonical"
835
836=== added file 'charms/canonical-terms-example/revision'
837--- charms/canonical-terms-example/revision 1970-01-01 00:00:00 +0000
838+++ charms/canonical-terms-example/revision 2017-03-29 15:30:42 +0000
839@@ -0,0 +1,1 @@
840+1
841\ No newline at end of file
842
843=== added directory 'charms/chaos-monkey'
844=== added file 'charms/chaos-monkey/README'
845--- charms/chaos-monkey/README 1970-01-01 00:00:00 +0000
846+++ charms/chaos-monkey/README 2017-03-29 15:30:42 +0000
847@@ -0,0 +1,43 @@
848+Overview
849+========
850+This charm provides tooling for injecting errors, instrumenting degraded
851+conditions or causing outages, in a Juju environment. Once deployed this
852+charm can be put into a relation with any service. Juju actions are used
853+to start a single chaos operation or a series of operations, for a
854+specified time period. Chaos operations can be selected randomly by the
855+tooling or specific operations can be specified when the action is started.
856+
857+Usage
858+=====
859+1. Deploy the charm into an existing Juju environment.
860+
861+2. Add a relation between Chaos Monkey and the service to be affected.
862+
863+3. Call the start action (e.g. juju action do <unit name> start [options])
864+ Run 'juju action defined --schema chaos-monkey' to see the full list of
865+ available actions and action parameters.
866+
867+4. Use the show-monkey-ids action to list the identifiers for the Chaos
868+ Monkeys that have been run and the location of the logs.
869+ For example:
870+ 'juju action do chaos-monkey/0 show-monkey-ids'
871+ Action queued with id: a7ee2b06-1d75-4a8c-8f4b-aeb27009ce59
872+
873+ 'juju action fetch a7ee2b06-1d75-4a8c-8f4b-aeb27009ce59'
874+
875+5. Use the show-logs action to print the log of operations that were run.
876+ 'juju action do chaos-monkey/0 show-logs monkey-id=<ID String>'
877+
878+ 'juju action fetch <Action ID>
879+
880+Replay
881+======
882+Each time Chaos Monkey runs, a replay log is generated and saved in the
883+units log directory. This replay log can be used to reproduce the Chaos
884+operations. For example:
885+ /home/ubuntu/chaos-monkey/chaos_monkey.<ID String>/logs/chaos_run_list.log
886+
887+Currently the replay needs to be run from a root shell on the unit itself.
888+ 1. 'juju ssh chaos-monkey/0'
889+ 2. 'mkdir /home/ubuntu/chaos-monkey/replay_space'
890+ 3. python /home/ubuntu/chaos-monkey/chaos_monkey.<ID String>/chaos-monkey/runner.py --replay /home/ubuntu/chaos-monkey/chaos_monkey.<ID String>/log/chaos_run_list.log /home/ubuntu/chaos-monkey/replay_space
891
892=== added directory 'charms/chaos-monkey/actions'
893=== added file 'charms/chaos-monkey/actions.yaml'
894--- charms/chaos-monkey/actions.yaml 1970-01-01 00:00:00 +0000
895+++ charms/chaos-monkey/actions.yaml 2017-03-29 15:30:42 +0000
896@@ -0,0 +1,51 @@
897+show-logs:
898+ description: Stage chaos monkey logs for viewing with 'juju action fetch'
899+ params:
900+ chaos-dir:
901+ type: string
902+ description: The base directory in which to search for logs.
903+ monkey-id:
904+ type: string
905+ description: The ID of the monkey-id for which logs should be shown.
906+show-monkey-ids:
907+ description: List the monkey-ids that have been run on the service unit.
908+ params:
909+ chaos-dir:
910+ type: string
911+ description: The base directory to search for evidence of monkeys.
912+start:
913+ description: Start the chaos monkey.
914+ params:
915+ exclude-command:
916+ type: string
917+ enum: [deny-all, deny-incoming, deny-outgoing, deny-state-server,
918+ deny-api-server, deny-sys-log, kill-jujud, kill-mongod,
919+ restart-unit, delay, delay-long, drop, corrupt, duplicate]
920+ description: Exclude commands from the test list.
921+ exclude-group:
922+ type: string
923+ enum: [net, kill]
924+ description: Exclude groups from the test list.
925+ include-command:
926+ type: string
927+ enum: [deny-all, deny-incoming, deny-outgoing, deny-state-server,
928+ deny-api-server, deny-sys-log, kill-jujud, kill-mongod,
929+ restart-unit, delay, delay-long, drop, corrupt, duplicate]
930+ description: Include only these commands in the test list.
931+ include-group:
932+ type: string
933+ enum: [net, kill]
934+ description: Include only these groups in the test list.
935+ total-timeout:
936+ type: integer
937+ description: Timeout in seconds for which the monkey should run.
938+ enablement-timeout:
939+ type: integer
940+ description: Timeout in seconds to run each chaos operation.
941+ mode:
942+ type: string
943+ enum: [single, continuous]
944+ description: Execution mode either single or continuous.
945+ monkey-id:
946+ type: string
947+ description: Identifier to track this monkeys actions.
948
949=== added file 'charms/chaos-monkey/actions/show-logs'
950--- charms/chaos-monkey/actions/show-logs 1970-01-01 00:00:00 +0000
951+++ charms/chaos-monkey/actions/show-logs 2017-03-29 15:30:42 +0000
952@@ -0,0 +1,20 @@
953+#!/bin/bash -eux
954+monkey_id='*'
955+chaos_dir="$(config-get chaos-dir)"
956+action_chaos_dir="$(action-get chaos-dir)"
957+action_monkey_id="$(action-get monkey-id)"
958+[[ -n ${action_chaos_dir:-} ]] && chaos_dir=${action_chaos_dir}
959+[[ -n ${action_monkey_id:-} ]] && monkey_id=${action_monkey_id}
960+action-set action-parameters.chaos-dir="${chaos_dir}"
961+action-set action-parameters.monkey-id="${monkey_id}"
962+
963+target_dir="${chaos_dir}/chaos_monkey.${monkey_id}"
964+for dir in ${target_dir}; do
965+ log="${dir}/log/results.log"
966+ key=${dir##*\/chaos_monkey\.}
967+ count=1
968+ while read line; do
969+ action-set ${key}-run-log.${count}="${line}"
970+ count=$((count + 1))
971+ done < ${log}
972+done
973
974=== added file 'charms/chaos-monkey/actions/show-monkey-ids'
975--- charms/chaos-monkey/actions/show-monkey-ids 1970-01-01 00:00:00 +0000
976+++ charms/chaos-monkey/actions/show-monkey-ids 2017-03-29 15:30:42 +0000
977@@ -0,0 +1,13 @@
978+#!/bin/bash -eux
979+monkey_id='*'
980+chaos_dir="$(config-get chaos-dir)"
981+action_chaos_dir="$(action-get chaos-dir)"
982+[[ -n ${action_chaos_dir:-} ]] && chaos_dir=${action_chaos_dir}
983+action-set action-parameters.chaos-dir="${chaos_dir}"
984+
985+target_dir="${chaos_dir}/chaos_monkey.${monkey_id}"
986+
987+for dir in ${target_dir}; do
988+ key=${dir##*\/chaos_monkey\.}
989+ [[ -d $dir ]] && action-set monkey-ids.${key}=${dir}
990+done
991
992=== added file 'charms/chaos-monkey/actions/start'
993--- charms/chaos-monkey/actions/start 1970-01-01 00:00:00 +0000
994+++ charms/chaos-monkey/actions/start 2017-03-29 15:30:42 +0000
995@@ -0,0 +1,63 @@
996+#!/bin/bash -eux
997+dry_run="$(config-get dry-run)"
998+chaos_dir="$(config-get chaos-dir)"
999+exclude_command="$(action-get exclude-command)"
1000+exclude_group="$(action-get exclude-group)"
1001+enablement_timeout="$(action-get enablement-timeout)"
1002+include_command="$(action-get include-command)"
1003+include_group="$(action-get include-group)"
1004+total_timeout="$(action-get total-timeout)"
1005+monkey_id="$(action-get monkey-id)"
1006+mode="$(action-get mode)"
1007+monkey_id=${monkey_id:-${JUJU_ACTION_TAG#action-}}
1008+action-set action-parameters.dry-run="${dry_run}"
1009+action-set action-parameters.chaos-dir="${chaos_dir}"
1010+action-set action-parameters.charm-dir="${CHARM_DIR}"
1011+action-set action-parameters.exclude-command="${exclude_command}"
1012+action-set action-parameters.exclude-group="${exclude_group}"
1013+action-set action-parameters.enablement-timeout="${enablement_timeout}"
1014+action-set action-parameters.include-command="${include_command}"
1015+action-set action-parameters.include-group="${include_group}"
1016+action-set action-parameters.monkey-id=${monkey_id}
1017+action-set action-parameters.total-timeout="${total_timeout}"
1018+action-set action-parameters.mode="${mode}"
1019+
1020+# Create a unique directory to run and log this monkeys actions.
1021+target_dir=${chaos_dir}/chaos_monkey.${monkey_id}
1022+mkdir -p ${target_dir}/log
1023+if [[ -d ${CHARM_DIR}/chaos-monkey ]]; then
1024+ cp -a ${CHARM_DIR}/chaos-monkey ${target_dir}
1025+fi
1026+
1027+# Run the Chaos Monkey
1028+cmd="python ${target_dir}/chaos-monkey/runner.py"
1029+cmd+=" ${target_dir}"
1030+if [[ -n ${exclude_command:-} ]]; then
1031+ cmd+=" --exclude-command ${exclude_command}"
1032+fi
1033+if [[ -n ${exclude_group:-} ]]; then
1034+ cmd+=" --exclude-group ${exclude_group}"
1035+fi
1036+if [[ -n ${include_command:-} ]]; then
1037+ cmd+=" --include-command ${include_command}"
1038+fi
1039+if [[ -n ${include_group:-} ]]; then
1040+ cmd+=" --include-group ${include_group}"
1041+fi
1042+if [[ -n ${total_timeout:-} ]]; then
1043+ cmd+=" --total-timeout ${total_timeout}"
1044+fi
1045+if [[ -n ${enablement_timeout:-} ]]; then
1046+ cmd+=" --enablement-timeout ${enablement_timeout}"
1047+fi
1048+if [[ -n ${mode:-} && "single" == "$mode" ]]; then
1049+ cmd+=" --run-once"
1050+fi
1051+action-set action-info.runner-cmd="${cmd}"
1052+action-set action-info.runner-log="${target_dir}/log/results.log"
1053+if [[ ${dry_run-} != True ]]; then
1054+ # Start the Chaos runner in a subprocess with nohup and in the background.
1055+ # In this way it's PPID becomes init and further juju actions are not
1056+ # blocked.
1057+ (nohup ${cmd} >> ${target_dir}/log/nohup.out 2>&1 &)
1058+fi
1059
1060=== added file 'charms/chaos-monkey/config.yaml'
1061--- charms/chaos-monkey/config.yaml 1970-01-01 00:00:00 +0000
1062+++ charms/chaos-monkey/config.yaml 2017-03-29 15:30:42 +0000
1063@@ -0,0 +1,15 @@
1064+options:
1065+ chaos-dir:
1066+ type: string
1067+ default: /home/ubuntu/chaos-monkey
1068+ description: |
1069+ The top level directory for storing runtime files and logs.
1070+ chaos-source:
1071+ type: string
1072+ default: https://github.com/juju/chaos-monkey/archive/master.tar.gz
1073+ description: |
1074+ The URL to Chaos Monkey source as a gzip'd compressed tar archive.
1075+ dry-run:
1076+ type: boolean
1077+ default: false
1078+ description: If set to true only log what would happen.
1079
1080=== added file 'charms/chaos-monkey/copyright'
1081--- charms/chaos-monkey/copyright 1970-01-01 00:00:00 +0000
1082+++ charms/chaos-monkey/copyright 2017-03-29 15:30:42 +0000
1083@@ -0,0 +1,1 @@
1084+Copyright 2015 Canonical Ltd.
1085
1086=== added directory 'charms/chaos-monkey/hooks'
1087=== added file 'charms/chaos-monkey/hooks/config-changed'
1088--- charms/chaos-monkey/hooks/config-changed 1970-01-01 00:00:00 +0000
1089+++ charms/chaos-monkey/hooks/config-changed 2017-03-29 15:30:42 +0000
1090@@ -0,0 +1,1 @@
1091+#!/bin/sh
1092
1093=== added file 'charms/chaos-monkey/hooks/extract_chaos_monkey.bash'
1094--- charms/chaos-monkey/hooks/extract_chaos_monkey.bash 1970-01-01 00:00:00 +0000
1095+++ charms/chaos-monkey/hooks/extract_chaos_monkey.bash 2017-03-29 15:30:42 +0000
1096@@ -0,0 +1,9 @@
1097+#!/bin/bash -eux
1098+cd ${CHARM_DIR}
1099+chaos_source="$(config-get chaos-source)"
1100+wget ${chaos_source} --output-document chaos-monkey.tar.gz
1101+# Delete any existing Chaos Monkey directory.
1102+[[ -d chaos-monkey ]] && rm -rf chaos-monkey
1103+# Extract and rename chaos-monkey-master to chaos-monkey
1104+[[ -f chaos-monkey.tar.gz ]] && tar -zxf chaos-monkey.tar.gz && \
1105+ mv chaos-monkey-master chaos-monkey
1106
1107=== added file 'charms/chaos-monkey/hooks/install'
1108--- charms/chaos-monkey/hooks/install 1970-01-01 00:00:00 +0000
1109+++ charms/chaos-monkey/hooks/install 2017-03-29 15:30:42 +0000
1110@@ -0,0 +1,5 @@
1111+#!/bin/bash -eux
1112+
1113+apt-get update
1114+apt-get install -y python bzr
1115+${CHARM_DIR}/hooks/extract_chaos_monkey.bash
1116
1117=== added file 'charms/chaos-monkey/hooks/start'
1118--- charms/chaos-monkey/hooks/start 1970-01-01 00:00:00 +0000
1119+++ charms/chaos-monkey/hooks/start 2017-03-29 15:30:42 +0000
1120@@ -0,0 +1,1 @@
1121+#!/bin/sh
1122
1123=== added file 'charms/chaos-monkey/hooks/stop'
1124--- charms/chaos-monkey/hooks/stop 1970-01-01 00:00:00 +0000
1125+++ charms/chaos-monkey/hooks/stop 2017-03-29 15:30:42 +0000
1126@@ -0,0 +1,1 @@
1127+#!/bin/sh
1128
1129=== added file 'charms/chaos-monkey/hooks/upgrade-charm'
1130--- charms/chaos-monkey/hooks/upgrade-charm 1970-01-01 00:00:00 +0000
1131+++ charms/chaos-monkey/hooks/upgrade-charm 2017-03-29 15:30:42 +0000
1132@@ -0,0 +1,2 @@
1133+#!/bin/bash -eux
1134+${CHARM_DIR}/hooks/extract_chaos_monkey.bash
1135
1136=== added file 'charms/chaos-monkey/icon.svg'
1137--- charms/chaos-monkey/icon.svg 1970-01-01 00:00:00 +0000
1138+++ charms/chaos-monkey/icon.svg 2017-03-29 15:30:42 +0000
1139@@ -0,0 +1,425 @@
1140+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1141+<!-- Created with Inkscape (http://www.inkscape.org/) -->
1142+
1143+<svg
1144+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1145+ xmlns:cc="http://creativecommons.org/ns#"
1146+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1147+ xmlns:svg="http://www.w3.org/2000/svg"
1148+ xmlns="http://www.w3.org/2000/svg"
1149+ xmlns:xlink="http://www.w3.org/1999/xlink"
1150+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1151+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1152+ width="25.4mm"
1153+ height="25.4mm"
1154+ viewBox="0 0 25.4 25.4"
1155+ id="svg4249"
1156+ version="1.1"
1157+ inkscape:version="0.91+devel r"
1158+ sodipodi:docname="chaos-monkey_colours_squircle.svg">
1159+ <defs
1160+ id="defs4251">
1161+ <linearGradient
1162+ inkscape:collect="always"
1163+ id="linearGradient4210">
1164+ <stop
1165+ style="stop-color:#000000;stop-opacity:1;"
1166+ offset="0"
1167+ id="stop4212" />
1168+ <stop
1169+ style="stop-color:#000000;stop-opacity:0;"
1170+ offset="1"
1171+ id="stop4214" />
1172+ </linearGradient>
1173+ <linearGradient
1174+ inkscape:collect="always"
1175+ id="linearGradient4173">
1176+ <stop
1177+ style="stop-color:#6b3c2b;stop-opacity:1"
1178+ offset="0"
1179+ id="stop4175" />
1180+ <stop
1181+ style="stop-color:#a95d40;stop-opacity:1"
1182+ offset="1"
1183+ id="stop4177" />
1184+ </linearGradient>
1185+ <filter
1186+ style="color-interpolation-filters:sRGB"
1187+ inkscape:label="Inner Shadow"
1188+ id="filter1121">
1189+ <feFlood
1190+ flood-opacity="0.59999999999999998"
1191+ flood-color="rgb(0,0,0)"
1192+ result="flood"
1193+ id="feFlood1123" />
1194+ <feComposite
1195+ in="flood"
1196+ in2="SourceGraphic"
1197+ operator="out"
1198+ result="composite1"
1199+ id="feComposite1125" />
1200+ <feGaussianBlur
1201+ in="composite1"
1202+ stdDeviation="1"
1203+ result="blur"
1204+ id="feGaussianBlur1127" />
1205+ <feOffset
1206+ dx="0"
1207+ dy="2"
1208+ result="offset"
1209+ id="feOffset1129" />
1210+ <feComposite
1211+ in="offset"
1212+ in2="SourceGraphic"
1213+ operator="atop"
1214+ result="composite2"
1215+ id="feComposite1131" />
1216+ </filter>
1217+ <filter
1218+ inkscape:collect="always"
1219+ style="color-interpolation-filters:sRGB"
1220+ id="filter4200"
1221+ x="-0.024"
1222+ width="1.048"
1223+ y="-0.024"
1224+ height="1.048">
1225+ <feGaussianBlur
1226+ inkscape:collect="always"
1227+ stdDeviation="0.087974405"
1228+ id="feGaussianBlur4202" />
1229+ </filter>
1230+ <filter
1231+ inkscape:collect="always"
1232+ style="color-interpolation-filters:sRGB"
1233+ id="filter4206"
1234+ x="-0.096"
1235+ width="1.192"
1236+ y="-0.096"
1237+ height="1.192">
1238+ <feGaussianBlur
1239+ inkscape:collect="always"
1240+ stdDeviation="0.35189762"
1241+ id="feGaussianBlur4208" />
1242+ </filter>
1243+ <linearGradient
1244+ inkscape:collect="always"
1245+ xlink:href="#linearGradient4210"
1246+ id="linearGradient4216"
1247+ x1="-421.12213"
1248+ y1="82.231171"
1249+ x2="-416.4339"
1250+ y2="82.231171"
1251+ gradientUnits="userSpaceOnUse"
1252+ spreadMethod="reflect"
1253+ gradientTransform="translate(-0.03059077,0.36458333)" />
1254+ <linearGradient
1255+ inkscape:collect="always"
1256+ xlink:href="#linearGradient4173"
1257+ id="linearGradient4219"
1258+ x1="-423.16037"
1259+ y1="65.24778"
1260+ x2="-416.58374"
1261+ y2="90.473808"
1262+ gradientUnits="userSpaceOnUse" />
1263+ <filter
1264+ inkscape:collect="always"
1265+ style="color-interpolation-filters:sRGB"
1266+ id="filter4309"
1267+ x="-0.024"
1268+ width="1.048"
1269+ y="-0.024"
1270+ height="1.048">
1271+ <feGaussianBlur
1272+ inkscape:collect="always"
1273+ stdDeviation="0.087974405"
1274+ id="feGaussianBlur4311" />
1275+ </filter>
1276+ <linearGradient
1277+ inkscape:collect="always"
1278+ id="linearGradient4173-9">
1279+ <stop
1280+ style="stop-color:#7843ad;stop-opacity:1"
1281+ offset="0"
1282+ id="stop4175-2" />
1283+ <stop
1284+ style="stop-color:#937fdb;stop-opacity:1"
1285+ offset="1"
1286+ id="stop4177-7" />
1287+ </linearGradient>
1288+ <linearGradient
1289+ gradientTransform="translate(277.6,-625.69077)"
1290+ inkscape:collect="always"
1291+ xlink:href="#linearGradient4173-9"
1292+ id="linearGradient908"
1293+ x1="-229.44118"
1294+ y1="636.22839"
1295+ x2="-229.44118"
1296+ y2="731.29077"
1297+ gradientUnits="userSpaceOnUse" />
1298+ <filter
1299+ style="color-interpolation-filters:sRGB"
1300+ inkscape:label="Inner Shadow"
1301+ id="filter1121-5">
1302+ <feFlood
1303+ flood-opacity="0.59999999999999998"
1304+ flood-color="rgb(0,0,0)"
1305+ result="flood"
1306+ id="feFlood1123-0" />
1307+ <feComposite
1308+ in="flood"
1309+ in2="SourceGraphic"
1310+ operator="out"
1311+ result="composite1"
1312+ id="feComposite1125-8" />
1313+ <feGaussianBlur
1314+ in="composite1"
1315+ stdDeviation="1"
1316+ result="blur"
1317+ id="feGaussianBlur1127-6" />
1318+ <feOffset
1319+ dx="0"
1320+ dy="2"
1321+ result="offset"
1322+ id="feOffset1129-5" />
1323+ <feComposite
1324+ in="offset"
1325+ in2="SourceGraphic"
1326+ operator="atop"
1327+ result="composite2"
1328+ id="feComposite1131-1" />
1329+ </filter>
1330+ </defs>
1331+ <sodipodi:namedview
1332+ id="base"
1333+ pagecolor="#ffffff"
1334+ bordercolor="#666666"
1335+ borderopacity="1.0"
1336+ inkscape:pageopacity="0.0"
1337+ inkscape:pageshadow="2"
1338+ inkscape:zoom="2.6077032"
1339+ inkscape:cx="29.574735"
1340+ inkscape:cy="54.068567"
1341+ inkscape:document-units="mm"
1342+ inkscape:current-layer="layer1"
1343+ showgrid="false"
1344+ fit-margin-top="0"
1345+ fit-margin-left="0"
1346+ fit-margin-right="0"
1347+ fit-margin-bottom="0"
1348+ inkscape:snap-bbox="true"
1349+ inkscape:bbox-paths="true"
1350+ inkscape:bbox-nodes="true"
1351+ inkscape:snap-bbox-edge-midpoints="true"
1352+ inkscape:snap-bbox-midpoints="true"
1353+ inkscape:object-paths="true"
1354+ inkscape:snap-intersection-paths="true"
1355+ inkscape:snap-smooth-nodes="true"
1356+ inkscape:snap-midpoints="true"
1357+ inkscape:snap-object-midpoints="true"
1358+ inkscape:snap-center="true"
1359+ inkscape:snap-global="true"
1360+ inkscape:snap-page="true"
1361+ showguides="false"
1362+ inkscape:guide-bbox="true">
1363+ <inkscape:grid
1364+ type="xygrid"
1365+ id="grid4206" />
1366+ <sodipodi:guide
1367+ position="12.7,8.5462876"
1368+ orientation="1,0"
1369+ id="guide4249"
1370+ inkscape:label=""
1371+ inkscape:color="rgb(0,0,255)" />
1372+ </sodipodi:namedview>
1373+ <metadata
1374+ id="metadata4254">
1375+ <rdf:RDF>
1376+ <cc:Work
1377+ rdf:about="">
1378+ <dc:format>image/svg+xml</dc:format>
1379+ <dc:type
1380+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1381+ <dc:title></dc:title>
1382+ </cc:Work>
1383+ </rdf:RDF>
1384+ </metadata>
1385+ <g
1386+ inkscape:label="Layer 1"
1387+ inkscape:groupmode="layer"
1388+ id="layer1"
1389+ transform="translate(433.76548,-65.073809)">
1390+ <path
1391+ style="display:inline;fill:url(#linearGradient908);fill-opacity:1;stroke:none;filter:url(#filter1121-5)"
1392+ d="M 9.6000004,74.46486 V 40.73513 C 9.6000004,13.49189 13.48785,9.6000004 40.70302,9.6000004 H 74.4971 c 27.21507,0 31.1029,3.8918896 31.1029,31.1351296 V 74.46486 C 105.6,101.70811 101.71217,105.6 74.4971,105.6 H 40.70302 C 13.48785,105.6 9.6000004,101.70811 9.6000004,74.46486 Z"
1393+ id="path6455"
1394+ inkscape:connector-curvature="0"
1395+ sodipodi:nodetypes="sssssssss"
1396+ transform="matrix(0.26458333,0,0,0.26458333,-436.30548,62.533811)" />
1397+ <g
1398+ id="g4211">
1399+ <circle
1400+ transform="rotate(-120)"
1401+ inkscape:transform-center-x="-3.7735543"
1402+ inkscape:transform-center-y="-2.17872"
1403+ cy="-399.44754"
1404+ cx="142.7204"
1405+ id="circle4258"
1406+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#b5baea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1407+ r="4.3987203" />
1408+ <path
1409+ id="ellipse4298"
1410+ d="m -411.74667,75.235464 a 5.6223427,5.6223427 0 0 1 -1.76268,5.038968 2.6723602,2.6723605 60 0 0 2.2288,-0.201021 2.6723602,2.6723605 60 0 0 0.97824,-3.650423 2.6723602,2.6723605 60 0 0 -1.44436,-1.187524 z"
1411+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#b5baea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1412+ inkscape:connector-curvature="0" />
1413+ <path
1414+ id="ellipse4300"
1415+ d="m -430.41736,75.242698 a 2.6723602,2.6723605 60 0 0 -0.44184,0.202055 2.6723602,2.6723605 60 0 0 -0.97823,3.650423 2.6723602,2.6723605 60 0 0 3.18378,1.189592 5.6488129,5.6488129 0 0 1 -1.76371,-5.04207 z"
1416+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#b5baea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1417+ inkscape:connector-curvature="0" />
1418+ <circle
1419+ transform="rotate(120)"
1420+ cy="329.85925"
1421+ cx="278.34512"
1422+ id="circle4302"
1423+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#b5baea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1424+ r="4.3987203" />
1425+ <circle
1426+ r="4.3987203"
1427+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1428+ id="circle4260"
1429+ cx="278.34512"
1430+ cy="329.85925"
1431+ inkscape:transform-center-y="-2.1786389"
1432+ inkscape:transform-center-x="3.7735878"
1433+ transform="rotate(120)" />
1434+ <g
1435+ id="g4251">
1436+ <ellipse
1437+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#e93549;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1438+ id="path4214"
1439+ cx="-424.09668"
1440+ cy="77.69136"
1441+ rx="2.873404"
1442+ ry="2.6078522" />
1443+ <path
1444+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fac82e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.62029862;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
1445+ d="m -421.07726,76.865803 c -0.51742,-1.228148 -1.71184,-2.130204 -3.12526,-2.110596 -1.63008,0.02261 -3.05795,1.348806 -3.03003,3.021432 0.024,1.440786 1.1986,2.702933 2.67943,2.673759 1.2701,-0.02502 2.38123,-1.062332 2.35124,-2.370197 -0.0256,-1.116744 -0.9395,-2.093655 -2.09196,-2.063225 -0.97951,0.02586 -1.8356,0.8293 -1.80505,1.842692 0.0258,0.857219 0.73098,1.605876 1.62046,1.57546 0.74873,-0.0256 1.40179,-0.642389 1.37171,-1.421981 -0.0252,-0.652969 -0.56437,-1.222818 -1.247,-1.193218 -0.56888,0.02467 -1.0655,0.496438 -1.03647,1.093998 0.0241,0.495457 0.43689,0.92689 0.96027,0.898468 0.42566,-0.02311 0.78988,-0.376833 0.77361,-0.826698 0.002,0.01802 0.0202,0.02969 0.0209,0.04797 0.0181,0.468213 -0.39328,0.856542 -0.86149,0.872553 -0.57877,0.01979 -1.05524,-0.486317 -1.07261,-1.062464 -0.0212,-0.703303 0.59201,-1.279668 1.28994,-1.298097 0.84295,-0.02226 1.52947,0.711494 1.54861,1.546186 0.0229,0.998886 -0.84498,1.809475 -1.83259,1.828933 -1.17235,0.0231 -2.12042,-0.994455 -2.13975,-2.152344 -0.0228,-1.364615 1.16138,-2.465655 2.50819,-2.48434 1.57699,-0.02188 2.84624,1.346793 2.86372,2.902457 0.0177,1.573924 -1.18694,2.933664 -2.72277,3.221011 l 0.0967,0.519959 c 1.7824,-0.33348 3.17562,-1.901645 3.15489,-3.746914 -0.005,-0.459824 -0.10216,-0.90542 -0.27464,-1.314802 z m -3.34606,1.01309 0.0586,0.185969 c -0.0645,0.0068 -0.1024,-0.03159 -0.10651,-0.07541 -0.003,-0.0356 0.0118,-0.05013 0.0291,-0.05158 0.001,-9.2e-5 -0.0128,-0.01359 -0.0139,-0.02874 -10e-4,-0.01334 0.0241,-0.0173 0.0328,-0.03024 z"
1446+ id="path4250"
1447+ inkscape:connector-curvature="0" />
1448+ <ellipse
1449+ ry="2.6078522"
1450+ rx="2.8529768"
1451+ cy="77.69136"
1452+ cx="-418.05707"
1453+ id="ellipse4216"
1454+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#e93549;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1455+ <path
1456+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fac82e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.62029862;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
1457+ d="m -421.05722,76.865803 c 0.51742,-1.228148 1.71184,-2.130204 3.12526,-2.110596 1.63008,0.02261 3.05795,1.348806 3.03003,3.021432 -0.024,1.440786 -1.1986,2.702933 -2.67943,2.673759 -1.2701,-0.02502 -2.38123,-1.062332 -2.35124,-2.370197 0.0256,-1.116744 0.9395,-2.093655 2.09196,-2.063225 0.97951,0.02586 1.8356,0.8293 1.80505,1.842692 -0.0258,0.857219 -0.73098,1.605876 -1.62046,1.57546 -0.74873,-0.0256 -1.40179,-0.642389 -1.37171,-1.421981 0.0252,-0.652969 0.56437,-1.222818 1.247,-1.193218 0.56888,0.02467 1.0655,0.496438 1.03647,1.093998 -0.0241,0.495457 -0.43689,0.92689 -0.96027,0.898468 -0.42566,-0.02311 -0.78988,-0.376833 -0.77361,-0.826698 -0.002,0.01802 -0.0202,0.02969 -0.0209,0.04797 -0.0181,0.468213 0.39328,0.856542 0.86149,0.872553 0.57877,0.01979 1.05524,-0.486317 1.07261,-1.062464 0.0212,-0.703303 -0.59201,-1.279668 -1.28994,-1.298097 -0.84295,-0.02226 -1.52947,0.711494 -1.54861,1.546186 -0.0229,0.998886 0.84498,1.809475 1.83259,1.828933 1.17235,0.0231 2.12042,-0.994455 2.13975,-2.152344 0.0228,-1.364615 -1.16138,-2.465655 -2.50819,-2.48434 -1.57699,-0.02188 -2.84624,1.346793 -2.86372,2.902457 -0.0177,1.573924 1.18694,2.933664 2.72277,3.221011 l -0.0967,0.519959 c -1.7824,-0.33348 -3.17562,-1.901645 -3.15489,-3.746914 0.005,-0.459824 0.10216,-0.90542 0.27464,-1.314802 z m 3.34606,1.01309 -0.0586,0.185969 c 0.0645,0.0068 0.1024,-0.03159 0.10651,-0.07541 0.003,-0.0356 -0.0118,-0.05013 -0.0291,-0.05158 -0.001,-9.2e-5 0.0128,-0.01359 0.0139,-0.02874 10e-4,-0.01334 -0.0241,-0.0173 -0.0328,-0.03024 z"
1458+ id="path4273"
1459+ inkscape:connector-curvature="0" />
1460+ <circle
1461+ r="0.49922371"
1462+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916682;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1463+ id="path4275"
1464+ cx="-424.49808"
1465+ cy="77.942444" />
1466+ <circle
1467+ r="0.49922371"
1468+ cy="77.942444"
1469+ cx="-417.63455"
1470+ id="ellipse4279"
1471+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916682;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1472+ </g>
1473+ </g>
1474+ <path
1475+ cx="-421.06549"
1476+ cy="77.773811"
1477+ r="12.7"
1478+ id="path4221"
1479+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4219);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.00264583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1480+ <path
1481+ cx="-421.06549"
1482+ cy="77.773811"
1483+ r="12.7"
1484+ id="path4223"
1485+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4219);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.00264583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1486+ <path
1487+ style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;opacity:0.07"
1488+ d="m -421.06548,65.073809 v 25.4 h 4.47053 c 7.20066,0 8.22947,-1.029631 8.22947,-8.23774 v -8.92452 c 0,-7.208107 -1.02881,-8.23774 -8.22947,-8.23774 z"
1489+ id="path4245"
1490+ inkscape:connector-curvature="0" />
1491+ <g
1492+ id="g4254">
1493+ <circle
1494+ r="4.3987203"
1495+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.13229169;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;filter:url(#filter4200);enable-background:accumulate"
1496+ id="circle4186"
1497+ cx="-421.06543"
1498+ cy="82.924911"
1499+ inkscape:transform-center-y="16.625081"
1500+ inkscape:transform-center-x="-1.5613089e-05" />
1501+ <circle
1502+ inkscape:transform-center-x="-1.5613089e-05"
1503+ inkscape:transform-center-y="16.625081"
1504+ cy="82.595749"
1505+ cx="-421.09598"
1506+ id="circle4204"
1507+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:url(#linearGradient4216);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.13229169;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;filter:url(#filter4206);enable-background:accumulate"
1508+ r="4.3987203" />
1509+ <circle
1510+ inkscape:transform-center-x="-5.0312501e-05"
1511+ inkscape:transform-center-y="4.3573636"
1512+ cy="82.824913"
1513+ cx="-421.06543"
1514+ id="circle4295"
1515+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;filter:url(#filter4309);enable-background:accumulate"
1516+ r="4.3987203" />
1517+ <circle
1518+ r="4.3987203"
1519+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#dcdef5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1520+ id="circle4256"
1521+ cx="-421.06543"
1522+ cy="82.660332"
1523+ inkscape:transform-center-y="4.3573636"
1524+ inkscape:transform-center-x="-5.0312501e-05" />
1525+ <path
1526+ d="m -386.09785,186.03619 a 0.72313833,0.72313839 0 0 1 -0.36156,0.62626 0.72313833,0.72313839 0 0 1 -0.72314,0 0.72313833,0.72313839 0 0 1 -0.36157,-0.62626 l 0.72314,0 z"
1527+ sodipodi:end="3.1415927"
1528+ sodipodi:start="0"
1529+ sodipodi:ry="0.72313839"
1530+ sodipodi:rx="0.72313833"
1531+ sodipodi:cy="186.03619"
1532+ sodipodi:cx="-386.82098"
1533+ sodipodi:type="arc"
1534+ transform="rotate(15)"
1535+ id="ellipse4289"
1536+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#8866c8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1537+ <path
1538+ d="m 427.33816,-31.923328 a 0.72313833,0.72313839 0 0 1 -0.36157,0.626256 0.72313833,0.72313839 0 0 1 -0.72314,0 0.72313833,0.72313839 0 0 1 -0.36157,-0.626256 l 0.72314,0 z"
1539+ sodipodi:end="3.1415927"
1540+ sodipodi:start="0"
1541+ sodipodi:ry="0.72313839"
1542+ sodipodi:rx="0.72313833"
1543+ sodipodi:cy="-31.923328"
1544+ sodipodi:cx="426.61502"
1545+ sodipodi:type="arc"
1546+ transform="matrix(-0.96592583,0.25881905,0.25881905,0.96592583,0,0)"
1547+ id="ellipse4293"
1548+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#8866c8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate" />
1549+ <path
1550+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.3;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.13229167;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1551+ d="m -421.06536,78.24321 a 4.3987201,4.3987201 0 0 0 -4.39869,4.398698 4.3987201,4.3987201 0 0 0 0.004,0.118339 4.3987201,4.3987201 0 0 1 4.39456,-4.31705 4.3987201,4.3987201 0 0 1 4.39457,4.281393 4.3987201,4.3987201 0 0 0 0.004,-0.08268 4.3987201,4.3987201 0 0 0 -4.3987,-4.398698 z"
1552+ id="path4293"
1553+ inkscape:connector-curvature="0" />
1554+ <circle
1555+ inkscape:transform-center-x="-1.5613089e-05"
1556+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06614583;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1;stroke-opacity:1;marker:none;enable-background:accumulate"
1557+ id="ellipse4197"
1558+ cx="-421.06543"
1559+ cy="84.693413"
1560+ inkscape:transform-center-y="4.1562601"
1561+ r="1.0996777" />
1562+ </g>
1563+ </g>
1564+</svg>
1565
1566=== added file 'charms/chaos-monkey/metadata.yaml'
1567--- charms/chaos-monkey/metadata.yaml 1970-01-01 00:00:00 +0000
1568+++ charms/chaos-monkey/metadata.yaml 2017-03-29 15:30:42 +0000
1569@@ -0,0 +1,20 @@
1570+name: chaos-monkey
1571+maintainer: John George <john.george@canonical.com>
1572+summary: Chaos Monkey
1573+description: |
1574+ This charm is used to deploy and run the chaos monkey.
1575+requires:
1576+ juju-info:
1577+ interface: juju-info
1578+ scope: container
1579+tags:
1580+ - misc
1581+subordinate: true
1582+series:
1583+ - trusty
1584+ - precise
1585+ - utopic
1586+ - vivid
1587+ - wily
1588+ - xenial
1589+
1590
1591=== added directory 'charms/client-forwardproxy'
1592=== added file 'charms/client-forwardproxy/Makefile'
1593--- charms/client-forwardproxy/Makefile 1970-01-01 00:00:00 +0000
1594+++ charms/client-forwardproxy/Makefile 2017-03-29 15:30:42 +0000
1595@@ -0,0 +1,24 @@
1596+PWD := $(shell pwd)
1597+HOOKS_DIR := $(PWD)/hooks
1598+TEST_DIR := $(PWD)/hooks/tests
1599+CHARM_DIR := $(PWD)
1600+
1601+
1602+build: test proof
1603+
1604+revision:
1605+ @test -f revision || echo 0 > revision
1606+
1607+proof: revision
1608+ @echo Proofing charm...
1609+ @(charm proof $(PWD) || [ $$? -eq 100 ]) && echo OK
1610+ @test `cat revision` = 0 && rm revision
1611+
1612+test:
1613+ @echo no tests yet...
1614+
1615+clean:
1616+ rm -rf .venv
1617+
1618+
1619+.PHONY: revision proof test lint sourcedeps charm-payload
1620
1621=== added file 'charms/client-forwardproxy/README'
1622--- charms/client-forwardproxy/README 1970-01-01 00:00:00 +0000
1623+++ charms/client-forwardproxy/README 2017-03-29 15:30:42 +0000
1624@@ -0,0 +1,21 @@
1625+A simple proxy client use for testing closed or restricted network
1626+conditions.
1627+
1628+This client-forwardproxy works in tandem with the squid-forwardproxy
1629+charm, or any charm that provides forwardproxy. Any Juju application or
1630+provisioned machine can be set up to use the forward proxy like so:
1631+
1632+ juju deploy squid-forwardproxy
1633+ juju deploy xenial/ubuntu x1
1634+ juju deploy client-forwardproxy --to 1
1635+ juju add-relation client-forwardproxy:forwardproxy squid-forwardproxy:forwardproxy
1636+
1637+The local host and containers on the lxdbr0 are automatically in the
1638+no_proxy list. You can configure additional sites to not proxy.
1639+
1640+ juju config client-forwardproxy extra-no-proxy="ubuntu.com canonical.com"
1641+
1642+This charm also adds the Ubuntu proposed archive to install and test
1643+optional packages.
1644+
1645+ juju config client-forwardproxy proposed-packages="python-boto s3cmd"
1646
1647=== added file 'charms/client-forwardproxy/config.yaml'
1648--- charms/client-forwardproxy/config.yaml 1970-01-01 00:00:00 +0000
1649+++ charms/client-forwardproxy/config.yaml 2017-03-29 15:30:42 +0000
1650@@ -0,0 +1,13 @@
1651+options:
1652+ proposed-packages:
1653+ type: string
1654+ default: ''
1655+ description: |
1656+ A space-separated list of packages to install from the proposed archive.
1657+ they will be installed using apt-get install -r.
1658+ extra-no-proxy:
1659+ type: string
1660+ default: ''
1661+ description: |
1662+ A space-separated list of extra sites to not proxy. localhost and the
1663+ lxd bridge are always in the no-proxy list.
1664
1665=== added file 'charms/client-forwardproxy/copyright'
1666--- charms/client-forwardproxy/copyright 1970-01-01 00:00:00 +0000
1667+++ charms/client-forwardproxy/copyright 2017-03-29 15:30:42 +0000
1668@@ -0,0 +1,1 @@
1669+Copyright 2016 Canonical Ltd.
1670
1671=== added directory 'charms/client-forwardproxy/hooks'
1672=== added file 'charms/client-forwardproxy/hooks/config-changed'
1673--- charms/client-forwardproxy/hooks/config-changed 1970-01-01 00:00:00 +0000
1674+++ charms/client-forwardproxy/hooks/config-changed 2017-03-29 15:30:42 +0000
1675@@ -0,0 +1,61 @@
1676+#!/bin/bash
1677+set -eux
1678+
1679+PROXY_IP=""
1680+PROXY_PORT=""
1681+
1682+
1683+status-set maintenance "Checking config" || true
1684+PROPOSED_PACKAGES="$(config-get proposed-packages)"
1685+if [[ "$PROPOSED_PACKAGES" != "" ]]; then
1686+ status-set maintenance "Disabling firewall to install packages" || true
1687+ UFW_STATUS=$(ufw status | cut -d ' ' -f2)
1688+ ufw disable
1689+ status-set maintenance "Installing packages from the proposed archive" || true
1690+ RELEASE=$(lsb_release -sc)
1691+ apt-get update
1692+ apt-get install -y -t $RELEASE-proposed $PROPOSED_PACKAGES
1693+ status-set maintenance "Packages installed" || true
1694+ if [[ $UFW_STATUS == "active" ]]; then
1695+ status-set maintenance "Enabling the firewall" || true
1696+ ufw --force enable
1697+ fi
1698+fi
1699+
1700+status-set maintenance "Checking proxy." || true
1701+set +e
1702+# This is a hack. We don't want to iterate, but we need to
1703+# because we need the state of relations and config to know
1704+# if this charm is active or something else.
1705+for app in $(relation-ids forwardproxy); do
1706+ for unit in $(relation-list -r $app); do
1707+ PROXY_IP="$(relation-get -r $app ip $unit)"
1708+ PROXY_PORT="$(relation-get -r $app port $unit)"
1709+ done
1710+done
1711+set -e
1712+
1713+if [[ "$PROXY_IP" == "" || "$PROXY_PORT" == "" ]]; then
1714+ status-set maintenance "Removing firewall rules" || true
1715+ echo "PATH="$PATH"" > /etc/environment
1716+ status-set waiting "Waiting for forwardproxy" || true
1717+ exit 0
1718+fi
1719+
1720+# LXD was given the 10.0.8.* by scripts/setup-lxd.sh
1721+LXD_ADDRESSES="$(echo 10.0.8.{1..255} | sed 's/ /,/g')"
1722+EXTRA_NO_PROXY="$(config-get extra-no-proxy | sed -e 's/ /,/g')"
1723+NO_PROXY="localhost,127.0.0.1,$EXTRA_NO_PROXY,$LXD_ADDRESSES"
1724+status-set maintenance "Updating proxy rules." || true
1725+cat > /etc/environment << EOF
1726+PATH="$PATH"
1727+http_proxy=http://$PROXY_IP:$PROXY_PORT/
1728+https_proxy=http://$PROXY_IP:$PROXY_PORT/
1729+ftp_proxy=http://$PROXY_IP:$PROXY_PORT/
1730+no_proxy=$NO_PROXY
1731+HTTP_PROXY=http://$PROXY_IP:$PROXY_PORT/
1732+HTTPS_PROXY=http://$PROXY_IP:$PROXY_PORT/
1733+FTP_PROXY=http://$PROXY_IP:$PROXY_PORT/
1734+NO_PROXY=$NO_PROXY
1735+EOF
1736+status-set active "Updated proxy rules" || true
1737
1738=== added symlink 'charms/client-forwardproxy/hooks/forwardproxy-relation-changed'
1739=== target is u'config-changed'
1740=== added symlink 'charms/client-forwardproxy/hooks/forwardproxy-relation-departed'
1741=== target is u'config-changed'
1742=== added symlink 'charms/client-forwardproxy/hooks/forwardproxy-relation-joined'
1743=== target is u'config-changed'
1744=== added file 'charms/client-forwardproxy/hooks/install'
1745--- charms/client-forwardproxy/hooks/install 1970-01-01 00:00:00 +0000
1746+++ charms/client-forwardproxy/hooks/install 2017-03-29 15:30:42 +0000
1747@@ -0,0 +1,22 @@
1748+#!/bin/bash
1749+set -eux
1750+
1751+status-set maintenance "Installing" || true
1752+if ifconfig lxdbr0 2>&1 | grep -q "HWaddr"; then
1753+ status-set maintenance "Configuring LXD" || true
1754+ $JUJU_CHARM_DIR/scripts/setup-lxd.sh
1755+fi
1756+
1757+RELEASE=$(lsb_release -sc)
1758+
1759+status-set maintenance "Adding /etc/apt/preferences.d/proposed-updates" || true
1760+cat > /etc/apt/preferences.d/proposed-updates << EOF
1761+Package: *
1762+Pin: release a=$RELEASE-proposed
1763+Pin-Priority: 400
1764+EOF
1765+
1766+status-set maintenance "installing firewall packages" || true
1767+apt-get update
1768+apt-get install -y ufw
1769+status-set maintenance "Installed" || true
1770
1771=== added symlink 'charms/client-forwardproxy/hooks/start'
1772=== target is u'config-changed'
1773=== added file 'charms/client-forwardproxy/hooks/stop'
1774--- charms/client-forwardproxy/hooks/stop 1970-01-01 00:00:00 +0000
1775+++ charms/client-forwardproxy/hooks/stop 2017-03-29 15:30:42 +0000
1776@@ -0,0 +1,6 @@
1777+#!/bin/bash
1778+set -eux
1779+
1780+status-set maintenance "Stopping" || true
1781+service ufw disable || true
1782+status-set maintenance "Stopped" || true
1783
1784=== added file 'charms/client-forwardproxy/icon.svg'
1785--- charms/client-forwardproxy/icon.svg 1970-01-01 00:00:00 +0000
1786+++ charms/client-forwardproxy/icon.svg 2017-03-29 15:30:42 +0000
1787@@ -0,0 +1,1163 @@
1788+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1789+<!-- Created with Inkscape (http://www.inkscape.org/) -->
1790+
1791+<svg
1792+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1793+ xmlns:cc="http://creativecommons.org/ns#"
1794+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1795+ xmlns:svg="http://www.w3.org/2000/svg"
1796+ xmlns="http://www.w3.org/2000/svg"
1797+ xmlns:xlink="http://www.w3.org/1999/xlink"
1798+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1799+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1800+ width="96"
1801+ height="96"
1802+ id="svg6517"
1803+ version="1.1"
1804+ inkscape:version="0.48+devel r12505"
1805+ sodipodi:docname="squid-cache.svg">
1806+ <defs
1807+ id="defs6519">
1808+ <filter
1809+ style="color-interpolation-filters:sRGB;"
1810+ inkscape:label="Inner Shadow"
1811+ id="filter1121">
1812+ <feFlood
1813+ flood-opacity="0.59999999999999998"
1814+ flood-color="rgb(0,0,0)"
1815+ result="flood"
1816+ id="feFlood1123" />
1817+ <feComposite
1818+ in="flood"
1819+ in2="SourceGraphic"
1820+ operator="out"
1821+ result="composite1"
1822+ id="feComposite1125" />
1823+ <feGaussianBlur
1824+ in="composite1"
1825+ stdDeviation="1"
1826+ result="blur"
1827+ id="feGaussianBlur1127" />
1828+ <feOffset
1829+ dx="0"
1830+ dy="2"
1831+ result="offset"
1832+ id="feOffset1129" />
1833+ <feComposite
1834+ in="offset"
1835+ in2="SourceGraphic"
1836+ operator="atop"
1837+ result="composite2"
1838+ id="feComposite1131" />
1839+ </filter>
1840+ <filter
1841+ style="color-interpolation-filters:sRGB;"
1842+ inkscape:label="Drop Shadow"
1843+ id="filter950">
1844+ <feFlood
1845+ flood-opacity="0.25"
1846+ flood-color="rgb(0,0,0)"
1847+ result="flood"
1848+ id="feFlood952" />
1849+ <feComposite
1850+ in="flood"
1851+ in2="SourceGraphic"
1852+ operator="in"
1853+ result="composite1"
1854+ id="feComposite954" />
1855+ <feGaussianBlur
1856+ in="composite1"
1857+ stdDeviation="1"
1858+ result="blur"
1859+ id="feGaussianBlur956" />
1860+ <feOffset
1861+ dx="0"
1862+ dy="1"
1863+ result="offset"
1864+ id="feOffset958" />
1865+ <feComposite
1866+ in="SourceGraphic"
1867+ in2="offset"
1868+ operator="over"
1869+ result="composite2"
1870+ id="feComposite960" />
1871+ </filter>
1872+ <filter
1873+ inkscape:collect="always"
1874+ id="filter891"
1875+ inkscape:label="Badge Shadow">
1876+ <feGaussianBlur
1877+ inkscape:collect="always"
1878+ stdDeviation="0.71999962"
1879+ id="feGaussianBlur893" />
1880+ </filter>
1881+ <filter
1882+ height="1.6591635"
1883+ y="-0.32958177"
1884+ width="1.7932079"
1885+ x="-0.39660394"
1886+ id="filter4316"
1887+ inkscape:collect="always">
1888+ <feGaussianBlur
1889+ id="feGaussianBlur4318"
1890+ stdDeviation="1.591987"
1891+ inkscape:collect="always" />
1892+ </filter>
1893+ <filter
1894+ height="1.192"
1895+ y="-0.096000001"
1896+ width="1.192"
1897+ x="-0.096000001"
1898+ id="filter4355"
1899+ inkscape:collect="always">
1900+ <feGaussianBlur
1901+ id="feGaussianBlur4357"
1902+ stdDeviation="0.58895659"
1903+ inkscape:collect="always" />
1904+ </filter>
1905+ <filter
1906+ height="1.3296711"
1907+ y="-0.16483553"
1908+ width="1.188679"
1909+ x="-0.094339505"
1910+ id="filter4423"
1911+ inkscape:collect="always">
1912+ <feGaussianBlur
1913+ id="feGaussianBlur4425"
1914+ stdDeviation="0.6575494"
1915+ inkscape:collect="always" />
1916+ </filter>
1917+ <filter
1918+ height="1.2081455"
1919+ y="-0.10407273"
1920+ width="1.1100769"
1921+ x="-0.055038461"
1922+ id="filter4727"
1923+ inkscape:collect="always">
1924+ <feGaussianBlur
1925+ id="feGaussianBlur4729"
1926+ stdDeviation="1.9449577"
1927+ inkscape:collect="always" />
1928+ </filter>
1929+ <filter
1930+ height="1.2229152"
1931+ y="-0.1114576"
1932+ width="1.1347936"
1933+ x="-0.067396788"
1934+ id="filter4756"
1935+ inkscape:collect="always">
1936+ <feGaussianBlur
1937+ id="feGaussianBlur4758"
1938+ stdDeviation="2.4366067"
1939+ inkscape:collect="always" />
1940+ </filter>
1941+ <filter
1942+ height="1.2339238"
1943+ y="-0.11696188"
1944+ width="1.1310639"
1945+ x="-0.065531962"
1946+ id="filter4762"
1947+ inkscape:collect="always">
1948+ <feGaussianBlur
1949+ id="feGaussianBlur4764"
1950+ stdDeviation="2.204443"
1951+ inkscape:collect="always" />
1952+ </filter>
1953+ <filter
1954+ height="1.2938571"
1955+ y="-0.14692857"
1956+ width="1.2396505"
1957+ x="-0.11982524"
1958+ id="filter4842"
1959+ inkscape:collect="always">
1960+ <feGaussianBlur
1961+ id="feGaussianBlur4844"
1962+ stdDeviation="0.67099002"
1963+ inkscape:collect="always" />
1964+ </filter>
1965+ <filter
1966+ height="1.267661"
1967+ y="-0.13383051"
1968+ width="1.1496872"
1969+ x="-0.074843602"
1970+ id="filter4878"
1971+ inkscape:collect="always">
1972+ <feGaussianBlur
1973+ id="feGaussianBlur4880"
1974+ stdDeviation="1.3414907"
1975+ inkscape:collect="always" />
1976+ </filter>
1977+ <filter
1978+ height="1.1367442"
1979+ y="-0.068372093"
1980+ width="1.0739623"
1981+ x="-0.036981132"
1982+ id="filter4884"
1983+ inkscape:collect="always">
1984+ <feGaussianBlur
1985+ id="feGaussianBlur4886"
1986+ stdDeviation="0.99898246"
1987+ inkscape:collect="always" />
1988+ </filter>
1989+ <filter
1990+ height="1.2074345"
1991+ y="-0.10371727"
1992+ width="1.1102768"
1993+ x="-0.055138398"
1994+ id="filter4928"
1995+ inkscape:collect="always">
1996+ <feGaussianBlur
1997+ id="feGaussianBlur4930"
1998+ stdDeviation="1.8313925"
1999+ inkscape:collect="always" />
2000+ </filter>
2001+ <filter
2002+ height="1.1822857"
2003+ y="-0.091142852"
2004+ width="1.0894393"
2005+ x="-0.044719627"
2006+ id="filter4962"
2007+ inkscape:collect="always">
2008+ <feGaussianBlur
2009+ id="feGaussianBlur4964"
2010+ stdDeviation="0.81294741"
2011+ inkscape:collect="always" />
2012+ </filter>
2013+ <filter
2014+ height="1.0684771"
2015+ y="-0.034238532"
2016+ width="1.0369505"
2017+ x="-0.018475248"
2018+ id="filter4980"
2019+ inkscape:collect="always">
2020+ <feGaussianBlur
2021+ id="feGaussianBlur4982"
2022+ stdDeviation="0.63404806"
2023+ inkscape:collect="always" />
2024+ </filter>
2025+ <filter
2026+ height="1.1421972"
2027+ y="-0.071098591"
2028+ width="1.0724593"
2029+ x="-0.036229665"
2030+ id="filter5014"
2031+ inkscape:collect="always">
2032+ <feGaussianBlur
2033+ id="feGaussianBlur5016"
2034+ stdDeviation="1.2864448"
2035+ inkscape:collect="always" />
2036+ </filter>
2037+ <filter
2038+ height="1.2166729"
2039+ y="-0.10833645"
2040+ width="1.1078326"
2041+ x="-0.053916279"
2042+ id="filter5052"
2043+ inkscape:collect="always">
2044+ <feGaussianBlur
2045+ id="feGaussianBlur5054"
2046+ stdDeviation="0.98471128"
2047+ inkscape:collect="always" />
2048+ </filter>
2049+ <filter
2050+ height="1.1101202"
2051+ y="-0.055060109"
2052+ width="1.0534851"
2053+ x="-0.026742554"
2054+ id="filter5066"
2055+ inkscape:collect="always">
2056+ <feGaussianBlur
2057+ id="feGaussianBlur5068"
2058+ stdDeviation="0.61627025"
2059+ inkscape:collect="always" />
2060+ </filter>
2061+ <filter
2062+ height="1.3084375"
2063+ y="-0.15421875"
2064+ width="1.1154386"
2065+ x="-0.057719299"
2066+ id="filter5128"
2067+ inkscape:collect="always">
2068+ <feGaussianBlur
2069+ id="feGaussianBlur5130"
2070+ stdDeviation="0.34342163"
2071+ inkscape:collect="always" />
2072+ </filter>
2073+ <filter
2074+ height="1.271688"
2075+ y="-0.135844"
2076+ width="1.1215943"
2077+ x="-0.060797153"
2078+ id="filter5254"
2079+ inkscape:collect="always">
2080+ <feGaussianBlur
2081+ id="feGaussianBlur5256"
2082+ stdDeviation="0.89657"
2083+ inkscape:collect="always" />
2084+ </filter>
2085+ <filter
2086+ height="1.2861023"
2087+ y="-0.14305117"
2088+ width="1.2066935"
2089+ x="-0.10334677"
2090+ id="filter5260"
2091+ inkscape:collect="always">
2092+ <feGaussianBlur
2093+ id="feGaussianBlur5262"
2094+ stdDeviation="1.1813088"
2095+ inkscape:collect="always" />
2096+ </filter>
2097+ <filter
2098+ height="1.1678395"
2099+ y="-0.083919731"
2100+ width="1.1260905"
2101+ x="-0.063045227"
2102+ id="filter5314"
2103+ inkscape:collect="always">
2104+ <feGaussianBlur
2105+ id="feGaussianBlur5316"
2106+ stdDeviation="1.0913292"
2107+ inkscape:collect="always" />
2108+ </filter>
2109+ <filter
2110+ height="1.1512575"
2111+ y="-0.075628747"
2112+ width="1.0994488"
2113+ x="-0.049724408"
2114+ id="filter5361"
2115+ inkscape:collect="always">
2116+ <feGaussianBlur
2117+ id="feGaussianBlur5363"
2118+ stdDeviation="0.85830939"
2119+ inkscape:collect="always" />
2120+ </filter>
2121+ <filter
2122+ height="1.2177609"
2123+ y="-0.10888045"
2124+ width="1.4251246"
2125+ x="-0.21256228"
2126+ id="filter5418"
2127+ inkscape:collect="always">
2128+ <feGaussianBlur
2129+ id="feGaussianBlur5420"
2130+ stdDeviation="1.0803968"
2131+ inkscape:collect="always" />
2132+ </filter>
2133+ <linearGradient
2134+ inkscape:collect="always"
2135+ id="linearGradient902">
2136+ <stop
2137+ style="stop-color:#ff9200;stop-opacity:1"
2138+ offset="0"
2139+ id="stop904" />
2140+ <stop
2141+ style="stop-color:#ffcc00;stop-opacity:1"
2142+ offset="1"
2143+ id="stop906" />
2144+ </linearGradient>
2145+ <linearGradient
2146+ id="Background">
2147+ <stop
2148+ id="stop4178"
2149+ offset="0"
2150+ style="stop-color:#22779e;stop-opacity:1" />
2151+ <stop
2152+ id="stop4180"
2153+ offset="1"
2154+ style="stop-color:#2991c0;stop-opacity:1" />
2155+ </linearGradient>
2156+ <clipPath
2157+ clipPathUnits="userSpaceOnUse"
2158+ id="clipPath873">
2159+ <g
2160+ transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
2161+ id="g875"
2162+ inkscape:label="Layer 1"
2163+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
2164+ <path
2165+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
2166+ d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
2167+ id="path877"
2168+ inkscape:connector-curvature="0"
2169+ sodipodi:nodetypes="sssssssss" />
2170+ </g>
2171+ </clipPath>
2172+ <style
2173+ id="style867"
2174+ type="text/css"><![CDATA[
2175+ .fil0 {fill:#1F1A17}
2176+ ]]></style>
2177+ <linearGradient
2178+ inkscape:collect="always"
2179+ xlink:href="#linearGradient902"
2180+ id="linearGradient908"
2181+ x1="-220"
2182+ y1="731.29077"
2183+ x2="-220"
2184+ y2="635.29077"
2185+ gradientUnits="userSpaceOnUse" />
2186+ <clipPath
2187+ id="clipPath16">
2188+ <path
2189+ id="path18"
2190+ d="m -9,-9 614,0 0,231 -614,0 0,-231 z" />
2191+ </clipPath>
2192+ <clipPath
2193+ id="clipPath116">
2194+ <path
2195+ id="path118"
2196+ d="m 91.7368,146.3253 -9.7039,-1.577 -8.8548,-3.8814 -7.5206,-4.7308 -7.1566,-8.7335 -4.0431,-4.282 -3.9093,-1.4409 -1.034,2.5271 1.8079,2.6096 0.4062,3.6802 1.211,-0.0488 1.3232,-1.2069 -0.3569,3.7488 -1.4667,0.9839 0.0445,1.4286 -3.4744,-1.9655 -3.1462,-3.712 -0.6559,-3.3176 1.3453,-2.6567 1.2549,-4.5133 2.5521,-1.2084 2.6847,0.1318 2.5455,1.4791 -1.698,-8.6122 1.698,-9.5825 -1.8692,-4.4246 -6.1223,-6.5965 1.0885,-3.941 2.9002,-4.5669 5.4688,-3.8486 2.9007,-0.3969 3.225,-0.1094 -2.012,-8.2601 7.3993,-3.0326 9.2188,-1.2129 3.1535,2.0619 0.2427,5.5797 3.5178,5.8224 0.2426,4.6094 8.4909,-0.6066 7.8843,0.7279 -7.8843,-4.7307 1.3343,-5.701 4.9731,-7.763 4.8521,-2.0622 3.8814,1.5769 1.577,3.1538 8.1269,6.1861 1.5769,-1.3343 12.7363,-0.485 2.5473,2.0619 0.2426,3.6391 -0.849,1.5767 -0.6066,9.8251 -4.2454,8.4909 0.7276,3.7605 2.5475,-1.3343 7.1566,-6.6716 3.5175,-0.2424 3.8815,1.5769 3.8818,2.9109 1.9406,6.3077 11.4021,-0.7277 6.914,2.6686 5.5797,5.2157 4.0028,7.5206 0.9706,8.8546 -0.8493,10.3105 -2.1832,9.2185 -2.1836,2.9112 -3.0322,0.9706 -5.3373,-5.8224 -4.8518,-1.6982 -4.2455,7.0353 -4.2454,3.8815 -2.3049,1.4556 -9.2185,7.6419 -7.3993,4.0028 -7.3993,0.6066 -8.6119,-1.4556 -7.5206,-2.7899 -5.2158,-4.2454 -4.1241,-4.9734 -4.2454,-1.2129" />
2197+ </clipPath>
2198+ <clipPath
2199+ id="clipPath128">
2200+ <path
2201+ id="path130"
2202+ d="m 91.7368,146.3253 -9.7039,-1.577 -8.8548,-3.8814 -7.5206,-4.7308 -7.1566,-8.7335 -4.0431,-4.282 -3.9093,-1.4409 -1.034,2.5271 1.8079,2.6096 0.4062,3.6802 1.211,-0.0488 1.3232,-1.2069 -0.3569,3.7488 -1.4667,0.9839 0.0445,1.4286 -3.4744,-1.9655 -3.1462,-3.712 -0.6559,-3.3176 1.3453,-2.6567 1.2549,-4.5133 2.5521,-1.2084 2.6847,0.1318 2.5455,1.4791 -1.698,-8.6122 1.698,-9.5825 -1.8692,-4.4246 -6.1223,-6.5965 1.0885,-3.941 2.9002,-4.5669 5.4688,-3.8486 2.9007,-0.3969 3.225,-0.1094 -2.012,-8.2601 7.3993,-3.0326 9.2188,-1.2129 3.1535,2.0619 0.2427,5.5797 3.5178,5.8224 0.2426,4.6094 8.4909,-0.6066 7.8843,0.7279 -7.8843,-4.7307 1.3343,-5.701 4.9731,-7.763 4.8521,-2.0622 3.8814,1.5769 1.577,3.1538 8.1269,6.1861 1.5769,-1.3343 12.7363,-0.485 2.5473,2.0619 0.2426,3.6391 -0.849,1.5767 -0.6066,9.8251 -4.2454,8.4909 0.7276,3.7605 2.5475,-1.3343 7.1566,-6.6716 3.5175,-0.2424 3.8815,1.5769 3.8818,2.9109 1.9406,6.3077 11.4021,-0.7277 6.914,2.6686 5.5797,5.2157 4.0028,7.5206 0.9706,8.8546 -0.8493,10.3105 -2.1832,9.2185 -2.1836,2.9112 -3.0322,0.9706 -5.3373,-5.8224 -4.8518,-1.6982 -4.2455,7.0353 -4.2454,3.8815 -2.3049,1.4556 -9.2185,7.6419 -7.3993,4.0028 -7.3993,0.6066 -8.6119,-1.4556 -7.5206,-2.7899 -5.2158,-4.2454 -4.1241,-4.9734 -4.2454,-1.2129" />
2203+ </clipPath>
2204+ <filter
2205+ height="1.1953982"
2206+ y="-0.097699106"
2207+ width="1.310986"
2208+ x="-0.15549298"
2209+ id="filter5476"
2210+ inkscape:collect="always">
2211+ <feGaussianBlur
2212+ id="feGaussianBlur5478"
2213+ stdDeviation="0.48016408"
2214+ inkscape:collect="always" />
2215+ </filter>
2216+ <linearGradient
2217+ id="linearGradient5318"
2218+ inkscape:collect="always">
2219+ <stop
2220+ id="stop5320"
2221+ offset="0"
2222+ style="stop-color:#ffffff;stop-opacity:1;" />
2223+ <stop
2224+ id="stop5322"
2225+ offset="1"
2226+ style="stop-color:#ffffff;stop-opacity:0;" />
2227+ </linearGradient>
2228+ <linearGradient
2229+ id="linearGradient4888"
2230+ inkscape:collect="always">
2231+ <stop
2232+ id="stop4890"
2233+ offset="0"
2234+ style="stop-color:#e4ffff;stop-opacity:1;" />
2235+ <stop
2236+ style="stop-color:#ffffff;stop-opacity:1"
2237+ offset="0.27682471"
2238+ id="stop4896" />
2239+ <stop
2240+ id="stop4892"
2241+ offset="1"
2242+ style="stop-color:#3ad3ff;stop-opacity:0.66975307" />
2243+ </linearGradient>
2244+ <linearGradient
2245+ id="linearGradient4605"
2246+ inkscape:collect="always">
2247+ <stop
2248+ id="stop4607"
2249+ offset="0"
2250+ style="stop-color:#00a6ae;stop-opacity:1;" />
2251+ <stop
2252+ id="stop4609"
2253+ offset="1"
2254+ style="stop-color:#30bed6;stop-opacity:1" />
2255+ </linearGradient>
2256+ <linearGradient
2257+ id="linearGradient4595"
2258+ inkscape:collect="always">
2259+ <stop
2260+ id="stop4597"
2261+ offset="0"
2262+ style="stop-color:#fde20a;stop-opacity:1" />
2263+ <stop
2264+ style="stop-color:#faac16;stop-opacity:1"
2265+ offset="0.478598"
2266+ id="stop4603" />
2267+ <stop
2268+ id="stop4599"
2269+ offset="1"
2270+ style="stop-color:#f8921a;stop-opacity:1" />
2271+ </linearGradient>
2272+ <clipPath
2273+ id="clipPath4296"
2274+ clipPathUnits="userSpaceOnUse">
2275+ <path
2276+ transform="matrix(1.6953846,0,0,1.6953846,-95.06997,-43.304227)"
2277+ d="m 54.179198,62.984692 a 4.3423524,4.3423524 0 1 1 -8.684705,0 4.3423524,4.3423524 0 1 1 8.684705,0 z"
2278+ sodipodi:ry="4.3423524"
2279+ sodipodi:rx="4.3423524"
2280+ sodipodi:cy="62.984692"
2281+ sodipodi:cx="49.836845"
2282+ id="path4298"
2283+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2284+ sodipodi:type="arc" />
2285+ </clipPath>
2286+ <clipPath
2287+ id="clipPath4327"
2288+ clipPathUnits="userSpaceOnUse">
2289+ <path
2290+ transform="matrix(1.6953846,0,0,1.6953846,-95.06997,-43.304227)"
2291+ d="m 54.179198,62.984692 a 4.3423524,4.3423524 0 1 1 -8.684705,0 4.3423524,4.3423524 0 1 1 8.684705,0 z"
2292+ sodipodi:ry="4.3423524"
2293+ sodipodi:rx="4.3423524"
2294+ sodipodi:cy="62.984692"
2295+ sodipodi:cx="49.836845"
2296+ id="path4329"
2297+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2298+ sodipodi:type="arc" />
2299+ </clipPath>
2300+ <clipPath
2301+ id="clipPath4375"
2302+ clipPathUnits="userSpaceOnUse">
2303+ <path
2304+ sodipodi:type="arc"
2305+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1.84735239;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2306+ id="path4377"
2307+ sodipodi:cx="46.179249"
2308+ sodipodi:cy="63.803059"
2309+ sodipodi:rx="11.440429"
2310+ sodipodi:ry="11.440429"
2311+ d="m 57.619678,63.803059 a 11.440429,11.440429 0 1 1 -22.880858,0 11.440429,11.440429 0 1 1 22.880858,0 z"
2312+ transform="matrix(1.0826305,0,0,1.0826305,-71.853406,-3.5601908)" />
2313+ </clipPath>
2314+ <clipPath
2315+ id="clipPath4296-4"
2316+ clipPathUnits="userSpaceOnUse">
2317+ <path
2318+ transform="matrix(1.6953846,0,0,1.6953846,-95.06997,-43.304227)"
2319+ d="m 54.179198,62.984692 a 4.3423524,4.3423524 0 1 1 -8.684705,0 4.3423524,4.3423524 0 1 1 8.684705,0 z"
2320+ sodipodi:ry="4.3423524"
2321+ sodipodi:rx="4.3423524"
2322+ sodipodi:cy="62.984692"
2323+ sodipodi:cx="49.836845"
2324+ id="path4298-0"
2325+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2326+ sodipodi:type="arc" />
2327+ </clipPath>
2328+ <clipPath
2329+ id="clipPath4327-6"
2330+ clipPathUnits="userSpaceOnUse">
2331+ <path
2332+ transform="matrix(1.6953846,0,0,1.6953846,-95.06997,-43.304227)"
2333+ d="m 54.179198,62.984692 a 4.3423524,4.3423524 0 1 1 -8.684705,0 4.3423524,4.3423524 0 1 1 8.684705,0 z"
2334+ sodipodi:ry="4.3423524"
2335+ sodipodi:rx="4.3423524"
2336+ sodipodi:cy="62.984692"
2337+ sodipodi:cx="49.836845"
2338+ id="path4329-2"
2339+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2340+ sodipodi:type="arc" />
2341+ </clipPath>
2342+ <clipPath
2343+ id="clipPath4375-1"
2344+ clipPathUnits="userSpaceOnUse">
2345+ <path
2346+ sodipodi:type="arc"
2347+ style="color:#000000;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1.84735239;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2348+ id="path4377-3"
2349+ sodipodi:cx="46.179249"
2350+ sodipodi:cy="63.803059"
2351+ sodipodi:rx="11.440429"
2352+ sodipodi:ry="11.440429"
2353+ d="m 57.619678,63.803059 a 11.440429,11.440429 0 1 1 -22.880858,0 11.440429,11.440429 0 1 1 22.880858,0 z"
2354+ transform="matrix(1.0826305,0,0,1.0826305,-71.853406,-3.5601908)" />
2355+ </clipPath>
2356+ <linearGradient
2357+ gradientTransform="translate(10,0)"
2358+ gradientUnits="userSpaceOnUse"
2359+ y2="9.8841219"
2360+ x2="142.27451"
2361+ y1="61.489723"
2362+ x1="66.734573"
2363+ id="linearGradient4611"
2364+ xlink:href="#linearGradient4605"
2365+ inkscape:collect="always" />
2366+ <linearGradient
2367+ gradientTransform="translate(-100,50)"
2368+ gradientUnits="userSpaceOnUse"
2369+ y2="104.79355"
2370+ x2="89.565689"
2371+ y1="90.777214"
2372+ x1="56.214554"
2373+ id="linearGradient4619"
2374+ xlink:href="#linearGradient4605"
2375+ inkscape:collect="always" />
2376+ <linearGradient
2377+ gradientTransform="translate(10,0)"
2378+ gradientUnits="userSpaceOnUse"
2379+ y2="105.84206"
2380+ x2="66.504166"
2381+ y1="92.78138"
2382+ x1="42.143345"
2383+ id="linearGradient4627"
2384+ xlink:href="#linearGradient4605"
2385+ inkscape:collect="always" />
2386+ <clipPath
2387+ id="clipPath4744"
2388+ clipPathUnits="userSpaceOnUse">
2389+ <path
2390+ style="color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2391+ d="m -61.36328,5.5722656 c -1.39719,0 -2.5293,1.1321042 -2.5293,2.5292969 0,1.3971927 1.13211,2.5312495 2.5293,2.5312495 1.39719,0 2.5293,-1.1340568 2.5293,-2.5312495 0,-1.3971927 -1.13211,-2.5292969 -2.5293,-2.5292969 z M -70.8125,7.625 c -1.65694,0 -3,1.3430621 -3,3 0,1.656938 1.34306,3 3,3 1.65694,0 3,-1.343062 3,-3 0,-1.6569379 -1.34306,-3 -3,-3 z m -10.304688,2.3085938 c -1.916683,0 -3.470703,1.5540202 -3.470703,3.4707032 0,1.916683 1.55402,3.470703 3.470703,3.470703 1.916688,0 3.470708,-1.55402 3.470708,-3.470703 0,-1.916683 -1.55402,-3.4707032 -3.470708,-3.4707032 z m -11.902343,4.8261722 c -2.325487,0 -4.208985,1.885451 -4.208985,4.210937 0,2.325487 1.883498,4.210938 4.208985,4.210938 2.325486,0 4.210937,-1.885451 4.210937,-4.210938 0,-2.325486 -1.885451,-4.210937 -4.210937,-4.210937 z m 42.087891,0.77539 c -1.09022,0 -1.97266,0.882435 -1.97266,1.972656 0,1.090222 0.88244,1.97461 1.97266,1.97461 1.09022,0 1.97461,-0.884388 1.97461,-1.97461 0,-1.090221 -0.88439,-1.972656 -1.97461,-1.972656 z m -7.35352,3.078125 c -1.65693,0 -3,1.343062 -3,3 0,1.656938 1.34307,3 3,3 1.65694,0 3,-1.343062 3,-3 0,-1.656938 -1.34306,-3 -3,-3 z m -45.5,2.435547 c -2.30464,0 -4.17187,1.867227 -4.17187,4.171875 0,2.304648 1.86723,4.173828 4.17187,4.173828 2.30465,0 4.173832,-1.86918 4.173832,-4.173828 0,-2.304648 -1.869182,-4.171875 -4.173832,-4.171875 z m 35.02539,2.181641 c -2.24726,0 -4.07031,1.821091 -4.07031,4.068359 0,2.247268 1.82305,4.070313 4.07031,4.070313 2.24727,0 4.06836,-1.823045 4.06836,-4.070313 0,-2.247268 -1.82109,-4.068359 -4.06836,-4.068359 z m 14.72852,5.503906 c -0.97216,0 -1.75977,0.789563 -1.75977,1.761719 0,0.972155 0.78761,1.759765 1.75977,1.759765 0.97216,0 1.75977,-0.78761 1.75977,-1.759765 0,-0.972156 -0.78761,-1.761719 -1.75977,-1.761719 z m -27.681641,0.07227 c -2.758021,0 -4.99414,2.236119 -4.99414,4.99414 0,2.758021 2.236119,4.994141 4.99414,4.994141 2.758021,0 4.994141,-2.23612 4.994141,-4.994141 0,-2.758021 -2.23612,-4.99414 -4.994141,-4.99414 z m -32.175779,0.01367 c -1.90795,0 -3.45508,1.545179 -3.45508,3.453126 0,1.907946 1.54713,3.455078 3.45508,3.455078 1.90794,0 3.45312,-1.547132 3.45312,-3.455078 0,-1.907947 -1.54518,-3.453126 -3.45312,-3.453126 z m 53.62695,5.238282 c -1.92259,0 -3.48242,1.557882 -3.48242,3.480468 0,1.922587 1.55983,3.482422 3.48242,3.482422 1.92259,0 3.48047,-1.559835 3.48047,-3.482422 0,-1.922586 -1.55788,-3.480468 -3.48047,-3.480468 z m -61.21484,2.214844 c -1.30345,0 -2.35938,1.055926 -2.35938,2.359374 0,1.303449 1.05593,2.359376 2.35938,2.359376 1.30345,0 2.36133,-1.055927 2.36133,-2.359376 0,-1.303448 -1.05788,-2.359374 -2.36133,-2.359374 z m 26.376951,0.652343 c -2.436882,0 -4.41211,1.975228 -4.41211,4.41211 0,2.436881 1.975228,4.412109 4.41211,4.412109 2.436881,0 4.412109,-1.975228 4.412109,-4.412109 0,-2.436882 -1.975228,-4.41211 -4.412109,-4.41211 z m 27.195309,4.347657 c -2.3063,0 -4.17773,1.86948 -4.17773,4.175781 0,2.3063 1.87143,4.175781 4.17773,4.175781 2.3063,0 4.17578,-1.869481 4.17578,-4.175781 0,-2.306301 -1.86948,-4.175781 -4.17578,-4.175781 z m -38.55273,3.158203 c -1.77193,0 -3.20899,1.435097 -3.20899,3.207031 0,1.771934 1.43706,3.208984 3.20899,3.208984 1.77193,0 3.20898,-1.43705 3.20898,-3.208984 0,-1.771934 -1.43705,-3.207031 -3.20898,-3.207031 z m 27.91797,4.167968 c -2.342431,0 -4.24219,1.897806 -4.24219,4.240235 0,2.342429 1.899759,4.242187 4.24219,4.242187 2.34243,0 4.24023,-1.899758 4.24023,-4.242187 0,-2.342429 -1.8978,-4.240235 -4.24023,-4.240235 z m -36.4043,2.140625 c -1.07676,0 -1.94922,0.874411 -1.94922,1.951172 0,1.076762 0.87246,1.949219 1.94922,1.949219 1.07676,0 1.94922,-0.872457 1.94922,-1.949219 0,-1.076761 -0.87246,-1.951172 -1.94922,-1.951172 z m 25.388672,3.638672 c -2.040179,0 -3.693359,1.655133 -3.693359,3.695313 0,2.04018 1.65318,3.693359 3.693359,3.693359 2.04018,0 3.695313,-1.653179 3.695313,-3.693359 0,-2.04018 -1.655133,-3.695313 -3.695313,-3.695313 z M -100.54297,58.5293 c -1.62081,0 -2.93359,1.314737 -2.93359,2.935547 0,1.620809 1.31278,2.935547 2.93359,2.935547 1.620811,0 2.935548,-1.314738 2.935548,-2.935547 0,-1.62081 -1.314737,-2.935547 -2.935548,-2.935547 z m -8.55078,1.617187 c -1.03898,0 -1.88086,0.843832 -1.88086,1.882813 0,1.03898 0.84188,1.880859 1.88086,1.880859 1.03898,0 1.88086,-0.841879 1.88086,-1.880859 0,-1.038981 -0.84188,-1.882813 -1.88086,-1.882813 z"
2392+ id="path4746"
2393+ inkscape:connector-curvature="0" />
2394+ </clipPath>
2395+ <linearGradient
2396+ gradientUnits="userSpaceOnUse"
2397+ y2="39.94598"
2398+ x2="1.4735259"
2399+ y1="30.160028"
2400+ x1="-4.2457867"
2401+ id="linearGradient4894"
2402+ xlink:href="#linearGradient4888"
2403+ inkscape:collect="always" />
2404+ <linearGradient
2405+ gradientTransform="translate(-1.0193699,-0.40774795)"
2406+ gradientUnits="userSpaceOnUse"
2407+ y2="13.163922"
2408+ x2="-14.111487"
2409+ y1="23.304689"
2410+ x1="-8.2567129"
2411+ id="linearGradient4906"
2412+ xlink:href="#linearGradient4888"
2413+ inkscape:collect="always" />
2414+ <clipPath
2415+ id="clipPath5210"
2416+ clipPathUnits="userSpaceOnUse">
2417+ <path
2418+ style="color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2419+ d="m -10.183594,74.130859 c -1.322339,0 -2.394531,1.072193 -2.394531,2.394532 0,1.322339 1.072192,2.394531 2.394531,2.394531 1.322339,0 2.394532,-1.072192 2.394532,-2.394531 0,-1.322339 -1.072193,-2.394532 -2.394532,-2.394532 z m 30.886719,6.5 c -0.604498,0 -1.095703,0.489253 -1.095703,1.09375 0,0.604498 0.491205,1.09375 1.095703,1.09375 0.604498,0 1.09375,-0.489252 1.09375,-1.09375 0,-0.604497 -0.489252,-1.09375 -1.09375,-1.09375 z m -26.474609,0.478516 c -1.246777,0 -2.257813,1.011036 -2.257813,2.257813 0,1.246776 1.011036,2.255859 2.257813,2.255859 1.246776,0 2.257812,-1.009083 2.257812,-2.255859 0,-1.246777 -1.011036,-2.257813 -2.257812,-2.257813 z m 22.916015,0.238281 c -0.736731,0 -1.333984,0.597253 -1.333984,1.333985 0,0.736731 0.597253,1.333984 1.333984,1.333984 0.736732,0 1.333985,-0.597253 1.333985,-1.333984 0,-0.736732 -0.597253,-1.333985 -1.333985,-1.333985 z m -4.34375,1.984375 c -0.736731,0 -1.333984,0.597253 -1.333984,1.333985 0,0.736731 0.597253,1.333984 1.333984,1.333984 0.736732,0 1.333985,-0.597253 1.333985,-1.333984 0,-0.736732 -0.597253,-1.333985 -1.333985,-1.333985 z m -6.052734,2.121094 c -0.963419,0 -1.746094,0.780722 -1.746094,1.744141 0,0.963418 0.782675,1.74414 1.746094,1.74414 0.963418,0 1.744141,-0.780722 1.744141,-1.74414 0,-0.963419 -0.780723,-1.744141 -1.744141,-1.744141 z m -6.5,0.410156 c -1.246777,0 -2.257813,1.011036 -2.257813,2.257813 0,1.246776 1.011036,2.257812 2.257813,2.257812 1.246777,0 2.257812,-1.011036 2.257812,-2.257812 0,-1.246777 -1.011035,-2.257813 -2.257812,-2.257813 z"
2420+ id="path5212"
2421+ inkscape:connector-curvature="0" />
2422+ </clipPath>
2423+ <linearGradient
2424+ gradientTransform="translate(0,50)"
2425+ gradientUnits="userSpaceOnUse"
2426+ y2="70.557083"
2427+ x2="-49.200706"
2428+ y1="97.305344"
2429+ x1="-26.779074"
2430+ id="linearGradient5324"
2431+ xlink:href="#linearGradient5318"
2432+ inkscape:collect="always" />
2433+ <clipPath
2434+ id="clipPath5333"
2435+ clipPathUnits="userSpaceOnUse">
2436+ <path
2437+ style="color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2438+ d="m -50.017578,118.13867 c -1.322339,0 -2.394531,1.07219 -2.394531,2.39453 0,1.32234 1.072192,2.39453 2.394531,2.39453 1.322339,0 2.394531,-1.07219 2.394531,-2.39453 0,-1.32234 -1.072192,-2.39453 -2.394531,-2.39453 z m 4.542969,8.125 c -1.440405,0 -2.609375,1.16702 -2.609375,2.60742 0,1.44041 1.16897,2.60743 2.609375,2.60743 1.440404,0 2.607421,-1.16702 2.607421,-2.60743 0,-1.4404 -1.167017,-2.60742 -2.607421,-2.60742 z m 7.214843,4.8086 c -1.263306,0 -2.287109,1.0238 -2.287109,2.28711 0,1.2633 1.023803,2.28906 2.287109,2.28906 1.263306,0 2.28711,-1.02576 2.28711,-2.28906 0,-1.26331 -1.023804,-2.28711 -2.28711,-2.28711 z m 6.894532,3.04687 c -1.115724,0 -2.021485,0.90381 -2.021485,2.01953 0,1.11573 0.905761,2.02149 2.021485,2.02149 1.115723,0 2.019531,-0.90576 2.019531,-2.02149 0,-1.11572 -0.903808,-2.01953 -2.019531,-2.01953 z m 6.925781,0.68359 c -1.115724,0 -2.019531,0.90577 -2.019531,2.02149 0,1.11572 0.903807,2.01953 2.019531,2.01953 1.115723,0 2.019531,-0.90381 2.019531,-2.01953 0,-1.11572 -0.903808,-2.02149 -2.019531,-2.02149 z m 6.242187,2.00977 c -0.974044,0 -1.763672,0.78963 -1.763672,1.76367 0,0.97405 0.789628,1.76367 1.763672,1.76367 0.974045,0 1.763672,-0.78962 1.763672,-1.76367 0,-0.97404 -0.789627,-1.76367 -1.763672,-1.76367 z m 4.533204,3.03516 c -0.903205,0 -1.636719,0.73351 -1.636719,1.63672 0,0.9032 0.733514,1.63476 1.636719,1.63476 0.903204,0 1.634765,-0.73156 1.634765,-1.63476 0,-0.90321 -0.731561,-1.63672 -1.634765,-1.63672 z"
2439+ id="path5335"
2440+ inkscape:connector-curvature="0" />
2441+ </clipPath>
2442+ <clipPath
2443+ id="clipPath5487"
2444+ clipPathUnits="userSpaceOnUse">
2445+ <path
2446+ style="color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2447+ d="m -90.226562,77.787109 c -1.322339,0 -2.392579,1.072193 -2.392579,2.394532 0,1.322339 1.07024,2.394531 2.392579,2.394531 1.322338,0 2.394531,-1.072192 2.394531,-2.394531 0,-1.322339 -1.072193,-2.394532 -2.394531,-2.394532 z m -0.08008,7.75 c -1.248547,0 -2.259765,1.011218 -2.259765,2.259766 0,1.248548 1.011218,2.261719 2.259765,2.261719 1.248548,0 2.261719,-1.013171 2.261719,-2.261719 0,-1.248548 -1.013171,-2.259766 -2.261719,-2.259766 z m 3.955079,7.427735 c -1.041933,0 -1.886719,0.844786 -1.886719,1.886718 0,1.041933 0.844786,1.886719 1.886719,1.886719 1.041932,0 1.886718,-0.844786 1.886718,-1.886719 0,-1.041932 -0.844786,-1.886718 -1.886718,-1.886718 z m 6.363281,4.001953 c -0.909699,0 -1.648438,0.736786 -1.648438,1.646484 0,0.909699 0.738739,1.648439 1.648438,1.648439 0.909698,0 1.646484,-0.73874 1.646484,-1.648439 0,-0.909698 -0.736786,-1.646484 -1.646484,-1.646484 z m 6.429687,1.710937 c -0.739683,0 -1.339844,0.600161 -1.339844,1.339846 0,0.73968 0.600161,1.33789 1.339844,1.33789 0.739684,0 1.339844,-0.59821 1.339844,-1.33789 0,-0.739685 -0.60016,-1.339846 -1.339844,-1.339846 z m 5.986328,2.179686 c -0.692457,0 -1.253906,0.56145 -1.253906,1.25391 0,0.69246 0.561449,1.2539 1.253906,1.2539 0.692457,0 1.253907,-0.56144 1.253907,-1.2539 0,-0.69246 -0.56145,-1.25391 -1.253907,-1.25391 z m 4.488282,5.08789 c -0.574391,0 -1.039063,0.46663 -1.039063,1.04102 0,0.57439 0.464672,1.03906 1.039063,1.03906 0.574391,0 1.041015,-0.46467 1.041015,-1.03906 0,-0.57439 -0.466624,-1.04102 -1.041015,-1.04102 z"
2448+ id="path5489"
2449+ inkscape:connector-curvature="0" />
2450+ </clipPath>
2451+ <filter
2452+ height="1.1303784"
2453+ y="-0.065189186"
2454+ width="1.1608"
2455+ x="-0.080400006"
2456+ id="filter5535"
2457+ inkscape:collect="always">
2458+ <feGaussianBlur
2459+ id="feGaussianBlur5537"
2460+ stdDeviation="0.91792224"
2461+ inkscape:collect="always" />
2462+ </filter>
2463+ <linearGradient
2464+ inkscape:collect="always"
2465+ xlink:href="#linearGradient4595"
2466+ id="linearGradient4403"
2467+ gradientUnits="userSpaceOnUse"
2468+ gradientTransform="translate(-80,0)"
2469+ x1="177.78296"
2470+ y1="111.87411"
2471+ x2="177.78296"
2472+ y2="2.3937817" />
2473+ </defs>
2474+ <sodipodi:namedview
2475+ id="base"
2476+ pagecolor="#ffffff"
2477+ bordercolor="#666666"
2478+ borderopacity="1.0"
2479+ inkscape:pageopacity="0.0"
2480+ inkscape:pageshadow="2"
2481+ inkscape:zoom="4.0745361"
2482+ inkscape:cx="44.456273"
2483+ inkscape:cy="35.801941"
2484+ inkscape:document-units="px"
2485+ inkscape:current-layer="layer1"
2486+ showgrid="false"
2487+ fit-margin-top="0"
2488+ fit-margin-left="0"
2489+ fit-margin-right="0"
2490+ fit-margin-bottom="0"
2491+ inkscape:window-width="1920"
2492+ inkscape:window-height="1029"
2493+ inkscape:window-x="0"
2494+ inkscape:window-y="24"
2495+ inkscape:window-maximized="1"
2496+ showborder="true"
2497+ showguides="false"
2498+ inkscape:guide-bbox="true"
2499+ inkscape:showpageshadow="false"
2500+ inkscape:snap-global="true"
2501+ inkscape:snap-bbox="true"
2502+ inkscape:bbox-paths="true"
2503+ inkscape:bbox-nodes="true"
2504+ inkscape:snap-bbox-edge-midpoints="true"
2505+ inkscape:snap-bbox-midpoints="true"
2506+ inkscape:object-paths="true"
2507+ inkscape:snap-intersection-paths="true"
2508+ inkscape:object-nodes="true"
2509+ inkscape:snap-smooth-nodes="true"
2510+ inkscape:snap-midpoints="true"
2511+ inkscape:snap-object-midpoints="true"
2512+ inkscape:snap-center="true">
2513+ <inkscape:grid
2514+ type="xygrid"
2515+ id="grid821" />
2516+ <sodipodi:guide
2517+ orientation="1,0"
2518+ position="16,48"
2519+ id="guide823" />
2520+ <sodipodi:guide
2521+ orientation="1,0"
2522+ position="80,40"
2523+ id="guide827" />
2524+ <sodipodi:guide
2525+ orientation="0,1"
2526+ position="64,16"
2527+ id="guide829" />
2528+ </sodipodi:namedview>
2529+ <metadata
2530+ id="metadata6522">
2531+ <rdf:RDF>
2532+ <cc:Work
2533+ rdf:about="">
2534+ <dc:format>image/svg+xml</dc:format>
2535+ <dc:type
2536+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
2537+ <dc:title></dc:title>
2538+ </cc:Work>
2539+ </rdf:RDF>
2540+ </metadata>
2541+ <g
2542+ inkscape:label="BACKGROUND"
2543+ inkscape:groupmode="layer"
2544+ id="layer1"
2545+ transform="translate(268,-635.29076)"
2546+ style="display:inline">
2547+ <path
2548+ style="fill:url(#linearGradient908);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"
2549+ d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
2550+ id="path6455"
2551+ inkscape:connector-curvature="0"
2552+ sodipodi:nodetypes="sssssssss" />
2553+ <g
2554+ inkscape:label="Logo"
2555+ id="layer2-4"
2556+ transform="matrix(0.65921639,0,0,0.65921639,-285.17077,646.98506)">
2557+ <path
2558+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:url(#linearGradient4403);fill-opacity:1;stroke:none;stroke-width:6.06781054;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
2559+ d="m 144.16602,0.71484375 -0.082,0.009766 C 124.47315,0.62670457 77.566329,5.6465838 52.412109,51.40625 c -5.634232,2.301038 -9.689453,7.679423 -9.689453,14.109375 0,0.744447 0.169938,1.414661 0.273438,2.117187 -1.542835,2.235236 -8.654821,13.531536 -3.615235,27.511719 1.63498,4.535585 5.363033,7.667559 9.791016,9.421879 4.427983,1.75431 9.638639,2.31325 15.105469,2.01562 5.087139,-0.27696 7.466013,1.36697 8.9375,2.96289 1.471487,1.59592 1.80664,3.05469 1.80664,3.05469 l 2.457032,10.38672 3.375,-10.125 c 0.506658,-1.51998 0.63387,-3.20365 0.318359,-5.73047 -0.09743,-0.78031 -0.400357,-1.66813 -0.638672,-2.52734 3.756387,0.42183 7.188308,0.61794 9.744141,1.0957 1.278075,0.23891 3.606927,1.2614 5.414062,2.25 1.807135,0.9886 3.142578,1.88281 3.142578,1.88281 l 7.150396,4.78516 -2.56641,-8.21094 c -1.90763,-6.10443 -6.284455,-9.847229 -10.089845,-11.96875 -0.262926,-0.146582 -0.441607,-0.169951 -0.699219,-0.302734 3.080219,-2.227846 5.603602,-4.947983 8.033204,-7.207032 0.93862,-0.872731 3.82227,-1.564453 3.82227,-1.564453 l 4.58203,-0.621093 -2.39453,-3.957032 c -3.06052,-5.053898 -9.75963,-5.669659 -13.998052,-2.416015 -2.738247,2.102028 -4.835056,3.856047 -6.785156,4.003906 -4.847276,0.367525 -9.973684,-3.660787 -9.699219,-9.554688 0.08948,-1.921461 1.237174,-4.051685 2.357422,-5.078125 0.210945,0.04827 0.344535,0.07628 0.599609,0.134766 1.186656,0.272104 2.805107,0.633606 4.660157,0.916016 3.710099,0.564818 8.402471,0.885427 12.902343,-0.658204 10.777676,-3.697158 23.753576,-8.988346 32.507816,-17.986328 3.65797,-3.759825 5.48801,-8.201166 6.92382,-11.49414 0.71791,-1.646487 1.35371,-3.014466 1.87305,-3.796875 0.19042,-0.286876 0.15457,-0.176324 0.26367,-0.294922 0.002,0.0024 0.002,0.0015 0.004,0.0039 0.4262,0.430509 1.01226,1.038229 1.98828,1.537109 0.97602,0.498881 2.44322,0.73998 3.75,0.382813 2.71662,-0.7425 4.48419,-2.807757 5.57813,-4.923828 1.09393,-2.116071 1.62454,-4.422196 1.61328,-6.628906 -0.007,-1.402807 -0.32454,-2.335518 -0.45313,-2.876953 0.2441,-0.185975 0.77541,-0.384506 2.38477,-0.5 0.89766,-0.06442 1.92502,-0.08441 3.16601,-0.486329 1.241,-0.401916 2.8783,-1.633112 3.38868,-3.34375 0.54076,-1.81248 0.48278,-3.670806 -0.10352,-5.169921 -0.5863,-1.499116 -1.55309,-2.546265 -2.41016,-3.3437505 -1.44976,-1.3489889 -2.1819,-2.0078233 -2.56836,-2.4980469 0.0233,-0.02067 0.10157,-0.1035156 0.10157,-0.1035156 l 5.86132,-4.4804688 -7.3164,-0.9394531 c 0,0 -3.41499,-0.43275576 -8.88477,-0.47265622 l -0.21093,-0.001953 z m 0.16796,6.06835935 c 2.45329,0.017896 2.48219,0.1047834 3.86524,0.2011719 0.0219,0.453197 0.0822,0.922243 0.27148,1.421875 1.14177,3.013503 3.48917,4.232835 4.57813,5.246094 0.54448,0.506629 0.80126,0.874803 0.89453,1.113281 0.0451,0.115236 -0.034,0.423707 -0.0293,0.591797 -0.30654,0.04795 -0.57497,0.09917 -1.20703,0.144531 -1.8123,0.130059 -5.04605,0.202992 -7.11523,3.021485 -1.12027,1.525941 -1.02691,3.464875 -0.82032,4.490234 0.2066,1.025359 0.37113,1.589026 0.37305,1.949219 0.006,1.105581 -0.3465,2.667349 -0.9375,3.810547 -0.48083,0.930102 -1.01878,1.407488 -1.4707,1.654296 -0.0724,-0.06359 -0.0393,-0.0285 -0.14258,-0.132812 -0.31573,-0.318918 -0.72416,-0.811142 -1.47852,-1.353516 -0.75435,-0.542373 -2.17232,-1.125028 -3.59375,-0.835937 -2.12365,0.431911 -3.5949,1.933877 -4.56445,3.394531 -0.96954,1.460654 -1.65089,3.056888 -2.37891,4.726562 -1.45603,3.339349 -3.03433,6.940329 -5.70898,9.689454 -7.45417,7.661718 -19.65382,12.885156 -30.128906,16.478515 -2.950677,1.012197 -6.79113,0.889923 -10.019531,0.398438 -1.6142,-0.245743 -3.066757,-0.568324 -4.216797,-0.832031 -0.57502,-0.131854 -1.070712,-0.248912 -1.517578,-0.341797 -0.446866,-0.09289 -0.540916,-0.272276 -1.701172,-0.15625 l -0.603515,0.06055 -0.535157,0.289062 c -4.088046,2.207542 -5.830275,6.660659 -6.019531,10.724609 -0.442975,9.512512 7.742806,16.529374 16.21875,15.886719 2.886564,-0.218863 5.01154,-1.474359 6.873047,-2.839844 -2.887511,2.761789 -5.614655,5.209809 -8.855469,6.035157 l 0.201172,5.923828 c 0.127549,0.02341 2.686456,0.578191 5.460938,2.044922 C 85.465946,98.927736 80.917236,99.04558 76.041016,97.8125 l -8.554688,-2.162109 0.462891,-1.253907 C 67.517878,94.133765 67.143617,93.908647 66.800781,93.679688 60.464652,89.448077 58.641838,84.117874 58.042969,80.761719 l -5.933594,-0.1875 c -0.743318,3.039843 -1.297857,6.194123 -0.546875,9.253906 0.938666,3.824511 3.486628,6.469289 6.232422,7.882813 2.745794,1.413523 5.641439,1.878253 8.09375,2.273437 l 1.457031,-3.953125 4.833985,5.73242 c -2.254895,-0.88999 -4.984225,-1.41697 -8.230469,-1.24023 -4.824711,0.26267 -9.253737,-0.2945 -12.542969,-1.597659 -3.289232,-1.303154 -5.355939,-3.170001 -6.318359,-5.839843 -3.501947,-9.714657 0.40912,-17.924216 2.320312,-21.121094 L 50.3125,72.578125 49.097656,67.84375 c -0.198444,-0.773142 -0.308594,-1.544271 -0.308594,-2.328125 0,-4.31675 2.896092,-7.894786 6.826172,-8.996094 l 2.716797,-0.761719 -0.36914,-1.816406 C 81.834285,10.990201 125.98495,6.6493519 144.33398,6.7832031 Z"
2560+ id="path4055-4"
2561+ inkscape:connector-curvature="0" />
2562+ <path
2563+ style="color:#000000;fill:url(#linearGradient4627);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2564+ d="m 45.99142,68.562948 c 0,0 -8.79736,11.572938 -3.7578,25.553075 2.59741,7.205427 11.58723,9.996567 21.87877,9.436267 11.73633,-0.63896 13.86213,8.35067 13.86213,8.35067 0,0 1.4903,-10.21824 -5.92898,-13.611599 -4.5917,-2.100104 -15.38867,-0.434916 -17.53643,-9.185745 -1.45661,-5.934837 4.09184,-17.870451 4.09184,-17.870451 z"
2565+ id="path4446"
2566+ inkscape:connector-curvature="0"
2567+ sodipodi:nodetypes="csscsscc" />
2568+ <g
2569+ transform="translate(110,0)"
2570+ id="g5539">
2571+ <path
2572+ style="opacity:0.85;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#00f1ff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5418);enable-background:accumulate"
2573+ d="m -59.388305,73.158428 c -10.438347,24.530116 9.133554,23.81248 9.133554,23.81248 0,0 -13.987385,-0.358818 -4.175338,-22.279347 z"
2574+ id="path5365"
2575+ inkscape:connector-curvature="0"
2576+ sodipodi:nodetypes="cccc" />
2577+ <path
2578+ style="opacity:0.85;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5476);enable-background:accumulate"
2579+ d="m -39.35257,99.397824 c 5.010407,4.175336 7.306843,11.795336 7.306843,11.795336 l 0.104384,-5.11479 -2.296437,-5.42794 c 0,0 -3.653421,-0.62631 -5.11479,-1.252606 z"
2580+ id="path5422"
2581+ inkscape:connector-curvature="0"
2582+ sodipodi:nodetypes="ccccc" />
2583+ <path
2584+ style="color:#000000;fill:#0070ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2585+ d="m -60.226562,77.787109 c -1.322339,0 -2.392579,1.072193 -2.392579,2.394532 0,1.322339 1.07024,2.394531 2.392579,2.394531 1.322338,0 2.394531,-1.072192 2.394531,-2.394531 0,-1.322339 -1.072193,-2.394532 -2.394531,-2.394532 z m -0.08008,7.75 c -1.248547,0 -2.259765,1.011218 -2.259765,2.259766 0,1.248548 1.011218,2.261719 2.259765,2.261719 1.248548,0 2.261719,-1.013171 2.261719,-2.261719 0,-1.248548 -1.013171,-2.259766 -2.261719,-2.259766 z m 3.955079,7.427735 c -1.041933,0 -1.886719,0.844786 -1.886719,1.886718 0,1.041933 0.844786,1.886719 1.886719,1.886719 1.041932,0 1.886718,-0.844786 1.886718,-1.886719 0,-1.041932 -0.844786,-1.886718 -1.886718,-1.886718 z m 6.363281,4.001953 c -0.909699,0 -1.648438,0.736786 -1.648438,1.646484 0,0.909699 0.738739,1.648439 1.648438,1.648439 0.909698,0 1.646484,-0.73874 1.646484,-1.648439 0,-0.909698 -0.736786,-1.646484 -1.646484,-1.646484 z m 6.429687,1.710937 c -0.739683,0 -1.339844,0.600161 -1.339844,1.339846 0,0.73968 0.600161,1.33789 1.339844,1.33789 0.739684,0 1.339844,-0.59821 1.339844,-1.33789 0,-0.739685 -0.60016,-1.339846 -1.339844,-1.339846 z m 5.986328,2.179686 c -0.692457,0 -1.253906,0.56145 -1.253906,1.25391 0,0.69246 0.561449,1.2539 1.253906,1.2539 0.692457,0 1.253907,-0.56144 1.253907,-1.2539 0,-0.69246 -0.56145,-1.25391 -1.253907,-1.25391 z m 4.488282,5.08789 c -0.574391,0 -1.039063,0.46663 -1.039063,1.04102 0,0.57439 0.464672,1.03906 1.039063,1.03906 0.574391,0 1.041015,-0.46467 1.041015,-1.03906 0,-0.57439 -0.466624,-1.04102 -1.041015,-1.04102 z"
2586+ id="path4685"
2587+ inkscape:connector-curvature="0" />
2588+ <g
2589+ inkscape:groupmode="maskhelper"
2590+ id="g5484"
2591+ clip-path="url(#clipPath5487)"
2592+ transform="translate(30,0)"
2593+ style="stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter5535)">
2594+ <path
2595+ inkscape:connector-curvature="0"
2596+ id="path5480"
2597+ d="m -87.54139,73.615106 -1.95719,14.744166 10.046909,9.655471 6.393488,-1.370032 6.393488,4.371059 4.566777,6.39349"
2598+ style="color:#000000;fill:none;stroke:#ffa4d9;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2599+ sodipodi:nodetypes="cccccc" />
2600+ </g>
2601+ </g>
2602+ <path
2603+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
2604+ d="m 45.578125,67.453125 -0.382813,0.503906 c 0,0 -9.127517,12.00301 -3.902343,26.498047 1.409552,3.910206 4.580702,6.617932 8.626953,8.220702 4.046251,1.60277 8.994538,2.16091 14.246094,1.875 5.610702,-0.30546 8.718098,1.636 10.542968,3.61524 1.824871,1.97923 2.292969,3.96679 2.292969,3.96679 l 0.857422,3.63086 1.072266,-3.57422 c 0.144913,-0.48304 0.253693,-1.2227 0.294921,-2.34961 0.04123,-1.1269 -0.01765,-2.55398 -0.335937,-4.07617 -0.636583,-3.04437 -2.392824,-6.534516 -6.429687,-8.380858 -2.65637,-1.214944 -6.457153,-1.257342 -9.84375,-2.15625 -3.386598,-0.898907 -6.158801,-2.374947 -7.136719,-6.359374 -0.621258,-2.531253 0.296471,-6.954521 1.480469,-10.615235 1.183997,-3.660713 2.546875,-6.595703 2.546874,-6.595703 l 0.529297,-1.138672 -14.458984,-3.064453 z m 0.878906,2.230469 10.789063,2.287109 c -0.359113,0.799547 -1.171201,2.517758 -2.189453,5.666016 -1.226073,3.790803 -2.35489,8.303447 -1.519532,11.707031 1.169843,4.766401 4.869656,6.833221 8.566407,7.814453 3.696751,0.981232 7.590066,1.157809 9.52539,2.042969 3.382416,1.547018 4.751434,4.326798 5.304688,6.972658 0.155682,0.74453 0.125974,1.34888 0.164062,2.02148 -0.325053,-0.48095 -0.464348,-0.89277 -0.917968,-1.38476 -2.172109,-2.35585 -5.995465,-4.58936 -12.121094,-4.25586 -5.039988,0.27439 -9.731446,-0.2842 -13.402344,-1.73828 -3.670898,-1.454089 -6.29456,-3.743846 -7.482422,-7.039066 -4.533049,-12.575031 2.326607,-22.753738 3.283203,-24.09375 z"
2605+ id="path4440"
2606+ inkscape:connector-curvature="0" />
2607+ <g
2608+ transform="translate(110,-50)"
2609+ id="g5367">
2610+ <path
2611+ sodipodi:nodetypes="ccccssc"
2612+ inkscape:connector-curvature="0"
2613+ id="path4444"
2614+ d="m -9.47865,157.31009 c -3.34027,-10.68887 -15.53226,-12.77653 -15.53226,-12.77653 l -24.88502,-25.38606 -5.34444,8.43418 c 0,0 -0.80955,11.16583 10.35484,18.62201 10.18833,6.80431 18.86212,5.23159 25.72009,6.51353 3.91995,0.73275 9.68679,4.59287 9.68679,4.59287 z"
2615+ style="color:#000000;fill:url(#linearGradient4619);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2616+ <path
2617+ style="color:#000000;fill:url(#linearGradient5324);fill-opacity:1;stroke:#00ffff;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5314);enable-background:accumulate"
2618+ d="m -50.835384,127.79045 c 0,0 0.02797,10.578 9.890335,16.36211 9.630227,5.64796 21.946625,2.21815 31.654288,13.49156 -3.653422,-9.70766 -15.761904,-13.46547 -15.761904,-13.46547 l -21.398613,-17.74519 z"
2619+ id="path5272"
2620+ inkscape:connector-curvature="0"
2621+ sodipodi:nodetypes="cscccc" />
2622+ <path
2623+ style="color:#000000;fill:#0070ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2624+ d="m -50.017578,128.13867 c -1.322339,0 -2.394531,1.07219 -2.394531,2.39453 0,1.32234 1.072192,2.39453 2.394531,2.39453 1.322339,0 2.394531,-1.07219 2.394531,-2.39453 0,-1.32234 -1.072192,-2.39453 -2.394531,-2.39453 z m 4.542969,8.125 c -1.440405,0 -2.609375,1.16702 -2.609375,2.60742 0,1.44041 1.16897,2.60743 2.609375,2.60743 1.440404,0 2.607421,-1.16702 2.607421,-2.60743 0,-1.4404 -1.167017,-2.60742 -2.607421,-2.60742 z m 7.214843,4.8086 c -1.263306,0 -2.287109,1.0238 -2.287109,2.28711 0,1.2633 1.023803,2.28906 2.287109,2.28906 1.263306,0 2.28711,-1.02576 2.28711,-2.28906 0,-1.26331 -1.023804,-2.28711 -2.28711,-2.28711 z m 6.894532,3.04687 c -1.115724,0 -2.021485,0.90381 -2.021485,2.01953 0,1.11573 0.905761,2.02149 2.021485,2.02149 1.115723,0 2.019531,-0.90576 2.019531,-2.02149 0,-1.11572 -0.903808,-2.01953 -2.019531,-2.01953 z m 6.925781,0.68359 c -1.115724,0 -2.019531,0.90577 -2.019531,2.02149 0,1.11572 0.903807,2.01953 2.019531,2.01953 1.115723,0 2.019531,-0.90381 2.019531,-2.01953 0,-1.11572 -0.903808,-2.02149 -2.019531,-2.02149 z m 6.242187,2.00977 c -0.974044,0 -1.763672,0.78963 -1.763672,1.76367 0,0.97405 0.789628,1.76367 1.763672,1.76367 0.974045,0 1.763672,-0.78962 1.763672,-1.76367 0,-0.97404 -0.789627,-1.76367 -1.763672,-1.76367 z m 4.533204,3.03516 c -0.903205,0 -1.636719,0.73351 -1.636719,1.63672 0,0.9032 0.733514,1.63476 1.636719,1.63476 0.903204,0 1.634765,-0.73156 1.634765,-1.63476 0,-0.90321 -0.731561,-1.63672 -1.634765,-1.63672 z"
2625+ id="path4699"
2626+ inkscape:connector-curvature="0" />
2627+ <g
2628+ inkscape:groupmode="maskhelper"
2629+ id="g5330"
2630+ clip-path="url(#clipPath5333)"
2631+ style="filter:url(#filter5361)"
2632+ transform="translate(0,10)">
2633+ <path
2634+ inkscape:connector-curvature="0"
2635+ id="path5326"
2636+ d="m -53.431291,114.03917 7.95924,11.64528 18.071389,9.32927 15.657521,7.82876"
2637+ style="color:#000000;fill:none;stroke:#f686c0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2638+ sodipodi:nodetypes="cccc" />
2639+ </g>
2640+ </g>
2641+ <path
2642+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
2643+ d="m 53.761719,77.509766 c 0,0 -0.769526,11.800727 10.796875,19.52539 10.465494,6.989414 19.528728,5.437244 26.091797,6.664064 1.735275,0.32437 4.126992,1.43266 6.017578,2.4668 1.890586,1.03413 3.296875,1.9746 3.296875,1.9746 l 2.357426,1.57813 -0.84571,-2.70703 C 97.940712,95.697012 85.158203,93.548828 85.158203,93.548828 l -0.337891,1.970703 c 0,0 9.302866,1.685281 13.490235,9.300779 -0.344321,-0.19973 -0.292709,-0.19634 -0.683594,-0.41015 -1.97282,-1.07912 -4.4247,-2.26741 -6.609375,-2.67578 -7.152883,-1.33707 -15.436501,0.25787 -25.347656,-6.361333 -10.762384,-7.187697 -9.91211,-17.71875 -9.91211,-17.71875 l -1.996093,-0.144531 z"
2644+ id="path4438"
2645+ inkscape:connector-curvature="0" />
2646+ <path
2647+ sodipodi:nodetypes="csssssssscssscssscc"
2648+ inkscape:connector-curvature="0"
2649+ id="path4053"
2650+ d="m 152.87488,4.2000979 c 0,0 -2.13429,1.630933 -1.56575,3.1315042 1.29782,3.4253679 7.02934,4.3325019 5.48013,9.5249919 -0.85439,2.863655 -6.53246,0.439774 -8.75151,3.462399 -0.95373,1.299096 0.13029,2.748166 0.13987,4.62732 0.0169,3.312292 -1.76307,7.738348 -4.95821,8.611637 -2.43745,0.666199 -3.28108,-2.847381 -5.09183,-2.479108 -4.2679,0.868011 -4.75185,10.44397 -11.08448,16.95292 -8.1042,8.32985 -20.69179,13.587409 -31.31817,17.232668 -7.45055,2.555827 -17.06774,-0.889765 -18.13663,-0.782876 -2.67222,1.442997 -4.28398,5.060216 -4.43004,8.196608 -0.35872,7.703206 6.29677,13.226095 12.95838,12.721005 3.29716,-0.249995 5.84482,-2.658318 8.4046,-4.623345 2.81552,-2.161347 7.50879,-1.796509 9.55437,1.581402 0,0 -3.46053,0.470799 -5.48014,2.348628 C 91.95765,90.877707 86.66529,98.612984 72.76056,93.187009 62.91599,89.345408 60.94115,77.8611 60.94115,77.8611 57.60632,67.538505 54.75441,53.39081 54.75441,53.39081 86.06946,-4.4115389 152.87488,4.2000979 152.87488,4.2000979 Z"
2651+ style="color:#000000;fill:url(#linearGradient4611);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2652+ <g
2653+ transform="translate(110,0)"
2654+ id="g5070">
2655+ <path
2656+ style="color:#000000;fill:url(#linearGradient4894);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4727);enable-background:accumulate"
2657+ d="m -43.404585,56.033015 c 0,0 14.064566,-13.998006 29.969474,-23.608606 C 2.4698001,22.813808 41.40699,11.18074 41.40699,11.18074 c 0,0 -27.109157,21.273679 -43.2212844,30.059179 -16.1121306,8.7855 -41.5902906,14.793096 -41.5902906,14.793096 z"
2658+ id="path4717"
2659+ inkscape:connector-curvature="0"
2660+ sodipodi:nodetypes="czczc" />
2661+ <path
2662+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4962);enable-background:accumulate"
2663+ d="M -34.352581,36.950411 C -13.149688,23.290855 16.20816,12.485534 16.20816,12.485534 c 0,0 -14.66692,0.939698 -25.688116,7.339463 -11.021201,6.399765 -24.872625,17.125414 -24.872625,17.125414 z"
2664+ id="path4932"
2665+ inkscape:connector-curvature="0"
2666+ sodipodi:nodetypes="cczc" />
2667+ <path
2668+ style="opacity:0.7;color:#000000;fill:#029dff;fill-opacity:1;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5014);enable-background:accumulate"
2669+ d="m -47.502636,51.425463 c 0,0 3.033516,-4.331961 22.833885,-18.144784 C -4.8683818,19.467856 37.716685,8.0003065 37.716685,8.0003065 c 0,0 -44.7698895,18.9515775 -58.919578,27.9307345 -14.149688,8.979158 -26.299743,15.494422 -26.299743,15.494422 z"
2670+ id="path4984"
2671+ inkscape:connector-curvature="0"
2672+ sodipodi:nodetypes="czczc" />
2673+ <path
2674+ style="color:#000000;fill:#e4ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4762);enable-background:accumulate"
2675+ d="m -42.589089,62.067684 c 0,0 16.602204,-2.855673 43.058179,-17.288513 C 14.1162,37.3341 33.57822,18.520204 38.145,16.889212 c 0,0 -6.96879,5.873304 -9.94905,9.296653 -7.81416,8.975931 -3.019552,13.047524 -22.1814818,28.175383 -11.299691,8.920819 -48.6035572,7.706436 -48.6035572,7.706436 z"
2676+ id="path4760"
2677+ inkscape:connector-curvature="0"
2678+ sodipodi:nodetypes="cscssc" />
2679+ <path
2680+ style="color:#000000;fill:url(#linearGradient4906);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4928);enable-background:accumulate"
2681+ d="M -46.788893,48.163479 C -24.566629,29.203199 10.09194,13.912652 32.92583,6.7770627 c 0,0 -24.6953999,-5.3921657 -50.152997,8.9704543 -25.457601,14.36262 -29.561726,32.415962 -29.561726,32.415962 z"
2682+ id="path4898"
2683+ inkscape:connector-curvature="0"
2684+ sodipodi:nodetypes="cczc" />
2685+ <path
2686+ style="color:#000000;fill:#0070ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2687+ d="m 18.63672,5.5722656 c -1.39719,0 -2.5293,1.1321042 -2.5293,2.5292969 0,1.3971927 1.13211,2.5312495 2.5293,2.5312495 1.39719,0 2.5293,-1.1340568 2.5293,-2.5312495 0,-1.3971927 -1.13211,-2.5292969 -2.5293,-2.5292969 z M 9.1875,7.625 c -1.65694,0 -3,1.3430621 -3,3 0,1.656938 1.34306,3 3,3 1.65694,0 3,-1.343062 3,-3 0,-1.6569379 -1.34306,-3 -3,-3 z M -1.117188,9.9335938 c -1.916683,0 -3.470703,1.5540202 -3.470703,3.4707032 0,1.916683 1.55402,3.470703 3.470703,3.470703 1.916688,0 3.470708,-1.55402 3.470708,-3.470703 0,-1.916683 -1.55402,-3.4707032 -3.470708,-3.4707032 z m -11.902343,4.8261722 c -2.325487,0 -4.208985,1.885451 -4.208985,4.210937 0,2.325487 1.883498,4.210938 4.208985,4.210938 2.325486,0 4.210937,-1.885451 4.210937,-4.210938 0,-2.325486 -1.885451,-4.210937 -4.210937,-4.210937 z m 42.087891,0.77539 c -1.09022,0 -1.97266,0.882435 -1.97266,1.972656 0,1.090222 0.88244,1.97461 1.97266,1.97461 1.09022,0 1.97461,-0.884388 1.97461,-1.97461 0,-1.090221 -0.88439,-1.972656 -1.97461,-1.972656 z m -7.35352,3.078125 c -1.65693,0 -3,1.343062 -3,3 0,1.656938 1.34307,3 3,3 1.65694,0 3,-1.343062 3,-3 0,-1.656938 -1.34306,-3 -3,-3 z m -45.499996,2.435547 c -2.304648,0 -4.171875,1.867227 -4.171875,4.171875 0,2.304648 1.867227,4.173828 4.171875,4.173828 2.304648,0 4.173828,-1.86918 4.173828,-4.173828 0,-2.304648 -1.86918,-4.171875 -4.173828,-4.171875 z m 35.025386,2.181641 c -2.24726,0 -4.07031,1.821091 -4.07031,4.068359 0,2.247268 1.82305,4.070313 4.07031,4.070313 2.24727,0 4.06836,-1.823045 4.06836,-4.070313 0,-2.247268 -1.82109,-4.068359 -4.06836,-4.068359 z m 14.72852,5.503906 c -0.97216,0 -1.75977,0.789563 -1.75977,1.761719 0,0.972155 0.78761,1.759765 1.75977,1.759765 0.97216,0 1.75977,-0.78761 1.75977,-1.759765 0,-0.972156 -0.78761,-1.761719 -1.75977,-1.761719 z m -27.681641,0.07227 c -2.758021,0 -4.99414,2.236119 -4.99414,4.99414 0,2.758021 2.236119,4.994141 4.99414,4.994141 2.758021,0 4.994141,-2.23612 4.994141,-4.994141 0,-2.758021 -2.23612,-4.99414 -4.994141,-4.99414 z m -32.175781,0.01367 c -1.907946,0 -3.455078,1.545179 -3.455078,3.453126 0,1.907946 1.547132,3.455078 3.455078,3.455078 1.907946,0 3.453125,-1.547132 3.453125,-3.455078 0,-1.907947 -1.545179,-3.453126 -3.453125,-3.453126 z m 53.626952,5.238282 c -1.92259,0 -3.48242,1.557882 -3.48242,3.480468 0,1.922587 1.55983,3.482422 3.48242,3.482422 1.92259,0 3.48047,-1.559835 3.48047,-3.482422 0,-1.922586 -1.55788,-3.480468 -3.48047,-3.480468 z m -61.214842,2.214844 c -1.303449,0 -2.359376,1.055926 -2.359376,2.359374 0,1.303449 1.055927,2.359376 2.359376,2.359376 1.303448,0 2.361328,-1.055927 2.361328,-2.359376 0,-1.303448 -1.05788,-2.359374 -2.361328,-2.359374 z m 26.376953,0.652343 c -2.436882,0 -4.41211,1.975228 -4.41211,4.41211 0,2.436881 1.975228,4.412109 4.41211,4.412109 2.436881,0 4.412109,-1.975228 4.412109,-4.412109 0,-2.436882 -1.975228,-4.41211 -4.412109,-4.41211 z M 12.0957,41.273441 c -2.3063,0 -4.17773,1.86948 -4.17773,4.175781 0,2.3063 1.87143,4.175781 4.17773,4.175781 2.3063,0 4.17578,-1.869481 4.17578,-4.175781 0,-2.306301 -1.86948,-4.175781 -4.17578,-4.175781 z m -38.552731,3.158203 c -1.771934,0 -3.208985,1.435097 -3.208985,3.207031 0,1.771934 1.437051,3.208984 3.208985,3.208984 1.771934,0 3.208984,-1.43705 3.208984,-3.208984 0,-1.771934 -1.43705,-3.207031 -3.208984,-3.207031 z M 1.46094,48.599612 c -2.342431,0 -4.24219,1.897806 -4.24219,4.240235 0,2.342429 1.899759,4.242187 4.24219,4.242187 2.34243,0 4.24023,-1.899758 4.24023,-4.242187 0,-2.342429 -1.8978,-4.240235 -4.24023,-4.240235 z m -36.404299,2.140625 c -1.076762,0 -1.949219,0.874411 -1.949219,1.951172 0,1.076762 0.872457,1.949219 1.949219,1.949219 1.076761,0 1.949218,-0.872457 1.949218,-1.949219 0,-1.076761 -0.872457,-1.951172 -1.949218,-1.951172 z m 25.388671,3.638672 c -2.040179,0 -3.693359,1.655133 -3.693359,3.695313 0,2.04018 1.65318,3.693359 3.693359,3.693359 2.04018,0 3.695313,-1.653179 3.695313,-3.693359 0,-2.04018 -1.655133,-3.695313 -3.695313,-3.695313 z M -20.542969,58.5293 c -1.620809,0 -2.933593,1.314737 -2.933593,2.935547 0,1.620809 1.312784,2.935547 2.933593,2.935547 1.62081,0 2.935547,-1.314738 2.935547,-2.935547 0,-1.62081 -1.314737,-2.935547 -2.935547,-2.935547 z m -8.550781,1.617187 c -1.038981,0 -1.880859,0.843832 -1.880859,1.882813 0,1.03898 0.841878,1.880859 1.880859,1.880859 1.038981,0 1.880859,-0.841879 1.880859,-1.880859 0,-1.038981 -0.841878,-1.882813 -1.880859,-1.882813 z"
2688+ id="path4629"
2689+ inkscape:connector-curvature="0" />
2690+ <g
2691+ inkscape:groupmode="maskhelper"
2692+ id="g4741"
2693+ clip-path="url(#clipPath4744)"
2694+ transform="translate(80,0)">
2695+ <path
2696+ id="path4731"
2697+ d="m -52.292969,6.9394531 c 0,0 -24.700615,1.7547487 -43.546875,12.2324219 -18.846266,10.477673 -29.521486,28.869141 -29.521486,28.869141 z m 13.699219,4.2421879 c 0,0 -37.338187,12.039334 -53.243098,21.649935 -15.904902,9.6106 -31.567452,23.201627 -31.567452,23.201627 0,0 23.11294,-8.98387 39.225068,-17.76937 16.112128,-8.7855 45.585482,-27.082192 45.585482,-27.082192 z m -18.878906,17.001953 -49.132814,31.193359 c 0,0 19.119354,0.92316 32.619142,-7.542969 13.49979,-8.466129 16.513672,-23.65039 16.513672,-23.65039 z"
2698+ style="color:#000000;fill:#f08cc0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4756);enable-background:accumulate"
2699+ inkscape:connector-curvature="0"
2700+ sodipodi:nodetypes="cscccscscccsc" />
2701+ </g>
2702+ <path
2703+ style="opacity:0.6;color:#000000;fill:none;stroke:#00b0c2;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4842);enable-background:accumulate"
2704+ d="M 15.005125,32.775071 41.75339,12.289814"
2705+ id="path4788"
2706+ inkscape:connector-curvature="0"
2707+ sodipodi:nodetypes="cc" />
2708+ <path
2709+ style="opacity:0.6;color:#000000;fill:#00b1fc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4884);enable-background:accumulate"
2710+ d="M -36.289567,57.541682 C 7.0132649,40.783242 28.542356,22.475359 28.542356,22.475359 c 0,0 -18.117591,16.415533 -28.74622997,22.222263 C -11.408537,50.81905 -36.289567,57.541682 -36.289567,57.541682 Z"
2711+ id="path4766"
2712+ inkscape:connector-curvature="0"
2713+ sodipodi:nodetypes="ccsc" />
2714+ <path
2715+ sodipodi:nodetypes="cc"
2716+ inkscape:connector-curvature="0"
2717+ id="path4846"
2718+ d="M 29.749291,31.470278 35.88182,20.640492"
2719+ style="opacity:0.6;color:#000000;fill:none;stroke:#00b0c2;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4842);enable-background:accumulate" />
2720+ <path
2721+ style="opacity:0.4;color:#000000;fill:#ffbae3;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4878);enable-background:accumulate"
2722+ d="M -23.853255,58.153304 C 1.2232437,50.609967 19.164153,34.096175 19.164153,34.096175 c 0,0 -8.76337,11.213185 -18.34865711,16.717666 -6.57480369,3.710588 -24.66875089,7.339463 -24.66875089,7.339463 z"
2723+ id="path4848"
2724+ inkscape:connector-curvature="0"
2725+ sodipodi:nodetypes="cccc" />
2726+ <path
2727+ sodipodi:nodetypes="cccc"
2728+ inkscape:connector-curvature="0"
2729+ id="path4882"
2730+ d="m -60.523278,20.654449 c 15.257142,-7.442748 45.028856,-31.0028 45.028856,-31.0028 0,0 -9.055275,12.4691209 -18.640563,17.9736019 -6.460736,4.9285021 -26.388293,13.0291981 -26.388293,13.0291981 z"
2731+ style="opacity:0.4;color:#000000;fill:#fff7fc;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4878);enable-background:accumulate"
2732+ transform="matrix(-0.9956428,-0.09324919,0.09324919,-0.9956428,-42.60511,36.192161)" />
2733+ <path
2734+ style="opacity:0.7;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4980);enable-background:accumulate"
2735+ d="M -50.76462,52.648707 C -23.037759,22.067611 39.959298,5.7576928 39.959298,5.7576928"
2736+ id="path4966"
2737+ inkscape:connector-curvature="0"
2738+ sodipodi:nodetypes="cc" />
2739+ <path
2740+ style="opacity:0.1;color:#000000;fill:#0236ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5052);enable-background:accumulate"
2741+ d="M -28.950104,38.581402 14.8828,16.766887 -9.5820767,26.960586 Z"
2742+ id="path5018"
2743+ inkscape:connector-curvature="0" />
2744+ <path
2745+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5066);enable-background:accumulate"
2746+ d="m -33.084669,38.736347 c 21.993925,-15.575972 55.306932,-26.862435 55.306932,-26.862435 0,0 -24.0884747,6.584066 -33.313007,11.286463 -9.224533,4.702397 -21.993925,15.575972 -21.993925,15.575972 z"
2747+ id="path5056"
2748+ inkscape:connector-curvature="0"
2749+ sodipodi:nodetypes="cczc" />
2750+ </g>
2751+ <g
2752+ transform="translate(110,0)"
2753+ id="g5264">
2754+ <path
2755+ style="color:#000000;fill:#e6ffff;fill-opacity:1;fill-rule:nonzero;stroke:#00ecff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5260);enable-background:accumulate"
2756+ d="m -42.42599,71.527437 c 4.892975,20.713596 27.433282,15.135603 27.433282,15.135603 0,0 -9.884691,7.57503 -18.625927,3.457703 -8.741235,-4.117326 -8.807355,-18.593306 -8.807355,-18.593306 z"
2757+ id="path5088"
2758+ inkscape:connector-curvature="0"
2759+ sodipodi:nodetypes="cczc" />
2760+ <path
2761+ style="color:#000000;fill:#0070ba;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2762+ d="m -40.183594,74.130859 c -1.322339,0 -2.394531,1.072193 -2.394531,2.394532 0,1.322339 1.072192,2.394531 2.394531,2.394531 1.322339,0 2.394532,-1.072192 2.394532,-2.394531 0,-1.322339 -1.072193,-2.394532 -2.394532,-2.394532 z m 30.886719,6.5 c -0.604498,0 -1.095703,0.489253 -1.095703,1.09375 0,0.604498 0.491205,1.09375 1.095703,1.09375 0.604498,0 1.09375,-0.489252 1.09375,-1.09375 0,-0.604497 -0.489252,-1.09375 -1.09375,-1.09375 z m -26.474609,0.478516 c -1.246777,0 -2.257813,1.011036 -2.257813,2.257813 0,1.246776 1.011036,2.255859 2.257813,2.255859 1.246776,0 2.257812,-1.009083 2.257812,-2.255859 0,-1.246777 -1.011036,-2.257813 -2.257812,-2.257813 z m 22.916015,0.238281 c -0.736731,0 -1.333984,0.597253 -1.333984,1.333985 0,0.736731 0.597253,1.333984 1.333984,1.333984 0.736732,0 1.333985,-0.597253 1.333985,-1.333984 0,-0.736732 -0.597253,-1.333985 -1.333985,-1.333985 z m -4.34375,1.984375 c -0.736731,0 -1.333984,0.597253 -1.333984,1.333985 0,0.736731 0.597253,1.333984 1.333984,1.333984 0.736732,0 1.333985,-0.597253 1.333985,-1.333984 0,-0.736732 -0.597253,-1.333985 -1.333985,-1.333985 z m -6.052734,2.121094 c -0.963419,0 -1.746094,0.780722 -1.746094,1.744141 0,0.963418 0.782675,1.74414 1.746094,1.74414 0.963418,0 1.744141,-0.780722 1.744141,-1.74414 0,-0.963419 -0.780723,-1.744141 -1.744141,-1.744141 z m -6.5,0.410156 c -1.246777,0 -2.257813,1.011036 -2.257813,2.257813 0,1.246776 1.011036,2.257812 2.257813,2.257812 1.246777,0 2.257812,-1.011036 2.257812,-2.257812 0,-1.246777 -1.011035,-2.257813 -2.257812,-2.257813 z"
2763+ id="path4671"
2764+ inkscape:connector-curvature="0" />
2765+ <g
2766+ inkscape:groupmode="maskhelper"
2767+ id="g5207"
2768+ clip-path="url(#clipPath5210)"
2769+ transform="translate(-30,0)"
2770+ style="filter:url(#filter5254)">
2771+ <path
2772+ inkscape:connector-curvature="0"
2773+ id="path5196"
2774+ d="m -16.243318,68.721853 c 0,0 5.039812,16.466678 13.928865,20.094553 C 2.5509961,90.802134 10.082031,88 10.082031,88 -5.0535728,86.956165 -11.650445,76.159176 -16.243318,68.721853 Z m 35.895662,11.491038 c -2.340359,-10e-7 -5.599605,0.779208 -9.279297,3.765625 l 0.630859,1.688745 c 3.522768,-2.859058 6.656882,-3.932453 8.778917,-3.932453 2.122035,0 3.191786,0.148004 3.191786,0.148004 l 0.480469,-0.876953 c 0,0 -1.462376,-0.792968 -3.802734,-0.792968 z"
2775+ style="opacity:0.8;color:#000000;fill:#f695c8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2776+ sodipodi:nodetypes="csccsccsccs" />
2777+ <path
2778+ style="color:#000000;fill:none;stroke:#ffa4d9;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2779+ d="m -40.318117,80.400032 c 7.176364,10.699306 19.049984,8.350678 19.049984,8.350678"
2780+ id="path5258"
2781+ inkscape:connector-curvature="0"
2782+ transform="translate(30,0)"
2783+ sodipodi:nodetypes="cc" />
2784+ </g>
2785+ <path
2786+ style="opacity:0.8;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5128);enable-background:accumulate"
2787+ d="m -20.167519,84.930275 c 7.599117,-3.841312 9.185745,-4.843393 14.279659,-2.755724 -1.920656,-1.503122 -3.08975,-2.58871 -3.08975,-2.58871 l -4.342353,0.417534 z"
2788+ id="path5090"
2789+ inkscape:connector-curvature="0"
2790+ sodipodi:nodetypes="ccccc" />
2791+ </g>
2792+ <path
2793+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
2794+ d="M 141.96094,2.7675781 C 121.49192,3.0686835 77.588953,9.1420568 53.875,52.914062 l -0.171875,0.31836 0.07031,0.355469 c 0,0 2.841998,14.105108 6.199218,24.517578 0.03855,0.225213 2.092158,11.981994 12.423828,16.013672 7.142311,2.787109 12.348016,2.209287 16.46875,0.0625 4.120734,-2.146787 7.14871,-5.709829 10.41211,-8.744141 1.663466,-1.546694 4.933596,-2.089844 4.933596,-2.089844 l 1.50976,-0.205078 -0.78906,-1.302734 c -2.38012,-3.930337 -7.735111,-4.378719 -11.019531,-1.857422 -2.618615,2.01019 -5.017984,4.203596 -7.871093,4.419922 -6.06356,0.459745 -12.215723,-4.57084 -11.884766,-11.677735 0.127831,-2.745025 1.621985,-5.93229 3.722656,-7.210937 0.08363,0.01068 0.07254,0.01006 0.28711,0.05469 0.35771,0.0744 0.848361,0.189498 1.435546,0.324219 1.174372,0.269442 2.737406,0.616391 4.511719,0.886719 3.548627,0.540655 7.954898,0.797157 11.935547,-0.568359 10.676262,-3.662372 23.392492,-8.932364 31.710942,-17.482422 3.32835,-3.42103 5.0729,-7.58021 6.51562,-10.888672 0.72136,-1.654232 1.37267,-3.097681 2.04297,-4.107422 0.67029,-1.009742 1.28911,-1.527659 2.00781,-1.673828 0.1335,-0.02715 0.18984,-0.01837 0.43555,0.158203 0.24571,0.176577 0.57762,0.525037 0.9668,0.917969 0.38918,0.392932 0.84331,0.837745 1.46679,1.15625 0.62348,0.318504 1.44796,0.461778 2.28711,0.232422 1.96647,-0.537471 3.38345,-2.108385 4.3086,-3.898438 0.92514,-1.790053 1.39609,-3.846054 1.38671,-5.683594 -0.006,-1.130548 -0.3158,-2.052553 -0.45117,-2.724609 -0.13536,-0.672056 -0.14775,-0.945758 0.11719,-1.306641 0.79328,-1.080543 2.35143,-1.255151 4.15234,-1.384765 0.90046,-0.06481 1.8159,-0.110739 2.68555,-0.392579 0.86965,-0.281839 1.755,-0.946496 2.06641,-1.990234 0.43788,-1.467646 0.37412,-2.771131 -0.0469,-3.847656 -0.421,-1.076525 -1.15009,-1.895758 -1.90234,-2.595703 -1.5045,-1.3998902 -3.06822,-2.4387183 -3.55469,-3.7226565 -0.0948,-0.2503411 0.0542,-0.6844081 0.42383,-1.1601563 0.36962,-0.4757481 0.81445,-0.8222656 0.81445,-0.8222656 l 1.93164,-1.4746094 -2.41211,-0.3105468 c 0,0 -4.21801,-0.5417747 -11.04101,-0.4414063 z m -0.0273,1.9804688 c 4.49708,-0.061432 7.21154,0.1233576 8.91602,0.2753906 -0.46128,0.7057802 -0.87399,1.6131633 -0.47656,2.6621094 0.81135,2.1414296 2.76408,3.2703741 4.0625,4.4785151 0.64921,0.604071 1.14384,1.198382 1.40234,1.859376 0.2585,0.660993 0.32891,1.418275 -0.008,2.546874 -0.11579,0.38809 -0.26099,0.49466 -0.76563,0.658204 -0.50463,0.163543 -1.30769,0.237726 -2.21093,0.302734 -1.80649,0.130015 -4.19533,0.25323 -5.6211,2.195312 -0.68879,0.938214 -0.6374,2.039678 -0.4668,2.886719 0.17061,0.847042 0.4083,1.589285 0.41211,2.337891 0.008,1.474753 -0.4027,3.286489 -1.16211,4.755859 -0.7594,1.46937 -1.83187,2.5509 -3.06054,2.886719 -0.37957,0.103743 -0.57279,0.05743 -0.84961,-0.08398 -0.27682,-0.141415 -0.60428,-0.42705 -0.95703,-0.783204 -0.35276,-0.356153 -0.72279,-0.776942 -1.22071,-1.134765 -0.49791,-0.357823 -1.22812,-0.649172 -2,-0.492188 -1.41525,0.287836 -2.4567,1.292107 -3.27539,2.525391 -0.81868,1.233284 -1.48429,2.754137 -2.20898,4.416016 -1.44939,3.323757 -3.11292,7.205048 -6.11719,10.292968 -7.88995,8.109642 -20.34928,13.356228 -30.925779,16.984375 -3.469901,1.190311 -7.596501,1.000837 -10.986329,0.484375 -1.694913,-0.25823 -3.202927,-0.5927 -4.365234,-0.859375 -0.581153,-0.133337 -1.074638,-0.250392 -1.476562,-0.333984 -0.401925,-0.08359 -0.611858,-0.17026 -1.083985,-0.123047 l -0.199219,0.01953 -0.175781,0.0957 c -3.139073,1.6951 -4.792829,5.587112 -4.953125,9.029297 -0.386495,8.299518 6.7716,14.31606 14.03125,13.765625 3.741223,-0.283664 6.438504,-2.908261 8.939453,-4.828125 1.955177,-1.500898 5.006391,-1.450783 6.984371,0.207032 -1.27035,0.344113 -2.847186,0.938334 -4.201168,2.197265 -3.374425,3.137543 -6.311573,6.528226 -9.972656,8.435547 C 84.280324,94.315525 79.887419,94.894725 73.125,92.255859 63.866987,88.643151 61.925781,77.691406 61.925781,77.691406 l -0.01172,-0.07031 -0.02148,-0.06836 C 58.663292,67.556856 55.943221,54.185568 55.818359,53.570312 79.116731,10.928559 121.93855,5.0211862 141.93359,4.7480469 Z"
2795+ id="path4442"
2796+ inkscape:connector-curvature="0" />
2797+ <g
2798+ transform="translate(40,2.2594669e-6)"
2799+ id="g4427">
2800+ <path
2801+ sodipodi:type="arc"
2802+ style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.84735239;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2803+ id="path4055"
2804+ sodipodi:cx="46.179249"
2805+ sodipodi:cy="63.803059"
2806+ sodipodi:rx="11.440429"
2807+ sodipodi:ry="11.440429"
2808+ d="m 57.619678,63.803059 c 0,6.318374 -5.122055,11.440428 -11.440429,11.440428 -6.318375,0 -11.440429,-5.122054 -11.440429,-11.440428 0,-6.318375 5.122054,-11.440429 11.440429,-11.440429 6.318374,0 11.440429,5.122054 11.440429,11.440429 z"
2809+ transform="matrix(1.0826305,0,0,1.0826305,-31.853406,-3.5601908)" />
2810+ <g
2811+ id="g4359">
2812+ <path
2813+ transform="matrix(1.6953846,0,0,1.6953846,-65.06997,-43.304227)"
2814+ d="m 54.179198,62.984692 c 0,2.398215 -1.944138,4.342352 -4.342353,4.342352 -2.398215,0 -4.342352,-1.944137 -4.342352,-4.342352 0,-2.398215 1.944137,-4.342353 4.342352,-4.342353 2.398215,0 4.342353,1.944138 4.342353,4.342353 z"
2815+ sodipodi:ry="4.3423524"
2816+ sodipodi:rx="4.3423524"
2817+ sodipodi:cy="62.984692"
2818+ sodipodi:cx="49.836845"
2819+ id="path4057"
2820+ style="color:#000000;fill:#221d1f;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2821+ sodipodi:type="arc" />
2822+ <g
2823+ style="stroke:#211e1e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4316)"
2824+ transform="translate(30,0)"
2825+ clip-path="url(#clipPath4296-4)"
2826+ id="g4293"
2827+ inkscape:groupmode="maskhelper">
2828+ <path
2829+ style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#211e1e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2830+ d="m -16.417983,67.960724 c -2.475161,-3.225693 -1.866735,-7.847147 1.358958,-10.322308 0.767002,-0.588543 1.642417,-1.020249 2.576261,-1.270472 l 4.176798,7.979577 z"
2831+ id="path4059"
2832+ inkscape:connector-curvature="0"
2833+ sodipodi:nodetypes="csccc" />
2834+ </g>
2835+ <g
2836+ style="filter:url(#filter4355)"
2837+ transform="translate(30,0)"
2838+ clip-path="url(#clipPath4327-6)"
2839+ id="g4324"
2840+ inkscape:groupmode="maskhelper">
2841+ <path
2842+ transform="matrix(1.6953846,0,0,1.6953846,-95.06997,-43.304227)"
2843+ d="m 54.179198,62.984692 c 0,2.398215 -1.944138,4.342352 -4.342353,4.342352 -2.398215,0 -4.342352,-1.944137 -4.342352,-4.342352 0,-2.398215 1.944137,-4.342353 4.342352,-4.342353 2.398215,0 4.342353,1.944138 4.342353,4.342353 z"
2844+ sodipodi:ry="4.3423524"
2845+ sodipodi:rx="4.3423524"
2846+ sodipodi:cy="62.984692"
2847+ sodipodi:cx="49.836845"
2848+ id="path4320"
2849+ style="color:#000000;fill:none;stroke:#1a1a1a;stroke-width:0.41288567;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2850+ sodipodi:type="arc" />
2851+ </g>
2852+ </g>
2853+ <g
2854+ inkscape:groupmode="maskhelper"
2855+ id="g4372"
2856+ clip-path="url(#clipPath4375-1)"
2857+ transform="translate(40,0)"
2858+ style="filter:url(#filter4423)">
2859+ <path
2860+ sodipodi:nodetypes="ccsc"
2861+ inkscape:connector-curvature="0"
2862+ id="path4368"
2863+ d="m -27.672084,74.835975 c 10.261313,2.084329 16.728078,-7.589096 16.728078,-7.589096 0,0 -0.211048,6.108523 -6.787431,8.711427 -6.213454,2.459258 -9.940647,-1.122331 -9.940647,-1.122331 z"
2864+ style="color:#000000;fill:#8dd7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2865+ </g>
2866+ <path
2867+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.84735239;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
2868+ d="m 18.142133,52.12973 c -7.380905,0 -13.3869808,6.00396 -13.3869808,13.384865 0,7.380905 6.0060758,13.386981 13.3869808,13.386981 7.380904,0 13.384865,-6.006076 13.384865,-13.386981 0,-7.380905 -6.003961,-13.384865 -13.384865,-13.384865 z m 0,2.000329 c 6.300024,0 11.384535,5.084512 11.384535,11.384536 0,6.300025 -5.084511,11.386651 -11.384535,11.386651 -6.300025,0 -11.3866521,-5.086626 -11.3866521,-11.386651 0,-6.300024 5.0866271,-11.384536 11.3866521,-11.384536 z"
2869+ id="path4393"
2870+ inkscape:connector-curvature="0" />
2871+ </g>
2872+ </g>
2873+ </g>
2874+ <g
2875+ inkscape:groupmode="layer"
2876+ id="layer3"
2877+ inkscape:label="PLACE YOUR PICTOGRAM HERE"
2878+ style="display:inline" />
2879+ <g
2880+ inkscape:groupmode="layer"
2881+ id="layer2"
2882+ inkscape:label="BADGE"
2883+ style="display:none"
2884+ sodipodi:insensitive="true">
2885+ <g
2886+ style="display:inline"
2887+ transform="translate(-340.00001,-581)"
2888+ id="g4394"
2889+ clip-path="none">
2890+ <g
2891+ id="g855">
2892+ <g
2893+ inkscape:groupmode="maskhelper"
2894+ id="g870"
2895+ clip-path="url(#clipPath873)"
2896+ style="opacity:0.6;filter:url(#filter891)">
2897+ <path
2898+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
2899+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
2900+ sodipodi:ry="12"
2901+ sodipodi:rx="12"
2902+ sodipodi:cy="552.36218"
2903+ sodipodi:cx="252"
2904+ id="path844"
2905+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2906+ sodipodi:type="arc" />
2907+ </g>
2908+ <g
2909+ id="g862">
2910+ <path
2911+ sodipodi:type="arc"
2912+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2913+ id="path4398"
2914+ sodipodi:cx="252"
2915+ sodipodi:cy="552.36218"
2916+ sodipodi:rx="12"
2917+ sodipodi:ry="12"
2918+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
2919+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
2920+ <path
2921+ transform="matrix(1.25,0,0,1.25,33,-100.45273)"
2922+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
2923+ sodipodi:ry="12"
2924+ sodipodi:rx="12"
2925+ sodipodi:cy="552.36218"
2926+ sodipodi:cx="252"
2927+ id="path4400"
2928+ style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2929+ sodipodi:type="arc" />
2930+ <path
2931+ sodipodi:type="star"
2932+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2933+ id="path4459"
2934+ sodipodi:sides="5"
2935+ sodipodi:cx="666.19574"
2936+ sodipodi:cy="589.50385"
2937+ sodipodi:r1="7.2431178"
2938+ sodipodi:r2="4.3458705"
2939+ sodipodi:arg1="1.0471976"
2940+ sodipodi:arg2="1.6755161"
2941+ inkscape:flatsided="false"
2942+ inkscape:rounded="0.1"
2943+ inkscape:randomized="0"
2944+ d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z"
2945+ transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
2946+ </g>
2947+ </g>
2948+ </g>
2949+ </g>
2950+</svg>
2951
2952=== added file 'charms/client-forwardproxy/metadata.yaml'
2953--- charms/client-forwardproxy/metadata.yaml 1970-01-01 00:00:00 +0000
2954+++ charms/client-forwardproxy/metadata.yaml 2017-03-29 15:30:42 +0000
2955@@ -0,0 +1,16 @@
2956+name: client-forwardproxy
2957+maintainer: Curtis Hovey <curtis.hovey@canonical.com>
2958+summary: Setup a machine to be a client of a forward proxy.
2959+description: |
2960+ Setup a machine to be a client of a forward proxy
2961+ to access the outside network. Squid 3 can proxy FTP, HTTP, and HTTPS.
2962+requires:
2963+ forwardproxy:
2964+ interface: http
2965+tags:
2966+ - cache-proxy
2967+series:
2968+ - xenial
2969+ - trusty
2970+ - precise
2971+ - yakkety
2972
2973=== added file 'charms/client-forwardproxy/revision'
2974--- charms/client-forwardproxy/revision 1970-01-01 00:00:00 +0000
2975+++ charms/client-forwardproxy/revision 2017-03-29 15:30:42 +0000
2976@@ -0,0 +1,1 @@
2977+0
2978
2979=== added directory 'charms/client-forwardproxy/scripts'
2980=== added file 'charms/client-forwardproxy/scripts/setup-lxd.sh'
2981--- charms/client-forwardproxy/scripts/setup-lxd.sh 1970-01-01 00:00:00 +0000
2982+++ charms/client-forwardproxy/scripts/setup-lxd.sh 2017-03-29 15:30:42 +0000
2983@@ -0,0 +1,29 @@
2984+#!/bin/sh
2985+# Copyright 2016 Canonical Ltd.
2986+# Licensed under the AGPLv3, see LICENCE file for details.
2987+set -ex
2988+
2989+# Do the manual steps a user has to run on a fresh system to get an lxd
2990+# bridge so the juju lxd provider can function. Taken from changes made
2991+# to cloud-init to do approximately this.
2992+
2993+debconf-communicate << EOF
2994+set lxd/setup-bridge true
2995+set lxd/bridge-domain lxd
2996+set lxd/bridge-name lxdbr0
2997+set lxd/bridge-ipv4 true
2998+set lxd/bridge-ipv4-address 10.0.8.1
2999+set lxd/bridge-ipv4-dhcp-first 10.0.8.2
3000+set lxd/bridge-ipv4-dhcp-last 10.0.8.254
3001+set lxd/bridge-ipv4-dhcp-leases 252
3002+set lxd/bridge-ipv4-netmask 24
3003+set lxd/bridge-ipv4-nat true
3004+set lxd/bridge-ipv6 false
3005+EOF
3006+
3007+rm -rf /etc/default/lxd-bridge
3008+
3009+dpkg-reconfigure lxd --frontend=noninteractive
3010+
3011+# Must run a command for systemd socket activation to start the service
3012+lxc finger
3013
3014=== added directory 'charms/dummy-resource'
3015=== added file 'charms/dummy-resource/bar.txt'
3016--- charms/dummy-resource/bar.txt 1970-01-01 00:00:00 +0000
3017+++ charms/dummy-resource/bar.txt 2017-03-29 15:30:42 +0000
3018@@ -0,0 +1,1 @@
3019+The bar is high.
3020
3021=== added file 'charms/dummy-resource/baz.txt'
3022--- charms/dummy-resource/baz.txt 1970-01-01 00:00:00 +0000
3023+++ charms/dummy-resource/baz.txt 2017-03-29 15:30:42 +0000
3024@@ -0,0 +1,1 @@
3025+There is baz in this file.
3026
3027=== added file 'charms/dummy-resource/config.yaml'
3028--- charms/dummy-resource/config.yaml 1970-01-01 00:00:00 +0000
3029+++ charms/dummy-resource/config.yaml 2017-03-29 15:30:42 +0000
3030@@ -0,0 +1,5 @@
3031+options:
3032+ foo.bar:
3033+ type: int
3034+ default: 3
3035+ description: Number of foo.bars.
3036
3037=== added file 'charms/dummy-resource/foo.txt'
3038--- charms/dummy-resource/foo.txt 1970-01-01 00:00:00 +0000
3039+++ charms/dummy-resource/foo.txt 2017-03-29 15:30:42 +0000
3040@@ -0,0 +1,1 @@
3041+There is foo and more foo.
3042
3043=== added directory 'charms/dummy-resource/hooks'
3044=== added file 'charms/dummy-resource/hooks/config-changed'
3045--- charms/dummy-resource/hooks/config-changed 1970-01-01 00:00:00 +0000
3046+++ charms/dummy-resource/hooks/config-changed 2017-03-29 15:30:42 +0000
3047@@ -0,0 +1,16 @@
3048+#!/bin/bash
3049+
3050+set -x
3051+RES_NAME="bar"
3052+
3053+START_TIME=$(date +%s)
3054+RES_PATH=$(2>&1 resource-get $RES_NAME)
3055+if [ $? -ne 0 ]; then
3056+ RES_GET_STDERR=$RES_PATH
3057+ status-set blocked "[resource "'"'"$RES_NAME"'"'"] $RES_GET_STDERR"
3058+ exit 0
3059+fi
3060+
3061+TOTAL=$(($(date +%s) - $START_TIME))
3062+SIZE=$(du -b $RES_PATH | cut -f1)
3063+status-set maintenance "Path: $RES_PATH Time: $TOTAL sec Size: $SIZE bytes"
3064
3065=== added file 'charms/dummy-resource/hooks/hooks'
3066=== added file 'charms/dummy-resource/hooks/install'
3067--- charms/dummy-resource/hooks/install 1970-01-01 00:00:00 +0000
3068+++ charms/dummy-resource/hooks/install 2017-03-29 15:30:42 +0000
3069@@ -0,0 +1,17 @@
3070+#!/bin/bash
3071+
3072+set -x
3073+
3074+RES_NAME="foo"
3075+
3076+START_TIME=$(date +%s)
3077+RES_PATH=$(2>&1 resource-get $RES_NAME)
3078+if [ $? -ne 0 ]; then
3079+ RES_GET_STDERR=$RES_PATH
3080+ status-set blocked "[resource "'"'"$RES_NAME"'"'"] $RES_GET_STDERR"
3081+ exit 0
3082+fi
3083+
3084+TOTAL=$(($(date +%s) - $START_TIME))
3085+SIZE=$(du -b $RES_PATH | cut -f1)
3086+status-set maintenance "Path: $RES_PATH Time: $TOTAL sec Size: $SIZE bytes"
3087
3088=== added file 'charms/dummy-resource/metadata.yaml'
3089--- charms/dummy-resource/metadata.yaml 1970-01-01 00:00:00 +0000
3090+++ charms/dummy-resource/metadata.yaml 2017-03-29 15:30:42 +0000
3091@@ -0,0 +1,23 @@
3092+name: dummy-resource
3093+maintainer: Seman <seman.said@canonical.com>
3094+summary: Dummy charm to test resources.
3095+description: This dummy charm is used for resource testing.
3096+categories:
3097+ - misc
3098+series:
3099+ - trusty
3100+ - precise
3101+ - utopic
3102+ - vivid
3103+ - wily
3104+ - xenial
3105+resources:
3106+ foo:
3107+ type: file
3108+ filename: foo.txt
3109+ description: "foo resource."
3110+ bar:
3111+ type: file
3112+ filename: bar.txt
3113+ description: "bar resource."
3114+
3115
3116=== added file 'charms/dummy-resource/revision'
3117--- charms/dummy-resource/revision 1970-01-01 00:00:00 +0000
3118+++ charms/dummy-resource/revision 2017-03-29 15:30:42 +0000
3119@@ -0,0 +1,1 @@
3120+0
3121\ No newline at end of file
3122
3123=== added directory 'charms/dummy-sink'
3124=== added file 'charms/dummy-sink/README'
3125--- charms/dummy-sink/README 1970-01-01 00:00:00 +0000
3126+++ charms/dummy-sink/README 2017-03-29 15:30:42 +0000
3127@@ -0,0 +1,3 @@
3128+This is a simple workaround to allow jenkins-slave to use a Jenkins in another
3129+environment. Typically, you deploy this charm to the same machine as
3130+jenkins-slave, set master_url to the URL of the actual master and add-relation.
3131
3132=== added file 'charms/dummy-sink/config.yaml'
3133--- charms/dummy-sink/config.yaml 1970-01-01 00:00:00 +0000
3134+++ charms/dummy-sink/config.yaml 2017-03-29 15:30:42 +0000
3135@@ -0,0 +1,5 @@
3136+options:
3137+ token:
3138+ type: string
3139+ default: ''
3140+ description: Token used to prove that the relation is working
3141
3142=== added file 'charms/dummy-sink/copyright'
3143--- charms/dummy-sink/copyright 1970-01-01 00:00:00 +0000
3144+++ charms/dummy-sink/copyright 2017-03-29 15:30:42 +0000
3145@@ -0,0 +1,1 @@
3146+Copyright 2014 Canonical Ltd.
3147
3148=== added directory 'charms/dummy-sink/hooks'
3149=== added file 'charms/dummy-sink/hooks/config-changed'
3150--- charms/dummy-sink/hooks/config-changed 1970-01-01 00:00:00 +0000
3151+++ charms/dummy-sink/hooks/config-changed 2017-03-29 15:30:42 +0000
3152@@ -0,0 +1,1 @@
3153+#!/bin/sh
3154
3155=== added file 'charms/dummy-sink/hooks/install'
3156--- charms/dummy-sink/hooks/install 1970-01-01 00:00:00 +0000
3157+++ charms/dummy-sink/hooks/install 2017-03-29 15:30:42 +0000
3158@@ -0,0 +1,3 @@
3159+#!/bin/sh
3160+
3161+status-set maintenance "Installed" || true
3162
3163=== added file 'charms/dummy-sink/hooks/source-relation-changed'
3164--- charms/dummy-sink/hooks/source-relation-changed 1970-01-01 00:00:00 +0000
3165+++ charms/dummy-sink/hooks/source-relation-changed 2017-03-29 15:30:42 +0000
3166@@ -0,0 +1,13 @@
3167+#!/bin/bash
3168+set -eux
3169+
3170+mkdir -p /var/run/dummy-sink
3171+token=$(relation-get token)
3172+echo "$token" > /var/run/dummy-sink/token
3173+if [[ -z $token ]]; then
3174+ juju-log -l INFO "Waiting for token"
3175+ status-set waiting "Waiting for token" || true
3176+else
3177+ juju-log -l INFO "Token is $token"
3178+ status-set active "Token is $token" || true
3179+fi
3180
3181=== added file 'charms/dummy-sink/hooks/start'
3182--- charms/dummy-sink/hooks/start 1970-01-01 00:00:00 +0000
3183+++ charms/dummy-sink/hooks/start 2017-03-29 15:30:42 +0000
3184@@ -0,0 +1,3 @@
3185+#!/bin/sh
3186+
3187+status-set maintenance "Started" || true
3188
3189=== added file 'charms/dummy-sink/metadata.yaml'
3190--- charms/dummy-sink/metadata.yaml 1970-01-01 00:00:00 +0000
3191+++ charms/dummy-sink/metadata.yaml 2017-03-29 15:30:42 +0000
3192@@ -0,0 +1,16 @@
3193+name: dummy-sink
3194+maintainer: Aaron Bentley <aaron.bentley@canonical.com>
3195+summary: Dummy charm that accepts data
3196+description: |
3197+ This dummy charm is used to verify that a relationship is created correctly
3198+provides:
3199+ source:
3200+ interface: dummy-token
3201+categories:
3202+ - misc
3203+series:
3204+ - xenial
3205+ - trusty
3206+ - precise
3207+ - yakkety
3208+ - zesty
3209
3210=== added directory 'charms/dummy-source'
3211=== added file 'charms/dummy-source/README'
3212--- charms/dummy-source/README 1970-01-01 00:00:00 +0000
3213+++ charms/dummy-source/README 2017-03-29 15:30:42 +0000
3214@@ -0,0 +1,3 @@
3215+This is a simple workaround to allow jenkins-slave to use a Jenkins in another
3216+environment. Typically, you deploy this charm to the same machine as
3217+jenkins-slave, set master_url to the URL of the actual master and add-relation.
3218
3219=== added file 'charms/dummy-source/config.yaml'
3220--- charms/dummy-source/config.yaml 1970-01-01 00:00:00 +0000
3221+++ charms/dummy-source/config.yaml 2017-03-29 15:30:42 +0000
3222@@ -0,0 +1,5 @@
3223+options:
3224+ token:
3225+ type: string
3226+ default: ''
3227+ description: Token used to prove that the relation is working
3228
3229=== added file 'charms/dummy-source/copyright'
3230--- charms/dummy-source/copyright 1970-01-01 00:00:00 +0000
3231+++ charms/dummy-source/copyright 2017-03-29 15:30:42 +0000
3232@@ -0,0 +1,1 @@
3233+Copyright 2014 Canonical Ltd.
3234
3235=== added directory 'charms/dummy-source/hooks'
3236=== added file 'charms/dummy-source/hooks/config-changed'
3237--- charms/dummy-source/hooks/config-changed 1970-01-01 00:00:00 +0000
3238+++ charms/dummy-source/hooks/config-changed 2017-03-29 15:30:42 +0000
3239@@ -0,0 +1,16 @@
3240+#!/bin/bash
3241+set -eux
3242+
3243+juju-log -l INFO "Getting token"
3244+status-set maintenance "Getting token" || true
3245+token="$(config-get token)"
3246+for relation_id in $(relation-ids sink); do
3247+ relation-set -r $relation_id token="$token"
3248+done
3249+if [[ -z $token ]]; then
3250+ juju-log -l WARNING "Blocked: set the token"
3251+ status-set blocked "Set the token" || true
3252+else
3253+ juju-log -l INFO "Token is $token"
3254+ status-set active "Token is $token" || true
3255+fi
3256
3257=== added file 'charms/dummy-source/hooks/install'
3258--- charms/dummy-source/hooks/install 1970-01-01 00:00:00 +0000
3259+++ charms/dummy-source/hooks/install 2017-03-29 15:30:42 +0000
3260@@ -0,0 +1,3 @@
3261+#!/bin/sh
3262+
3263+status-set maintenance "Installed" || true
3264
3265=== added symlink 'charms/dummy-source/hooks/sink-relation-joined'
3266=== target is u'config-changed'
3267=== added file 'charms/dummy-source/hooks/start'
3268--- charms/dummy-source/hooks/start 1970-01-01 00:00:00 +0000
3269+++ charms/dummy-source/hooks/start 2017-03-29 15:30:42 +0000
3270@@ -0,0 +1,3 @@
3271+#!/bin/sh
3272+
3273+status-set maintenance "Started" || true
3274
3275=== added file 'charms/dummy-source/metadata.yaml'
3276--- charms/dummy-source/metadata.yaml 1970-01-01 00:00:00 +0000
3277+++ charms/dummy-source/metadata.yaml 2017-03-29 15:30:42 +0000
3278@@ -0,0 +1,17 @@
3279+name: dummy-source
3280+maintainer: Aaron Bentley <aaron.bentley@canonical.com>
3281+summary: Dummy charm that provides data
3282+description: |
3283+ This dummy charm is used to verify that a relationship is created correctly
3284+requires:
3285+ sink:
3286+ interface: dummy-token
3287+categories:
3288+ - misc
3289+series:
3290+ - xenial
3291+ - trusty
3292+ - precise
3293+ - yakkety
3294+ - zesty
3295+
3296
3297=== added directory 'charms/dummy-subordinate'
3298=== added file 'charms/dummy-subordinate/README'
3299--- charms/dummy-subordinate/README 1970-01-01 00:00:00 +0000
3300+++ charms/dummy-subordinate/README 2017-03-29 15:30:42 +0000
3301@@ -0,0 +1,10 @@
3302+This is dummy-subordinate charm used to bring subordinate charm
3303+for dummy-sink charm.
3304+
3305+Deploy dummy-subordinate charm:
3306+-------------------------------
3307+
3308+juju deploy dummy-sink
3309+juju deploy dummy-subordinate
3310+juju add-relation dummy-sink dummy-subordinate
3311+juju config dummy-subordinate token="Canonical"
3312
3313=== added file 'charms/dummy-subordinate/config.yaml'
3314--- charms/dummy-subordinate/config.yaml 1970-01-01 00:00:00 +0000
3315+++ charms/dummy-subordinate/config.yaml 2017-03-29 15:30:42 +0000
3316@@ -0,0 +1,5 @@
3317+options:
3318+ token:
3319+ type: string
3320+ default: ''
3321+ description: Token used to prove that the relation is working
3322
3323=== added file 'charms/dummy-subordinate/copyright'
3324--- charms/dummy-subordinate/copyright 1970-01-01 00:00:00 +0000
3325+++ charms/dummy-subordinate/copyright 2017-03-29 15:30:42 +0000
3326@@ -0,0 +1,1 @@
3327+Copyright 2017 Canonical Ltd.
3328
3329=== added directory 'charms/dummy-subordinate/hooks'
3330=== added file 'charms/dummy-subordinate/hooks/config-changed'
3331--- charms/dummy-subordinate/hooks/config-changed 1970-01-01 00:00:00 +0000
3332+++ charms/dummy-subordinate/hooks/config-changed 2017-03-29 15:30:42 +0000
3333@@ -0,0 +1,16 @@
3334+#!/bin/bash
3335+set -eux
3336+
3337+juju-log -l INFO "Getting token"
3338+status-set maintenance "Getting token" || true
3339+token="$(config-get token)"
3340+for relation_id in $(relation-ids sink); do
3341+ relation-set -r $relation_id token="$token"
3342+done
3343+if [[ -z $token ]]; then
3344+ juju-log -l WARNING "Blocked: set the token"
3345+ status-set blocked "Set the token" || true
3346+else
3347+ juju-log -l INFO "Token is $token"
3348+ status-set active "Token is $token" || true
3349+fi
3350
3351=== added file 'charms/dummy-subordinate/hooks/install'
3352--- charms/dummy-subordinate/hooks/install 1970-01-01 00:00:00 +0000
3353+++ charms/dummy-subordinate/hooks/install 2017-03-29 15:30:42 +0000
3354@@ -0,0 +1,3 @@
3355+#!/bin/sh
3356+
3357+status-set maintenance "Installed" || true
3358
3359=== added file 'charms/dummy-subordinate/hooks/sink-relation-joined'
3360--- charms/dummy-subordinate/hooks/sink-relation-joined 1970-01-01 00:00:00 +0000
3361+++ charms/dummy-subordinate/hooks/sink-relation-joined 2017-03-29 15:30:42 +0000
3362@@ -0,0 +1,16 @@
3363+#!/bin/bash
3364+set -eux
3365+
3366+juju-log -l INFO "Getting token"
3367+status-set maintenance "Getting token" || true
3368+token="$(config-get token)"
3369+for relation_id in $(relation-ids sink); do
3370+ relation-set -r $relation_id token="$token"
3371+done
3372+if [[ -z $token ]]; then
3373+ juju-log -l WARNING "Blocked: set the token"
3374+ status-set blocked "Set the token" || true
3375+else
3376+ juju-log -l INFO "Token is $token"
3377+ status-set active "Token is $token" || true
3378+fi
3379
3380=== added file 'charms/dummy-subordinate/hooks/start'
3381--- charms/dummy-subordinate/hooks/start 1970-01-01 00:00:00 +0000
3382+++ charms/dummy-subordinate/hooks/start 2017-03-29 15:30:42 +0000
3383@@ -0,0 +1,3 @@
3384+#!/bin/sh
3385+
3386+status-set maintenance "Started" || true
3387
3388=== added file 'charms/dummy-subordinate/hooks/stop'
3389--- charms/dummy-subordinate/hooks/stop 1970-01-01 00:00:00 +0000
3390+++ charms/dummy-subordinate/hooks/stop 2017-03-29 15:30:42 +0000
3391@@ -0,0 +1,1 @@
3392+#!/bin/sh
3393
3394=== added file 'charms/dummy-subordinate/metadata.yaml'
3395--- charms/dummy-subordinate/metadata.yaml 1970-01-01 00:00:00 +0000
3396+++ charms/dummy-subordinate/metadata.yaml 2017-03-29 15:30:42 +0000
3397@@ -0,0 +1,18 @@
3398+name: dummy-subordinate
3399+maintainer: Juju-QA <aaron.bentley+cjqa@canonical.com>
3400+subordinate: true
3401+summary: Dummy subordinate charm that accepts data
3402+description: |
3403+ This dummy subordinate charm is used to verify that a relationship is created correctly
3404+requires:
3405+ sink:
3406+ interface: dummy-token
3407+ scope: container
3408+categories:
3409+ - misc
3410+series:
3411+ - xenial
3412+ - trusty
3413+ - precise
3414+ - yakkety
3415+ - zesty
3416
3417=== added directory 'charms/fill-logs'
3418=== added file 'charms/fill-logs/README.md'
3419--- charms/fill-logs/README.md 1970-01-01 00:00:00 +0000
3420+++ charms/fill-logs/README.md 2017-03-29 15:30:42 +0000
3421@@ -0,0 +1,3 @@
3422+#fill-logs
3423+
3424+Fill-logs is a testing charm intended to be used to test log rotation.
3425
3426=== added directory 'charms/fill-logs/actions'
3427=== added file 'charms/fill-logs/actions.yaml'
3428--- charms/fill-logs/actions.yaml 1970-01-01 00:00:00 +0000
3429+++ charms/fill-logs/actions.yaml 2017-03-29 15:30:42 +0000
3430@@ -0,0 +1,25 @@
3431+fill-unit:
3432+ description: Fill the unit agent log with data.
3433+ params:
3434+ megs:
3435+ type: integer
3436+ description: number of MB of data to add to unit agent log
3437+ required: [megs]
3438+ additionalProperties: false
3439+fill-machine:
3440+ description: Fill the machine agent log with data.
3441+ params:
3442+ megs:
3443+ type: integer
3444+ description: number of MB of data to add to machine agent log
3445+ machine:
3446+ type: integer
3447+ description: the machine number this unit is on
3448+ required: [megs, machine]
3449+ additionalProperties: false
3450+machine-size:
3451+ description: Gets the name and sizes of machine agent logs.
3452+ additionalProperties: false
3453+unit-size:
3454+ description: Gets the name and sizes of unit agent logs.
3455+ additionalProperties: false
3456\ No newline at end of file
3457
3458=== added file 'charms/fill-logs/actions/actions.go'
3459--- charms/fill-logs/actions/actions.go 1970-01-01 00:00:00 +0000
3460+++ charms/fill-logs/actions/actions.go 2017-03-29 15:30:42 +0000
3461@@ -0,0 +1,149 @@
3462+package main
3463+
3464+import (
3465+ "fmt"
3466+ "io"
3467+ "os"
3468+ "os/exec"
3469+ "path/filepath"
3470+ "strconv"
3471+ "strings"
3472+)
3473+
3474+func main() {
3475+ if err := run(os.Args); err != nil {
3476+ fmt.Fprintln(os.Stderr, err)
3477+ os.Exit(1)
3478+ }
3479+}
3480+
3481+func run(args []string) error {
3482+ if len(args) != 2 {
3483+ return fmt.Errorf("expected exactly one argument, the action name")
3484+ }
3485+ switch args[1] {
3486+ case "fill-unit":
3487+ return fillUnit()
3488+ case "fill-machine":
3489+ return fillMachine()
3490+ case "unit-size":
3491+ return unitLogSizes()
3492+ case "machine-size":
3493+ return machineLogSizes()
3494+ default:
3495+ return fmt.Errorf("unknown action: %q", args[1])
3496+ }
3497+}
3498+
3499+func fillUnit() error {
3500+ return fillLog(os.Stdout)
3501+}
3502+
3503+func unitLogSizes() error {
3504+ return writeSizes("/var/log/juju/unit-fill-logs*.log")
3505+}
3506+
3507+func machineLogSizes() error {
3508+ return writeSizes("/var/log/juju/machine-*.log")
3509+}
3510+
3511+func fillMachine() (err error) {
3512+ machine, err := getMachine()
3513+ if err != nil {
3514+ return err
3515+ }
3516+ svcname := fmt.Sprintf("jujud-machine-%d", machine)
3517+ out, err := exec.Command("service", svcname, "stop").CombinedOutput()
3518+ if err != nil {
3519+ return fmt.Errorf("error stopping machine agent %q: %s", svcname, out)
3520+ }
3521+ defer func() {
3522+ out, err2 := exec.Command("service", svcname, "start").CombinedOutput()
3523+ if err2 == nil {
3524+ return
3525+ }
3526+ if err == nil {
3527+ // function error is currently nil, so overwrite with this one.
3528+ err = fmt.Errorf("error starting machine agent %q: %s", svcname, out)
3529+ return
3530+ }
3531+ // function error is non-nil, so can't overwrite, just print.
3532+ fmt.Printf("error starting machine agent %q: %s", svcname, out)
3533+ }()
3534+ logname := fmt.Sprintf("/var/log/juju/machine-%d.log", machine)
3535+ f, err := os.OpenFile(logname, os.O_APPEND|os.O_WRONLY, 0644)
3536+ if err != nil {
3537+ return fmt.Errorf("failed to open machine log file: %v", err)
3538+ }
3539+ defer f.Close()
3540+ return fillLog(f)
3541+}
3542+
3543+func fillLog(w io.Writer) error {
3544+ megs, err := getMegs()
3545+ if err != nil {
3546+ return err
3547+ }
3548+ bytes := megs * 1024 * 1024
3549+ total := 0
3550+
3551+ for total < bytes {
3552+ // technically, the log file will be bigger than asked for, since it
3553+ // prepends a bunch of stuff to each log call, but this guarantees we've
3554+ // put *at least* this much data in the log, which should guarantee a
3555+ // rotation.
3556+ n, err := fmt.Fprintln(w, lorem)
3557+ if err != nil {
3558+ return fmt.Errorf("error writing to log: %s", err)
3559+ }
3560+ total += n
3561+ }
3562+ return nil
3563+}
3564+
3565+func writeSizes(glob string) error {
3566+ paths, err := filepath.Glob(glob)
3567+ if err != nil {
3568+ return fmt.Errorf("error getting logs for %q: %s", glob, err)
3569+ }
3570+
3571+ // go through the list in reverse, since the primary log file is always last,
3572+ // but it's a lot more convenient for parsing if it's first in the output.
3573+ for i, j := len(paths)-1, 0; i >= 0; i-- {
3574+ path := paths[i]
3575+ info, err := os.Stat(path)
3576+ if err != nil {
3577+ return fmt.Errorf("error stating log %q: %s", path, err)
3578+ }
3579+ name := fmt.Sprintf("result-map.log%d.name=%s", j, path)
3580+ size := fmt.Sprintf("result-map.log%d.size=%d", j, info.Size()/1024/1024)
3581+ out, err := exec.Command("action-set", name, size).CombinedOutput()
3582+ if err != nil {
3583+ return fmt.Errorf("error calling action-set: %s", out)
3584+ }
3585+ j++
3586+ }
3587+
3588+ return nil
3589+}
3590+
3591+func getMegs() (int, error) {
3592+ return getInt("megs")
3593+}
3594+
3595+func getMachine() (int, error) {
3596+ return getInt("machine")
3597+}
3598+
3599+func getInt(name string) (int, error) {
3600+ out, err := exec.Command("action-get", name).CombinedOutput()
3601+ if err != nil {
3602+ fmt.Fprintln(os.Stderr, out)
3603+ return 0, fmt.Errorf("error calling action-get: %s", err)
3604+ }
3605+ // for some reason the output always comes with a /n at the end, so just
3606+ // trim it.
3607+ return strconv.Atoi(strings.TrimSpace(string(out)))
3608+}
3609+
3610+const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.`
3611
3612=== added file 'charms/fill-logs/actions/fill-machine'
3613--- charms/fill-logs/actions/fill-machine 1970-01-01 00:00:00 +0000
3614+++ charms/fill-logs/actions/fill-machine 2017-03-29 15:30:42 +0000
3615@@ -0,0 +1,3 @@
3616+#!/bin/bash
3617+
3618+go run actions/actions.go fill-machine
3619\ No newline at end of file
3620
3621=== added file 'charms/fill-logs/actions/fill-unit'
3622--- charms/fill-logs/actions/fill-unit 1970-01-01 00:00:00 +0000
3623+++ charms/fill-logs/actions/fill-unit 2017-03-29 15:30:42 +0000
3624@@ -0,0 +1,3 @@
3625+#!/bin/bash
3626+
3627+go run actions/actions.go fill-unit
3628\ No newline at end of file
3629
3630=== added file 'charms/fill-logs/actions/machine-size'
3631--- charms/fill-logs/actions/machine-size 1970-01-01 00:00:00 +0000
3632+++ charms/fill-logs/actions/machine-size 2017-03-29 15:30:42 +0000
3633@@ -0,0 +1,3 @@
3634+#!/bin/bash
3635+
3636+go run actions/actions.go machine-size
3637\ No newline at end of file
3638
3639=== added file 'charms/fill-logs/actions/unit-size'
3640--- charms/fill-logs/actions/unit-size 1970-01-01 00:00:00 +0000
3641+++ charms/fill-logs/actions/unit-size 2017-03-29 15:30:42 +0000
3642@@ -0,0 +1,3 @@
3643+#!/bin/bash
3644+
3645+go run actions/actions.go unit-size
3646\ No newline at end of file
3647
3648=== added file 'charms/fill-logs/config.yaml'
3649--- charms/fill-logs/config.yaml 1970-01-01 00:00:00 +0000
3650+++ charms/fill-logs/config.yaml 2017-03-29 15:30:42 +0000
3651@@ -0,0 +1,1 @@
3652+options:
3653
3654=== added directory 'charms/fill-logs/hooks'
3655=== added file 'charms/fill-logs/hooks/install'
3656--- charms/fill-logs/hooks/install 1970-01-01 00:00:00 +0000
3657+++ charms/fill-logs/hooks/install 2017-03-29 15:30:42 +0000
3658@@ -0,0 +1,5 @@
3659+#!/bin/bash
3660+
3661+set -e
3662+
3663+apt-get install -y golang
3664\ No newline at end of file
3665
3666=== added file 'charms/fill-logs/metadata.yaml'
3667--- charms/fill-logs/metadata.yaml 1970-01-01 00:00:00 +0000
3668+++ charms/fill-logs/metadata.yaml 2017-03-29 15:30:42 +0000
3669@@ -0,0 +1,13 @@
3670+name: fill-logs
3671+summary: Test charm that fills the logs
3672+maintainer: Nate Finch <nate.finch@gmail.com>
3673+description: Charm fills the logs.
3674+categories:
3675+ - application
3676+series:
3677+ - trusty
3678+ - precise
3679+ - utopic
3680+ - vivid
3681+ - wily
3682+ - xenial
3683
3684=== added directory 'charms/jenkins-juju-ci'
3685=== added file 'charms/jenkins-juju-ci/README.md'
3686--- charms/jenkins-juju-ci/README.md 1970-01-01 00:00:00 +0000
3687+++ charms/jenkins-juju-ci/README.md 2017-03-29 15:30:42 +0000
3688@@ -0,0 +1,16 @@
3689+# Overview
3690+
3691+This charm provisions the Juju CI testing tools needed to run tests on a
3692+jenkins slave.
3693+
3694+
3695+# Usage
3696+
3697+To deploy a Jenkins slave you will also need to deploy the jenkins master
3698+charm. This can be done as follows:
3699+
3700+ juju deploy jenkins
3701+ juju deploy jenkins-slave
3702+ juju deploy jenkins-juju-ci
3703+ juju add-relation jenkins jenkins-slave
3704+ juju add-relation jenkins-juju-ci jenkins-slave
3705
3706=== added file 'charms/jenkins-juju-ci/config.yaml'
3707--- charms/jenkins-juju-ci/config.yaml 1970-01-01 00:00:00 +0000
3708+++ charms/jenkins-juju-ci/config.yaml 2017-03-29 15:30:42 +0000
3709@@ -0,0 +1,10 @@
3710+options:
3711+ lp-key:
3712+ type: string
3713+ default: ""
3714+ description: "SSH key for accessing private code on launchpad."
3715+ s3-proxy:
3716+ type: string
3717+ default: ""
3718+ description: "Route s3 calls though a proxy. eg squid.internal:3128"
3719+
3720
3721=== added file 'charms/jenkins-juju-ci/copyright'
3722--- charms/jenkins-juju-ci/copyright 1970-01-01 00:00:00 +0000
3723+++ charms/jenkins-juju-ci/copyright 2017-03-29 15:30:42 +0000
3724@@ -0,0 +1,17 @@
3725+Format: http://dep.debian.net/deps/dep5/
3726+
3727+Files: *
3728+Copyright: Copyright 2016, Canonical Ltd., All Rights Reserved.
3729+License: GPL-3
3730+ This program is free software: you can redistribute it and/or modify
3731+ it under the terms of the GNU General Public License as published by
3732+ the Free Software Foundation, either version 3 of the License, or
3733+ (at your option) any later version.
3734+ .
3735+ This program is distributed in the hope that it will be useful,
3736+ but WITHOUT ANY WARRANTY; without even the implied warranty of
3737+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3738+ GNU General Public License for more details.
3739+ .
3740+ You should have received a copy of the GNU General Public License
3741+ along with this program. If not, see <http://www.gnu.org/licenses/>.
3742
3743=== added directory 'charms/jenkins-juju-ci/files'
3744=== added directory 'charms/jenkins-juju-ci/hooks'
3745=== added file 'charms/jenkins-juju-ci/hooks/config-changed'
3746--- charms/jenkins-juju-ci/hooks/config-changed 1970-01-01 00:00:00 +0000
3747+++ charms/jenkins-juju-ci/hooks/config-changed 2017-03-29 15:30:42 +0000
3748@@ -0,0 +1,141 @@
3749+#!/bin/bash
3750+set -eux
3751+
3752+HOSTNAME=$(hostname)
3753+JENKINS_HOME="/var/lib/jenkins"
3754+KEY="staging-juju-rsa"
3755+
3756+export PATH=/usr/local/bin:$JENKINS_HOME/Bin:$PATH
3757+
3758+
3759+as_jenkins() {
3760+ local_command="$@"
3761+ su -l jenkins -c "$local_command"
3762+}
3763+
3764+
3765+update_branch() {
3766+ local_branch=$1
3767+ local_dir="$(basename $local_branch | cut -d ':' -f2)"
3768+ local_path="$JENKINS_HOME/$local_dir"
3769+ if [[ -d $local_path ]]; then
3770+ as_jenkins bzr pull -d $local_path
3771+ else
3772+ as_jenkins bzr branch $local_branch $local_path
3773+ fi
3774+}
3775+
3776+
3777+update_known_hosts() {
3778+ local_host="$1"
3779+ local_key="$(ssh-keyscan -H $local_host)"
3780+ if ! grep "$local_key" $JENKINS_HOME/.ssh/known_hosts; then
3781+ echo "$local_key" >> $JENKINS_HOME/.ssh/known_hosts
3782+ fi
3783+}
3784+
3785+
3786+status-set maintenance "Updating scripts" || true
3787+
3788+set +x
3789+LP_KEY=$(config-get lp-key)
3790+if [[ "$LP_KEY" == "" ]]; then
3791+ status-set blocked "Waiting for lp-key to be set" || true
3792+ exit 0
3793+fi
3794+set -x
3795+
3796+status-set maintenance "Updating bzr" || true
3797+set +x
3798+echo "$LP_KEY" > $JENKINS_HOME/.ssh/lp_rsa
3799+set -x
3800+cp $JENKINS_HOME/.ssh/lp_rsa $JENKINS_HOME/.ssh/id_rsa
3801+chown -R jenkins:jenkins $JENKINS_HOME/.ssh
3802+chmod 600 $JENKINS_HOME/.ssh/*rsa
3803+update_known_hosts bazaar.launchpad.net
3804+update_known_hosts git.launchpad.net
3805+update_known_hosts upload.launchpad.net
3806+update_known_hosts ppa.launchpad.net
3807+chmod 600 $JENKINS_HOME/.ssh/known_hosts
3808+as_jenkins bzr --no-aliases launchpad-login juju-qa-bot
3809+
3810+status-set maintenance "Updating branches" || true
3811+if [[ -d $JENKINS_HOME/ci-director ]]; then
3812+ update_branch lp:ci-director
3813+fi
3814+update_branch lp:workspace-runner
3815+update_branch lp:juju-release-tools
3816+update_branch lp:juju-ci-tools
3817+update_branch lp:juju-ci-tools/repository
3818+update_branch lp:~juju-qa/+junk/cloud-city
3819+
3820+status-set maintenance "Updating permissions" || true
3821+chown -R jenkins $JENKINS_HOME/cloud-city
3822+chmod -R go-w $JENKINS_HOME/cloud-city
3823+chmod 700 $JENKINS_HOME/cloud-city
3824+chmod 700 $JENKINS_HOME/cloud-city/gnupg
3825+chmod 600 $JENKINS_HOME/cloud-city/$KEY
3826+
3827+status-set maintenance "Updating ssh" || true
3828+if [[ ! -f $JENKINS_HOME/.ssh/config ]]; then
3829+cat << EOC > $JENKINS_HOME/.ssh/config
3830+Host 10.* 192.168.*
3831+ StrictHostKeyChecking no
3832+ UserKnownHostsFile /dev/null
3833+ User ubuntu
3834+ IdentityFile $JENKINS_HOME/cloud-city/$KEY
3835+EOC
3836+fi
3837+if [[ ! -f $JENKINS_HOME/.ssh/id_rsa ]]; then
3838+ as_jenkins ln -s $JENKINS_HOME/cloud-city/$KEY $JENKINS_HOME/.ssh/id_rsa
3839+fi
3840+if [[ ! -f $JENKINS_HOME/.ssh/id_rsa.pub ]]; then
3841+ as_jenkins ln -s $JENKINS_HOME/cloud-city/$KEY.pub $JENKINS_HOME/.ssh/id_rsa.pub
3842+fi
3843+chown -R jenkins:jenkins $JENKINS_HOME/.ssh
3844+
3845+status-set maintenance "Updating git" || true
3846+github_username=$(sed -r '/github_user/!d; s/.*"(.*)"/\1/; s/%20/ /' $JENKINS_HOME/cloud-city/juju-bot.txt)
3847+github_password=$(sed -r '/github_password/!d; s/.*"(.*)"/\1/; s/%20/ /' $JENKINS_HOME/cloud-city/juju-bot.txt)
3848+cat << EOC > $JENKINS_HOME/.gitconfig
3849+[user]
3850+ name = jenkins
3851+ email = jenkins@vapour.ws
3852+[credential]
3853+ helper = cache
3854+[credential "https://github.com"]
3855+ username = $github_username
3856+ password = $github_password
3857+[url "https://"]
3858+ insteadOf = http://
3859+EOC
3860+sudo chown jenkins:jenkins $JENKINS_HOME/.gitconfig
3861+
3862+S3_PROXY=$(config-get s3-proxy)
3863+if [[ $S3_PROXY == "" ]]; then
3864+ # Remove s3 proxy changes from .boto and juju-qa.s3cfg.
3865+ rm $JENKINS_HOME/.boto || true
3866+ (cd cloud-city && as_jenkins bzr revert bzr revert juju-qa.s3cfg || true)
3867+else
3868+ S3_PROXY_HOST=$(echo "$S3_PROXY" | cut -d ':' -f 1)
3869+ S3_PROXY_PORT=$(echo "$S3_PROXY" | cut -d ':' -f 2)
3870+ # Place a .boto file for python scripts
3871+ cat << EOC > $JENKINS_HOME/.boto
3872+[Boto]
3873+proxy = $S3_PROXY_HOST
3874+proxy_port = $S3_PROXY_PORT
3875+EOC
3876+ chown jenkins:jenkins $JENKINS_HOME/.boto
3877+ # Modify cloud-city/juju-qa.s3cfg to use a proxy.
3878+ sed -i -r "s/(proxy_host =).*/\1 $S3_PROXY_HOST/; s/(proxy_port =).*/\1 $S3_PROXY_PORT/;" \
3879+ $JENKINS_HOME/cloud-city/juju-qa.s3cfg
3880+fi
3881+
3882+status-set maintenance "Updating dependencies from branches" || true
3883+if [[ $(uname) == "Linux" ]]; then
3884+ as_jenkins make -C $JENKINS_HOME/juju-ci-tools install-deps
3885+ as_jenkins make -C $JENKINS_HOME/workspace-runner install
3886+fi
3887+
3888+NOW=$(date +%Y-%m-%dT%H:%M)
3889+status-set active "$HOSTNAME updated $NOW" || true
3890
3891=== added file 'charms/jenkins-juju-ci/hooks/install'
3892--- charms/jenkins-juju-ci/hooks/install 1970-01-01 00:00:00 +0000
3893+++ charms/jenkins-juju-ci/hooks/install 2017-03-29 15:30:42 +0000
3894@@ -0,0 +1,61 @@
3895+#!/bin/bash
3896+
3897+set -eux
3898+
3899+status-set maintenance "Installing: configuring apt" || true
3900+SERIES=$(lsb_release -sc)
3901+DEB_LINE="http://archive.ubuntu.com/ubuntu/ $SERIES-proposed restricted main multiverse universe"
3902+apt-add-repository -y ppa:juju/stable
3903+if [[ ! -f /etc/apt/preferences.d/proposed-updates ]]; then
3904+ cat << EOC | tee /etc/apt/preferences.d/proposed-updates
3905+Package: *
3906+Pin: release a=$SERIES-proposed
3907+Pin-Priority: 400
3908+EOC
3909+fi
3910+if ! grep "$SERIES-proposed" /etc/apt/sources.list; then
3911+ echo "deb $DEB_LINE" | tee -a /etc/apt/sources.list
3912+fi
3913+
3914+status-set maintenance "Installing: installing packages" || true
3915+apt-get update
3916+apt-get install -y ntp make bzr git lxc
3917+
3918+status-set maintenance "Installing: moving directories to big partition" || true
3919+if [[ -n $(df -h | grep /mnt | tr -s ' ' | cut -d ' ' -f 4 | grep G) ]]; then
3920+ if [[ ! -d /mnt/jenkins ]]; then
3921+ cp -rp /var/lib/jenkins /mnt
3922+ mv /var/lib/jenkins /var/lib/jenkins.old
3923+ ln -s /mnt/jenkins /var/lib/jenkins
3924+ chown -h jenkins:jenkins /var/lib/jenkins
3925+ fi
3926+ if [[ ! -d /mnt/lxc ]]; then
3927+ cp -rp /var/lib/lxc /mnt
3928+ mv /var/lib/lxc /var/lib/lxc.old
3929+ ln -s /mnt/lxc /var/lib/lxc
3930+ fi
3931+ if [[ ! -d /mnt/lxc && -d /var/lib/lxd ]]; then
3932+ cp -rp /var/lib/lxd /mnt
3933+ mv /var/lib/lxd /var/lib/lxd.old
3934+ ln -s /mnt/lxd /var/lib/lxd
3935+ chown -h lxd:lxd /var/lib/lxd
3936+ fi
3937+fi
3938+
3939+status-set maintenance "Installing: setting up jenkins permissions" || true
3940+usermod -a -G lxd jenkins || true
3941+if [[ ! -f /etc/sudoers.d/91-jenkins ]]; then
3942+ echo 'jenkins ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/91-jenkins
3943+fi
3944+chmod 0440 /etc/sudoers.d/91-jenkins
3945+
3946+status-set maintenance "Installing: setting up jenkins ssh" || true
3947+test -d /var/lib/jenkins/.ssh/ || mkdir -p /var/lib/jenkins/.ssh/
3948+if [[ ! -f /var/lib/jenkins/.ssh/authorized_keys ]]; then
3949+ cat /home/ubuntu/.ssh/authorized_keys | tee -a /var/lib/jenkins/.ssh/authorized_keys
3950+fi
3951+chmod 700 /var/lib/jenkins/.ssh/
3952+chmod 600 /var/lib/jenkins/.ssh/authorized_keys
3953+chown -R jenkins:jenkins /var/lib/jenkins/.ssh
3954+
3955+status-set maintenance "Installed" || true
3956
3957=== added file 'charms/jenkins-juju-ci/hooks/upgrade-charm'
3958--- charms/jenkins-juju-ci/hooks/upgrade-charm 1970-01-01 00:00:00 +0000
3959+++ charms/jenkins-juju-ci/hooks/upgrade-charm 2017-03-29 15:30:42 +0000
3960@@ -0,0 +1,20 @@
3961+#!/bin/bash
3962+
3963+set -eux
3964+
3965+status-set maintenance "Installing" || true
3966+apt-get install -y adduser default-jre-headless
3967+
3968+if ! id jenkins > /dev/null 2>&1 ; then
3969+ mkdir -p /var/lib/jenkins
3970+ adduser --system --home /var/lib/jenkins \
3971+ --group --disabled-password --quiet --shell /bin/bash \
3972+ jenkins
3973+ chown -R jenkins:jenkins /var/lib/jenkins
3974+fi
3975+
3976+if [[ ! -d /var/log/jenkins ]]; then
3977+ mkdir -p /var/log/jenkins
3978+fi
3979+
3980+status-set maintenance "Installed" || true
3981
3982=== added file 'charms/jenkins-juju-ci/icon.svg'
3983--- charms/jenkins-juju-ci/icon.svg 1970-01-01 00:00:00 +0000
3984+++ charms/jenkins-juju-ci/icon.svg 2017-03-29 15:30:42 +0000
3985@@ -0,0 +1,596 @@
3986+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3987+<!-- Created with Inkscape (http://www.inkscape.org/) -->
3988+
3989+<svg
3990+ xmlns:dc="http://purl.org/dc/elements/1.1/"
3991+ xmlns:cc="http://creativecommons.org/ns#"
3992+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3993+ xmlns:svg="http://www.w3.org/2000/svg"
3994+ xmlns="http://www.w3.org/2000/svg"
3995+ xmlns:xlink="http://www.w3.org/1999/xlink"
3996+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
3997+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
3998+ width="96"
3999+ height="96"
4000+ id="svg6517"
4001+ version="1.1"
4002+ inkscape:version="0.48.4 r9939"
4003+ sodipodi:docname="icon.svg">
4004+ <defs
4005+ id="defs6519">
4006+ <linearGradient
4007+ inkscape:collect="always"
4008+ xlink:href="#Background"
4009+ id="linearGradient6461"
4010+ gradientUnits="userSpaceOnUse"
4011+ x1="0"
4012+ y1="970.29498"
4013+ x2="144"
4014+ y2="970.29498"
4015+ gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />
4016+ <linearGradient
4017+ id="Background">
4018+ <stop
4019+ id="stop4178"
4020+ offset="0"
4021+ style="stop-color:#49728b;stop-opacity:1" />
4022+ <stop
4023+ id="stop4180"
4024+ offset="1"
4025+ style="stop-color:#8eabb7;stop-opacity:1" />
4026+ </linearGradient>
4027+ <filter
4028+ style="color-interpolation-filters:sRGB;"
4029+ inkscape:label="Inner Shadow"
4030+ id="filter1121">
4031+ <feFlood
4032+ flood-opacity="0.59999999999999998"
4033+ flood-color="rgb(0,0,0)"
4034+ result="flood"
4035+ id="feFlood1123" />
4036+ <feComposite
4037+ in="flood"
4038+ in2="SourceGraphic"
4039+ operator="out"
4040+ result="composite1"
4041+ id="feComposite1125" />
4042+ <feGaussianBlur
4043+ in="composite1"
4044+ stdDeviation="1"
4045+ result="blur"
4046+ id="feGaussianBlur1127" />
4047+ <feOffset
4048+ dx="0"
4049+ dy="2"
4050+ result="offset"
4051+ id="feOffset1129" />
4052+ <feComposite
4053+ in="offset"
4054+ in2="SourceGraphic"
4055+ operator="atop"
4056+ result="composite2"
4057+ id="feComposite1131" />
4058+ </filter>
4059+ <filter
4060+ style="color-interpolation-filters:sRGB;"
4061+ inkscape:label="Drop Shadow"
4062+ id="filter950">
4063+ <feFlood
4064+ flood-opacity="0.25"
4065+ flood-color="rgb(0,0,0)"
4066+ result="flood"
4067+ id="feFlood952" />
4068+ <feComposite
4069+ in="flood"
4070+ in2="SourceGraphic"
4071+ operator="in"
4072+ result="composite1"
4073+ id="feComposite954" />
4074+ <feGaussianBlur
4075+ in="composite1"
4076+ stdDeviation="1"
4077+ result="blur"
4078+ id="feGaussianBlur956" />
4079+ <feOffset
4080+ dx="0"
4081+ dy="1"
4082+ result="offset"
4083+ id="feOffset958" />
4084+ <feComposite
4085+ in="SourceGraphic"
4086+ in2="offset"
4087+ operator="over"
4088+ result="composite2"
4089+ id="feComposite960" />
4090+ </filter>
4091+ <clipPath
4092+ clipPathUnits="userSpaceOnUse"
4093+ id="clipPath873">
4094+ <g
4095+ transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
4096+ id="g875"
4097+ inkscape:label="Layer 1"
4098+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
4099+ <path
4100+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
4101+ d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
4102+ id="path877"
4103+ inkscape:connector-curvature="0"
4104+ sodipodi:nodetypes="sssssssss" />
4105+ </g>
4106+ </clipPath>
4107+ <filter
4108+ inkscape:collect="always"
4109+ id="filter891"
4110+ inkscape:label="Badge Shadow">
4111+ <feGaussianBlur
4112+ inkscape:collect="always"
4113+ stdDeviation="0.71999962"
4114+ id="feGaussianBlur893" />
4115+ </filter>
4116+ <clipPath
4117+ id="clipPath18"
4118+ clipPathUnits="userSpaceOnUse">
4119+ <path
4120+ inkscape:connector-curvature="0"
4121+ id="path20"
4122+ d="M 0,2494.84 0,0 l 1804.34,0 0,2494.84 -1804.34,0 z" />
4123+ </clipPath>
4124+ </defs>
4125+ <sodipodi:namedview
4126+ id="base"
4127+ pagecolor="#ffffff"
4128+ bordercolor="#666666"
4129+ borderopacity="1.0"
4130+ inkscape:pageopacity="0.0"
4131+ inkscape:pageshadow="2"
4132+ inkscape:zoom="4.13"
4133+ inkscape:cx="88.834295"
4134+ inkscape:cy="49.0292"
4135+ inkscape:document-units="px"
4136+ inkscape:current-layer="layer1"
4137+ showgrid="false"
4138+ fit-margin-top="0"
4139+ fit-margin-left="0"
4140+ fit-margin-right="0"
4141+ fit-margin-bottom="0"
4142+ inkscape:window-width="1920"
4143+ inkscape:window-height="1056"
4144+ inkscape:window-x="0"
4145+ inkscape:window-y="24"
4146+ inkscape:window-maximized="1"
4147+ showborder="true"
4148+ showguides="true"
4149+ inkscape:guide-bbox="true"
4150+ inkscape:showpageshadow="false">
4151+ <inkscape:grid
4152+ type="xygrid"
4153+ id="grid821" />
4154+ <sodipodi:guide
4155+ orientation="1,0"
4156+ position="16,48"
4157+ id="guide823" />
4158+ <sodipodi:guide
4159+ orientation="0,1"
4160+ position="64,80"
4161+ id="guide825" />
4162+ <sodipodi:guide
4163+ orientation="1,0"
4164+ position="80,40"
4165+ id="guide827" />
4166+ <sodipodi:guide
4167+ orientation="0,1"
4168+ position="64,16"
4169+ id="guide829" />
4170+ </sodipodi:namedview>
4171+ <metadata
4172+ id="metadata6522">
4173+ <rdf:RDF>
4174+ <cc:Work
4175+ rdf:about="">
4176+ <dc:format>image/svg+xml</dc:format>
4177+ <dc:type
4178+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
4179+ <dc:title />
4180+ </cc:Work>
4181+ </rdf:RDF>
4182+ </metadata>
4183+ <g
4184+ inkscape:label="BACKGROUND"
4185+ inkscape:groupmode="layer"
4186+ id="layer1"
4187+ transform="translate(268,-635.29076)"
4188+ style="display:inline">
4189+ <path
4190+ style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"
4191+ d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
4192+ id="path6455"
4193+ inkscape:connector-curvature="0"
4194+ sodipodi:nodetypes="sssssssss" />
4195+ <g
4196+ transform="matrix(0.19496217,0,0,-0.19496217,-239.28382,701.0732)"
4197+ inkscape:label="ink_ext_XXXXXX"
4198+ id="g10">
4199+ <g
4200+ id="g3393">
4201+ <path
4202+ inkscape:connector-curvature="0"
4203+ id="path22"
4204+ style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none"
4205+ d="m 177.718,129.264 c 0,-49.4288 -39.175,-89.4992 -87.5,-89.4992 -48.3242,0 -87.49925,40.0704 -87.49925,89.4992 0,49.43 39.17505,89.501 87.49925,89.501 48.325,0 87.5,-40.071 87.5,-89.501" />
4206+ <path
4207+ inkscape:connector-curvature="0"
4208+ id="path24"
4209+ style="fill:#ef3d3a;fill-opacity:1;fill-rule:nonzero;stroke:none"
4210+ d="m 6.28438,107.098 c 0,0 -6.33438,93.333 79.66602,96 l -5.9996,10 -46.6664,-15.667 -13.3336,-15.333 -11.66642,-22.334 -6.66719,-26 2,-17.333" />
4211+ <path
4212+ inkscape:connector-curvature="0"
4213+ id="path26"
4214+ style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
4215+ d="M 30.2883,190.319 C 14.9363,174.611 5.43633,152.923 5.43633,128.93 l 0,0 c 0,-23.988 9.49997,-45.6788 24.85197,-61.3839 l 0,0 C 45.6477,51.841 66.8152,42.15 90.2168,42.15 l 0,0 c 23.4022,0 44.5712,9.691 59.9292,25.3961 l 0,0 c 15.351,15.7051 24.853,37.3959 24.853,61.3839 l 0,0 c 0,23.993 -9.502,45.681 -24.853,61.389 l 0,0 c -15.358,15.702 -36.527,25.393 -59.9292,25.395 l 0,0 C 66.8152,215.712 45.6477,206.021 30.2883,190.319 l 0,0 z M 26.4023,63.7469 C 10.0867,80.4328 0,103.493 0,128.93 l 0,0 c 0,25.441 10.0867,48.499 26.4023,65.186 l 0,0 c 16.3118,16.69 38.8915,27.035 63.8145,27.032 l 0,0 c 24.9232,0.003 47.5052,-10.342 63.8142,-27.032 l 0,0 c 16.317,-16.687 26.405,-39.747 26.403,-65.186 l 0,0 c 0.002,-25.437 -10.086,-48.4972 -26.403,-65.1831 l 0,0 C 137.722,47.0578 115.14,36.7141 90.2168,36.7141 l 0,0 c -24.923,0 -47.5027,10.3437 -63.8145,27.0328 l 0,0" />
4216+ <path
4217+ inkscape:connector-curvature="0"
4218+ id="path28"
4219+ style="fill:#f0d6b7;fill-opacity:1;fill-rule:evenodd;stroke:none"
4220+ d="m 127.051,128.768 -13.334,-2 -18.0002,-2 -11.6672,-0.333 -11.3328,0.333 -8.6672,2.667 -7.6668,8.333 -6,17 -1.3332,3.667 -8,2.666 -4.6668,7.667 -3.3332,11 3.6672,9.667 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1.3328,1.666 -1.3328,7.667 -0.334,9.667 2,13.333 -0.0781,7.616 6.0781,9.717 10.6668,7.667 18.6672,8 20.6662,-3 18,-13 8.334,-13.333 5.333,-9.667 1.333,-24 -4,-20.667 -7.333,-18.333 -7,-9.667" />
4221+ <path
4222+ inkscape:connector-curvature="0"
4223+ id="path30"
4224+ style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none"
4225+ d="m 115.717,71.102 -47.6674,-2 0,-8 4,-28 -2,-2.334 -33.3328,11.334 -2.334,4 -3.3332,37.666 -7.6656,22.667 -1.6672,5.333 26.666,18.333 8.334,3.334 7.3328,-9 6.3332,-5.667 7.334,-2.333 3.3328,-1 4,-17.333 3,-3.6668 7.6672,2.6668 -5.334,-10.334 29.0002,-13.666 -3.666,-2" />
4226+ <path
4227+ inkscape:connector-curvature="0"
4228+ id="path32"
4229+ style="fill:#6d6b6d;fill-opacity:1;fill-rule:evenodd;stroke:none"
4230+ d="m 36.7168,187.435 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1,4 -2,7.666 2,18.334 -1.6672,10 6,7 13,10.333 -3.6668,5 -18.3332,-9 -7.6668,-6 -4.3332,-9.333 -6.6668,-9 -2,-10.667 1.334,-11.333" />
4231+ <path
4232+ inkscape:connector-curvature="0"
4233+ id="path34"
4234+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4235+ d="m 50.3828,218.768 c 0,0 5,12.333 25,18.333 20,6 1,4.334 1,4.334 l -21.666,-8.334 -8.334,-8.333 -3.666,-6.667 7.666,0.667" />
4236+ <path
4237+ inkscape:connector-curvature="0"
4238+ id="path36"
4239+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4240+ d="m 40.3828,189.768 c 0,0 -7,23.334 19.6668,26.667 l -1,4 -18.3328,-4.334 -5.334,-17.333 1.334,-11.333 3.666,2.333" />
4241+ <path
4242+ inkscape:connector-curvature="0"
4243+ id="path38"
4244+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4245+ d="m 51.0496,158.768 4.3645,4.229 c 0,0 1.9699,-0.229 2.3027,-2.562 0.3328,-2.334 1.3328,-23.334 15.666,-34.668 1.3074,-1.034 -10.666,1.668 -10.666,1.668 l -10.6672,16.666" />
4246+ <path
4247+ inkscape:connector-curvature="0"
4248+ id="path40"
4249+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4250+ d="m 112.385,165.101 c 0,0 0.777,10.104 3.498,9.327 2.721,-0.777 2.721,-3.498 2.721,-3.498 0,0 -6.608,-4.275 -6.219,-5.829" />
4251+ <path
4252+ inkscape:connector-curvature="0"
4253+ id="path42"
4254+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none"
4255+ d="m 140.05,202.101 c 0,0 -5.494,-1.16 -6,-6 -0.506,-4.841 6,-1 7,-0.667" />
4256+ <path
4257+ inkscape:connector-curvature="0"
4258+ id="path44"
4259+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none"
4260+ d="m 99.7168,201.767 c 0,0 -7.334,-1 -7.334,-5.666 0,-4.667 8.3342,-4.334 10.6672,-2.334" />
4261+ <path
4262+ inkscape:connector-curvature="0"
4263+ id="path46"
4264+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4265+ d="m 54.3828,180.101 c 0,0 -12.6672,7.667 -14,0.333 -1.3332,-7.333 -4.334,-12.667 2,-20.333 l -4.3332,1.333 -4,10.333 -1.3328,10 7.666,8.001 8.6668,-0.667 5,-4 0.3332,-5" />
4266+ <path
4267+ inkscape:connector-curvature="0"
4268+ id="path48"
4269+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4270+ d="m 60.3828,201.101 c 0,0 5.6668,29.333 34.334,35 23.6012,4.665 35.9992,-1 40.6662,-6.333 0,0 -21,24.999 -41.0002,17.333 -20,-7.667 -34.666,-21.667 -34.3332,-30.666 0.5676,-15.328 0.3332,-15.334 0.3332,-15.334" />
4271+ <path
4272+ inkscape:connector-curvature="0"
4273+ id="path50"
4274+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4275+ d="m 137.717,226.435 c 0,0 -9.666,0.333 -10,-8.334 0,0 -0.001,-1.333 0.666,-2.666 0,0 7.668,8.667 12.334,4" />
4276+ <path
4277+ inkscape:connector-curvature="0"
4278+ id="path52"
4279+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4280+ d="m 95.3887,214.532 c 0,0 -1.6641,13.303 -13.0059,5.569 -7.3332,-5 -6.666,-12 -5.3332,-13.333 1.3332,-1.334 0.9707,-4.019 1.9856,-2.176 1.0144,1.843 0.6804,7.843 4.3476,9.509 3.6668,1.667 9.6777,3.529 12.0059,0.431" />
4281+ <path
4282+ inkscape:connector-curvature="0"
4283+ id="path54"
4284+ style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none"
4285+ d="m 64.0496,124.435 -31.3328,-14 c 0,0 13,-51.667 6.3328,-67.667 l -4.6668,1.666 -0.3332,19.6672 -8.6656,37.3328 -3.6672,10.334 32.666,21.999 9.6668,-9.332" />
4286+ <path
4287+ inkscape:connector-curvature="0"
4288+ id="path56"
4289+ style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none"
4290+ d="m 67.2715,95.8578 4.4453,-5.4238 0,-20 -5.334,0 c 0,0 -0.666,14 -0.666,15.6672 0,1.6668 0.666,7.6668 0.666,7.6668" />
4291+ <path
4292+ inkscape:connector-curvature="0"
4293+ id="path58"
4294+ style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none"
4295+ d="m 67.3828,67.434 -15,-0.666 4.334,-3 10.666,-1.6668" />
4296+ <path
4297+ inkscape:connector-curvature="0"
4298+ id="path60"
4299+ style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none"
4300+ d="m 118.717,70.768 12.333,0.3332 3,-30.6672 -12.667,-1.666 -2.666,32" />
4301+ <path
4302+ inkscape:connector-curvature="0"
4303+ id="path62"
4304+ style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none"
4305+ d="m 122.05,70.768 18.667,1 c 0,0 7.666,19.3332 7.666,20.3332 0,1 6.667,27.9998 6.667,27.9998 l -15,15.666 -3,2.667 -8,-8 0,-31 -7,-28.666" />
4306+ <path
4307+ inkscape:connector-curvature="0"
4308+ id="path64"
4309+ style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none"
4310+ d="m 130.383,73.1012 -11.666,-2.3332 1.666,-9.334 c 4.333,-2 11.667,3.334 11.667,3.334" />
4311+ <path
4312+ inkscape:connector-curvature="0"
4313+ id="path66"
4314+ style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none"
4315+ d="m 130.717,131.434 23.333,-17.333 0.667,8 -17.667,16.333 -6.333,-7" />
4316+ <path
4317+ inkscape:connector-curvature="0"
4318+ id="path68"
4319+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
4320+ d="M 78.9508,5.09805 72.0496,33.102 68.6172,53.7648 68.0496,69.102 l 31.2348,1.6628 19.4326,0.0032 -1.767,-35.0032 3,-26.99996 -0.333,-5 -25.3326,-2 -15.3336,3.33321" />
4321+ <path
4322+ inkscape:connector-curvature="0"
4323+ id="path70"
4324+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4325+ d="m 114.383,71.1012 c 0,0 -1.666,-34.6672 3.334,-59.3332 0,0 -10,-6.33402 -24.6674,-8.00003 l 28.0004,1 3.333,2 -4,54.66603 -1,11.668" />
4326+ <path
4327+ inkscape:connector-curvature="0"
4328+ id="path72"
4329+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
4330+ d="m 134.618,43.098 13,3.6668 24.666,1.3332 3.667,11.3329 -6.667,19.6671 -7.666,1 -10.667,-3.3332 -10.234,-4.9968 -5.433,0.9968 -4.234,-1.6636" />
4331+ <path
4332+ inkscape:connector-curvature="0"
4333+ id="path74"
4334+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4335+ d="m 134.383,49.768 c 0,0 8.666,3.9992 10,3.666 l -3.666,18.334 4.333,1.666 c 0,0 3,-17.3328 3,-19.3328 0,0 18.666,-1 20.333,-1 0,0 4,7.6668 3,15.6668 l 3.667,-10.6668 0.333,-6 -5.333,-8 -6,-1.3332 -10,0.3332 -3.333,4.3328 -11.667,-1.666 -3.667,-1.334" />
4336+ <path
4337+ inkscape:connector-curvature="0"
4338+ id="path76"
4339+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
4340+ d="m 121.284,73.4309 -7.333,18.6671 -7.667,11 c 0,0 1.666,4.667 4,4.667 2.334,0 7.667,0 7.667,0 l 7.333,-2.667 -0.666,-12.3332 -3.334,-19.3339" />
4341+ <path
4342+ inkscape:connector-curvature="0"
4343+ id="path78"
4344+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4345+ d="m 122.717,79.768 c 0,0 -9.334,17.9992 -9.334,20.666 0,0 1.666,4 4,3 2.334,-1 7.334,-3.666 7.334,-3.666 l 0,6.333 -11.334,2.334 -7.666,-1 13,-30.667 2.666,-0.334" />
4346+ <path
4347+ inkscape:connector-curvature="0"
4348+ id="path80"
4349+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
4350+ d="m 81.9512,123.764 -9.2344,1.004 -8.6672,2.667 0,-3 4.2348,-4.67 13.3332,-6" />
4351+ <path
4352+ inkscape:connector-curvature="0"
4353+ id="path82"
4354+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4355+ d="m 67.0508,122.765 c 0,0 10.334,-4.334 13.6672,-3.334 l 0.3316,-3.996 -9.3316,1.996 -5.6672,4 1,1.334" />
4356+ <path
4357+ inkscape:connector-curvature="0"
4358+ id="path84"
4359+ style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none"
4360+ d="m 134.582,106.63 c -5.656,0.166 -10.766,0.838 -15.24,2.1 0.304,1.834 -0.265,3.634 0.192,4.955 1.247,0.898 3.337,0.884 5.222,1.095 -1.63,0.801 -3.92,1.118 -5.801,0.655 -0.044,1.273 -0.615,2.062 -0.961,3.058 3.18,1.135 10.687,8.576 14.91,6.112 2.012,-1.172 2.867,-7.866 3.023,-11.121 0.13,-2.7 -0.245,-5.424 -1.345,-6.854" />
4361+ <path
4362+ inkscape:connector-curvature="0"
4363+ id="path86"
4364+ style="fill:none;stroke:#d33833;stroke-width:8.20672035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
4365+ d="m 134.582,106.63 c -5.656,0.166 -10.766,0.838 -15.24,2.1 0.304,1.834 -0.265,3.634 0.192,4.955 1.247,0.898 3.337,0.884 5.222,1.095 -1.63,0.801 -3.92,1.118 -5.801,0.655 -0.044,1.273 -0.615,2.062 -0.961,3.058 3.18,1.135 10.687,8.576 14.91,6.112 2.012,-1.172 2.867,-7.866 3.023,-11.121 0.13,-2.7 -0.245,-5.424 -1.345,-6.854 z" />
4366+ <path
4367+ inkscape:connector-curvature="0"
4368+ id="path88"
4369+ style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none"
4370+ d="m 107.535,115.876 c -0.015,-0.428 -0.033,-0.859 -0.05,-1.291 -1.766,-1.16 -4.617,-1.146 -6.555,-2.121 2.857,-0.125 5.106,-0.813 7.052,-1.783 -0.043,-1.078 -0.084,-2.155 -0.126,-3.233 -3.237,-2.216 -6.194,-5.516 -10.0052,-7.5941 -1.802,-0.9828 -8.1262,-3.5117 -10.0434,-3.0648 -1.0847,0.2519 -1.1824,1.598 -1.616,2.8668 -0.9238,2.7171 -3.0508,7.0421 -3.2363,11.1321 -0.2363,5.166 -0.7578,13.824 4.8094,12.76 4.4914,-0.857 9.7152,-2.926 13.1925,-4.826 2.125,-1.162 3.354,-2.598 6.578,-2.846" />
4371+ <path
4372+ inkscape:connector-curvature="0"
4373+ id="path90"
4374+ style="fill:none;stroke:#d33833;stroke-width:8.20672035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
4375+ d="m 107.535,115.876 c -0.015,-0.428 -0.033,-0.859 -0.05,-1.291 -1.766,-1.16 -4.617,-1.146 -6.555,-2.121 2.857,-0.125 5.106,-0.813 7.052,-1.783 -0.043,-1.078 -0.084,-2.155 -0.126,-3.233 -3.237,-2.216 -6.194,-5.516 -10.0052,-7.5941 -1.802,-0.9828 -8.1262,-3.5117 -10.0434,-3.0648 -1.0847,0.2519 -1.1824,1.598 -1.616,2.8668 -0.9238,2.7171 -3.0508,7.0421 -3.2363,11.1321 -0.2363,5.166 -0.7578,13.824 4.8094,12.76 4.4914,-0.857 9.7152,-2.926 13.1925,-4.826 2.125,-1.162 3.354,-2.598 6.578,-2.846 z" />
4376+ <path
4377+ inkscape:connector-curvature="0"
4378+ id="path92"
4379+ style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none"
4380+ d="m 110.75,109.712 c -0.494,2.814 -1.065,3.617 -0.844,6.072 7.505,5.004 8.914,-8.595 0.844,-6.072" />
4381+ <path
4382+ inkscape:connector-curvature="0"
4383+ id="path94"
4384+ style="fill:none;stroke:#d33833;stroke-width:8.20672035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
4385+ d="m 110.75,109.712 c -0.494,2.814 -1.065,3.617 -0.844,6.072 7.505,5.004 8.914,-8.595 0.844,-6.072 z" />
4386+ <path
4387+ inkscape:connector-curvature="0"
4388+ id="path96"
4389+ style="fill:#ef3d3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
4390+ d="m 121.617,107.431 c 0,0 -2.334,3.334 -0.667,4.334 1.667,1 3.334,-0.001 4.334,1.666 1,1.667 0,2.667 0.333,4.667 0.333,2 2.001,2.334 3.667,2.667 1.666,0.333 6.334,1 7,-0.667 l -2,6 -4,1.333 -12.667,-7.333 -0.667,-3.667 0,-7.333" />
4391+ <path
4392+ inkscape:connector-curvature="0"
4393+ id="path98"
4394+ style="fill:#ef3d3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
4395+ d="m 86.6172,96.4309 c -0.4004,5.2021 -0.8242,10.3971 -1.2957,15.5941 -0.7055,7.76 1.864,6.406 8.5906,6.406 1.0274,0 6.3259,-1.225 6.7049,-2 1.818,-3.713 -3.04,-2.888 2.094,-5.688 4.334,-2.363 11.99,1.435 10.239,6.688 -0.98,1.168 -5.106,0.364 -6.585,1.131 -2.604,1.35 -5.208,2.7 -7.8123,4.05 -3.3132,1.719 -10.9707,4.225 -14.5031,1.823 -8.9504,-6.087 0.5649,-21.296 3.7578,-27.6459" />
4396+ <path
4397+ inkscape:connector-curvature="0"
4398+ id="path100"
4399+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4400+ d="m 95.3887,214.532 c -9.0852,2.116 -13.5996,-3.802 -16.3535,-9.94 -2.459,0.596 -1.4805,3.94 -0.8594,5.644 1.6262,4.472 8.1797,10.425 13.5344,9.618 2.3043,-0.347 5.4226,-2.454 3.6785,-5.322" />
4401+ <path
4402+ inkscape:connector-curvature="0"
4403+ id="path102"
4404+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4405+ d="m 139.655,204.186 c 0.143,-0.006 0.288,-0.011 0.431,-0.017 2.053,-4.265 3.83,-8.783 6.42,-12.548 -1.735,-4.041 -13.138,-7.617 -12.962,-0.361 2.466,1.078 6.723,0.22 8.909,1.597 -1.264,3.469 -3.088,6.422 -2.798,11.329" />
4406+ <path
4407+ inkscape:connector-curvature="0"
4408+ id="path104"
4409+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4410+ d="m 100.04,204.075 c 1.948,-3.571 2.582,-7.323 5.351,-10.022 1.247,-1.215 3.672,-2.696 2.47,-6.075 -0.281,-0.797 -2.334,-2.574 -3.519,-2.923 -4.329,-1.278 -14.4162,-0.264 -11.0002,5.133 3.5801,-0.167 8.3922,-2.325 11.0682,0.274 -2.055,3.285 -5.7186,9.784 -4.37,13.613" />
4411+ <path
4412+ inkscape:connector-curvature="0"
4413+ id="path106"
4414+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4415+ d="m 138.03,167.781 c -6.518,-4.187 -13.786,-8.74 -24.466,-7.684 -2.282,1.984 -3.152,6.399 -0.935,9.315 1.154,-1.984 0.429,-5.633 3.645,-6.182 6.06,-1.037 13.113,3.707 17.472,5.365 2.703,4.557 -0.233,6.233 -2.668,9.166 -4.985,6.009 -11.672,13.457 -11.429,22.453 2.015,1.461 2.189,-2.23 2.478,-2.902 2.603,-6.092 9.154,-13.883 13.935,-19.097 1.174,-1.284 3.107,-2.516 3.322,-3.365 0.62,-2.469 -1.613,-5.427 -1.354,-7.069" />
4416+ <path
4417+ inkscape:connector-curvature="0"
4418+ id="path108"
4419+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4420+ d="m 52.1016,172.189 c -2.043,1.166 -2.5293,6.302 -4.9278,6.448 -3.4277,0.208 -2.8027,-6.663 -2.789,-10.681 -2.3594,2.142 -2.7743,8.737 -1.041,12.124 -1.9754,0.97 -2.8575,-1.07 -3.9532,-1.789 1.4082,10.23 14.9649,4.745 12.711,-6.102" />
4421+ <path
4422+ inkscape:connector-curvature="0"
4423+ id="path110"
4424+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4425+ d="m 142.18,163.521 c -3.034,-5.775 -7.326,-12.135 -16.229,-12.32 -0.181,1.865 -0.32,4.703 0.01,5.826 6.806,0.654 11.008,4.118 16.219,6.494" />
4426+ <path
4427+ inkscape:connector-curvature="0"
4428+ id="path112"
4429+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4430+ d="m 99.5266,159.777 c 5.6784,-2.986 16.1144,-3.307 23.8324,-3.081 0.414,-1.691 0.404,-3.78 0.42,-5.842 -9.921,-0.495 -21.651,1.96 -24.2524,8.923" />
4431+ <path
4432+ inkscape:connector-curvature="0"
4433+ id="path114"
4434+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4435+ d="m 98.4473,154.209 c 3.9267,-9.859 17.4227,-8.724 28.8037,-8.452 -0.501,-1.28 -1.587,-2.792 -2.937,-3.339 -3.647,-1.484 -13.706,-2.61 -18.769,0.079 -3.211,1.707 -5.274,5.564 -7.0333,7.825 -0.8496,1.092 -5.0801,3.881 -0.0644,3.887" />
4436+ <path
4437+ inkscape:connector-curvature="0"
4438+ id="path116"
4439+ style="fill:#81b0c4;fill-opacity:1;fill-rule:evenodd;stroke:none"
4440+ d="m 137.556,99.8262 c -4.608,-7.8922 -9.017,-15.9981 -14.484,-22.9594 2.292,6.7391 3.273,18.0184 3.619,26.6172 4.795,2.244 8.901,-0.505 10.865,-3.6578" />
4441+ <path
4442+ inkscape:connector-curvature="0"
4443+ id="path118"
4444+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4445+ d="m 162.352,71.4609 c -5.159,-1.0328 -8.784,-6.0468 -13.817,-5.725 2.766,3.8993 7.613,5.543 13.817,5.725" />
4446+ <path
4447+ inkscape:connector-curvature="0"
4448+ id="path120"
4449+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4450+ d="m 164.628,63.3871 c -4.205,-0.4441 -9.144,-1.125 -13.409,-0.7742 2.019,3.084 9.798,2.0199 13.409,0.7742" />
4451+ <path
4452+ inkscape:connector-curvature="0"
4453+ id="path122"
4454+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4455+ d="m 166.085,56.4262 c -4.726,-0.1024 -10.6,-0.0082 -15.092,0.3687 2.657,2.8539 12.027,1.059 15.092,-0.3687" />
4456+ <path
4457+ inkscape:connector-curvature="0"
4458+ id="path124"
4459+ style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none"
4460+ d="m 128.664,37.377 c 0.678,-5.9352 3.031,-11.9489 2.736,-18.4489 -2.613,-0.8812 -4.114,-1.6519 -7.615,-1.6472 -0.247,5.5242 -0.986,13.9691 -0.765,19.2351 1.722,-0.114 4.261,1.2301 5.644,0.861" />
4461+ <path
4462+ inkscape:connector-curvature="0"
4463+ id="path126"
4464+ style="fill:#f0d6b7;fill-opacity:1;fill-rule:evenodd;stroke:none"
4465+ d="m 121.045,124.849 c -2.373,-1.549 -4.394,-3.483 -6.673,-5.137 -5.054,-0.25 -7.812,0.35 -11.525,3.252 0.061,0.233 0.434,0.129 0.448,0.415 5.41,-2.411 12.287,0.982 17.75,1.47" />
4466+ <path
4467+ inkscape:connector-curvature="0"
4468+ id="path128"
4469+ style="fill:#81b0c4;fill-opacity:1;fill-rule:evenodd;stroke:none"
4470+ d="m 92.6445,87.9711 c 1.4864,6.441 7.3106,9.7769 12.5995,13.3239 5.459,-6.9282 8.779,-15.838 12.435,-24.436 -8.638,2.6039 -17.464,6.8289 -25.0345,11.1121" />
4471+ <path
4472+ inkscape:connector-curvature="0"
4473+ id="path130"
4474+ style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none"
4475+ d="m 123.02,36.516 c -0.221,-5.266 0.518,-13.7109 0.765,-19.2351 3.501,-0.0047 5.002,0.766 7.615,1.6472 0.295,6.5 -2.058,12.5137 -2.736,18.4489 -1.383,0.3691 -3.922,-0.975 -5.644,-0.861 z M 68.5059,66.4648 C 70.8145,45.2418 74.1582,27.4012 80.291,8.60781 93.9023,4.475 110.311,4.11484 122.342,7.84414 120.133,18.4512 121.098,31.3648 119.807,42.684 c -0.973,8.5078 -0.477,17.068 -1.811,25.748 -14.578,3.0328 -35.1835,0.709 -49.4901,-1.9672 z m 52.9371,1.834 c -0.123,-9.1148 0.408,-18.1058 1.104,-27.232 3.5,0.5254 5.875,0.8762 9.127,1.5891 -1.056,8.7859 -0.926,18.6722 -3.077,26.4441 -2.486,-0.0238 -4.675,0.0289 -7.154,-0.8012 z m 17.755,1.4692 c -1.661,0.3808 -3.595,0.0148 -5.182,-0.016 0.746,-7.4301 2.556,-15.629 3.193,-23.4282 2.497,-0.0777 3.831,1.1 5.885,1.4961 0.11,6.8461 -0.598,16.2781 -3.896,21.9481 z m 26.884,-24.5629 c 5.205,1.264 8.478,7.639 7.022,14.1859 -0.977,4.4 -2.717,12.6852 -4.579,15.5 -1.376,2.082 -5.107,4.8078 -8.086,2.9 -4.846,-3.1031 -13.383,-4.0039 -16.917,-7.7601 1.772,-5.9 2.322,-14.0039 3.053,-21.4797 6.054,-0.3774 13.503,1.666 18.538,-0.5024 -3.515,-1.1386 -8.076,-1.1476 -11.113,-2.807 2.482,-1.1988 8.293,-0.9566 12.082,-0.0367 z M 117.679,76.859 c -3.656,8.598 -6.976,17.5078 -12.435,24.436 C 99.9551,97.748 94.1309,94.4121 92.6445,87.9711 100.215,83.6879 109.041,79.4629 117.679,76.859 z m 9.012,26.625 c -0.346,-8.5988 -1.327,-19.8781 -3.619,-26.6172 5.467,6.9613 9.876,15.0672 14.484,22.9594 -1.964,3.1528 -6.07,5.9018 -10.865,3.6578 z m -10.216,3.63 c -2.071,0.223 -3.829,-2.381 -6.522,-1.255 -0.617,-0.682 -1.178,-1.421 -1.807,-2.087 5.948,-7.1681 8.651,-17.338 13.245,-25.7618 2.465,8.0918 2.181,16.957 2.724,25.7888 -3.387,-0.215 -5.266,3.063 -7.64,3.315 z m -6.569,8.67 c -0.221,-2.455 0.35,-3.258 0.844,-6.072 8.07,-2.523 6.661,11.076 -0.844,6.072 z m -8.949,2.938 c -3.4773,1.9 -8.7011,3.969 -13.1925,4.826 -5.5672,1.065 -5.0457,-7.594 -4.8094,-12.76 0.1855,-4.09 2.3125,-8.415 3.2363,-11.1321 0.4336,-1.2688 0.5313,-2.6149 1.616,-2.8668 1.9172,-0.4469 8.2414,2.082 10.0434,3.0648 3.8112,2.0781 6.7682,5.3781 10.0052,7.5941 0.042,1.078 0.083,2.155 0.126,3.233 -1.946,0.97 -4.195,1.658 -7.052,1.783 1.938,0.975 4.789,0.961 6.555,2.121 0.017,0.432 0.035,0.863 0.05,1.291 -3.224,0.248 -4.453,1.684 -6.578,2.846 z m -33.2136,6.033 c -2.886,-2.93 8.0945,-6.924 11.5906,-7.139 -0.0195,1.854 1.0566,3.602 0.8398,4.932 -4.1523,0.729 -9.6093,0.248 -12.4304,2.207 z m 35.5516,-1.376 c -0.014,-0.286 -0.387,-0.182 -0.448,-0.415 3.713,-2.902 6.471,-3.502 11.525,-3.252 2.279,1.654 4.3,3.588 6.673,5.137 -5.463,-0.488 -12.34,-3.881 -17.75,-1.47 z m 32.632,-9.895 c -0.156,3.255 -1.011,9.949 -3.023,11.121 -4.223,2.465 -11.73,-4.977 -14.91,-6.112 0.346,-0.996 0.917,-1.785 0.961,-3.058 1.881,0.463 4.171,0.146 5.801,-0.655 -1.885,-0.211 -3.975,-0.197 -5.222,-1.095 -0.457,-1.321 0.112,-3.121 -0.192,-4.955 4.474,-1.262 9.584,-1.934 15.24,-2.1 1.1,1.43 1.475,4.154 1.345,6.854 z m -73.0422,8.437 c -0.9063,0.646 -7.0371,8.623 -7.877,8.292 C 43.9141,125.838 33.541,118.273 24.2715,111.118 33.1094,92.1539 36.677,68.9199 37.3074,46.5262 47.4316,41.791 56.3242,34.9648 70.0625,34.252 68.4727,45.5 67.0215,55.5352 66.1191,66.125 c -3.4519,1.4551 -8.4043,-0.066 -11.6347,0.4512 -0.0274,3.8929 4.9336,1.7047 5.3468,4.3226 0.3114,1.9801 -2.7296,2.1301 -1.7394,5.2481 2.5254,-0.918 3.8516,-2.9457 6.5449,-3.7071 2.461,5.384 -0.0344,14.9102 0.3203,19.4102 0.0672,0.8449 0.4219,4.6809 2.3145,4.0078 1.675,-0.5957 -0.0957,-10.2019 0.0879,-14.4609 0.1672,-3.9239 -0.4739,-7.7207 1.1152,-10.184 13.2754,1.807 26.7656,2.975 41.1294,3.3691 -3.16,1.3559 -6.914,2.6391 -11.0298,4.959 -2.2312,1.2578 -9.2644,3.875 -9.9082,5.9942 -1.0273,3.3769 2.6953,5.1757 3.332,8.0707 -6.7011,-3.6547 -8.0085,3.5031 -9.5937,8.5741 -1.4363,4.593 -2.2539,8.024 -2.6063,10.673 -5.7726,2.752 -11.9445,5.539 -16.9132,9.068 z m 67.1792,7.327 c 9.243,4.482 10.909,-16.751 7.286,-23.591 0.56,-2.04 2.486,-2.821 3.272,-4.655 -5.158,-9.2399 -10.887,-17.8649 -16.15,-26.9961 3.915,2.4371 9.507,0.4359 14.114,2.2601 1.684,0.666 2.903,4.5211 4.178,7.6051 3.507,8.4848 7.189,19.1819 8.827,27.2789 0.37,1.845 1.378,5.865 1.152,7.507 -0.403,2.94 -4.392,5.12 -6.421,6.938 -3.738,3.358 -6.092,6.313 -9.991,9.453 -1.581,-2.334 -4.974,-3.902 -6.267,-5.8 z m -88.3179,81.968 c -4.4043,-4.846 -3.4824,-13.926 -2.9492,-20.386 7.9609,5.008 18.5273,-0.396 18.4277,-8.914 3.8008,0.101 1.4199,4.747 0.7324,7.74 -2.2468,9.776 3.7852,20.397 0.2735,29.337 -6.8184,-0.517 -12.42,-3.302 -16.4844,-7.777 z m 31.5137,28.126 c -9.9707,-2.826 -22.7493,-10.071 -26.8465,-19.028 3.1726,0.461 5.375,2.061 8.5047,2.259 1.1828,0.077 2.7324,-0.496 4.0918,-0.158 2.709,0.672 4.9953,6.746 7.039,9.006 1.9922,2.207 4.3867,3.15 6.0254,5.162 1.0528,0.508 2.6094,0.473 2.6692,2.054 -0.4563,0.488 -0.9368,0.86 -1.4836,0.705 z m 51.9032,-2.658 c -10.349,5.839 -27.8661,10.231 -38.8747,4.743 -8.8828,-4.429 -20.8899,-11.757 -24.9836,-21.043 3.8242,-8.961 -1.1328,-17.172 -1.4492,-26.27 -0.168,-4.841 2.2793,-9.067 2.4668,-14.337 -1.3086,-2.159 -5.3067,-2.425 -8.0743,-2.277 -0.9316,4.662 -2.5625,9.902 -7.3632,10.428 -6.793,0.743 -11.7598,-4.879 -12.0684,-10.754 -0.3652,-6.909 5.3066,-18.36 13.3457,-17.565 3.1055,0.307 3.8684,3.42 7.252,3.388 1.8339,-3.659 -2.8289,-4.808 -3.3086,-7.425 -0.125,-0.676 0.3867,-3.318 0.6843,-4.557 1.4602,-6.033 4.7153,-13.841 7.9192,-18.434 4.0664,-5.826 12.0555,-6.704 20.6504,-7.275 1.5351,3.307 7.1902,3.035 10.875,2.17 -4.416,1.749 -8.5215,5.989 -11.9239,9.742 -3.9082,4.306 -7.8671,8.925 -8.0671,14.553 7.3855,-10.246 13.4871,-19.194 26.9168,-23.701 10.1618,-3.408 22.0298,1.562 29.8378,7.045 3.24,2.279 5.174,5.895 7.477,9.205 8.617,12.395 12.638,30.087 11.754,47.235 -0.364,7.072 -0.348,14.12 -2.721,18.878 -2.48,4.975 -10.868,9.426 -15.778,4.926 -0.91,4.838 4.083,7.83 9.948,6.089 -4.182,5.397 -8.571,11.882 -14.515,15.236 z M 144.444,77.1168 c 8.087,4.0203 23.197,10.8211 28.267,-0.0148 1.871,-3.9942 4.066,-10.7461 5.035,-14.8692 1.369,-5.8168 -1.484,-18.043 -7.463,-19.9949 -5.281,-1.7238 -11.443,-1.6188 -17.804,-0.341 -0.749,0.623 -1.583,1.709 -2.166,2.841 -4.542,0.1762 -8.795,-0.2438 -12.383,-2.1109 0.34,-3.359 -1.932,-3.8981 -4.062,-4.5899 -1.579,-6.2609 3.159,-14.4371 2.025,-20.1461 -0.809,-4.0672 -5.813,-4.6961 -9.491,-5.457 -0.12,-2.2602 0.161,-4.14689 0.412,-6.059 -0.841,-3.09883 -4.613,-4.86289 -8.187,-5.29492 -11.759,-1.414064 -29.6133,-2.049221 -40.9239,2.01797 -3.1562,7.74175 -5.6426,17.15785 -8.2715,25.99805 -11.0312,-1.1781 -19.9531,4.7598 -28.364,8.65 -2.9121,1.35 -6.9406,2.0937 -8.0285,4.4117 -1.0547,2.2442 -0.6231,6.5453 -0.8848,10.6082 -0.666,10.377 -1.2363,20.386 -3.9766,31.011 -1.2304,4.7679 -3.375,8.975 -4.8711,13.5691 -1.3828,4.2579 -3.7988,9.5199 -4.4289,13.7659 -0.9343,6.293 4.9914,6.643 8.7805,9.37 5.8574,4.217 10.4551,6.549 16.7988,10.355 1.8789,1.127 7.545,3.98 8.1895,5.294 1.2812,2.605 -2.1992,6.278 -3.1297,8.32 -1.4719,3.229 -2.2395,5.972 -2.4504,9.158 -5.3215,0.841 -9.3555,4.008 -11.7922,7.579 -4.0308,5.91 -6.8262,16.844 -3.3387,25.161 0.2735,0.655 1.6375,1.943 1.8387,2.949 0.3969,1.981 -0.7469,4.615 -0.818,6.722 -0.3664,10.81 1.829,20.124 9.1063,23.384 2.9543,11.769 13.5281,15.682 23.4902,21.531 3.7239,2.186 7.8289,3.583 12.0684,5.143 15.2082,5.597 38.5419,4.543 51.1639,-5.003 5.352,-4.048 13.907,-12.595 16.967,-18.783 8.082,-16.337 7.508,-43.64 1.855,-63.513 -0.76,-2.668 -1.862,-6.59 -3.401,-9.795 -1.073,-2.238 -4.408,-6.716 -4.003,-8.692 0.417,-2.043 7.604,-7.5 9.145,-8.986 2.775,-2.677 8.047,-6.23 8.474,-9.608 0.459,-3.595 -1.584,-8.513 -2.619,-11.982 -3.46,-11.5769 -6.836,-22.2781 -10.759,-32.5992" />
4476+ <path
4477+ inkscape:connector-curvature="0"
4478+ id="path132"
4479+ style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none"
4480+ d="m 90.491,157.255 c 0.4387,0.584 2.8508,1.471 6.2258,-0.154 0,0 -4,-0.667 -3.6672,-7.336 l -1.6668,0.334 c 0,0 -1.7226,6.047 -0.8918,7.156" />
4481+ <path
4482+ inkscape:connector-curvature="0"
4483+ id="path134"
4484+ style="fill:#1d1919;fill-opacity:1;fill-rule:evenodd;stroke:none"
4485+ d="m 119.717,99.934 c 0,-1.0121 -0.821,-1.8328 -1.834,-1.8328 -1.012,0 -1.833,0.8207 -1.833,1.8328 0,1.012 0.821,1.834 1.833,1.834 1.013,0 1.834,-0.822 1.834,-1.834" />
4486+ <path
4487+ inkscape:connector-curvature="0"
4488+ id="path136"
4489+ style="fill:#1d1919;fill-opacity:1;fill-rule:evenodd;stroke:none"
4490+ d="m 121.55,91.434 c 0,-1.0121 -0.821,-1.8328 -1.834,-1.8328 -1.012,0 -1.833,0.8207 -1.833,1.8328 0,1.0121 0.821,1.834 1.833,1.834 1.013,0 1.834,-0.8219 1.834,-1.834" />
4491+ </g>
4492+ </g>
4493+ <text
4494+ xml:space="preserve"
4495+ style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
4496+ x="-236.76514"
4497+ y="715.29077"
4498+ id="text3081"
4499+ sodipodi:linespacing="125%"><tspan
4500+ sodipodi:role="line"
4501+ id="tspan3083"
4502+ x="-236.76514"
4503+ y="715.29077">Slave</tspan></text>
4504+ </g>
4505+ <g
4506+ inkscape:groupmode="layer"
4507+ id="layer3"
4508+ inkscape:label="PLACE YOUR PICTOGRAM HERE"
4509+ style="display:inline" />
4510+ <g
4511+ inkscape:groupmode="layer"
4512+ id="layer2"
4513+ inkscape:label="BADGE"
4514+ style="display:none"
4515+ sodipodi:insensitive="true">
4516+ <g
4517+ style="display:inline"
4518+ transform="translate(-340.00001,-581)"
4519+ id="g4394"
4520+ clip-path="none">
4521+ <g
4522+ id="g855">
4523+ <g
4524+ inkscape:groupmode="maskhelper"
4525+ id="g870"
4526+ clip-path="url(#clipPath873)"
4527+ style="opacity:0.6;filter:url(#filter891)">
4528+ <path
4529+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
4530+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
4531+ sodipodi:ry="12"
4532+ sodipodi:rx="12"
4533+ sodipodi:cy="552.36218"
4534+ sodipodi:cx="252"
4535+ id="path844"
4536+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
4537+ sodipodi:type="arc" />
4538+ </g>
4539+ <g
4540+ id="g862">
4541+ <path
4542+ sodipodi:type="arc"
4543+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
4544+ id="path4398"
4545+ sodipodi:cx="252"
4546+ sodipodi:cy="552.36218"
4547+ sodipodi:rx="12"
4548+ sodipodi:ry="12"
4549+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
4550+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
4551+ <path
4552+ transform="matrix(1.25,0,0,1.25,33,-100.45273)"
4553+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
4554+ sodipodi:ry="12"
4555+ sodipodi:rx="12"
4556+ sodipodi:cy="552.36218"
4557+ sodipodi:cx="252"
4558+ id="path4400"
4559+ style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
4560+ sodipodi:type="arc" />
4561+ <path
4562+ sodipodi:type="star"
4563+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
4564+ id="path4459"
4565+ sodipodi:sides="5"
4566+ sodipodi:cx="666.19574"
4567+ sodipodi:cy="589.50385"
4568+ sodipodi:r1="7.2431178"
4569+ sodipodi:r2="4.3458705"
4570+ sodipodi:arg1="1.0471976"
4571+ sodipodi:arg2="1.6755161"
4572+ inkscape:flatsided="false"
4573+ inkscape:rounded="0.1"
4574+ inkscape:randomized="0"
4575+ d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z"
4576+ transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
4577+ </g>
4578+ </g>
4579+ </g>
4580+ </g>
4581+</svg>
4582
4583=== added file 'charms/jenkins-juju-ci/metadata.yaml'
4584--- charms/jenkins-juju-ci/metadata.yaml 1970-01-01 00:00:00 +0000
4585+++ charms/jenkins-juju-ci/metadata.yaml 2017-03-29 15:30:42 +0000
4586@@ -0,0 +1,21 @@
4587+name: jenkins-juju-ci
4588+maintainer: Curtis Hovey <curtis.hovey@canonical.com>
4589+summary: Juju CI tools for jenkins
4590+description: |
4591+ Reconfigure the host and install testing tools to run Juju CI tests.
4592+ .
4593+ This charm will move /var/lib/<jenkins | lxd | lxc> to a big partition
4594+ if available. Several sets of tools are installed. Once configuration
4595+ is complete, the jenkins-slave is ready to run Juju CI tests.
4596+subordinate: true
4597+requires:
4598+ juju-info:
4599+ interface: juju-info
4600+ scope: container
4601+tags:
4602+ - ci
4603+series:
4604+ - xenial
4605+ - trusty
4606+ - precise
4607+ - yakkety
4608
4609=== added directory 'charms/jenkins-juju-ci/scripts'
4610=== added file 'charms/jenkins-juju-ci/scripts/place-slave.sh'
4611--- charms/jenkins-juju-ci/scripts/place-slave.sh 1970-01-01 00:00:00 +0000
4612+++ charms/jenkins-juju-ci/scripts/place-slave.sh 2017-03-29 15:30:42 +0000
4613@@ -0,0 +1,30 @@
4614+#!/bin/bash
4615+
4616+SLAVE_JAR=/var/lib/jenkins/bin/slave.jar
4617+RUN_JAR=/var/run/jenkins/slave.jar
4618+JENKINS_URL=$1
4619+
4620+if [[ ! -f /var/lib/jenkins/bin/slave.jar ]]; then
4621+ if [[ -z "$JENKINS_URL" ]]; then
4622+ echo URL of jenkins server must be provided
4623+ exit 1
4624+ fi
4625+ echo "Downloading slave.jar from $JENKINS_URL"
4626+ wget -q -O $SLAVE_JAR $JENKINS_URL/jnlpJars/slave.jar
4627+
4628+ if [[ ! -f $SLAVE_JAR ]] ; then
4629+ echo "Failed to download slave.jar, no file"
4630+ exit 1
4631+ fi
4632+ if [[ $(stat -c%s $SLAVE_JAR) == "0" ]]; then
4633+ echo "Failed to download slave.jar, empty file"
4634+ exit 1
4635+ fi
4636+ sudo chown jenkins:jenkins $SLAVE_JAR
4637+fi
4638+
4639+if [[ ! -d /var/run/jenkins ]]; then
4640+ mkdir /var/run/jenkins
4641+fi
4642+cp $SLAVE_JAR $RUN_JAR
4643+sudo chown jenkins:jenkins $RUN_JAR
4644
4645=== added file 'charms/jenkins-juju-ci/scripts/start-jenkins-slave.sh'
4646--- charms/jenkins-juju-ci/scripts/start-jenkins-slave.sh 1970-01-01 00:00:00 +0000
4647+++ charms/jenkins-juju-ci/scripts/start-jenkins-slave.sh 2017-03-29 15:30:42 +0000
4648@@ -0,0 +1,9 @@
4649+#!/bin/sh
4650+test -n "$JENKINS_URL" || . /etc/default/jenkins-slave
4651+test -n "$JENKINS_URL" || { stop; exit 0; }
4652+mkdir $JENKINS_RUN > /dev/null 2>&1 || true
4653+chown -R $JENKINS_USER $JENKINS_RUN || true
4654+$JENKINS_HOME/bin/place-slave.sh $JENKINS_URL
4655+/sbin/start-stop-daemon --start -c $JENKINS_USER \
4656+ --exec $JAVA --name jenkins-slave \
4657+ -- $JAVA_ARGS -jar $JENKINS_RUN/slave.jar $JENKINS_ARGS
4658
4659=== added directory 'charms/jenkins-slave'
4660=== added file 'charms/jenkins-slave/README.md'
4661--- charms/jenkins-slave/README.md 1970-01-01 00:00:00 +0000
4662+++ charms/jenkins-slave/README.md 2017-03-29 15:30:42 +0000
4663@@ -0,0 +1,24 @@
4664+# Overview
4665+
4666+This charm provisions a Jenkins slave to connect to a Jenkins master.
4667+This is the companion to the Jenkins charm. It work with a standalone
4668+Jenkins master or one managed by Juju
4669+
4670+
4671+# Usage
4672+
4673+To deploy a Jenkins slave you will also need to deploy the jenkins master
4674+charm. This can be done as follows:
4675+
4676+ juju deploy jenkins
4677+ juju deploy -n 5 jenkins-slave
4678+ juju add-relation jenkins jenkins-slave
4679+
4680+There are cases where you want to provision a specific machine that
4681+provides specific resources for tests, such as CPU architecture or
4682+network access. You can deploy the extra slave like this:
4683+
4684+ juju add-machine <special-machine-private-ip>
4685+ juju deploy --to <special-machine-number> jenkins-slave ppc64el-slave
4686+
4687+See the Jenkins charm for more details.
4688
4689=== added file 'charms/jenkins-slave/config.yaml'
4690--- charms/jenkins-slave/config.yaml 1970-01-01 00:00:00 +0000
4691+++ charms/jenkins-slave/config.yaml 2017-03-29 15:30:42 +0000
4692@@ -0,0 +1,20 @@
4693+options:
4694+ packages:
4695+ type: string
4696+ default: make git bzr
4697+ description: Packages to install on jenkins slave.
4698+ labels:
4699+ type: string
4700+ description: Jenkins labels to associate with jenkins slave.
4701+ default: ""
4702+ slave-name:
4703+ type: string
4704+ description: The name of this slave. Defaults to the juju unit name.
4705+ default: ""
4706+ master-url:
4707+ type: string
4708+ description: |
4709+ The URL of the jenkins master. Set this when this charm is not in
4710+ relation to a master or the master is not accessible via its default
4711+ URL.
4712+ default: ""
4713
4714=== added file 'charms/jenkins-slave/copyright'
4715--- charms/jenkins-slave/copyright 1970-01-01 00:00:00 +0000
4716+++ charms/jenkins-slave/copyright 2017-03-29 15:30:42 +0000
4717@@ -0,0 +1,17 @@
4718+Format: http://dep.debian.net/deps/dep5/
4719+
4720+Files: *
4721+Copyright: Copyright 2011-2016, Canonical Ltd., All Rights Reserved.
4722+License: GPL-3
4723+ This program is free software: you can redistribute it and/or modify
4724+ it under the terms of the GNU General Public License as published by
4725+ the Free Software Foundation, either version 3 of the License, or
4726+ (at your option) any later version.
4727+ .
4728+ This program is distributed in the hope that it will be useful,
4729+ but WITHOUT ANY WARRANTY; without even the implied warranty of
4730+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4731+ GNU General Public License for more details.
4732+ .
4733+ You should have received a copy of the GNU General Public License
4734+ along with this program. If not, see <http://www.gnu.org/licenses/>.
4735
4736=== added directory 'charms/jenkins-slave/files'
4737=== added directory 'charms/jenkins-slave/files/default'
4738=== added file 'charms/jenkins-slave/files/default/jenkins-slave'
4739--- charms/jenkins-slave/files/default/jenkins-slave 1970-01-01 00:00:00 +0000
4740+++ charms/jenkins-slave/files/default/jenkins-slave 2017-03-29 15:30:42 +0000
4741@@ -0,0 +1,51 @@
4742+# defaults for jenkins-slave component of the jenkins continuous integration
4743+# system
4744+
4745+# pulled in from the init script; makes things easier.
4746+NAME=jenkins-slave
4747+
4748+# location of java
4749+JAVA=/usr/bin/java
4750+
4751+# arguments to pass to java - optional
4752+#JAVA_ARGS="-Xmx256m"
4753+
4754+# for daemon to use
4755+PIDFILE=/var/run/jenkins/$NAME.pid
4756+
4757+# user id to be invoked as (otherwise will run as root; not wise!)
4758+JENKINS_USER=jenkins
4759+
4760+# location of jenkins arch indep files
4761+JENKINS_ROOT=/usr/share/jenkins
4762+
4763+# jenkins home location
4764+JENKINS_HOME=/var/lib/jenkins
4765+
4766+# jenkins /run location
4767+JENKINS_RUN=/var/run/jenkins
4768+
4769+# URL of jenkins server to connect to
4770+# Not specifying this parameter will stop the slave
4771+# job from running.
4772+#JENKINS_URL=""
4773+
4774+# Name of slave configuration to use at JENKINS_URL
4775+# Override if it need to be something other than the
4776+# hostname of the server the slave is running on.
4777+JENKINS_HOSTNAME="$(hostname)"
4778+
4779+# Log file location for use in Debian init script
4780+JENKINS_SLAVE_LOG=/var/log/jenkins/$NAME.log
4781+
4782+# OS LIMITS SETUP
4783+# comment this out to observe /etc/security/limits.conf
4784+# this is on by default because http://github.com/feniix/hudson/commit/d13c08ea8f5a3fa730ba174305e6429b74853927
4785+# reported that Ubuntu's PAM configuration doesn't include pam_limits.so, and as a result the # of file
4786+# descriptors are forced to 1024 regardless of /etc/security/limits.confa
4787+# NOTE - Ubuntu Users - this is not used by the upstart configuration - please use an upstart overrides file
4788+# to change the OS limits setup.
4789+MAXOPENFILES=8192
4790+
4791+# Arguments to pass to jenkins slave on startup
4792+JENKINS_ARGS="-jnlpUrl $JENKINS_URL/computer/$NAME/slave-agent.jnlp"
4793
4794=== added directory 'charms/jenkins-slave/files/init'
4795=== added directory 'charms/jenkins-slave/files/init.d'
4796=== added file 'charms/jenkins-slave/files/init/jenkins-slave.conf'
4797--- charms/jenkins-slave/files/init/jenkins-slave.conf 1970-01-01 00:00:00 +0000
4798+++ charms/jenkins-slave/files/init/jenkins-slave.conf 2017-03-29 15:30:42 +0000
4799@@ -0,0 +1,19 @@
4800+description "Jenkins CI Slave Agent"
4801+author "James Page <james.page@ubuntu.com>"
4802+
4803+start on runlevel [2345]
4804+stop on runlevel [!2345]
4805+
4806+pre-start script
4807+ [ -r /etc/default/jenkins-slave ] && . /etc/default/jenkins-slave
4808+ [ -n "$JENKINS_URL" ] || { stop; exit 0; }
4809+ mkdir $JENKINS_RUN > /dev/null 2>&1 || true
4810+ chown -R $JENKINS_USER $JENKINS_RUN || true
4811+ $JENKINS_ROOT/bin/download-slave.sh $JENKINS_URL
4812+end script
4813+
4814+script
4815+ [ -r /etc/default/jenkins-slave ] && . /etc/default/jenkins-slave
4816+ exec start-stop-daemon --start -c $JENKINS_USER --exec $JAVA --name jenkins-slave \
4817+ -- $JAVA_ARGS -jar $JENKINS_RUN/slave.jar $JENKINS_ARGS
4818+end script
4819
4820=== added directory 'charms/jenkins-slave/files/logrotate.d'
4821=== added file 'charms/jenkins-slave/files/logrotate.d/jenkins-slave'
4822--- charms/jenkins-slave/files/logrotate.d/jenkins-slave 1970-01-01 00:00:00 +0000
4823+++ charms/jenkins-slave/files/logrotate.d/jenkins-slave 2017-03-29 15:30:42 +0000
4824@@ -0,0 +1,9 @@
4825+/var/log/jenkins/jenkins-slave.log {
4826+ daily
4827+ copytruncate
4828+ missingok
4829+ rotate 7
4830+ compress
4831+ delaycompress
4832+ notifempty
4833+}
4834
4835=== added directory 'charms/jenkins-slave/files/systemd'
4836=== added directory 'charms/jenkins-slave/files/systemd/system'
4837=== added file 'charms/jenkins-slave/files/systemd/system/jenkins-slave.service'
4838--- charms/jenkins-slave/files/systemd/system/jenkins-slave.service 1970-01-01 00:00:00 +0000
4839+++ charms/jenkins-slave/files/systemd/system/jenkins-slave.service 2017-03-29 15:30:42 +0000
4840@@ -0,0 +1,10 @@
4841+[Unit]
4842+Description=Jenkins CI Slave Agent
4843+Wants=network-online.target
4844+After=network-online.target
4845+
4846+[Service]
4847+ExecStart=/var/lib/jenkins/bin/start-jenkins-slave.sh
4848+
4849+[Install]
4850+WantedBy=multi-user.target
4851
4852=== added directory 'charms/jenkins-slave/hooks'
4853=== added file 'charms/jenkins-slave/hooks/config-changed'
4854--- charms/jenkins-slave/hooks/config-changed 1970-01-01 00:00:00 +0000
4855+++ charms/jenkins-slave/hooks/config-changed 2017-03-29 15:30:42 +0000
4856@@ -0,0 +1,64 @@
4857+#!/bin/bash
4858+set -eux
4859+
4860+status-set maintenance "Updating scripts" || true
4861+if [[ ! -d /var/lib/jenkins/bin ]]; then
4862+ mkdir -p /var/lib/jenkins/bin
4863+fi
4864+cp $JUJU_CHARM_DIR/scripts/start-jenkins-slave.sh /var/lib/jenkins/bin
4865+chmod +x /var/lib/jenkins/bin/start-jenkins-slave.sh
4866+cp $JUJU_CHARM_DIR/scripts/place-slave.sh /var/lib/jenkins/bin
4867+chmod +x /var/lib/jenkins/bin/place-slave.sh
4868+
4869+status-set maintenance "Checking config"
4870+PACKAGES=$(config-get packages)
4871+if [[ "$PACKAGES" != "" ]]; then
4872+ status-set maintenance "Installing packages." || true
4873+ apt-get install -y $PACKAGES
4874+fi
4875+
4876+SLAVE_NAME=$(config-get slave-name)
4877+if [[ "$SLAVE_NAME" == "" ]]; then
4878+ SLAVE_NAME=$(echo $JUJU_UNIT_NAME | sed s,/,-,)
4879+fi
4880+
4881+MASTER_URL=$(config-get master-url)
4882+# This is a hack. We don't want to iterate, but we need to
4883+# because we need the state of relations and config to know
4884+# if this charm is active or something else.
4885+for app in $(relation-ids slave); do
4886+ for unit in $(relation-list -r $app); do
4887+ MASTER_URL"$(relation-get -r $app url $unit)"
4888+ break
4889+ done
4890+done
4891+if [[ "$MASTER_URL" == "" ]]; then
4892+ status-set blocked "Set master-url option or relate to master" || true
4893+ juju-log "master-url config is not set or master needs to export its url"
4894+ exit 0
4895+fi
4896+
4897+status-set maintenance "Updating configuration." || true
4898+cp $JUJU_CHARM_DIR/files/default/jenkins-slave /etc/default/jenkins-slave
4899+sed -i -r \
4900+ "s,NAME=jenkins-slave,NAME=$SLAVE_NAME," /etc/default/jenkins-slave
4901+sed -i -r \
4902+ "s,#JENKINS_URL=.*,JENKINS_URL=$MASTER_URL," /etc/default/jenkins-slave
4903+
4904+if [[ -d /etc/systemd ]]; then
4905+ cp $JUJU_CHARM_DIR/files/systemd/system/jenkins-slave.service \
4906+ /etc/systemd/system/jenkins-slave.service
4907+ systemctl enable jenkins-slave
4908+else
4909+ cp $JUJU_CHARM_DIR/files/init/jenkins-slave.conf \
4910+ /etc/init/jenkins-slave.conf
4911+ ln -s /lib/init/upstart-job /etc/init.d/jenkins-slave || true
4912+fi
4913+
4914+status-set maintenance "Checking jenkins slave.jar" || true
4915+/var/lib/jenkins/bin/place-slave.sh "$MASTER_URL"
4916+
4917+status-set maintenance "Starting services." || true
4918+service jenkins-slave stop 2>/dev/null || true
4919+service jenkins-slave start || true
4920+status-set active "$SLAVE_NAME is accepting work" || true
4921
4922=== added file 'charms/jenkins-slave/hooks/install'
4923--- charms/jenkins-slave/hooks/install 1970-01-01 00:00:00 +0000
4924+++ charms/jenkins-slave/hooks/install 2017-03-29 15:30:42 +0000
4925@@ -0,0 +1,20 @@
4926+#!/bin/bash
4927+
4928+set -eux
4929+
4930+status-set maintenance "Installing" || true
4931+apt-get install -y adduser default-jre-headless
4932+
4933+if ! id jenkins > /dev/null 2>&1 ; then
4934+ mkdir -p /var/lib/jenkins
4935+ adduser --system --home /var/lib/jenkins \
4936+ --group --disabled-password --quiet --shell /bin/bash \
4937+ jenkins
4938+ chown -R jenkins:jenkins /var/lib/jenkins
4939+fi
4940+
4941+if [[ ! -d /var/log/jenkins ]]; then
4942+ mkdir -p /var/log/jenkins
4943+fi
4944+
4945+status-set maintenance "Installed" || true
4946
4947=== added file 'charms/jenkins-slave/hooks/slave-relation-joined'
4948--- charms/jenkins-slave/hooks/slave-relation-joined 1970-01-01 00:00:00 +0000
4949+++ charms/jenkins-slave/hooks/slave-relation-joined 2017-03-29 15:30:42 +0000
4950@@ -0,0 +1,20 @@
4951+#!/bin/bash
4952+
4953+set -e
4954+
4955+# Set the slave hostname to match the juju unit
4956+# in the jenkins master instance
4957+slavehost=$(echo ${JUJU_UNIT_NAME} | sed s,/,-,)
4958+noexecutors=$(cat /proc/cpuinfo | grep processor | wc -l)
4959+config_labels=$(config-get labels)
4960+labels=$(uname -p)
4961+
4962+if [[ -n "$config_labels" ]]; then
4963+ labels=$config_labels
4964+fi
4965+
4966+# Set all relations
4967+relation-set executors=$noexecutors
4968+relation-set labels="$labels"
4969+relation-set slavehost=$slavehost
4970+relation-set slaveaddress=`unit-get private-address`
4971
4972=== added file 'charms/jenkins-slave/hooks/start'
4973--- charms/jenkins-slave/hooks/start 1970-01-01 00:00:00 +0000
4974+++ charms/jenkins-slave/hooks/start 2017-03-29 15:30:42 +0000
4975@@ -0,0 +1,3 @@
4976+#!/bin/bash
4977+
4978+service jenkins-slave start || true
4979
4980=== added file 'charms/jenkins-slave/hooks/stop'
4981--- charms/jenkins-slave/hooks/stop 1970-01-01 00:00:00 +0000
4982+++ charms/jenkins-slave/hooks/stop 2017-03-29 15:30:42 +0000
4983@@ -0,0 +1,3 @@
4984+#!/bin/bash
4985+
4986+service jenkins-slave stop 2>/dev/null || true
4987
4988=== added symlink 'charms/jenkins-slave/hooks/upgrade-charm'
4989=== target is u'install'
4990=== added file 'charms/jenkins-slave/icon.svg'
4991--- charms/jenkins-slave/icon.svg 1970-01-01 00:00:00 +0000
4992+++ charms/jenkins-slave/icon.svg 2017-03-29 15:30:42 +0000
4993@@ -0,0 +1,596 @@
4994+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
4995+<!-- Created with Inkscape (http://www.inkscape.org/) -->
4996+
4997+<svg
4998+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4999+ xmlns:cc="http://creativecommons.org/ns#"
5000+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches