From 0024ab48236976125afa822c0e9b0bba6f4e71c3 Mon Sep 17 00:00:00 2001 From: Serg Melikyan Date: Fri, 5 Apr 2013 15:42:48 +0400 Subject: [PATCH] Renamed documentation project --- {manuals => docs}/.gitignore | 0 docs/LICENSE | 176 ++++++++++++++++++ docs/README.rst | 47 +++++ docs/src/glazier-manual/pom.xml | 54 ++++++ .../docbkx/figures/architecture_diagram.png | Bin 0 -> 30105 bytes .../src/docbkx/glazier-manual.xml | 161 ++++++++++++++++ manuals/README.rst | 7 - manuals/pom.xml | 38 ---- .../docbkx/figures/architecture_diagram.png | Bin 29412 -> 0 bytes manuals/src/docbkx/keero-manual.xml | 122 ------------ 10 files changed, 438 insertions(+), 167 deletions(-) rename {manuals => docs}/.gitignore (100%) create mode 100644 docs/LICENSE create mode 100644 docs/README.rst create mode 100644 docs/src/glazier-manual/pom.xml create mode 100755 docs/src/glazier-manual/src/docbkx/figures/architecture_diagram.png create mode 100644 docs/src/glazier-manual/src/docbkx/glazier-manual.xml delete mode 100644 manuals/README.rst delete mode 100644 manuals/pom.xml delete mode 100755 manuals/src/docbkx/figures/architecture_diagram.png delete mode 100644 manuals/src/docbkx/keero-manual.xml diff --git a/manuals/.gitignore b/docs/.gitignore similarity index 100% rename from manuals/.gitignore rename to docs/.gitignore diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 0000000..68c771a --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,176 @@ + + 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/docs/README.rst b/docs/README.rst new file mode 100644 index 0000000..3725a9f --- /dev/null +++ b/docs/README.rst @@ -0,0 +1,47 @@ +Glazier Manuals ++++++++++++++++++ + +This repository contains documentation for the +Glazier project. It includes: + + * API Specification + * Architecture + +For more details, see the `Glazier `_. + +Prerequisites +============= +`Apache Maven `_ must be installed to build the +documentation. + +To install Maven 3 for Ubuntu 12.04 and later,and Debian wheezy and later:: + + apt-get install maven + +On Fedora 15 and later:: + + yum install maven3 + +Building +======== +The different manuals are in subdirectories of the +``docs/src/`` directory. + +To build a specific guide, look for a ``pom.xml`` file within a subdirectory, +then run the ``mvn`` command in that directory. For example:: + + cd docs/src/glazier-manual + mvn clean generate-sources + +The generated PDF documentation file is:: + + docs/src/glazier-manual/src/target/docbkx/pdf/glazier-manual.pdf + +The root of the generated HTML documentation is:: + + docs/src/glazier-manual/src/target/docbkx/webhelp/glazier-manual/content/index.html + +Installing +========== +Refer to http://glazier.openstack.org to see where these documents are published +and to learn more about the Glazier project. diff --git a/docs/src/glazier-manual/pom.xml b/docs/src/glazier-manual/pom.xml new file mode 100644 index 0000000..5bc6ada --- /dev/null +++ b/docs/src/glazier-manual/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + com.mirantis.glazier + manuals + 1.0.0-SNAPSHOT + jar + Glazier Project Documentation + + + + com.agilejava.docbkx + docbkx-maven-plugin + + + + generate-pdf + generate-webhelp + + generate-sources + + + + true + 100 + + + + + + + + + + + + diff --git a/docs/src/glazier-manual/src/docbkx/figures/architecture_diagram.png b/docs/src/glazier-manual/src/docbkx/figures/architecture_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..cf374dd0367950d1ff033e17d40201b3226acfbc GIT binary patch literal 30105 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⋼Z1#2irL*djh+ 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 EA6A{cd;kCd literal 0 HcmV?d00001 diff --git a/docs/src/glazier-manual/src/docbkx/glazier-manual.xml b/docs/src/glazier-manual/src/docbkx/glazier-manual.xml new file mode 100644 index 0000000..8f0cde8 --- /dev/null +++ b/docs/src/glazier-manual/src/docbkx/glazier-manual.xml @@ -0,0 +1,161 @@ + + + Glazier Project Documentation + + + + + + + + Mirantis, Inc. + + + + 2013 + Mirantis, Inc. + + v0.1 + Glazier™ + 2013-04-04 + + + Copyright details are filled in by the template. Change + the value of the role + attribute on the legalnotice element to change the license. + + + + + This document is intended for individuals who wish to + configure + and use our product or intend to contribute. + + + + this is a placeholder for the front cover + + + this is a placeholder for the back cover + + + + Overview + Welcome to Glazier Project. + +

