From ca1919c3b866ce0fc2f151585c7726cdfa4907fd Mon Sep 17 00:00:00 2001 From: Alexander Tivelkov Date: Thu, 15 Sep 2016 22:07:22 +0300 Subject: [PATCH] Modify Apache to use Application Development Framework Change-Id: I9ebb52e4dbf84b706c9023db454d5b85c0a63911 Depends-on: Ifb2e29701de694d9365e08da086477b40452d6ba --- .../{ => v0}/Classes/ApacheHttpServer.yaml | 0 ApacheHTTPServer/package/{ => v0}/LICENSE | 0 .../{ => v0}/Resources/deployApache.sh | 0 ApacheHTTPServer/package/{ => v0}/UI/ui.yaml | 0 ApacheHTTPServer/package/{ => v0}/logo.png | Bin .../package/{ => v0}/manifest.yaml | 0 .../package/v1/Classes/ApacheHttpServer.yaml | 77 ++++++++ ApacheHTTPServer/package/v1/LICENSE | 175 ++++++++++++++++++ .../package/v1/Resources/deployApache.sh | 20 ++ ApacheHTTPServer/package/v1/UI/ui.yaml | 124 +++++++++++++ ApacheHTTPServer/package/v1/logo.png | Bin 0 -> 33332 bytes ApacheHTTPServer/package/v1/manifest.yaml | 32 ++++ 12 files changed, 428 insertions(+) rename ApacheHTTPServer/package/{ => v0}/Classes/ApacheHttpServer.yaml (100%) rename ApacheHTTPServer/package/{ => v0}/LICENSE (100%) rename ApacheHTTPServer/package/{ => v0}/Resources/deployApache.sh (100%) rename ApacheHTTPServer/package/{ => v0}/UI/ui.yaml (100%) rename ApacheHTTPServer/package/{ => v0}/logo.png (100%) rename ApacheHTTPServer/package/{ => v0}/manifest.yaml (100%) create mode 100644 ApacheHTTPServer/package/v1/Classes/ApacheHttpServer.yaml create mode 100644 ApacheHTTPServer/package/v1/LICENSE create mode 100644 ApacheHTTPServer/package/v1/Resources/deployApache.sh create mode 100644 ApacheHTTPServer/package/v1/UI/ui.yaml create mode 100644 ApacheHTTPServer/package/v1/logo.png create mode 100644 ApacheHTTPServer/package/v1/manifest.yaml diff --git a/ApacheHTTPServer/package/Classes/ApacheHttpServer.yaml b/ApacheHTTPServer/package/v0/Classes/ApacheHttpServer.yaml similarity index 100% rename from ApacheHTTPServer/package/Classes/ApacheHttpServer.yaml rename to ApacheHTTPServer/package/v0/Classes/ApacheHttpServer.yaml diff --git a/ApacheHTTPServer/package/LICENSE b/ApacheHTTPServer/package/v0/LICENSE similarity index 100% rename from ApacheHTTPServer/package/LICENSE rename to ApacheHTTPServer/package/v0/LICENSE diff --git a/ApacheHTTPServer/package/Resources/deployApache.sh b/ApacheHTTPServer/package/v0/Resources/deployApache.sh similarity index 100% rename from ApacheHTTPServer/package/Resources/deployApache.sh rename to ApacheHTTPServer/package/v0/Resources/deployApache.sh diff --git a/ApacheHTTPServer/package/UI/ui.yaml b/ApacheHTTPServer/package/v0/UI/ui.yaml similarity index 100% rename from ApacheHTTPServer/package/UI/ui.yaml rename to ApacheHTTPServer/package/v0/UI/ui.yaml diff --git a/ApacheHTTPServer/package/logo.png b/ApacheHTTPServer/package/v0/logo.png similarity index 100% rename from ApacheHTTPServer/package/logo.png rename to ApacheHTTPServer/package/v0/logo.png diff --git a/ApacheHTTPServer/package/manifest.yaml b/ApacheHTTPServer/package/v0/manifest.yaml similarity index 100% rename from ApacheHTTPServer/package/manifest.yaml rename to ApacheHTTPServer/package/v0/manifest.yaml diff --git a/ApacheHTTPServer/package/v1/Classes/ApacheHttpServer.yaml b/ApacheHTTPServer/package/v1/Classes/ApacheHttpServer.yaml new file mode 100644 index 00000000..e9ed58e4 --- /dev/null +++ b/ApacheHTTPServer/package/v1/Classes/ApacheHttpServer.yaml @@ -0,0 +1,77 @@ +# 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: + =: com.example.apache + apps: io.murano.applications + conf: io.murano.configuration + res: io.murano.resources + std: io.murano + sys: io.murano.system + + +Name: ApacheHttpServer + +Extends: + - apps:MultiServerApplicationWithScaling + - apps:OpenStackSecurityConfigurable + +Properties: + enablePHP: + Contract: $.bool() + Default: false + +Methods: + getSecurityRules: + Body: + - Return: + - ToPort: 80 + FromPort: 80 + IpProtocol: tcp + External: true + - ToPort: 443 + FromPort: 443 + IpProtocol: tcp + External: true + + onInstallServer: + Arguments: + - server: + Contract: $.class(res:Instance).notNull() + - serverGroup: + Contract: $.class(apps:ServerGroup).notNull() + Body: + - $file: sys:Resources.string('deployApache.sh') + - conf:Linux.runCommand($server.agent, $file) + - If: $this.enablePHP + Then: + - conf:Linux.runCommand($server.agent, "sudo apt-get -y install php5") + + onCompleteConfiguration: + Arguments: + - servers: + Contract: + - $.class(res:Instance).notNull() + - serverGroup: + Contract: $.class(apps:ServerGroup).notNull() + - failedServers: + Contract: + - $.class(res:Instance).notNull() + Body: + - $ips: $serverGroup.getServers().selectMany( + switch( + $.assignFloatingIp => [$.floatingIpAddress], + true => $.ipAddresses + )).select(format('http://{0}', $)).join(', ') + + - $this.find(std:Environment).require().reporter.report($this, format('Apache is available at {0}', $ips)) + diff --git a/ApacheHTTPServer/package/v1/LICENSE b/ApacheHTTPServer/package/v1/LICENSE new file mode 100644 index 00000000..67db8588 --- /dev/null +++ b/ApacheHTTPServer/package/v1/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/ApacheHTTPServer/package/v1/Resources/deployApache.sh b/ApacheHTTPServer/package/v1/Resources/deployApache.sh new file mode 100644 index 00000000..ce4a816e --- /dev/null +++ b/ApacheHTTPServer/package/v1/Resources/deployApache.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +sudo apt-get update +sudo apt-get -y install apache2 + +for i in 443 80 + do + sudo iptables -I INPUT 1 -p tcp -m tcp --dport $i -j ACCEPT -m comment --comment "by murano, Apache server access on HTTPS port $i" + done diff --git a/ApacheHTTPServer/package/v1/UI/ui.yaml b/ApacheHTTPServer/package/v1/UI/ui.yaml new file mode 100644 index 00000000..c6bdf4fd --- /dev/null +++ b/ApacheHTTPServer/package/v1/UI/ui.yaml @@ -0,0 +1,124 @@ +# 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.2 + +Templates: + customJoinNet: + - ?: + type: io.murano.resources.ExistingNeutronNetwork + internalNetworkName: $.instanceConfiguration.network[0] + internalSubnetworkName: $.instanceConfiguration.network[1] + +Application: + ?: + type: com.example.apache.ApacheHttpServer + classVersion: 1.0.0 + enablePHP: $.appConfiguration.enablePHP + servers: + ?: + type: io.murano.applications.ServerReplicationGroup + numItems: $.appConfiguration.numNodes + provider: + ?: + type: io.murano.applications.TemplateServerProvider + template: + ?: + type: io.murano.resources.LinuxMuranoInstance + flavor: $.instanceConfiguration.flavor + image: $.instanceConfiguration.osImage + keyname: $.instanceConfiguration.keyPair + availabilityZone: $.instanceConfiguration.availabilityZone + assignFloatingIp: $.appConfiguration.assignFloatingIP + networks: + useEnvironmentNetwork: $.instanceConfiguration.network[0]=null + useFlatNetwork: false + customNetworks: switch($.instanceConfiguration.network[0], $=null=>list(), $!=null=>$customJoinNet) + serverNamePattern: $.instanceConfiguration.unitNamingPattern + +Forms: + - appConfiguration: + fields: + - name: license + type: string + description: Apache License, Version 2.0 + hidden: true + required: false + - name: enablePHP + label: Enable PHP + type: boolean + description: >- + Add php support to the Apache WebServer + initial: false + required: false + - name: assignFloatingIP + type: boolean + label: Assign Floating IP + description: >- + Select to true to assign floating IP automatically + initial: false + required: false + - name: numNodes + type: integer + label: Initial number of Nodes + initial: 1 + minValue: 1 + required: true + description: >- + Select the initial number of Apache Nodes + + - instanceConfiguration: + fields: + - name: title + type: string + required: false + hidden: true + description: Specify some instance parameters on which the application would be created + - name: flavor + type: flavor + label: Instance flavor + description: >- + Select registered in Openstack flavor. Consider that application performance + depends on this parameter. + required: false + - name: osImage + type: image + imageType: linux + label: Instance image + description: >- + Select valid image for the application. Image should already be prepared and + registered in glance. + - name: keyPair + type: keypair + label: Key Pair + description: >- + Select the Key Pair to control access to instances. You can login to + instances using this KeyPair after the deployment of application. + required: false + - name: availabilityZone + type: azone + label: Availability zone + description: Select availability zone where application would be installed. + required: false + - name: network + type: network + label: Network + description: Select a network to join. 'Auto' corresponds to a default environment's network. + required: false + murano_networks: translate + - name: unitNamingPattern + type: string + label: Instance naming pattern + required: false + maxLength: 64 + initial: 'node-{0}' + diff --git a/ApacheHTTPServer/package/v1/logo.png b/ApacheHTTPServer/package/v1/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..29990d0970225795fdfb59f73d839eac9102ee93 GIT binary patch literal 33332 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 VWADwK7jP~}U0LUOgCZ>Ie*uEIj*b8T literal 0 HcmV?d00001 diff --git a/ApacheHTTPServer/package/v1/manifest.yaml b/ApacheHTTPServer/package/v1/manifest.yaml new file mode 100644 index 00000000..ec0dc9f4 --- /dev/null +++ b/ApacheHTTPServer/package/v1/manifest.yaml @@ -0,0 +1,32 @@ +# 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. + +Format: 1.3 +Type: Application +FullName: com.example.apache.ApacheHttpServer +Version: 1.0.0 +Name: Apache HTTP Server +Description: | + The Apache HTTP Server Project is an effort to develop and maintain an + open-source HTTP server for modern operating systems including UNIX and + Windows NT. The goal of this project is to provide a secure, efficient and + extensible server that provides HTTP services in sync with the current HTTP + standards. + Apache httpd has been the most popular web server on the Internet since + April 1996, and celebrated its 17th birthday as a project this February. +Author: 'Mirantis, Inc' +Tags: [HTTP, Server, WebServer, HTML, Apache] +Classes: + com.example.apache.ApacheHttpServer: ApacheHttpServer.yaml + +Require: + io.murano.applications: