From 8f919bfa3123afaac706d03bd50ac0f6bc03c9ab Mon Sep 17 00:00:00 2001 From: Olena Logvinova Date: Tue, 12 May 2015 17:26:20 +0300 Subject: [PATCH] Adds FAQ content to the Murano docs This patch adds FAQ to the Developing Applications section. Co-Authored-By: Ekaterina Chernova Co-Authored-By: Olena Logvinova Change-Id: I019cbe6ed14fc4e8db02b7643cdf57e320d75167 --- doc/source/draft/appdev-guide/faq.rst | 80 ++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/doc/source/draft/appdev-guide/faq.rst b/doc/source/draft/appdev-guide/faq.rst index f9128501..401268ee 100644 --- a/doc/source/draft/appdev-guide/faq.rst +++ b/doc/source/draft/appdev-guide/faq.rst @@ -3,6 +3,80 @@ .. toctree:: :maxdepth: 2 -==== -FAQs -==== +=== +FAQ +=== + +**There are too many files in Murano package, why not to use a single +Heat Template?** + + To install a simple Apache service to a new VM, Heat Template is + definitely simpler. But the Apache service is useless without its + applications running under it. Thus, a new Heat Template is necessary + for every application that you want to run with Apache. In Murano, + you can compose a result software to install it on a VM on-the-fly: + it is possible to select an application that can run under Apache + dynamically. Or you can set a VM where Apache is installed as a + parameter. This way, the files in the application package allow + to compose compound applications with multiple configuration options. + For any single combination you need a separate Heat Template. + +**The Application section is defined in the UI form. Can I remove it?** + + No. The ``Application`` section is a template for Murano object model + which is the instruction that helps you to understand the + environment structure that you deploy. While filling the forms that + are auto-generated from the UI.yaml file, object model is + updated with the values entered by the user. Eventually, the Murano + engine receives the resulted object model (.json file) after the + environment is sent to the deploy. + +**The Templates section is defined in the UI form. What's the purpose?** + + Sometimes, the user needs to create several instances with the same + configuration. A template defined by a variable in the + ``Templates`` section is multiplied by the value of the number of + instances that are set by the user. A YAQL ``repeat`` function is + used for this operation. + +**Some properties have Usage, others do not. What does this affect?** + + ``Usage`` indicates how a particular property is used. The default + value is ``In``, so sometimes it is omitted. The ``Out`` property + indicates that it is not set from outside, but is calculated in + the class methods and is available for the ``read`` operation from + other classes. If you don’t want to initialize in the class + constructor, and the property has no default value, you specify + ``Out`` in the ``Usage``. + +**Can I use multiple inheritance in my classes?** + + Yes. You can specify a list of parent classes instead of a single + string in the regular YAML notation. The list with one element is + also acceptable. + +**There are FullName and Name properties in the manifest file. What’s +the difference between them?** + + ``Name`` is displayed in the web UI catalog, and ``FullName`` is a + system name used by the engine to get the class definition and + resolve the class interconnections. + +**How does Murano know which class is the main one?** + + There is no ``main`` class term in the MuranoPL. Everything depends + on a particular object model and an instance class representing the + instance. Usually, an entry-point class has exactly the same name + as the package FullName, and it uses other classes. + +**What is the difference between $variable and $.variable in the class +definitions?** + + By default, ``$`` represents a current object (similar to ``self`` + in Python or ``this`` in C++/Java/C#), so ``$.variable`` accesses + the object field/property. In contrast, ``$variable`` (without a dot) + means a local method variable. Note that ``$`` can change its value + during execution of some YAQL functions like select, where it means + a current value. A more safe form is to use a reserved variable + ``$this`` instead of ``$``. ``$this.variable`` always refers to an + object-level value in any context.