Updated with fixes suggested from bug comments
This commit is contained in:
parent
6d3fc4e7a2
commit
26f87250f5
9
copyright
Normal file
9
copyright
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2012, Canonical Ltd.
|
||||||
|
License: GPL-3
|
||||||
|
|
||||||
|
License: GPL-3
|
||||||
|
On Debian GNU/Linux system you can find the complete text of the
|
||||||
|
GPL-3 license in '/usr/share/common-licenses/GPL-3'
|
@ -42,14 +42,10 @@ class NeutronCCContext(context.NeutronContext):
|
|||||||
ctxt['verbose'] = config('verbose')
|
ctxt['verbose'] = config('verbose')
|
||||||
ctxt['debug'] = config('debug')
|
ctxt['debug'] = config('debug')
|
||||||
for rid in relation_ids('neutron-api'):
|
for rid in relation_ids('neutron-api'):
|
||||||
print "rid"
|
|
||||||
for unit in related_units(rid):
|
for unit in related_units(rid):
|
||||||
print "unit"
|
|
||||||
ctxt['nova_url'] = relation_get(attribute='nova_url',
|
ctxt['nova_url'] = relation_get(attribute='nova_url',
|
||||||
rid=rid,
|
rid=rid,
|
||||||
unit=unit)
|
unit=unit)
|
||||||
if ctxt['nova_url']:
|
if ctxt['nova_url']:
|
||||||
print "Ive set nova_url"
|
|
||||||
return ctxt
|
return ctxt
|
||||||
print "Ive not set nova_url"
|
|
||||||
return ctxt
|
return ctxt
|
||||||
|
@ -12,7 +12,6 @@ from charmhelpers.core.hookenv import (
|
|||||||
relation_get,
|
relation_get,
|
||||||
relation_ids,
|
relation_ids,
|
||||||
relation_set,
|
relation_set,
|
||||||
related_units,
|
|
||||||
open_port,
|
open_port,
|
||||||
unit_get,
|
unit_get,
|
||||||
)
|
)
|
||||||
@ -30,7 +29,6 @@ from charmhelpers.contrib.openstack.utils import (
|
|||||||
openstack_upgrade_available,
|
openstack_upgrade_available,
|
||||||
)
|
)
|
||||||
from charmhelpers.contrib.openstack.neutron import (
|
from charmhelpers.contrib.openstack.neutron import (
|
||||||
network_manager,
|
|
||||||
neutron_plugin_attribute,
|
neutron_plugin_attribute,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -73,7 +71,7 @@ def install():
|
|||||||
def config_changed():
|
def config_changed():
|
||||||
global CONFIGS
|
global CONFIGS
|
||||||
if openstack_upgrade_available('neutron-server'):
|
if openstack_upgrade_available('neutron-server'):
|
||||||
do_openstack_upgrade(CONFIGS)
|
do_openstack_upgrade(CONFIGS)
|
||||||
CONFIGS.write_all()
|
CONFIGS.write_all()
|
||||||
for r_id in relation_ids('neutron-api'):
|
for r_id in relation_ids('neutron-api'):
|
||||||
neutron_api_relation_joined(rid=r_id)
|
neutron_api_relation_joined(rid=r_id)
|
||||||
@ -139,10 +137,9 @@ def db_changed():
|
|||||||
@hooks.hook('pgsql-db-relation-changed')
|
@hooks.hook('pgsql-db-relation-changed')
|
||||||
@restart_on_change(restart_map())
|
@restart_on_change(restart_map())
|
||||||
def postgresql_neutron_db_changed():
|
def postgresql_neutron_db_changed():
|
||||||
if network_manager() in ['neutron', 'quantum']:
|
plugin = config('neutron-plugin')
|
||||||
plugin = config('neutron-plugin')
|
# DB config might have been moved to main neutron.conf in H?
|
||||||
# DB config might have been moved to main neutron.conf in H?
|
CONFIGS.write(neutron_plugin_attribute(plugin, 'config'))
|
||||||
CONFIGS.write(neutron_plugin_attribute(plugin, 'config'))
|
|
||||||
|
|
||||||
|
|
||||||
@hooks.hook('amqp-relation-broken',
|
@hooks.hook('amqp-relation-broken',
|
||||||
@ -170,51 +167,21 @@ def identity_changed():
|
|||||||
neutron_api_relation_joined(rid=r_id)
|
neutron_api_relation_joined(rid=r_id)
|
||||||
|
|
||||||
|
|
||||||
def _get_keystone_info():
|
|
||||||
keystone_info = {}
|
|
||||||
for lrid in relation_ids('identity-service'):
|
|
||||||
for unit in related_units(lrid):
|
|
||||||
rdata = relation_get(rid=lrid, unit=unit)
|
|
||||||
keystone_info['service_protocol'] = rdata.get('service_protocol')
|
|
||||||
keystone_info['service_host'] = rdata.get('service_host')
|
|
||||||
keystone_info['service_port'] = rdata.get('service_port')
|
|
||||||
keystone_info['service_tenant'] = rdata.get('service_tenant')
|
|
||||||
keystone_info['service_username'] = rdata.get('service_username')
|
|
||||||
keystone_info['service_password'] = rdata.get('service_password')
|
|
||||||
auth_url = "%s://%s:%s/v2.0" % (keystone_info['service_protocol'],
|
|
||||||
keystone_info['service_host'],
|
|
||||||
keystone_info['service_port'])
|
|
||||||
keystone_info['auth_url'] = auth_url
|
|
||||||
return keystone_info
|
|
||||||
|
|
||||||
|
|
||||||
@hooks.hook('neutron-api-relation-joined')
|
@hooks.hook('neutron-api-relation-joined')
|
||||||
def neutron_api_relation_joined(rid=None):
|
def neutron_api_relation_joined(rid=None):
|
||||||
manager = network_manager()
|
|
||||||
base_url = canonical_url(CONFIGS)
|
base_url = canonical_url(CONFIGS)
|
||||||
neutron_url = '%s:%s' % (base_url, api_port('neutron-server'))
|
neutron_url = '%s:%s' % (base_url, api_port('neutron-server'))
|
||||||
relation_data = {
|
relation_data = {
|
||||||
'network_manager': manager,
|
'neutron-url': neutron_url,
|
||||||
'default_floating_pool': config('neutron-external-network'),
|
'neutron-plugin': config('neutron-plugin'),
|
||||||
'external_network': config('neutron-external-network'),
|
|
||||||
manager + '_plugin': config('neutron-plugin'),
|
|
||||||
manager + '_url': neutron_url,
|
|
||||||
}
|
}
|
||||||
if config('neutron-security-groups'):
|
if config('neutron-security-groups'):
|
||||||
relation_data[manager + '_security_groups'] = "yes"
|
relation_data['neutron-security-groups'] = "yes"
|
||||||
else:
|
else:
|
||||||
relation_data[manager + '_security_groups'] = "no"
|
relation_data['neutron-security-groups'] = "no"
|
||||||
keystone_info = _get_keystone_info()
|
|
||||||
if is_relation_made('identity-service') and keystone_info:
|
|
||||||
relation_data.update({
|
|
||||||
manager + '_admin_tenant_name': keystone_info['service_tenant'],
|
|
||||||
manager + '_admin_username': keystone_info['service_username'],
|
|
||||||
manager + '_admin_password': keystone_info['service_password'],
|
|
||||||
manager + '_admin_auth_url': keystone_info['auth_url'],
|
|
||||||
})
|
|
||||||
relation_set(relation_id=rid, **relation_data)
|
relation_set(relation_id=rid, **relation_data)
|
||||||
# Nova-cc may have grabbed the quantum endpoint so kick identity-service
|
# Nova-cc may have grabbed the quantum endpoint so kick identity-service
|
||||||
#relation to register that its here
|
# relation to register that its here
|
||||||
for r_id in relation_ids('identity-service'):
|
for r_id in relation_ids('identity-service'):
|
||||||
identity_joined(rid=r_id)
|
identity_joined(rid=r_id)
|
||||||
|
|
||||||
@ -228,7 +195,7 @@ def neutron_api_relation_changed():
|
|||||||
@hooks.hook('neutron-plugin-api-relation-joined')
|
@hooks.hook('neutron-plugin-api-relation-joined')
|
||||||
def neutron_plugin_api_relation_joined(rid=None):
|
def neutron_plugin_api_relation_joined(rid=None):
|
||||||
relation_data = {
|
relation_data = {
|
||||||
'neutron_security_groups': config('neutron-security-groups')
|
'neutron-security-groups': config('neutron-security-groups')
|
||||||
}
|
}
|
||||||
relation_set(relation_id=rid, **relation_data)
|
relation_set(relation_id=rid, **relation_data)
|
||||||
|
|
||||||
|
@ -4,7 +4,8 @@ import os
|
|||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
from charmhelpers.contrib.openstack import context, templating
|
from charmhelpers.contrib.openstack import context, templating
|
||||||
from charmhelpers.contrib.openstack.neutron import (
|
from charmhelpers.contrib.openstack.neutron import (
|
||||||
network_manager, neutron_plugin_attribute)
|
neutron_plugin_attribute,
|
||||||
|
)
|
||||||
|
|
||||||
from charmhelpers.contrib.openstack.utils import (
|
from charmhelpers.contrib.openstack.utils import (
|
||||||
os_release,
|
os_release,
|
||||||
@ -95,7 +96,7 @@ def determine_packages():
|
|||||||
packages.extend(v['services'])
|
packages.extend(v['services'])
|
||||||
pkgs = neutron_plugin_attribute(config('neutron-plugin'),
|
pkgs = neutron_plugin_attribute(config('neutron-plugin'),
|
||||||
'server_packages',
|
'server_packages',
|
||||||
network_manager())
|
'neutron')
|
||||||
packages.extend(pkgs)
|
packages.extend(pkgs)
|
||||||
return list(set(packages))
|
return list(set(packages))
|
||||||
|
|
||||||
@ -119,16 +120,14 @@ def resource_map():
|
|||||||
'''
|
'''
|
||||||
resource_map = deepcopy(BASE_RESOURCE_MAP)
|
resource_map = deepcopy(BASE_RESOURCE_MAP)
|
||||||
|
|
||||||
net_manager = network_manager()
|
|
||||||
|
|
||||||
# add neutron plugin requirements. nova-c-c only needs the neutron-server
|
# add neutron plugin requirements. nova-c-c only needs the neutron-server
|
||||||
# associated with configs, not the plugin agent.
|
# associated with configs, not the plugin agent.
|
||||||
plugin = config('neutron-plugin')
|
plugin = config('neutron-plugin')
|
||||||
conf = neutron_plugin_attribute(plugin, 'config', net_manager)
|
conf = neutron_plugin_attribute(plugin, 'config', 'neutron')
|
||||||
ctxts = (neutron_plugin_attribute(plugin, 'contexts', net_manager)
|
ctxts = (neutron_plugin_attribute(plugin, 'contexts', 'neutron')
|
||||||
or [])
|
or [])
|
||||||
services = neutron_plugin_attribute(plugin, 'server_services',
|
services = neutron_plugin_attribute(plugin, 'server_services',
|
||||||
net_manager)
|
'neutron')
|
||||||
resource_map[conf] = {}
|
resource_map[conf] = {}
|
||||||
resource_map[conf]['services'] = services
|
resource_map[conf]['services'] = services
|
||||||
resource_map[conf]['contexts'] = ctxts
|
resource_map[conf]['contexts'] = ctxts
|
||||||
|
676
icon.svg
Normal file
676
icon.svg
Normal file
@ -0,0 +1,676 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="96"
|
||||||
|
height="96"
|
||||||
|
id="svg6517"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48+devel r12591"
|
||||||
|
sodipodi:docname="openstack-neutron.svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="3.2596289"
|
||||||
|
inkscape:cx="31.457167"
|
||||||
|
inkscape:cy="30.333607"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1029"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
showborder="true"
|
||||||
|
showguides="false"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
inkscape:snap-bbox="false"
|
||||||
|
inkscape:bbox-paths="true"
|
||||||
|
inkscape:bbox-nodes="true"
|
||||||
|
inkscape:snap-bbox-edge-midpoints="true"
|
||||||
|
inkscape:snap-bbox-midpoints="true"
|
||||||
|
inkscape:object-paths="true"
|
||||||
|
inkscape:snap-intersection-paths="true"
|
||||||
|
inkscape:object-nodes="true"
|
||||||
|
inkscape:snap-smooth-nodes="true"
|
||||||
|
inkscape:snap-midpoints="true"
|
||||||
|
inkscape:snap-object-midpoints="true"
|
||||||
|
inkscape:snap-center="true"
|
||||||
|
inkscape:snap-grids="false"
|
||||||
|
inkscape:snap-nodes="true"
|
||||||
|
inkscape:snap-others="false">
|
||||||
|
<inkscape:grid
|
||||||
|
id="grid821"
|
||||||
|
type="xygrid" />
|
||||||
|
<sodipodi:guide
|
||||||
|
id="guide823"
|
||||||
|
position="18.34962,45.78585"
|
||||||
|
orientation="1,0" />
|
||||||
|
<sodipodi:guide
|
||||||
|
id="guide827"
|
||||||
|
position="78.02001,46.32673"
|
||||||
|
orientation="1,0" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4184"
|
||||||
|
position="65.586619,19.307"
|
||||||
|
orientation="-0.087155743,0.9961947" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4188"
|
||||||
|
position="62.756032,71.583147"
|
||||||
|
orientation="-0.087155743,0.9961947" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4190"
|
||||||
|
position="47.812194,78.049658"
|
||||||
|
orientation="-0.087155743,0.9961947" />
|
||||||
|
<sodipodi:guide
|
||||||
|
id="guide4194"
|
||||||
|
position="25.60516,42.21665"
|
||||||
|
orientation="1,0" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4202"
|
||||||
|
position="25.60516,42.070975"
|
||||||
|
orientation="-0.087155743,0.9961947" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4204"
|
||||||
|
position="18.353516,50.837891"
|
||||||
|
orientation="-0.70710678,-0.70710678" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4242"
|
||||||
|
position="53.449219,34.658203"
|
||||||
|
orientation="-0.70710678,-0.70710678" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4252"
|
||||||
|
position="73.5625,75.210937"
|
||||||
|
orientation="-0.70710678,-0.70710678" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
inkscape:color="rgb(140,140,240)"
|
||||||
|
id="guide4254"
|
||||||
|
position="50.173828,42.578125"
|
||||||
|
orientation="-0.70710678,-0.70710678" />
|
||||||
|
<sodipodi:guide
|
||||||
|
inkscape:label=""
|
||||||
|
id="guide4288"
|
||||||
|
position="21.871042,21.577512"
|
||||||
|
orientation="-0.70710678,-0.70710678" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="-0.70710678,-0.70710678"
|
||||||
|
position="78.02001,56.512515"
|
||||||
|
id="guide4453"
|
||||||
|
inkscape:label="" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="-0.70710678,-0.70710678"
|
||||||
|
position="78.02001,33.527044"
|
||||||
|
id="guide4455"
|
||||||
|
inkscape:label="" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="-0.70710678,-0.70710678"
|
||||||
|
position="53.453125,54.357422"
|
||||||
|
id="guide4457"
|
||||||
|
inkscape:label="" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs6519">
|
||||||
|
<filter
|
||||||
|
id="filter1121"
|
||||||
|
inkscape:label="Inner Shadow"
|
||||||
|
style="color-interpolation-filters:sRGB;">
|
||||||
|
<feFlood
|
||||||
|
id="feFlood1123"
|
||||||
|
result="flood"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
flood-opacity="0.59999999999999998" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite1125"
|
||||||
|
result="composite1"
|
||||||
|
operator="out"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
in="flood" />
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur1127"
|
||||||
|
result="blur"
|
||||||
|
stdDeviation="1"
|
||||||
|
in="composite1" />
|
||||||
|
<feOffset
|
||||||
|
id="feOffset1129"
|
||||||
|
result="offset"
|
||||||
|
dy="2"
|
||||||
|
dx="0" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite1131"
|
||||||
|
result="composite2"
|
||||||
|
operator="atop"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
in="offset" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
id="filter950"
|
||||||
|
inkscape:label="Drop Shadow"
|
||||||
|
style="color-interpolation-filters:sRGB;">
|
||||||
|
<feFlood
|
||||||
|
id="feFlood952"
|
||||||
|
result="flood"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
flood-opacity="0.25" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite954"
|
||||||
|
result="composite1"
|
||||||
|
operator="in"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
in="flood" />
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur956"
|
||||||
|
result="blur"
|
||||||
|
stdDeviation="1"
|
||||||
|
in="composite1" />
|
||||||
|
<feOffset
|
||||||
|
id="feOffset958"
|
||||||
|
result="offset"
|
||||||
|
dy="1"
|
||||||
|
dx="0" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite960"
|
||||||
|
result="composite2"
|
||||||
|
operator="over"
|
||||||
|
in2="offset"
|
||||||
|
in="SourceGraphic" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:label="Badge Shadow"
|
||||||
|
id="filter891"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur893"
|
||||||
|
stdDeviation="0.71999962"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3831">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.86309522"
|
||||||
|
id="feGaussianBlur3833" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3868"
|
||||||
|
x="-0.17186206"
|
||||||
|
width="1.3437241"
|
||||||
|
y="-0.1643077"
|
||||||
|
height="1.3286154">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.62628186"
|
||||||
|
id="feGaussianBlur3870" />
|
||||||
|
</filter>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4328"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<stop
|
||||||
|
id="stop4330"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#871f1c;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
id="stop4332"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#651715;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient902"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<stop
|
||||||
|
id="stop904"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#cccccc;stop-opacity:1" />
|
||||||
|
<stop
|
||||||
|
id="stop906"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#e6e6e6;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="Background">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#22779e;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop4178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#2991c0;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop4180" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath873"
|
||||||
|
clipPathUnits="userSpaceOnUse">
|
||||||
|
<g
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
id="g875"
|
||||||
|
transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path877"
|
||||||
|
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"
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline" />
|
||||||
|
</g>
|
||||||
|
</clipPath>
|
||||||
|
<style
|
||||||
|
type="text/css"
|
||||||
|
id="style867">
|
||||||
|
.fil0 {fill:#1F1A17}
|
||||||
|
</style>
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="635.29077"
|
||||||
|
x2="-220"
|
||||||
|
y1="731.29077"
|
||||||
|
x1="-220"
|
||||||
|
id="linearGradient908"
|
||||||
|
xlink:href="#linearGradient902"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<clipPath
|
||||||
|
id="clipPath16">
|
||||||
|
<path
|
||||||
|
d="m -9,-9 614,0 0,231 -614,0 0,-231 z"
|
||||||
|
id="path18" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath116">
|
||||||
|
<path
|
||||||
|
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"
|
||||||
|
id="path118" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath128">
|
||||||
|
<path
|
||||||
|
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"
|
||||||
|
id="path130" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient3850">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3852" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3854" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath3095"
|
||||||
|
clipPathUnits="userSpaceOnUse">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3097"
|
||||||
|
d="m 976.648,389.551 -842.402,0 0,839.999 842.402,0 0,-839.999" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath3195"
|
||||||
|
clipPathUnits="userSpaceOnUse">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3197"
|
||||||
|
d="m 611.836,756.738 -106.34,105.207 c -8.473,8.289 -13.617,20.102 -13.598,33.379 L 598.301,790.207 c -0.031,-13.418 5.094,-25.031 13.535,-33.469" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath3235"
|
||||||
|
clipPathUnits="userSpaceOnUse">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3237"
|
||||||
|
d="m 1095.64,1501.81 c 35.46,-35.07 70.89,-70.11 106.35,-105.17 4.4,-4.38 7.11,-10.53 7.11,-17.55 l -106.37,105.21 c 0,7 -2.71,13.11 -7.09,17.51" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4389">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#871f1c;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop4391" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c42e24;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop4393" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath4591">
|
||||||
|
<path
|
||||||
|
id="path4593"
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
d="m 1106.6009,730.43734 -0.036,21.648 c -0.01,3.50825 -2.8675,6.61375 -6.4037,6.92525 l -83.6503,7.33162 c -3.5205,0.30763 -6.3812,-2.29987 -6.3671,-5.8145 l 0.036,-21.6475 20.1171,-1.76662 -0.011,4.63775 c 0,1.83937 1.4844,3.19925 3.3262,3.0395 l 49.5274,-4.33975 c 1.8425,-0.166 3.3425,-1.78125 3.3538,-3.626 l 0.01,-4.63025 20.1,-1.7575"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3850"
|
||||||
|
id="radialGradient3856"
|
||||||
|
cx="-26.508606"
|
||||||
|
cy="93.399292"
|
||||||
|
fx="-26.508606"
|
||||||
|
fy="93.399292"
|
||||||
|
r="20.40658"
|
||||||
|
gradientTransform="matrix(-1.4333926,-2.2742838,1.1731823,-0.73941125,-174.08025,98.374394)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3885">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="5.7442192"
|
||||||
|
id="feGaussianBlur3887" />
|
||||||
|
</filter>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3850"
|
||||||
|
id="linearGradient3895"
|
||||||
|
x1="348.20132"
|
||||||
|
y1="593.11615"
|
||||||
|
x2="-51.879555"
|
||||||
|
y2="993.19702"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-318.48033,212.32022)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3850"
|
||||||
|
id="radialGradient3902"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-1.4333926,-2.2742838,1.1731823,-0.73941125,-174.08025,98.374394)"
|
||||||
|
cx="-26.508606"
|
||||||
|
cy="93.399292"
|
||||||
|
fx="-26.508606"
|
||||||
|
fy="93.399292"
|
||||||
|
r="20.40658" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3850"
|
||||||
|
id="linearGradient3904"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-318.48033,212.32022)"
|
||||||
|
x1="348.20132"
|
||||||
|
y1="593.11615"
|
||||||
|
x2="-51.879555"
|
||||||
|
y2="993.19702" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="23.383789"
|
||||||
|
x2="25.217773"
|
||||||
|
y1="27.095703"
|
||||||
|
x1="21.505859"
|
||||||
|
id="linearGradient4318"
|
||||||
|
xlink:href="#linearGradient4389"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="20.884073"
|
||||||
|
x2="71.960243"
|
||||||
|
y1="20.041777"
|
||||||
|
x1="72.802544"
|
||||||
|
id="linearGradient4326"
|
||||||
|
xlink:href="#linearGradient4389"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="74.246689"
|
||||||
|
x2="21.69179"
|
||||||
|
y1="73.643555"
|
||||||
|
x1="22.294922"
|
||||||
|
id="linearGradient4334"
|
||||||
|
xlink:href="#linearGradient4328"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="24.881023"
|
||||||
|
x2="57.450542"
|
||||||
|
y1="77.404816"
|
||||||
|
x1="57.450542"
|
||||||
|
id="linearGradient4319"
|
||||||
|
xlink:href="#linearGradient4552"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4552"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<stop
|
||||||
|
id="stop4554"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#d93023;stop-opacity:1" />
|
||||||
|
<stop
|
||||||
|
id="stop4556"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#e63f46;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata6522">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(268,-635.29076)"
|
||||||
|
id="layer1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="BACKGROUND">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path6455"
|
||||||
|
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"
|
||||||
|
style="fill:url(#linearGradient908);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)" />
|
||||||
|
<g
|
||||||
|
id="g4336">
|
||||||
|
<g
|
||||||
|
transform="matrix(0.06790711,0,0,-0.06790711,-239.0411,765.68623)"
|
||||||
|
id="g3897"
|
||||||
|
xml:space="default">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="opacity:0.7;color:#000000;fill:url(#radialGradient3902);fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3831);enable-background:accumulate"
|
||||||
|
d="m -48.09375,67.8125 c -0.873996,-0.0028 -2.089735,0.01993 -3.40625,0.09375 -2.633031,0.147647 -5.700107,0.471759 -7.78125,1.53125 a 1.0001,1.0001 0 0 0 -0.25,1.59375 L -38.8125,92.375 a 1.0001,1.0001 0 0 0 0.84375,0.3125 L -24,90.5625 a 1.0001,1.0001 0 0 0 0.53125,-1.71875 L -46.0625,68.125 a 1.0001,1.0001 0 0 0 -0.625,-0.28125 c 0,0 -0.532254,-0.02842 -1.40625,-0.03125 z"
|
||||||
|
transform="matrix(10.616011,0,0,-10.616011,357.98166,1725.8152)"
|
||||||
|
id="path3821"
|
||||||
|
xml:space="default" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.6;color:#000000;fill:none;stroke:#000000;stroke-width:2.77429962;stroke-linecap:round;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3868);enable-background:accumulate"
|
||||||
|
d="m -15.782705,81.725197 8.7458304,9.147937"
|
||||||
|
id="path3858"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
transform="matrix(10.616011,0,0,-10.616011,39.50133,1725.8152)"
|
||||||
|
xml:space="default" />
|
||||||
|
<path
|
||||||
|
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;opacity:0.3;color:#000000;fill:url(#linearGradient3904);fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3885);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||||
|
d="m -95.18931,981.03569 a 10.617073,10.617073 0 0 1 -0.995251,-0.3318 l -42.795789,-5.308 a 10.617073,10.617073 0 0 1 -6.30326,-17.9145 L -4.2897203,812.5065 a 10.617073,10.617073 0 0 1 8.95726,-3.3175 l 49.0990503,7.63026 a 10.617073,10.617073 0 0 1 5.97151,17.91452 L -87.55905,978.04989 a 10.617073,10.617073 0 0 1 -7.63026,2.9858 z"
|
||||||
|
id="path3874"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
xml:space="default" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:#871f1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="M 20.697266 20.515625 C 19.336871 21.10204 18.348875 22.456253 18.345703 23.970703 L 18.353516 69.601562 C 18.349848 70.477025 18.685456 71.239319 19.222656 71.802734 L 19.212891 71.8125 L 19.357422 71.955078 C 19.360505 71.957909 19.364093 71.960073 19.367188 71.962891 L 26.660156 79.126953 L 33.486328 71.742188 L 21.816406 72.763672 C 21.792906 72.765672 21.771347 72.761672 21.748047 72.763672 L 45.263672 70.707031 L 67.28125 68.777344 C 67.744386 68.736546 68.184049 68.603285 68.587891 68.404297 L 56.751953 56.568359 L 46.193359 57.494141 L 44.554688 57.638672 L 42.917969 57.78125 L 42.919922 46.291016 L 42.917969 46.291016 L 18.353516 48.443359 L 18.353516 45.162109 L 42.919922 43.007812 L 42.919922 42.738281 L 20.697266 20.515625 z M 46.195312 46.011719 L 46.193359 54.210938 L 53.734375 53.550781 L 46.195312 46.011719 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4308" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:#c42e24;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="M 67.320312 16.253906 L 21.822266 20.212891 C 21.426436 20.248017 21.052174 20.362637 20.697266 20.515625 L 42.919922 42.738281 L 42.921875 31.515625 L 44.560547 31.371094 L 46.199219 31.228516 L 70.779297 29.072266 L 70.783203 19.404297 C 70.783203 19.410997 70.785166 19.416828 70.785156 19.423828 L 70.779297 31.382812 L 77.232422 24.398438 L 69.892578 17.179688 L 69.884766 17.189453 C 69.251763 16.542736 68.342666 16.171306 67.320312 16.253906 z M 42.173828 18.443359 L 21.673828 20.244141 C 21.725398 20.237341 21.774072 20.219844 21.826172 20.214844 L 42.173828 18.443359 z M 70.775391 32.355469 L 46.197266 34.511719 L 46.195312 46.011719 L 53.734375 53.550781 L 70.765625 52.058594 L 70.775391 32.355469 z M 70.763672 55.341797 L 56.751953 56.568359 L 68.587891 68.404297 C 69.859183 67.777881 70.75673 66.462035 70.759766 65.015625 L 70.763672 55.341797 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4233" />
|
||||||
|
<rect
|
||||||
|
xml:space="default"
|
||||||
|
y="648.49109"
|
||||||
|
x="-258.70667"
|
||||||
|
height="69.20665"
|
||||||
|
width="69.20665"
|
||||||
|
id="rect3585-3"
|
||||||
|
style="opacity:0.8;color:#000000;fill:none;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
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;opacity:1;color:#000000;color-interpolation:sRGB;color-interpolation-filters:sRGB;fill:url(#linearGradient4318);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.25;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"
|
||||||
|
d="M 22.029297 20.195312 L 21.822266 20.212891 C 19.919838 20.381715 18.370776 22.043134 18.349609 23.939453 L 24.662109 30.251953 L 25.605469 31.195312 L 25.605469 31.103516 C 25.609469 29.193966 27.168951 27.515473 29.082031 27.345703 L 29.171875 27.337891 L 28.373047 26.539062 L 22.029297 20.195312 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4256" />
|
||||||
|
<path
|
||||||
|
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;opacity:0.53600003;color:#000000;color-interpolation:sRGB;color-interpolation-filters:sRGB;fill:url(#linearGradient4326);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.4;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;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="M 67.330078 16.253906 L 68.03125 16.955078 L 74.472656 23.396484 L 74.580078 23.386719 C 75.531927 23.309814 76.390588 23.620657 77.015625 24.185547 L 69.892578 17.179688 L 69.884766 17.189453 C 69.253843 16.544862 68.348328 16.174551 67.330078 16.253906 z M 77.054688 24.222656 C 77.115589 24.279686 77.164628 24.348282 77.220703 24.410156 L 77.232422 24.398438 L 77.054688 24.222656 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4272" />
|
||||||
|
<path
|
||||||
|
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;opacity:1;color:#000000;color-interpolation:sRGB;color-interpolation-filters:sRGB;fill:url(#linearGradient4334);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7;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;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="M 18.363281 69.712891 C 18.387957 70.540342 18.709001 71.264013 19.222656 71.802734 L 19.212891 71.8125 L 19.357422 71.955078 C 19.360505 71.957909 19.364093 71.960073 19.367188 71.962891 L 26.599609 79.068359 C 26.044831 78.550125 25.698241 77.821152 25.638672 76.988281 L 18.951172 70.298828 L 18.363281 69.712891 z M 26.636719 79.103516 L 26.660156 79.126953 L 26.664062 79.123047 C 26.655656 79.11562 26.645042 79.111033 26.636719 79.103516 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4290" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#ac2820;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="m -214.55078,696.63256 -10.56381,-10.56381 7.29232,-12.13151 3.2754,2.9961 3.88512,11.59245 -3.88912,8.10677 z"
|
||||||
|
id="path4464"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
xml:space="default"
|
||||||
|
sodipodi:nodetypes="ccccccc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#871f1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="m -217.82617,688.71263 -3.01835,-3.01834 -21.5461,1.88944 0,3.28125 17.30859,2.20703 z"
|
||||||
|
id="path4462"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient4319);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||||
|
d="M 74.580078 23.386719 L 49.429688 25.574219 L 48.289062 25.673828 L 28.929688 27.375 C 27.088344 27.619196 25.60936 29.245994 25.605469 31.103516 L 25.609375 52.292969 L 50.175781 50.138672 L 50.177734 38.646484 L 51.816406 38.501953 L 53.455078 38.359375 L 78.035156 36.203125 L 78.039062 26.535156 C 78.031157 24.631187 76.489653 23.232435 74.580078 23.386719 z M 78.033203 39.486328 L 53.453125 41.642578 L 53.449219 61.341797 L 78.025391 59.189453 L 78.033203 39.486328 z M 50.173828 53.421875 L 25.609375 55.574219 L 25.613281 76.734375 C 25.605365 78.623663 27.128801 80.027072 29.013672 79.894531 L 69.273438 76.371094 L 74.416016 75.921875 L 74.541016 75.910156 C 76.462106 75.740926 78.015531 74.054318 78.019531 72.148438 L 78.023438 62.472656 L 53.449219 64.625 L 51.810547 64.769531 L 50.173828 64.912109 L 50.175781 53.421875 L 50.173828 53.421875 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4633-5" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:#871f1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="m -249.65067,680.44868 7.25583,7.25583 0.002,-10.71551 -7.2578,-7.01958 z"
|
||||||
|
id="path4460"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
xml:space="default" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#871f1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="m -214.55087,696.63247 21.55222,-1.88742 3.01866,3.01867 -21.55199,1.88764 -3.01889,-3.01889 z"
|
||||||
|
id="path4466"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
xml:space="default" />
|
||||||
|
<path
|
||||||
|
xml:space="default"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4468"
|
||||||
|
d="m -217.82227,673.93724 24.82362,-2.17766 3.01866,3.01867 -24.56688,2.15509 z"
|
||||||
|
style="color:#000000;fill:#871f1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline;opacity:0.3"
|
||||||
|
d="M 74.580078 23.386719 L 49.429688 25.574219 L 48.289062 25.673828 L 28.929688 27.375 C 27.088344 27.619196 25.60936 29.245994 25.605469 31.103516 L 25.605469 31.302734 C 25.609359 29.445214 27.088337 27.818419 28.929688 27.574219 L 48.289062 25.873047 L 49.429688 25.773438 L 74.580078 23.585938 C 76.489648 23.431658 78.031062 24.830405 78.039062 26.734375 L 78.039062 26.535156 C 78.031157 24.631187 76.489653 23.232435 74.580078 23.386719 z M 78.033203 39.486328 L 53.453125 41.642578 L 53.453125 41.841797 L 78.033203 39.685547 L 78.033203 39.486328 z M 50.173828 53.421875 L 25.609375 55.574219 L 25.609375 55.773438 L 50.173828 53.621094 L 50.175781 53.621094 L 50.175781 53.421875 L 50.173828 53.421875 z M 78.023438 62.472656 L 53.449219 64.625 L 51.810547 64.769531 L 50.173828 64.912109 L 50.173828 65.111328 L 51.810547 64.96875 L 53.449219 64.824219 L 78.023438 62.671875 L 78.023438 62.472656 z "
|
||||||
|
transform="translate(-268,635.29076)"
|
||||||
|
id="path4470" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline"
|
||||||
|
inkscape:label="PLACE YOUR PICTOGRAM HERE"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:groupmode="layer" />
|
||||||
|
<g
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
style="display:none"
|
||||||
|
inkscape:label="BADGE"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<g
|
||||||
|
clip-path="none"
|
||||||
|
id="g4394"
|
||||||
|
transform="translate(-340.00001,-581)"
|
||||||
|
style="display:inline">
|
||||||
|
<g
|
||||||
|
id="g855">
|
||||||
|
<g
|
||||||
|
style="opacity:0.6;filter:url(#filter891)"
|
||||||
|
clip-path="url(#clipPath873)"
|
||||||
|
id="g870"
|
||||||
|
inkscape:groupmode="maskhelper">
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
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"
|
||||||
|
id="path844"
|
||||||
|
sodipodi:cx="252"
|
||||||
|
sodipodi:cy="552.36218"
|
||||||
|
sodipodi:rx="12"
|
||||||
|
sodipodi:ry="12"
|
||||||
|
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"
|
||||||
|
transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g862">
|
||||||
|
<path
|
||||||
|
transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)"
|
||||||
|
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"
|
||||||
|
sodipodi:ry="12"
|
||||||
|
sodipodi:rx="12"
|
||||||
|
sodipodi:cy="552.36218"
|
||||||
|
sodipodi:cx="252"
|
||||||
|
id="path4398"
|
||||||
|
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"
|
||||||
|
sodipodi:type="arc" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
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"
|
||||||
|
id="path4400"
|
||||||
|
sodipodi:cx="252"
|
||||||
|
sodipodi:cy="552.36218"
|
||||||
|
sodipodi:rx="12"
|
||||||
|
sodipodi:ry="12"
|
||||||
|
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"
|
||||||
|
transform="matrix(1.25,0,0,1.25,33,-100.45273)" />
|
||||||
|
<path
|
||||||
|
transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)"
|
||||||
|
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"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
inkscape:rounded="0.1"
|
||||||
|
inkscape:flatsided="false"
|
||||||
|
sodipodi:arg2="1.6755161"
|
||||||
|
sodipodi:arg1="1.0471976"
|
||||||
|
sodipodi:r2="4.3458705"
|
||||||
|
sodipodi:r1="7.2431178"
|
||||||
|
sodipodi:cy="589.50385"
|
||||||
|
sodipodi:cx="666.19574"
|
||||||
|
sodipodi:sides="5"
|
||||||
|
id="path4459"
|
||||||
|
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"
|
||||||
|
sodipodi:type="star" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 34 KiB |
@ -33,14 +33,12 @@ TO_PATCH = [
|
|||||||
'is_leader',
|
'is_leader',
|
||||||
'is_relation_made',
|
'is_relation_made',
|
||||||
'log',
|
'log',
|
||||||
'network_manager',
|
|
||||||
'neutron_plugin_attribute',
|
'neutron_plugin_attribute',
|
||||||
'open_port',
|
'open_port',
|
||||||
'openstack_upgrade_available',
|
'openstack_upgrade_available',
|
||||||
'relation_get',
|
'relation_get',
|
||||||
'relation_ids',
|
'relation_ids',
|
||||||
'relation_set',
|
'relation_set',
|
||||||
'related_units',
|
|
||||||
'unit_get',
|
'unit_get',
|
||||||
]
|
]
|
||||||
NEUTRON_CONF_DIR = "/etc/neutron"
|
NEUTRON_CONF_DIR = "/etc/neutron"
|
||||||
@ -164,7 +162,6 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self.assertFalse(self.CONFIGS.write_all.called)
|
self.assertFalse(self.CONFIGS.write_all.called)
|
||||||
|
|
||||||
def test_pgsql_db_changed(self):
|
def test_pgsql_db_changed(self):
|
||||||
self.network_manager.return_value = 'neutron'
|
|
||||||
self._call_hook('pgsql-db-relation-changed')
|
self._call_hook('pgsql-db-relation-changed')
|
||||||
self.assertTrue(self.CONFIGS.write.called)
|
self.assertTrue(self.CONFIGS.write.called)
|
||||||
|
|
||||||
@ -203,26 +200,19 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self.assertTrue(self.CONFIGS.write.called_with(NEUTRON_CONF))
|
self.assertTrue(self.CONFIGS.write.called_with(NEUTRON_CONF))
|
||||||
self.assertTrue(_api_rel_joined.called)
|
self.assertTrue(_api_rel_joined.called)
|
||||||
|
|
||||||
@patch.object(hooks, '_get_keystone_info')
|
def test_neutron_api_relation_no_id_joined(self):
|
||||||
def test_neutron_api_relation_no_id_joined(self, _get_ks_info):
|
|
||||||
_get_ks_info.return_value = None
|
|
||||||
manager = 'neutron'
|
|
||||||
host = 'http://127.0.0.1'
|
host = 'http://127.0.0.1'
|
||||||
port = 1234
|
port = 1234
|
||||||
_id_rel_joined = self.patch('identity_joined')
|
_id_rel_joined = self.patch('identity_joined')
|
||||||
self.relation_ids.side_effect = self._fake_relids
|
self.relation_ids.side_effect = self._fake_relids
|
||||||
self.network_manager.return_value = manager
|
|
||||||
self.canonical_url.return_value = host
|
self.canonical_url.return_value = host
|
||||||
self.api_port.return_value = port
|
self.api_port.return_value = port
|
||||||
self.is_relation_made = False
|
self.is_relation_made = False
|
||||||
neutron_url = '%s:%s' % (host, port)
|
neutron_url = '%s:%s' % (host, port)
|
||||||
_relation_data = {
|
_relation_data = {
|
||||||
'network_manager': manager,
|
'neutron-plugin': 'ovs',
|
||||||
'default_floating_pool': 'ext_net',
|
'neutron-url': neutron_url,
|
||||||
'external_network': 'ext_net',
|
'neutron-security-groups': 'no',
|
||||||
manager + '_plugin': 'ovs',
|
|
||||||
manager + '_url': neutron_url,
|
|
||||||
'neutron_security_groups': 'no',
|
|
||||||
}
|
}
|
||||||
self._call_hook('neutron-api-relation-joined')
|
self._call_hook('neutron-api-relation-joined')
|
||||||
self.relation_set.assert_called_with(
|
self.relation_set.assert_called_with(
|
||||||
@ -232,40 +222,23 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self.assertTrue(_id_rel_joined.called)
|
self.assertTrue(_id_rel_joined.called)
|
||||||
self.test_config.set('neutron-security-groups', True)
|
self.test_config.set('neutron-security-groups', True)
|
||||||
self._call_hook('neutron-api-relation-joined')
|
self._call_hook('neutron-api-relation-joined')
|
||||||
_relation_data['neutron_security_groups'] = 'yes'
|
_relation_data['neutron-security-groups'] = 'yes'
|
||||||
self.relation_set.assert_called_with(
|
self.relation_set.assert_called_with(
|
||||||
relation_id=None,
|
relation_id=None,
|
||||||
**_relation_data
|
**_relation_data
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch.object(hooks, '_get_keystone_info')
|
def test_neutron_api_relation_joined(self):
|
||||||
def test_neutron_api_relation_joined(self, _get_ks_info):
|
|
||||||
_ks_info = {
|
|
||||||
'service_tenant': 'bob',
|
|
||||||
'service_username': 'bob',
|
|
||||||
'service_password': 'bob',
|
|
||||||
'auth_url': 'http://127.0.0.2',
|
|
||||||
}
|
|
||||||
_get_ks_info.return_value = _ks_info
|
|
||||||
manager = 'neutron'
|
|
||||||
host = 'http://127.0.0.1'
|
host = 'http://127.0.0.1'
|
||||||
port = 1234
|
port = 1234
|
||||||
self.network_manager.return_value = manager
|
|
||||||
self.canonical_url.return_value = host
|
self.canonical_url.return_value = host
|
||||||
self.api_port.return_value = port
|
self.api_port.return_value = port
|
||||||
self.is_relation_made = True
|
self.is_relation_made = True
|
||||||
neutron_url = '%s:%s' % (host, port)
|
neutron_url = '%s:%s' % (host, port)
|
||||||
_relation_data = {
|
_relation_data = {
|
||||||
'network_manager': manager,
|
'neutron-plugin': 'ovs',
|
||||||
'default_floating_pool': 'ext_net',
|
'neutron-url': neutron_url,
|
||||||
'external_network': 'ext_net',
|
'neutron-security-groups': 'no',
|
||||||
manager + '_plugin': 'ovs',
|
|
||||||
manager + '_url': neutron_url,
|
|
||||||
'neutron_security_groups': 'no',
|
|
||||||
manager + '_admin_tenant_name': _ks_info['service_tenant'],
|
|
||||||
manager + '_admin_username': _ks_info['service_username'],
|
|
||||||
manager + '_admin_password': _ks_info['service_password'],
|
|
||||||
manager + '_admin_auth_url': _ks_info['auth_url'],
|
|
||||||
}
|
}
|
||||||
self._call_hook('neutron-api-relation-joined')
|
self._call_hook('neutron-api-relation-joined')
|
||||||
self.relation_set.assert_called_with(
|
self.relation_set.assert_called_with(
|
||||||
@ -279,7 +252,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
|
|
||||||
def test_neutron_plugin_api_relation_joined(self):
|
def test_neutron_plugin_api_relation_joined(self):
|
||||||
_relation_data = {
|
_relation_data = {
|
||||||
'neutron_security_groups': False,
|
'neutron-security-groups': False,
|
||||||
}
|
}
|
||||||
self._call_hook('neutron-plugin-api-relation-joined')
|
self._call_hook('neutron-plugin-api-relation-joined')
|
||||||
self.relation_set.assert_called_with(
|
self.relation_set.assert_called_with(
|
||||||
@ -358,29 +331,3 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self._call_hook('ha-relation-changed')
|
self._call_hook('ha-relation-changed')
|
||||||
self.assertFalse(_n_api_rel_joined.called)
|
self.assertFalse(_n_api_rel_joined.called)
|
||||||
self.assertFalse(_id_rel_joined.called)
|
self.assertFalse(_id_rel_joined.called)
|
||||||
|
|
||||||
def test_get_keystone_info(self):
|
|
||||||
self.relation_ids.return_value = 'relid1'
|
|
||||||
self.related_units.return_value = 'unit1'
|
|
||||||
_ks_info = {
|
|
||||||
'service_protocol': 'https',
|
|
||||||
'service_host': '127.0.0.3',
|
|
||||||
'service_port': '4567',
|
|
||||||
'service_tenant': 'region12',
|
|
||||||
'service_username': 'bob',
|
|
||||||
'service_password': 'pass',
|
|
||||||
}
|
|
||||||
self.test_relation.set(_ks_info)
|
|
||||||
auth_url = "%s://%s:%s/v2.0" % (_ks_info['service_protocol'],
|
|
||||||
_ks_info['service_host'],
|
|
||||||
_ks_info['service_port'])
|
|
||||||
expect_ks_info = {
|
|
||||||
'service_protocol': _ks_info['service_protocol'],
|
|
||||||
'service_host': _ks_info['service_host'],
|
|
||||||
'service_port': _ks_info['service_port'],
|
|
||||||
'service_tenant': _ks_info['service_tenant'],
|
|
||||||
'service_username': _ks_info['service_username'],
|
|
||||||
'service_password': _ks_info['service_password'],
|
|
||||||
'auth_url': auth_url,
|
|
||||||
}
|
|
||||||
self.assertEqual(hooks._get_keystone_info(), expect_ks_info)
|
|
||||||
|
@ -25,6 +25,7 @@ TO_PATCH = [
|
|||||||
'get_os_codename_install_source',
|
'get_os_codename_install_source',
|
||||||
'log',
|
'log',
|
||||||
'neutron_plugin_attribute',
|
'neutron_plugin_attribute',
|
||||||
|
'os_release',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -50,6 +51,7 @@ class TestNeutronAPIUtils(CharmTestCase):
|
|||||||
self.config.side_effect = self.test_config.get
|
self.config.side_effect = self.test_config.get
|
||||||
self.test_config.set('region', 'region101')
|
self.test_config.set('region', 'region101')
|
||||||
self.neutron_plugin_attribute.side_effect = _mock_npa
|
self.neutron_plugin_attribute.side_effect = _mock_npa
|
||||||
|
self.os_release.side_effect = 'trusty'
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
# Reset cached cache
|
# Reset cached cache
|
||||||
|
Loading…
Reference in New Issue
Block a user