Adds FAQ content to the Murano docs

This patch adds FAQ to the Developing Applications
section.

Co-Authored-By: Ekaterina Chernova <efedorova@mirantis.com>
Co-Authored-By: Olena Logvinova <ologvinova@mirantis.com>

Change-Id: I019cbe6ed14fc4e8db02b7643cdf57e320d75167
This commit is contained in:
Olena Logvinova 2015-05-12 17:26:20 +03:00
parent c4172d652d
commit 8f919bfa31

View File

@ -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 dont 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. Whats
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.