summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Beisner <ryan.beisner@canonical.com>2018-11-01 20:43:43 -0500
committerRyan Beisner <ryan.beisner@canonical.com>2019-02-27 10:29:56 +0100
commit2af6f86f1b708d3679310caf50f4edc86924482e (patch)
treeea080ce78c20541c9eced9537d4285daa5633887
parentd13410cd3b9a56b035061f3ea52e0698e6be9ebb (diff)
downloadcharm-murano-2af6f86f1b708d3679310caf50f4edc86924482e.zip
charm-murano-2af6f86f1b708d3679310caf50f4edc86924482e.tar.gz
charm-murano-2af6f86f1b708d3679310caf50f4edc86924482e.tar.bz2
Retire project
Leave README around for those that follow. http://lists.openstack.org/pipermail/openstack-discuss/2019-February/003186.html http://lists.openstack.org/pipermail/openstack-discuss/2018-November/000057.html Change-Id: I26328db6e404147e99415df4c0ebf863c1ad5661
-rw-r--r--.gitignore7
-rw-r--r--.testr.conf8
-rw-r--r--.zuul.yaml3
-rw-r--r--LICENSE202
-rw-r--r--README.md35
-rw-r--r--copyright16
-rw-r--r--icon.svg692
-rw-r--r--requirements.txt6
-rw-r--r--src/README.md22
-rw-r--r--src/config.yaml47
-rw-r--r--src/copyright16
-rw-r--r--src/icon.svg450
-rw-r--r--src/layer.yaml5
-rw-r--r--src/lib/charm/openstack/__init__.py0
-rw-r--r--src/lib/charm/openstack/murano.py76
-rw-r--r--src/metadata.yaml26
-rw-r--r--src/reactive/murano_handlers.py61
-rw-r--r--src/templates/mitaka/.keep0
-rw-r--r--src/templates/mitaka/murano.conf45
-rw-r--r--src/templates/parts/rabbitmq10
-rw-r--r--src/test-requirements.txt16
-rw-r--r--src/tests/README.md9
-rw-r--r--src/tests/basic_deployment.py367
-rwxr-xr-xsrc/tests/gate-basic-xenial-mitaka23
-rw-r--r--src/tests/tests.yaml17
-rw-r--r--src/tox.ini53
-rw-r--r--test-requirements.txt6
-rw-r--r--tox.ini47
-rw-r--r--unit_tests/__init__.py22
-rw-r--r--unit_tests/test_lib_charm_openstack_murano.py78
30 files changed, 6 insertions, 2359 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index a0b2628..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-build
-layers
-.tox
-interfaces
-.testrepository
-*__pycache__*
-*.pyc
diff --git a/.testr.conf b/.testr.conf
deleted file mode 100644
index 801646b..0000000
--- a/.testr.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./unit_tests $LISTOPT $IDOPTION
-
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff --git a/.zuul.yaml b/.zuul.yaml
index 5e75d94..e7c200a 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,4 +1,3 @@
- project:
templates:
- - python-charm-jobs
- - openstack-python35-jobs
+ - noop-jobs
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 7a4a3ea..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. \ No newline at end of file
diff --git a/README.md b/README.md
index 43cca73..b72ee4f 100644
--- a/README.md
+++ b/README.md
@@ -1,31 +1,6 @@
-# Overview
+This project is no longer maintained.
-Murano charm provides a catalog of applications deployable on Openstack cloud.
-
-# Usage
-
-Murano relies on services from the mysql/percona, rabbitmq-server and keystone charms:
-
- $ juju deploy murano
- $ juju deploy keystone
- $ juju deploy mysql
- $ juju deploy rabbitmq-server
- $ juju add-relation murano rabbitmq-server
- $ juju add-relation murano mysql
- $ juju add-relation murano keystone
-
-# Build
- $ git clone https://github.com/viswesn/charm-murano
- $ cd charm-murano
- $ charm build -s xenial -o build src
-
-# Config
- $ juju config murano ext-network=my_ext_net
- $ juju config murano router=my_router
- $ juju config murano default_dns=10.166.62.1
-
-# Bugs
-
-Please report bugs on [Launchpad](https://bugs.launchpad.net/charm-murano/+filebug).
-
-For general questions please refer to the OpenStack [Charm Guide](https://github.com/openstack/charm-guide).
+The contents of this repository are still available in the Git
+source code management system. To see the contents of this
+repository before it reached its end of life, please check out the
+previous commit with "git checkout HEAD^1".
diff --git a/copyright b/copyright
deleted file mode 100644
index 6f8a25f..0000000
--- a/copyright
+++ /dev/null
@@ -1,16 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0
-
-Files: *
-Copyright: 2015, Canonical Ltd.
-License: Apache-2.0
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License. \ No newline at end of file
diff --git a/icon.svg b/icon.svg
deleted file mode 100644
index b481490..0000000
--- a/icon.svg
+++ /dev/null
@@ -1,692 +0,0 @@
-<?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-nova.svg">
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="4.0745361"
- inkscape:cx="52.297655"
- inkscape:cy="14.695244"
- inkscape:document-units="px"
- inkscape:current-layer="g4336"
- 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="25.60516,42.070975"
- orientation="-0.70710678,-0.70710678" />
- <sodipodi:guide
- inkscape:label=""
- id="guide4242"
- position="51.81985,44.36226"
- 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="18.34962,75.472017"
- 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="53.455078,57.640625"
- id="guide4492"
- inkscape:label="" />
- <sodipodi:guide
- orientation="-0.70710678,-0.70710678"
- position="78.02001,45.018716"
- id="guide4496"
- inkscape:label="" />
- <sodipodi:guide
- orientation="-0.70710678,-0.70710678"
- position="53.445312,18.244773"
- id="guide4515"
- 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>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4389"
- id="linearGradient4484"
- x1="-220.40578"
- y1="690.3606"
- x2="-210.33594"
- y2="680.29077"
- gradientUnits="userSpaceOnUse" />
- </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)" />
- <path
- style="color:#000000;fill:#c42e24;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.54492,673.65013 -3.27677,-3.27676 -1.60901,5.23664 z"
- id="path4494"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccc" />
- <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.488281 71.738281 L 46.189453 70.625 L 42.914062 70.910156 L 42.916016 57.78125 L 46.193359 57.494141 L 46.189453 70.625 L 67.28125 68.777344 C 67.744386 68.736546 68.184049 68.603285 68.587891 68.404297 L 50.166016 49.982422 C 48.699776 51.494984 46.729983 52.522521 44.556641 52.712891 C 40.033111 53.109121 36.366627 49.757459 36.367188 45.224609 C 36.367486 42.805408 37.418405 40.54481 39.080078 38.896484 L 20.697266 20.515625 z M 31.453125 44.013672 L 31.453125 47.296875 L 18.353516 48.443359 L 18.353516 45.162109 L 31.453125 44.013672 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 39.080078 38.896484 C 40.532076 37.45615 42.448898 36.481868 44.558594 36.296875 C 44.841364 36.271675 45.121104 36.261625 45.396484 36.265625 C 49.527224 36.323815 52.748977 39.536849 52.748047 43.787109 C 52.747491 46.142495 51.751712 48.346628 50.166016 49.982422 L 68.587891 68.404297 C 69.859183 67.777881 70.75673 66.462035 70.759766 65.015625 L 70.769531 43.849609 L 57.664062 45 L 57.664062 41.714844 L 70.771484 40.566406 L 70.775391 31.386719 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 46.201172 18.09375 L 46.199219 31.228516 L 42.921875 31.515625 L 42.923828 18.378906 L 46.201172 18.09375 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:url(#linearGradient4484);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 -215.26953,678.69115 c 0.006,0.1288 0.0176,0.25589 0.0176,0.38672 -5.6e-4,2.35538 -0.99634,4.55952 -2.58203,6.19531 -1.46624,1.51256 -3.43604,2.5401 -5.60938,2.73047 -0.30925,0.0271 -0.61372,0.0325 -0.91406,0.0254 -0.72658,5.04296 -2.26463,7.8639 8.16992,7.10545 4.52375,-0.39625 8.19041,-4.39245 8.19141,-8.92578 9.2e-4,-4.2231 -3.18073,-7.41978 -7.27344,-7.51758 z"
- id="path4472"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccscccscc" />
- <path
- style="color:#000000;fill:#c42e24;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m -225.07617,653.66967 7.25586,7.13823 -3.9801,3.23422 -6.56873,-2.32363 -6.63708,-7.18094 z"
- id="path4488"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccc" />
- <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 -189.97071,686.28133 -3.02803,-3.02804 -12.89102,-0.94799 0.81148,9.35378 z"
- id="path4498"
- inkscape:connector-curvature="0"
- xml:space="preserve" /> <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.55469,713.04599 -3.27486,-3.27486 -3.97863,-11.80722 11.38992,-0.38581 z"
- id="path4517"
- inkscape:connector-curvature="0" />
- <path
- style="fill:url(#linearGradient4319);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
- d="M 74.580078 23.386719 L 53.457031 25.224609 L 53.455078 38.359375 L 50.177734 38.646484 L 50.179688 25.509766 L 29.082031 27.345703 C 27.168951 27.515473 25.609469 29.193966 25.605469 31.103516 L 25.609375 52.292969 L 38.708984 51.144531 L 38.708984 54.427734 L 25.609375 55.574219 L 25.613281 76.734375 C 25.605281 78.643715 27.159736 80.061651 29.072266 79.894531 L 74.541016 75.910156 C 76.462106 75.740926 78.015531 74.054318 78.019531 72.148438 L 78.029297 50.980469 L 64.919922 52.130859 L 64.919922 48.845703 L 78.029297 47.697266 C 78.041297 15.869576 78.040397 26.105479 78.029297 50.980469 L 78.041016 26.554688 C 78.044016 24.640387 76.496418 23.231889 74.580078 23.386719 z M 52.652344 43.396484 C 56.783084 43.454674 60.004836 46.667709 60.003906 50.917969 C 60.002836 55.451299 56.33625 59.4475 51.8125 59.84375 C 47.28897 60.23998 43.622487 56.888319 43.623047 52.355469 C 43.623607 47.822329 47.290413 43.824434 51.814453 43.427734 C 52.097223 43.402534 52.376964 43.392484 52.652344 43.396484 z M 53.449219 64.625 L 53.445312 77.755859 L 50.169922 78.041016 L 50.171875 64.912109 L 53.449219 64.625 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.64648,680.45287 7.25586,7.13086 -0.002,-10.59473 -7.25995,-7.38148 z"
- id="path4486"
- inkscape:connector-curvature="0" />
- <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 -221.79883,653.38451 7.25586,7.13086 -0.002,13.13476 -3.27672,-3.27676 10e-4,-9.57284 -3.97904,-3.90716 z"
- id="path4490"
- inkscape:connector-curvature="0"
- xml:space="preserve"
- sodipodi:nodetypes="ccccccc" /> <path
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline;opacity:0.3"
- d="M 74.580078 23.386719 L 53.457031 25.224609 L 53.457031 25.423828 L 74.580078 23.585938 C 76.496418 23.431107 78.044016 24.839606 78.041016 26.753906 L 78.041016 26.554688 C 78.044016 24.640387 76.496418 23.231889 74.580078 23.386719 z M 50.179688 25.509766 L 29.082031 27.345703 C 27.168951 27.515473 25.609469 29.193966 25.605469 31.103516 L 25.605469 31.302734 C 25.609469 29.393184 27.168951 27.714692 29.082031 27.544922 L 50.179688 25.708984 L 50.179688 25.509766 z M 53.455078 38.359375 L 50.177734 38.646484 L 50.177734 38.845703 L 53.455078 38.558594 L 53.455078 38.359375 z M 78.029297 50.980469 L 64.919922 52.130859 L 64.919922 52.330078 L 78.029297 51.179688 C 78.02997 49.670319 78.028699 52.375913 78.029297 50.980469 z M 59.998047 51.013672 C 59.945496 55.507129 56.304164 59.450311 51.8125 59.84375 C 47.322671 60.237028 43.682429 56.936547 43.628906 52.455078 C 43.628502 52.488557 43.623051 52.521149 43.623047 52.554688 C 43.622487 57.087538 47.28897 60.439199 51.8125 60.042969 C 56.33625 59.646719 60.002906 55.650517 60.003906 51.117188 C 60.003914 51.082063 59.998478 51.048654 59.998047 51.013672 z M 38.708984 54.427734 L 25.609375 55.574219 L 25.609375 55.773438 L 38.708984 54.626953 L 38.708984 54.427734 z M 53.445312 77.755859 L 50.169922 78.041016 L 50.169922 78.044922 L 53.445312 77.757812 L 53.445312 77.755859 z "
- transform="translate(-268,635.29076)"
- id="path4175" />
- </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>
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 604b8c1..0000000
--- a/requirements.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# The order of packages is significant, because pip processes them in the order
-# of appearance. Changing the order has an impact on the overall integration
-# process, which may cause wedges in the gate later.
-simplejson
-charm-tools
-flake8
diff --git a/src/README.md b/src/README.md
deleted file mode 100644
index b30ff03..0000000
--- a/src/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Overview
-
-Murano charm provides a catalog of applications deployable on Openstack cloud.
-
-# Usage
-
-Murano relies on services from the mysql/percona, rabbitmq-server and keystone charms:
-
- juju deploy murano
- juju deploy keystone
- juju deploy mysql
- juju deploy rabbitmq-server
- juju add-relation murano rabbitmq-server
- juju add-relation murano mysql
- juju add-relation murano keystone
-
-
-# Bugs
-
-Please report bugs on [Launchpad](https://bugs.launchpad.net/charm-murano/+filebug).
-
-For general questions please refer to the OpenStack [Charm Guide](https://github.com/openstack/charm-guide).
diff --git a/src/config.yaml b/src/config.yaml
deleted file mode 100644
index 22d85fc..0000000
--- a/src/config.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-options:
- rabbit-user:
- default: murano
- type: string
- description: Username used to access rabbitmq queue.
- rabbit-vhost:
- default: openstack
- type: string
- description: RabbitMQ virtual host to request access on rabbitmq-server.
- database-user:
- default: murano
- type: string
- description: Database username.
- database:
- default: murano
- type: string
- description: Murano database name.
- debug:
- default: False
- type: boolean
- description: Enable debug logging
- verbose:
- default: False
- type: boolean
- description: Enable verbose logging
- region:
- default: RegionOne
- type: string
- description: OpenStack Region
- ext-network:
- default: ext_net
- type: string
- description: |
- The external network to connect for downloading the application packages
- on launch of VMs spawned by Murano.
- router:
- default: default_router
- type: string
- description: |
- The default router is to bridge the external network and isolated network
- created by Murano for each environment.
- default_dns:
- default: 8.8.8.8
- type: string
- description: |
- The default DNS used by the VMs spawned by Murano to download the
- application packages on poweron.
diff --git a/src/copyright b/src/copyright
deleted file mode 100644
index 6f8a25f..0000000
--- a/src/copyright
+++ /dev/null
@@ -1,16 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0
-
-Files: *
-Copyright: 2015, Canonical Ltd.
-License: Apache-2.0
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License. \ No newline at end of file
diff --git a/src/icon.svg b/src/icon.svg
deleted file mode 100644
index c90ecfc..0000000
--- a/src/icon.svg
+++ /dev/null
@@ -1,450 +0,0 @@
-<?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.91+devel r"
- sodipodi:docname="openvswitch01.svg"
- viewBox="0 0 96 96">
- <defs
- id="defs6519">
- <linearGradient
- id="Background">
- <stop
- id="stop4178"
- offset="0"
- style="stop-color:#22779e;stop-opacity:1" />
- <stop
- id="stop4180"
- offset="1"
- style="stop-color:#2991c0;stop-opacity:1" />
- </linearGradient>
- <filter
- style="color-interpolation-filters:sRGB"
- inkscape:label="Inner Shadow"
- id="filter1121">
- <feFlood
- flood-opacity="0.59999999999999998"
- flood-color="rgb(0,0,0)"
- result="flood"
- id="feFlood1123" />
- <feComposite
- in="flood"
- in2="SourceGraphic"
- operator="out"
- result="composite1"
- id="feComposite1125" />
- <feGaussianBlur
- in="composite1"
- stdDeviation="1"
- result="blur"
- id="feGaussianBlur1127" />
- <feOffset
- dx="0"
- dy="2"
- result="offset"
- id="feOffset1129" />
- <feComposite
- in="offset"
- in2="SourceGraphic"
- operator="atop"
- result="composite2"
- id="feComposite1131" />
- </filter>
- <filter
- style="color-interpolation-filters:sRGB"
- inkscape:label="Drop Shadow"
- id="filter950">
- <feFlood
- flood-opacity="0.25"
- flood-color="rgb(0,0,0)"
- result="flood"
- id="feFlood952" />
- <feComposite
- in="flood"
- in2="SourceGraphic"
- operator="in"
- result="composite1"
- id="feComposite954" />
- <feGaussianBlur
- in="composite1"
- stdDeviation="1"
- result="blur"
- id="feGaussianBlur956" />
- <feOffset
- dx="0"
- dy="1"
- result="offset"
- id="feOffset958" />
- <feComposite
- in="SourceGraphic"
- in2="offset"
- operator="over"
- result="composite2"
- id="feComposite960" />
- </filter>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath873">
- <g
- transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
- id="g875"
- inkscape:label="Layer 1"
- style="display:inline;fill:#ff00ff;fill-opacity:1;stroke:none">
- <path
- style="display:inline;fill:#ff00ff;fill-opacity:1;stroke:none"
- d="M 46.702703,898.22775 H 97.297297 C 138.16216,898.22775 144,904.06497 144,944.92583 v 50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 H 46.702703 C 5.8378378,1042.3622 0,1036.525 0,995.66429 v -50.73846 c 0,-40.86086 5.8378378,-46.69808 46.702703,-46.69808 z"
- id="path877"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sssssssss" />
- </g>
- </clipPath>
- <filter
- inkscape:collect="always"
- id="filter891"
- inkscape:label="Badge Shadow">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.71999962"
- id="feGaussianBlur893" />
- </filter>
- <style
- id="style867"
- type="text/css"><![CDATA[
- .fil0 {fill:#1F1A17}
- ]]></style>
- <clipPath
- id="clipPath16">
- <path
- id="path18"
- d="M -9,-9 H 605 V 222 H -9 Z"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="clipPath116">
- <path
- id="path118"
- 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"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="clipPath128">
- <path
- id="path130"
- 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"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="linearGradient3850"
- inkscape:collect="always">
- <stop
- id="stop3852"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop3854"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3095">
- <path
- d="M 976.648,389.551 H 134.246 V 1229.55 H 976.648 V 389.551"
- id="path3097"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3195">
- <path
- 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"
- id="path3197"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3235">
- <path
- 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"
- id="path3237"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="clipPath4591"
- clipPathUnits="userSpaceOnUse">
- <path
- inkscape:connector-curvature="0"
- 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"
- style="fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path4593" />
- </clipPath>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-1.4333926,-2.2742838,1.1731823,-0.73941125,-174.08025,98.374394)"
- r="20.40658"
- fy="93.399292"
- fx="-26.508606"
- cy="93.399292"
- cx="-26.508606"
- id="radialGradient3856"
- xlink:href="#linearGradient3850"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="translate(-318.48033,212.32022)"
- gradientUnits="userSpaceOnUse"
- y2="993.19702"
- x2="-51.879555"
- y1="593.11615"
- x1="348.20132"
- id="linearGradient3895"
- xlink:href="#linearGradient3850"
- inkscape:collect="always" />
- <clipPath
- id="clipPath3906"
- clipPathUnits="userSpaceOnUse">
- <rect
- transform="scale(1,-1)"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.8;fill:#ff00ff;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
- id="rect3908"
- width="1019.1371"
- height="1019.1371"
- x="357.9816"
- y="-1725.8152" />
- </clipPath>
- <linearGradient
- gradientTransform="translate(0,-1.111e-5)"
- inkscape:collect="always"
- xlink:href="#linearGradient4439-7"
- id="linearGradient908-9"
- x1="-220"
- y1="731.29077"
- x2="-220"
- y2="635.29077"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient4439-7"
- inkscape:collect="always">
- <stop
- id="stop4441-6"
- offset="0"
- style="stop-color:#f2f2f2;stop-opacity:1" />
- <stop
- id="stop4443-2"
- offset="1"
- style="stop-color:#f9f9f9;stop-opacity:1" />
- </linearGradient>
- <filter
- style="color-interpolation-filters:sRGB"
- inkscape:label="Inner Shadow"
- id="filter1121-2">
- <feFlood
- flood-opacity="0.59999999999999998"
- flood-color="rgb(0,0,0)"
- result="flood"
- id="feFlood1123-6" />
- <feComposite
- in="flood"
- in2="SourceGraphic"
- operator="out"
- result="composite1"
- id="feComposite1125-4" />
- <feGaussianBlur
- in="composite1"
- stdDeviation="1"
- result="blur"
- id="feGaussianBlur1127-0" />
- <feOffset
- dx="0"
- dy="2"
- result="offset"
- id="feOffset1129-2" />
- <feComposite
- in="offset"
- in2="SourceGraphic"
- operator="atop"
- result="composite2"
- id="feComposite1131-1" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="7.9580784"
- inkscape:cx="28.893746"
- inkscape:cy="26.083721"
- inkscape:document-units="px"
- inkscape:current-layer="layer3"
- 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="false"
- inkscape:snap-bbox="true"
- 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-page="true">
- <inkscape:grid
- type="xygrid"
- id="grid821" />
- <sodipodi:guide
- orientation="1,0"
- position="16,48"
- id="guide823" />
- <sodipodi:guide
- orientation="0,1"
- position="64,80"
- id="guide825" />
- <sodipodi:guide
- orientation="1,0"
- position="80,40"
- id="guide827" />
- <sodipodi:guide
- orientation="0,1"
- position="64,16"
- id="guide829" />
- </sodipodi:namedview>
- <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
- inkscape:label="BACKGROUND"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(268,-635.29076)"
- style="display:inline"
- sodipodi:insensitive="true">
- <path
- style="display:inline;fill:url(#linearGradient908-9);fill-opacity:1;stroke:none;filter:url(#filter1121-2)"
- d="m -268,700.15562 v -33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 h 33.79408 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 v 33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 h -33.79408 c -27.21517,0 -31.10302,-3.89189 -31.10302,-31.13514 z"
- id="path6455-8"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sssssssss" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="FOLDS"
- sodipodi:insensitive="true" />
- <g
- inkscape:groupmode="layer"
- id="layer3"
- inkscape:label="PLACE YOUR PICTOGRAM HERE"
- style="display:inline">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#201f1f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 48.000977,13.601563 A 34.399006,34.399006 0 0 0 13.600586,48 34.399006,34.399006 0 0 0 48.000977,82.398437 34.399006,34.399006 0 0 0 82.399414,48 34.399006,34.399006 0 0 0 48.000977,13.601563 Z m 0,11.623046 A 22.775597,22.775597 0 0 1 70.776368,48 22.775597,22.775597 0 0 1 48.000977,70.77539 22.775597,22.775597 0 0 1 25.225586,48 22.775597,22.775597 0 0 1 48.000977,25.224609 Z"
- id="path4319"
- inkscape:connector-curvature="0" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#4f8a49;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="m 57.626953,34.075195 v 5.279297 H 40.791016 v 6.835938 h 16.835937 v 5.279297 L 68.398437,42.772461 Z M 38.373047,44.530274 27.601562,53.227539 38.373047,61.924805 V 56.645508 H 55.208984 V 49.809571 H 38.373047 Z"
- id="rect4326"
- inkscape:connector-curvature="0" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer2"
- inkscape:label="BADGE"
- style="display:none"
- sodipodi:insensitive="true">
- <g
- style="display:inline"
- transform="translate(-340.00001,-581)"
- id="g4394"
- clip-path="none">
- <g
- id="g855">
- <g
- inkscape:groupmode="maskhelper"
- id="g870"
- clip-path="url(#clipPath873)"
- style="opacity:0.6;filter:url(#filter891)">
- <circle
- transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
- id="path844"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
- cx="252"
- cy="552.36218"
- r="12" />
- </g>
- <g
- id="g862">
- <circle
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
- id="path4398"
- transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)"
- cx="252"
- cy="552.36218"
- r="12" />
- <circle
- transform="matrix(1.25,0,0,1.25,33,-100.45273)"
- id="path4400"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
- cx="252"
- cy="552.36218"
- r="12" />
- <path
- sodipodi:type="star"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
- id="path4459"
- sodipodi:sides="5"
- sodipodi:cx="666.19574"
- sodipodi:cy="589.50385"
- sodipodi:r1="7.2431178"
- sodipodi:r2="4.3458705"
- sodipodi:arg1="1.0471976"
- sodipodi:arg2="1.6755161"
- inkscape:flatsided="false"
- inkscape:rounded="0.1"
- inkscape:randomized="0"
- 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"
- transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/src/layer.yaml b/src/layer.yaml
deleted file mode 100644
index 7777bf1..0000000
--- a/src/layer.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-includes: ['layer:openstack-api']
-options:
- basic:
- use_venv: True
- include_system_packages: True
diff --git a/src/lib/charm/openstack/__init__.py b/src/lib/charm/openstack/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/src/lib/charm/openstack/__init__.py
+++ /dev/null
diff --git a/src/lib/charm/openstack/murano.py b/src/lib/charm/openstack/murano.py
deleted file mode 100644
index af548b1..0000000
--- a/src/lib/charm/openstack/murano.py
+++ /dev/null
@@ -1,76 +0,0 @@
-import charmhelpers.contrib.openstack.utils as ch_utils
-import charmhelpers.core.hookenv as hookenv
-import charms_openstack.charm
-import charms_openstack.ip as os_ip
-
-
-class MuranoCharm(charms_openstack.charm.HAOpenStackCharm):
- # Internal name of charm
- service_name = name = 'murano'
-
- # First release supported
- release = 'mitaka'
-
- # List of packages to install for this charm
- packages = ['murano-api', 'murano-engine', 'python-pymysql', 'python-apt']
-
- # Init services the charm manages
- services = ['haproxy', 'murano-api', 'murano-engine']
-
- # Ports that need exposing.
- default_service = 'murano-api'
- api_ports = {
- 'murano-api': {
- os_ip.PUBLIC: 8082,
- os_ip.ADMIN: 8082,
- os_ip.INTERNAL: 8082,
- }
- }
-
- service_type = 'murano'
- required_relations = ['shared-db', 'amqp', 'identity-service']
-
- restart_map = {
- '/etc/murano/murano.conf': services,
- }
-
- ha_resources = ['vips', 'haproxy']
-
- sync_cmd = ['murano-db-manage', '--config-file',
- '/etc/murano/murano.conf', 'upgrade']
-
- def __init__(self, release=None, **kwargs):
- """Custom initialiser for class
- If no release is passed, then the charm determines the release from the
- ch_utils.os_release() function.
- """
- if release is None:
- release = ch_utils.os_release('python-keystonemiddleware')
- super().__init__(release=release, **kwargs)
-
- def get_amqp_credentials(self):
- """Provide the default amqp username and vhost as a tuple.
-
- :returns (username, host): two strings to send to the amqp provider.
- """
- return (self.config['rabbit-user'], self.config['rabbit-vhost'])
-
- def get_database_setup(self):
- """Provide the default database credentials as a list of 3-tuples
-
- returns a structure of:
- [
- {'database': <database>,
- 'username': <username>,
- 'hostname': <hostname of this unit>
- 'prefix': <the optional prefix for the database>, },
- ]
-
- :returns [{'database': ...}, ...]: credentials for multiple databases
- """
- return [
- dict(
- database=self.config['database'],
- username=self.config['database-user'],
- hostname=hookenv.unit_private_ip(), )
- ]
diff --git a/src/metadata.yaml b/src/metadata.yaml
deleted file mode 100644
index 5383e78..0000000
--- a/src/metadata.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: murano
-summary: OpenStack Application Catalog Service
-maintainer: OpenStack Charmers <openstack-charmers@list.ubuntu.com>
-description: |
- The Murano Project introduces an application catalog to OpenStack,
- enabling application developers and cloud administrators to publish various
- cloud-ready applications in a browsable categorized catalog
-tags:
-- openstack
-series:
-- xenial
-- trusty
-- yakkety
-requires:
- shared-db:
- interface: mysql-shared
- amqp:
- interface: rabbitmq
- identity-service:
- interface: keystone
- ha:
- interface: hacluster
- scope: container
-peers:
- cluster:
- interface: openstack-ha
diff --git a/src/reactive/murano_handlers.py b/src/reactive/murano_handlers.py
deleted file mode 100644
index fed0d82..0000000
--- a/src/reactive/murano_handlers.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2016 Canonical Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import charms_openstack.charm as charm
-import charms.reactive as reactive
-
-# We need to import charm.openstack.murano to avoid
-# No derived OpenStackCharm() classes registered
-import charm.openstack.murano as murano
-assert murano
-
-charm.use_defaults(
- 'charm.installed',
- 'amqp.connected',
- 'shared-db.connected',
- 'identity-service.connected',
- 'identity-service.available', # enables SSL support
- 'config.changed',
- 'update-status')
-
-COMPLETE_INTERFACE_STATES = [
- 'shared-db.available',
- 'identity-service.available',
- 'amqp.available',
-]
-
-
-@reactive.when(*COMPLETE_INTERFACE_STATES)
-def render_config(*args):
- """Render the configuration for charm when all the interfaces are
- available.
- """
- with charm.provide_charm_instance() as charm_class:
- charm_class.render_with_interfaces(args)
- charm_class.assess_status()
- reactive.set_state('config.rendered')
-
-
-# db_sync checks if sync has been done so rerunning is a noop
-@reactive.when('config.rendered')
-def init_db():
- with charm.provide_charm_instance() as charm_class:
- charm_class.db_sync()
-
-
-@reactive.when('ha.connected')
-def cluster_connected(hacluster):
- with charm.provide_charm_instance() as charm_class:
- charm_class.configure_ha_resources(hacluster)
- charm_class.assess_status()
diff --git a/src/templates/mitaka/.keep b/src/templates/mitaka/.keep
deleted file mode 100644
index e69de29..0000000
--- a/src/templates/mitaka/.keep
+++ /dev/null
diff --git a/src/templates/mitaka/murano.conf b/src/templates/mitaka/murano.conf
deleted file mode 100644
index 08735d7..0000000
--- a/src/templates/mitaka/murano.conf
+++ /dev/null
@@ -1,45 +0,0 @@
-[DEFAULT]
-debug = {{ options.debug }}
-bind_host = {{ options.service_listen_info.murano_api.ip }}
-bind_port = {{ options.service_listen_info.murano_api.port }}
-{% include "parts/rabbitmq" %}
-
-[oslo_messaging_notifications]
-driver=messagingv2
-
-[database]
-connection = {{ shared_db.uri }}
-
-{% include "parts/section-keystone-authtoken" %}
-{% if identity_service.auth_host -%}
-admin_user = {{ identity_service.service_username }}
-admin_password = {{ identity_service.service_password }}
-admin_tenant_name = {{ identity_service.service_tenant }}
-{% endif -%}
-
-[service_credentials]
-{% if identity_service.auth_host -%}
-auth_type = password
-region_name = {{ options.region }}
-auth_url = {{ identity_service.auth_protocol }}://{{ identity_service.auth_host }}:{{ identity_service.auth_port }}
-project_name = {{ identity_service.service_tenant }}
-username = {{ identity_service.service_username }}
-password = {{ identity_service.service_password }}
-{%- endif %}
-
-[rabbitmq]
-host = {{ amqp.host }}
-login = {{ amqp.username }}
-password = {{ amqp.password }}
-virtual_host = {{ amqp.vhost }}
-
-{% include "parts/section-rabbitmq-oslo" %}
-
-[murano]
-url = {{ options.external_endpoints.murano_api.url }}
-
-[networking]
-external_network = {{ options.ext_network }}
-router_name = {{ options.router }}
-create_router = true
-default_dns = {{ options.default_dns }}
diff --git a/src/templates/parts/rabbitmq b/src/templates/parts/rabbitmq
deleted file mode 100644
index 2131143..0000000
--- a/src/templates/parts/rabbitmq
+++ /dev/null
@@ -1,10 +0,0 @@
-{% if amqp.host or amqp.hosts -%}
-{% if amqp.hosts -%}
-rabbit_hosts = {{ amqp.hosts }}
-{% else -%}
-rabbit_host = {{ amqp.host }}
-{% endif -%}
-rabbit_userid = {{ amqp.username }}
-rabbit_password = {{ amqp.password }}
-rabbit_virtual_host = {{ amqp.vhost }}
-{% endif -%}
diff --git a/src/test-requirements.txt b/src/test-requirements.txt
deleted file mode 100644
index 9d66a11..0000000
--- a/src/test-requirements.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-# charm-proof
-charm-tools>=2.0.0
-# amulet deployment helpers
-bzr+lp:charm-helpers#egg=charmhelpers
-# BEGIN: Amulet OpenStack Charm Helper Requirements
-# Liberty client lower constraints
-amulet>=1.14.3,<2.0
-bundletester>=0.6.1,<1.0
-python-keystoneclient>=1.7.1,<2.0
-python-muranoclient>=0.8.3,<=0.9.0
-python-cinderclient>=1.4.0,<2.0
-python-heatclient>=0.8.0,<1.0
-python-novaclient>=2.30.1,<3.0
-pika>=0.10.0,<1.0
-distro-info
-# END: Amulet OpenStack Charm Helper Requirements \ No newline at end of file
diff --git a/src/tests/README.md b/src/tests/README.md
deleted file mode 100644
index a8d9e14..0000000
--- a/src/tests/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Overview
-
-This directory provides Amulet tests to verify basic deployment functionality
-from the perspective of this charm, its requirements and its features, as
-exercised in a subset of the full OpenStack deployment test bundle topology.
-
-For full details on functional testing of OpenStack charms please refer to
-the [functional testing](http://docs.openstack.org/developer/charm-guide/testing.html#functional-testing)
-section of the OpenStack Charm Guide. \ No newline at end of file
diff --git a/src/tests/basic_deployment.py b/src/tests/basic_deployment.py
deleted file mode 100644
index 14c87eb..0000000
--- a/src/tests/basic_deployment.py
+++ /dev/null
@@ -1,367 +0,0 @@
-import subprocess
-import amulet
-import json
-import time
-
-import muranoclient.client as murano_client
-from keystoneclient import session as keystone_session
-from keystoneclient.auth import identity as keystone_identity
-
-from charmhelpers.contrib.openstack.amulet.deployment import (
- OpenStackAmuletDeployment
-)
-
-from charmhelpers.contrib.openstack.amulet.utils import (
- OpenStackAmuletUtils,
- DEBUG,
-)
-
-# Use DEBUG to turn on debug logging
-u = OpenStackAmuletUtils(DEBUG)
-
-
-class MuranoBasicDeployment(OpenStackAmuletDeployment):
- """Amulet tests on a basic murano deployment."""
-
- def __init__(self, series, openstack=None, source=None, stable=False):
- """Deploy the entire test environment."""
- super(MuranoBasicDeployment, self).__init__(series, openstack,
- source, stable)
- self._add_services()
- self._add_relations()
- self._configure_services()
- self._deploy()
-
- u.log.info('Waiting on extended status checks...')
- exclude_services = []
- self._auto_wait_for_status(exclude_services=exclude_services)
-
- self.d.sentry.wait()
- self._initialize_tests()
-
- def _add_services(self):
- """Add services
-
- Add the services that we're testing, where murano is local,
- and the rest of the service are from lp branches that are
- compatible with the local charm (e.g. stable or next).
- """
- this_service = {'name': 'murano'}
- other_services = [
- {'name': 'percona-cluster', 'constraints': {'mem': '3072M'}},
- {'name': 'rabbitmq-server'},
- {'name': 'keystone'},
- ]
- super(MuranoBasicDeployment, self)._add_services(this_service,
- other_services)
-
- def _add_relations(self):
- """Add all of the relations for the services."""
- relations = {
- 'murano:shared-db': 'percona-cluster:shared-db',
- 'murano:amqp': 'rabbitmq-server:amqp',
- 'murano:identity-service': 'keystone:identity-service',
- 'keystone:shared-db': 'percona-cluster:shared-db',
-
- }
- super(MuranoBasicDeployment, self)._add_relations(relations)
-
- def _configure_services(self):
- """Configure all of the services."""
- keystone_config = {
- 'admin-password': 'openstack',
- 'admin-token': 'ubuntutesting'
- }
- pxc_config = {
- 'dataset-size': '25%',
- 'max-connections': 1000,
- 'root-password': 'ChangeMe123',
- 'sst-password': 'ChangeMe123',
- }
- configs = {
- 'keystone': keystone_config,
- 'percona-cluster': pxc_config,
- }
- super(MuranoBasicDeployment, self)._configure_services(configs)
-
- def _get_token(self):
- return self.keystone.service_catalog.catalog['token']['id']
-
- def _initialize_tests(self):
- """Perform final initialization before tests get run."""
- # Access the sentries for inspecting service units
- self.murano_sentry = self.d.sentry['murano'][0]
- self.pxc_sentry = self.d.sentry['percona-cluster'][0]
- self.keystone_sentry = self.d.sentry['keystone'][0]
- self.rabbitmq_sentry = self.d.sentry['rabbitmq-server'][0]
- u.log.debug('openstack release val: {}'.format(
- self._get_openstack_release()))
- u.log.debug('openstack release str: {}'.format(
- self._get_openstack_release_string()))
-
- # Authenticate admin with keystone endpoint
- self.keystone = u.authenticate_keystone_admin(self.keystone_sentry,
- user='admin',
- password='openstack',
- tenant='admin')
-
- # Authenticate admin with murano endpoint
- murano_ep = self.keystone.service_catalog.url_for(
- service_type='application-catalog',
- endpoint_type='publicURL')
-
- keystone_ep = self.keystone.service_catalog.url_for(
- service_type='identity',
- endpoint_type='publicURL')
-
- auth = keystone_identity.V2Token(auth_url=keystone_ep,
- token=self.keystone.auth_token)
- sess = keystone_session.Session(auth=auth)
- self.murano = murano_client.Client(version=1, session=sess,
- endpoint_override=murano_ep)
-
- def _run_action(self, unit_id, action, *args):
- command = ["juju", "action", "do", "--format=json", unit_id, action]
- command.extend(args)
- print("Running command: %s\n" % " ".join(command))
- output = subprocess.check_output(command)
- output_json = output.decode(encoding="UTF-8")
- data = json.loads(output_json)
- action_id = data[u'Action queued with id']
- return action_id
-
- def _wait_on_action(self, action_id):
- command = ["juju", "action", "fetch", "--format=json", action_id]
- while True:
- try:
- output = subprocess.check_output(command)
- except Exception as e:
- print(e)
- return False
- output_json = output.decode(encoding="UTF-8")
- data = json.loads(output_json)
- if data[u"status"] == "completed":
- return True
- elif data[u"status"] == "failed":
- return False
- time.sleep(2)
-
- def test_100_services(self):
- """Verify the expected services are running on the corresponding
- service units."""
- u.log.debug('Checking system services on units...')
-
- murano_svcs = [
- 'murano-api', 'murano-engine'
- ]
-
- service_names = {
- self.murano_sentry: murano_svcs,
- }
-
- ret = u.validate_services_by_name(service_names)
- if ret:
- amulet.raise_status(amulet.FAIL, msg=ret)
-
- u.log.debug('OK')
-
- def test_110_service_catalog(self):
- """Verify that the service catalog endpoint data is valid."""
- u.log.debug('Checking keystone service catalog data...')
- endpoint_check = {
- 'adminURL': u.valid_url,
- 'id': u.not_null,
- 'region': 'RegionOne',
- 'publicURL': u.valid_url,
- 'internalURL': u.valid_url
- }
- expected = {
- 'application-catalog': [endpoint_check],
- }
- actual = self.keystone.service_catalog.get_endpoints()
-
- ret = u.validate_svc_catalog_endpoint_data(expected, actual)
- if ret:
- amulet.raise_status(amulet.FAIL, msg=ret)
-
- u.log.debug('OK')
-
- def test_114_murano_api_endpoint(self):
- """Verify the murano api endpoint data."""
- u.log.debug('Checking murano api endpoint data...')
- endpoints = self.keystone.endpoints.list()
- u.log.debug(endpoints)
- admin_port = internal_port = public_port = '8082'
- expected = {'id': u.not_null,
- 'region': 'RegionOne',
- 'adminurl': u.valid_url,
- 'internalurl': u.valid_url,
- 'publicurl': u.valid_url,
- 'service_id': u.not_null}
-
- ret = u.validate_endpoint_data(endpoints, admin_port, internal_port,
- public_port, expected)
- if ret:
- message = 'murano endpoint: {}'.format(ret)
- amulet.raise_status(amulet.FAIL, msg=message)
-
- u.log.debug('OK')
-
- def test_200_murano_identity_relation(self):
- """Verify the murano to keystone identity-service relation data"""
- u.log.debug('Checking murano to keystone identity-service '
- 'relation data...')
- unit = self.murano_sentry
- relation = ['identity-service', 'keystone:identity-service']
- murano_relation = unit.relation('identity-service',
- 'keystone:identity-service')
- murano_ip = murano_relation['private-address']
- murano_endpoint = "http://%s:8082" % (murano_ip)
-
- expected = {
- 'admin_url': murano_endpoint,
- 'internal_url': murano_endpoint,
- 'private-address': murano_ip,
- 'public_url': murano_endpoint,
- 'region': 'RegionOne',
- 'service': 'murano',
- }
-
- ret = u.validate_relation_data(unit, relation, expected)
- if ret:
- message = u.relation_error('murano identity-service', ret)
- amulet.raise_status(amulet.FAIL, msg=message)
-
- u.log.debug('OK')
-
- def test_201_keystone_murano_identity_relation(self):
- """Verify the keystone to murano identity-service relation data"""
- u.log.debug('Checking keystone:murano identity relation data...')
- unit = self.keystone_sentry
- relation = ['identity-service', 'murano:identity-service']
- id_relation = unit.relation('identity-service',
- 'murano:identity-service')
- id_ip = id_relation['private-address']
- expected = {
- 'admin_token': 'ubuntutesting',
- 'auth_host': id_ip,
- 'auth_port': "35357",
- 'auth_protocol': 'http',
- 'private-address': id_ip,
- 'service_host': id_ip,
- 'service_password': u.not_null,
- 'service_port': "5000",
- 'service_protocol': 'http',
- 'service_tenant': 'services',
- 'service_tenant_id': u.not_null,
- 'service_username': 'murano',
- }
- ret = u.validate_relation_data(unit, relation, expected)
- if ret:
- message = u.relation_error('keystone identity-service', ret)
- amulet.raise_status(amulet.FAIL, msg=message)
-
- u.log.debug('OK')
-
- def test_203_murano_amqp_relation(self):
- """Verify the murano to rabbitmq-server amqp relation data"""
- u.log.debug('Checking murano:rabbitmq amqp relation data...')
- unit = self.murano_sentry
- relation = ['amqp', 'rabbitmq-server:amqp']
- expected = {
- 'username': 'murano',
- 'private-address': u.valid_ip,
- 'vhost': 'openstack'
- }
-
- ret = u.validate_relation_data(unit, relation, expected)
- if ret:
- message = u.relation_error('murano amqp', ret)
- amulet.raise_status(amulet.FAIL, msg=message)
-
- u.log.debug('OK')
-
- def test_204_amqp_murano_relation(self):
- """Verify the rabbitmq-server to murano amqp relation data"""
- u.log.debug('Checking rabbitmq:murano amqp relation data...')
- unit = self.rabbitmq_sentry
- relation = ['amqp', 'murano:amqp']
- expected = {
- 'hostname': u.valid_ip,
- 'private-address': u.valid_ip,
- 'password': u.not_null,
- }
-
- ret = u.validate_relation_data(unit, relation, expected)
- if ret:
- message = u.relation_error('rabbitmq amqp', ret)
- amulet.raise_status(amulet.FAIL, msg=message)
-
- u.log.debug('OK')
-
- u.log.debug('OK')
-
- def test_900_restart_on_config_change(self):
- """Verify that the specified services are restarted when the config
- is changed.
- """
- sentry = self.murano_sentry
- juju_service = 'murano'
-
- # Expected default and alternate values
- set_default = {'debug': 'False'}
- set_alternate = {'debug': 'True'}
-
- # Services which are expected to restart upon config change,
- # and corresponding config files affected by the change
- conf_file = '/etc/murano/murano.conf'
- services = {
- 'murano-api': conf_file,
- 'murano-engine': conf_file,
- }
-
- # Make config change, check for service restarts
- u.log.debug('Making config change on {}...'.format(juju_service))
- mtime = u.get_sentry_time(sentry)
- self.d.configure(juju_service, set_alternate)
-
- sleep_time = 40
- for s, conf_file in services.iteritems():
- u.log.debug("Checking that service restarted: {}".format(s))
- if not u.validate_service_config_changed(sentry, mtime, s,
- conf_file,
- retry_count=4,
- retry_sleep_time=20,
- sleep_time=sleep_time):
- self.d.configure(juju_service, set_default)
- msg = "service {} didn't restart after config change".format(s)
- amulet.raise_status(amulet.FAIL, msg=msg)
- sleep_time = 0
-
- self.d.configure(juju_service, set_default)
- u.log.debug('OK')
-
- def _test_910_pause_and_resume(self):
- """The services can be paused and resumed. """
- u.log.debug('Checking pause and resume actions...')
- unit_name = "murano/0"
- unit = self.d.sentry['murano'][0]
- juju_service = 'murano'
-
- assert u.status_get(unit)[0] == "active"
-
- action_id = self._run_action(unit_name, "pause")
- assert self._wait_on_action(action_id), "Pause action failed."
- assert u.status_get(unit)[0] == "maintenance"
-
- # trigger config-changed to ensure that services are still stopped
- u.log.debug("Making config change on murano ...")
- self.d.configure(juju_service, {'debug': 'True'})
- assert u.status_get(unit)[0] == "maintenance"
- self.d.configure(juju_service, {'debug': 'False'})
- assert u.status_get(unit)[0] == "maintenance"
-
- action_id = self._run_action(unit_name, "resume")
- assert self._wait_on_action(action_id), "Resume action failed."
- assert u.status_get(unit)[0] == "active"
- u.log.debug('OK')
diff --git a/src/tests/gate-basic-xenial-mitaka b/src/tests/gate-basic-xenial-mitaka
deleted file mode 100755
index 7182977..0000000
--- a/src/tests/gate-basic-xenial-mitaka
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2016 Canonical Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Amulet tests on a basic Murano Charm deployment on xenial-mitaka."""
-
-from basic_deployment import MuranoBasicDeployment
-
-if __name__ == '__main__':
- deployment = MuranoBasicDeployment(series='xenial')
- deployment.run_tests()
diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml
deleted file mode 100644
index 8ba143b..0000000
--- a/src/tests/tests.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-# Bootstrap the model if necessary.
-bootstrap: True
-# Re-use bootstrap node instead of destroying/re-bootstrapping.
-reset: True
-# Use tox/requirements to drive the venv instead of bundletester's venv feature.
-virtualenv: False
-# Leave makefile empty, otherwise unit/lint tests will rerun ahead of amulet.
-makefile: []
-# Do not specify juju PPA sources. Juju is presumed to be pre-installed
-# and configured in all test runner environments.
-#sources:
-# Do not specify or rely on system packages.
-#packages:
-# Do not specify python packages here. Use test-requirements.txt
-# and tox instead. ie. The venv is constructed before bundletester
-# is invoked.
-#python-packages: \ No newline at end of file
diff --git a/src/tox.ini b/src/tox.ini
deleted file mode 100644
index 479d7bb..0000000
--- a/src/tox.ini
+++ /dev/null
@@ -1,53 +0,0 @@
-# Source charm: ./src/tox.ini
-# This file is managed centrally by release-tools and should not be modified
-# within individual charm repos.
-[tox]
-envlist = pep8
-skipsdist = True
-
-[testenv]
-setenv = VIRTUAL_ENV={envdir}
- PYTHONHASHSEED=0
- AMULET_SETUP_TIMEOUT=2700
-whitelist_externals = juju
-passenv = HOME TERM AMULET_*
-deps = -r{toxinidir}/test-requirements.txt
-install_command =
- pip install --allow-unverified python-apt {opts} {packages}
-
-[testenv:pep8]
-basepython = python2.7
-commands = charm-proof
-
-[testenv:func27-noop]
-# DRY RUN - For Debug
-basepython = python2.7
-commands =
- bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" -n --no-destroy
-
-[testenv:func27]
-# Run all gate tests which are +x (expected to always pass)
-basepython = python2.7
-commands =
- bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" --no-destroy
-
-[testenv:func27-smoke]
-# Run a specific test as an Amulet smoke test (expected to always pass)
-basepython = python2.7
-commands =
- bundletester -vl DEBUG -r json -o func-results.json gate-basic-xenial-mitaka --no-destroy
-
-[testenv:func27-dfs]
-# Run all deploy-from-source tests which are +x (may not always pass!)
-basepython = python2.7
-commands =
- bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dfs-*" --no-destroy
-
-[testenv:func27-dev]
-# Run all development test targets which are +x (may not always pass!)
-basepython = python2.7
-commands =
- bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dev-*" --no-destroy
-
-[testenv:venv]
-commands = {posargs}
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index 9f03b45..0000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# Lint and unit test requirements
-flake8
-os-testr>=0.4.1
-charms.reactive
-mock>=1.2
-git+https://github.com/openstack/charms.openstack.git#egg=charms-openstack
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index 8b9f734..0000000
--- a/tox.ini
+++ /dev/null
@@ -1,47 +0,0 @@
-# Source charm: ./tox.ini
-# This file is managed centrally by release-tools and should not be modified
-# within individual charm repos.
-[tox]
-skipsdist = True
-envlist = pep8,py34,py35
-skip_missing_interpreters = True
-
-[testenv]
-setenv = VIRTUAL_ENV={envdir}
- PYTHONHASHSEED=0
- TERM=linux
- LAYER_PATH={toxinidir}/layers
- INTERFACE_PATH={toxinidir}/interfaces
- JUJU_REPOSITORY={toxinidir}/build
-passenv = http_proxy https_proxy
-install_command =
- pip install {opts} {packages}
-deps =
- -r{toxinidir}/requirements.txt
-
-[testenv:build]
-basepython = python2.7
-commands =
- charm-build --log-level DEBUG -o {toxinidir}/build src {posargs}
-
-[testenv:py34]
-basepython = python3.4
-deps = -r{toxinidir}/test-requirements.txt
-commands = ostestr {posargs}
-
-[testenv:py35]
-basepython = python3.5
-deps = -r{toxinidir}/test-requirements.txt
-commands = ostestr {posargs}
-
-[testenv:pep8]
-basepython = python2.7
-deps = -r{toxinidir}/test-requirements.txt
-commands = flake8 {posargs} src unit_tests
-
-[testenv:venv]
-commands = {posargs}
-
-[flake8]
-# E402 ignore necessary for path append before sys module import in actions
-ignore = E402 \ No newline at end of file
diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py
deleted file mode 100644
index 3a5e9a3..0000000
--- a/unit_tests/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2016 Canonical Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-sys.path.append('src')
-sys.path.append('src/lib')
-
-# Mock out charmhelpers so that we can test without it.
-import charms_openstack.test_mocks # noqa
-charms_openstack.test_mocks.mock_charmhelpers()
diff --git a/unit_tests/test_lib_charm_openstack_murano.py b/unit_tests/test_lib_charm_openstack_murano.py
deleted file mode 100644
index 692880f..0000000
--- a/unit_tests/test_lib_charm_openstack_murano.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2016 Canonical Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import
-from __future__ import print_function
-
-import unittest
-
-import mock
-
-import charm.openstack.murano as murano
-
-
-def FakeConfig(init_dict):
-
- def _config(key=None):
- return init_dict[key] if key else init_dict
-
- return _config
-
-
-class Helper(unittest.TestCase):
-
- def setUp(self):
- self._patches = {}
- self._patches_start = {}
- self.ch_config_patch = mock.patch('charmhelpers.core.hookenv.config')
- self.ch_config = self.ch_config_patch.start()
- self.ch_config.side_effect = lambda: {'ssl_param': None}
-
- def tearDown(self):
- for k, v in self._patches.items():
- v.stop()
- setattr(self, k, None)
- self._patches = None
- self._patches_start = None
- self.ch_config_patch.stop()
-
- def patch(self, obj, attr, return_value=None, **kwargs):
- mocked = mock.patch.object(obj, attr, **kwargs)
- self._patches[attr] = mocked
- started = mocked.start()
- started.return_value = return_value
- self._patches_start[attr] = started
- setattr(self, attr, started)
-
- def patch_object(self, obj, attr, return_value=None, name=None, new=None):
- if name is None:
- name = attr
- if new is not None:
- mocked = mock.patch.object(obj, attr, new=new)
- else:
- mocked = mock.patch.object(obj, attr)
- self._patches[name] = mocked
- started = mocked.start()
- if new is None:
- started.return_value = return_value
- self._patches_start[name] = started
- setattr(self, name, started)
-
-
-class TestMuranoCharm(Helper):
-
- def test__init__(self):
- self.patch(murano.ch_utils, 'os_release')
- murano.MuranoCharm()
- self.os_release.assert_called_once_with('python-keystonemiddleware')

This mirror site include all the OpenStack related repositories under: openstack, openstack-dev and openstack-infra.

NOTE: All repositories are updated every one hour.

Usage

For Git Clone
 git clone http://git.trystack.cn/openstack/nova.git 
For DevStack

Add GIT_BASE, NOVNC_REPO and SPICE_REPO variables to local.conf file.

[[local|localrc]]

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git