+ Intended Audience + This guide is intended to individuals who want to contribute + to our + project. + +
+
+ Document Change History + This version of the Glazier Manual replaces and obsoletes all + previous versions. The + most recent changes are described in the table below: + + + + + Revision Date + Summary of Changes + + + + + April. 4, 2013 + + + + Initial document creation. + + + + + + +
+
+ Additional Resources + + + + + Mirantis - Cloud Software + + + + +
+ + + Architecture +
+ Architecture + + + + + + + + +
+ + The Glazier architecture has the following components: + + + Glazier Dashboard - UI for the Glazier, extends + Horizon + + + + REST API - exposes Glazier API via REST. Maintains + environment configurations in Database + + + + Glazier Python Client - Python client for Glazier + REST API + + + + Orchestration Engine - builds the environment as + configured by the user. + Turns environment configurations into a Heat templates + for VM provision and Glazier Agent commands for service + deployment + + + + Glazier Agent - built into Windows Server VM images. + Executes commands sent by Orchestration Engine + + + + +
+ diff --git a/manuals/README.rst b/manuals/README.rst deleted file mode 100644 index a2a0ba8..0000000 --- a/manuals/README.rst +++ /dev/null @@ -1,7 +0,0 @@ -README -====== -To build the output, install Apache Maven (https://maven.apache.org/) and then run:: - - mvn clean generate-sources - -in the directory containing the pom.xml file. diff --git a/manuals/pom.xml b/manuals/pom.xml deleted file mode 100644 index a29a564..0000000 --- a/manuals/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - 4.0.0 - com.mirantis.keero - manuals - 1.0.0-SNAPSHOT - jar - Keero Project Documentation - - - - - com.agilejava.docbkx - docbkx-maven-plugin - - - - generate-pdf - generate-webhelp - - generate-sources - - - - true - 100 - - - - - - - - - - - - - diff --git a/manuals/src/docbkx/figures/architecture_diagram.png b/manuals/src/docbkx/figures/architecture_diagram.png deleted file mode 100755 index fe2f631c101328e9986ddbe812e12b14ed19caf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29412 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 O2bWcqDTKZH_ - Keero Project Documentation - - - - - - - - Mirantis, Inc. - - - - 2013 - Mirantis, Inc. - - v0.1 - Keero™ - 2013-04-04 - - - Copyright details are filled in by the template. Change the value of the role - attribute on the legalnotice element to change the license. - - - - This document is intended for individuals who wish to configure - and use our product or intend to contribute. - - - - this is a placeholder for the front cover - - - this is a placeholder for the back cover - - - - Overview - Welcome to Keero Project. - -
- Intended Audience - This guide is intended to individuals who want to contribute to our - project. - -
-
- Document Change History - This version of the Maven Getting Started Guide replaces and obsoletes all previous versions. The - most recent changes are described in the table below: - - - - Revision Date - Summary of Changes - - - - - April. 4, 2013 - - - - Initial document creation. - - - - - - -
-
- Additional Resources - - - - - Mirantis - Cloud Software - - - - -
-
- - Architecture -
- Architecture - - - - - - - - -
- - The Keero architecture has the following components: - - - Keero Dashboard - UI for the Keero, extends Horizon - - - REST API - exposes Keero API via REST. Maintains environment configurations in Database - - - Keero Python Client - Python client for Keero REST API - - - Orchestration Engine - builds the environment as configured by the user. Turns environment configurations into a Heat templates for VM provision and Keero Agent commands for service deployment - - - Keero Agent - built into Windows Server VM images. Executes commands sent by Orchestration Engine - - - -
-