From 7b708fac945420f70ef1f8ca68651126b055d971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henar=20Mu=C3=B1oz=20Frutos?= Date: Fri, 17 Jul 2015 09:31:42 +0200 Subject: [PATCH] FIWARE Orion docker package Change-Id: Ie1d62a7ec1db92f486eece2c22c917ee8e853fee --- .../Orion/package/Classes/DockerOrion.yaml | 60 ++++++ Applications/Orion/package/LICENSE | 175 ++++++++++++++++++ Applications/Orion/package/UI/ui.yaml | 50 +++++ Applications/Orion/package/logo.png | Bin 0 -> 26091 bytes Applications/Orion/package/manifest.yaml | 22 +++ 5 files changed, 307 insertions(+) create mode 100644 Applications/Orion/package/Classes/DockerOrion.yaml create mode 100644 Applications/Orion/package/LICENSE create mode 100644 Applications/Orion/package/UI/ui.yaml create mode 100644 Applications/Orion/package/logo.png create mode 100644 Applications/Orion/package/manifest.yaml diff --git a/Applications/Orion/package/Classes/DockerOrion.yaml b/Applications/Orion/package/Classes/DockerOrion.yaml new file mode 100644 index 0000000..57c9d45 --- /dev/null +++ b/Applications/Orion/package/Classes/DockerOrion.yaml @@ -0,0 +1,60 @@ +# 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. + +Namespaces: + =: io.murano.apps.docker + std: io.murano + +Name: DockerOrion + +Extends: DockerApplication + +Properties: + name: + Contract: $.string().notNull() + + publish: + Contract: $.bool().notNull() + Default: true + + +Methods: + initialize: + Body: + - $._environment: $.find(std:Environment).require() + - $._scope: switch($.publish, $ => public, not $ => internal) + + + getContainer: + Body: + Return: + name: $.name + image: 'tidchile/fiware-orion' + ports: + - port: 1026 + scope: $._scope + + + onInstallationStart: + Body: + - $._environment.reporter.report($this, 'Installing Orion') + + + onInstallationFinish: + Body: + - If: $.publish + Then: + - $endpoints: $.applicationEndpoints.where($.scope = $this._scope). + select(format('http://{0}:{1}', $.address, $.port)) + - $._environment.reporter.report($this, 'Orion {0} is available at {1}'.format($.name, join(', ', $endpoints))) + Else: + - $._environment.reporter.report($this, 'Orion {0} was deployed but is not accessible from outside'.format($.name)) diff --git a/Applications/Orion/package/LICENSE b/Applications/Orion/package/LICENSE new file mode 100644 index 0000000..67db858 --- /dev/null +++ b/Applications/Orion/package/LICENSE @@ -0,0 +1,175 @@ + + 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. diff --git a/Applications/Orion/package/UI/ui.yaml b/Applications/Orion/package/UI/ui.yaml new file mode 100644 index 0000000..cdb088a --- /dev/null +++ b/Applications/Orion/package/UI/ui.yaml @@ -0,0 +1,50 @@ +# 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. + +Version: 2 + +Application: + ?: + type: io.murano.apps.docker.DockerOrion + name: $.appConfiguration.name + host: $.appConfiguration.host + publish: $.appConfiguration.publish + +Forms: + - appConfiguration: + fields: + - name: license + type: string + description: Apache License, Version 2.0 + hidden: true + required: false + - name: name + type: string + label: Application Name + initial: 'DockerOrion' + description: >- + Enter a desired name for the application. Just A-Z, a-z, 0-9, dash and + underline are allowed + - name: host + type: + - io.murano.apps.docker.kubernetes.KubernetesPod + - io.murano.apps.docker.DockerStandaloneHost + label: Container Host + description: >- + Select an instance of Docker contaniner hosting provider to run the app + - name: publish + type: boolean + label: Make application accessible from outside + initial: true + required: false + description: >- + Check if you intend to access application from the Internet diff --git a/Applications/Orion/package/logo.png b/Applications/Orion/package/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e469fa5d4485d26b397fc71d7308797ab512a1 GIT binary patch literal 26091 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