Added release-notes to plugin guide

Change-Id: I1b5fc3bf2df212d0fe70ee890a427ea317dc5aa6
This commit is contained in:
Kirill Zaitsev 2016-09-05 16:11:49 +03:00 committed by Kirill Zaitsev
parent c65f530fdb
commit 7e6a646f03
57 changed files with 399 additions and 3 deletions

View File

@ -29,8 +29,8 @@ import os
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
# 'sphinx.ext.todo',
# 'sphinx.ext.coverage',
'oslosphinx',
'reno.sphinxext',
]
# Add any paths that contain templates here, relative to this directory.

View File

@ -8,4 +8,5 @@ The Murano Plugin for Fuel Guide
intro
install
configure
update
update
release_notes

View File

@ -0,0 +1,5 @@
1.0.0 Fuel Murano Plugin Release Notes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. release-notes::

View File

@ -0,0 +1,8 @@
---
fixes:
- When glare is used, specifying a base class in the UI definition
now also fetches all the packages with classes
that inherit from that class. For example, if you
specify the 'io.example.Parent' class, the dashboard
fetches 'io.example.Child1' and 'io.example.Child2', and any other
descendants of 'io.example.Parent' that are present.

View File

@ -0,0 +1,5 @@
---
feature:
- The :command:`environment-action-call` command now accepts action argument values of any
type in JSON format, for example,
``environment-action-call $ENV_ID --action-id $ACT_ID --arguments foo=bar listArg='["item1", "item2", "item3"]' nullArg=null stringArg='"null"' intArg=5``.

View File

@ -0,0 +1,7 @@
---
features:
- Added a new manifest format 1.4.0.
Introduced the ``Scope`` keyword for class methods to declare a method's
accessibility from outside through the API call.
deprecations:
- Deprecated the ``Usage Action`` keyword. For format versions 1.4.0 and newer, use ``Scope Public`` instead.

View File

@ -0,0 +1,6 @@
---
features:
- New OSC command :command:`environment list [--all-tenants]`
- New OSC command :command:`environment show <ID or NAME> [--session-id <SESSION_ID>] [--only-apps]`
- New OSC command :command:`environment rename <ID> <NAME>`
- New OSC command :command:`environment session create <ID>`

View File

@ -0,0 +1,8 @@
---
features:
- Implemented the capability for API endpoint ``/catalog/packages``
to filter 'id', 'category', 'tag' properties using the 'in' operator.
An example of using the 'in' operator for 'id' is
'id=in:id1,id2,id3'.
Added this filter using the syntax that conforms to the latest
guidelines from the OpenStack API-WG.

View File

@ -0,0 +1,4 @@
---
features:
- Added the ``timeout`` parameter to ``runCommand`` and ``putFile``
methods of the ``io.murano.configuration.Linux`` class.

View File

@ -0,0 +1,6 @@
---
features:
- New OSC command :command:`category list`
- New OSC command :command:`category show <ID>`
- New OSC command :command:`category create <NAME>`
- New OSC command :command:`category delete <ID> [<ID> ...]`

View File

@ -0,0 +1,6 @@
---
features:
- New OSC command :command:`environment create [--join-net-id <NET_ID>]
[--join-subnet-id <SUBNET_ID>] [--region <REGION_NAME>] <ENVIRONMENT_NAME>`
- New OSC command :command:`environment delete [--abandon] <NAME_or_ID>
[<NAME_or_ID> ...]`

View File

@ -0,0 +1,7 @@
---
features:
- Added support for class/method JSON-schema API.
- New murano CLI command :command:`murano class-schema [--package-name PACKAGE_NAME]
[--class-version PACKAGE_VERSION] <CLASS> [<METHOD> [<METHOD> ...]]`
- New OSC command :command:`openstack class-schema [--package-name PACKAGE_NAME]
[--class-version PACKAGE_VERSION] <CLASS> [<METHOD> [<METHOD> ...]]`

View File

@ -0,0 +1,9 @@
---
features:
- Added support for static actions API.
- New Murano CLI command :command:`murano static-action-call [--arguments
[<KEY=VALUE> [<KEY=VALUE> ...]]] [--package-name <PACKAGE>]
[--class-version CLASS_VERSION] <CLASS> <METHOD>`
- New OSC command :command:`openstack static-action call [--arguments
[<KEY=VALUE> [<KEY=VALUE> ...]]] [--package-name <PACKAGE>]
[--class-version CLASS_VERSION] <CLASS> <METHOD>`

View File

@ -0,0 +1,5 @@
---
fixes:
- Fixed the issue with sequential download of packages.
Dashboard is now using 'tables.LinkAction' instead of 'tables.Action' for
DownloadPackage table action.

View File

@ -0,0 +1,6 @@
---
features:
- Added Cinder volume classes to the core library.
Now, it s possible to create a new volume from various sources or use an existing volume.
Also, it is possible to attach volumes to instances
and boot instances from volumes.

View File

@ -0,0 +1,6 @@
---
features:
- Added the ``driver`` configuration option to the ``networking`` group.
It allows to explicitly select the networking driver. It supports 'neutron' and 'nova' options.
If set to ``None`` (default), Murano attempts to use 'neutron'
if available, 'nova' otherwise. The change is backward compatible.

View File

@ -0,0 +1,4 @@
fixes:
- The API call for deleting a service from environment template did not return the result of its operation.
The issue was fixed.

View File

@ -0,0 +1,7 @@
---
features:
- Added the :option:`--dep-exists-action` option to
murano :command:`package-import` and :command:`bundle-import` commands.
It allows specifying a different default action for an existing main
package and existing dependencies.
In case of specifying only :option:`--exists-action`, the action also applies to dependencies.

View File

@ -0,0 +1,5 @@
---
features:
- Added the ``DISPLAY_MURANO_REPO_URL`` setting that is used as a
user-visible link to ``apps.openstack.org`` or any other murano
applications repository.

View File

@ -0,0 +1,5 @@
---
fixes:
- Fixed the issue with the UI dialog that did not display in Murano Dashboard for
applications without UI definitions bundled in the package. This usually affected
HOT-based packages and other non-muranopl-based applications.

View File

@ -0,0 +1,5 @@
features:
- Added the ``description_text`` field to environment and environment templates
database tables and respective API objects.
upgrade:
- New database migration 015 has to be applied.

View File

@ -0,0 +1,11 @@
---
features:
- Introduced a new MuranoPL ``io.murano.system.GC`` class.
Now, MuranoPL garbage collector can be used to
set up destruction dependencies between murano objects.
If object Foo is subscribed to object Bar's destruction,
it will be notified through a specific handler. If both
Foo and Bar are going to be destroyed during one execution session,
Foo will be destroyed after Bar.
You can omit the handler, in this case destruction order will also
be preserved. Handler can be a static or a usual function.

View File

@ -0,0 +1,4 @@
---
fixes:
- Importing a package into glare now fills the `'inherited'` field with full
inheritance info. Previously, it only contained immediate parent classes.

View File

@ -0,0 +1,5 @@
---
fixes:
- Fixed the issue that prevented the Murano Dashboard
from finding certain horizon filters,
such as 'parse_isotime', 'timesince_or_never', and others.

View File

@ -0,0 +1,7 @@
---
fixes:
- Removed the need for Keystone v2 options (``admin_user``, ``admin_password``, ``admin_tenant_name``)
when Keystone v3 is in use.
- Previously, Murano assumed that the service user
and service project are in the 'Default' domain. These values can
now be set in the ``keystone_authtoken`` configuration group.

View File

@ -0,0 +1,4 @@
---
features:
- Implemented the capability for the helper methods of Linux class to run concurrently
if executed for different VM agents.

View File

@ -0,0 +1,4 @@
---
features:
- Added the capability to execute actions (delete, abandon or deploy)
on multiple selected environments.

View File

@ -0,0 +1,12 @@
---
features:
- Added the following meta-classes to the core library -
``Title``
``Description``
``HelpText``
``Hidden``
``Section``
``Position``
``ModelBuilder``.
These classes will later be used to implement dynamic object model
generation.

View File

@ -0,0 +1,9 @@
---
features:
- Added an overload of the ``new`` function - ``new($model, $owner)``.
It loads a complete object graph in a single call. Objects in the model
can have cross references. In that case, this is the only way to instantiate
the graph. Objects may be specified either in object model format (with
'?' attribute or in MuranoPL format (used for Meta definitions).
- The contract ``class()`` now uses the same approach to load classes from
dictionaries. Thus the same two syntaxes apply there as well.

View File

@ -0,0 +1,16 @@
---
features:
- Added support for application deployment across OpenStack regions.
Now, all OpenStack resource classes inherit from ``io.murano.CloudResource``
that provides ``.getRegion()`` method and ``regionName`` property.
This allows assigning resources
to different regions. ``.getRegion()`` returns ``io.murano.CloudRegion``
instance that resource or its parent belongs to.
The interface of ``CloudRegion`` is similar to the ``Environment`` class and should be used to
get ``HeatStack`` instance associated with the region,
default network configuration, security
group manager, and agent listener instances. ``Environment`` now acts as
a default region so backward compatibility is not broken. However, new
applications should not use the ``Environment`` to set security group rules but
rather a region(s) of their instance(s) in order to work correctly when
their instances were configured to use region other than the default.

View File

@ -0,0 +1,9 @@
---
features:
- Added the ``api_workers`` option to the ``murano`` configuration group. It controls
the number of API workers launched by murano-api. If not set, it defaults to
the number of CPUs available.
deprecations:
- Renamed the ``workers`` option from the ``engine`` group
to ``engine_workers`` to reduce ambiguity with the ``api_workers`` option.

View File

@ -0,0 +1,3 @@
---
fixes:
- The equality check (assertEqual) in the test-runner can now properly compare two MuranoPl objects.

View File

@ -0,0 +1,8 @@
---
features:
- Added a new engine RPC call to generate json-schema from MuranoPL class.
The schema may be generated either from the entire class or for specific
model builders - static actions that can be used to generate
object model from their input. Class schema is built by inspecting
class properties and method schema using the same algorithm but applied
to its arguments.

View File

@ -0,0 +1,38 @@
---
features:
- Implemented a new framework for MuranoPL contracts. Now, instead of several
independent implementations of the same YAQL methods (``string()``, ``class()``
and others) all implementations of the same method are combined into a single
class. Therefore, we now have a class per contract method. This also simplifies
the development of new contracts. Each such class can provide methods for
data transformation (default contract usage), validation that is used
to decide if the method can be considered an extension method for the
value, and JSON schema generation method that was moved from the schema
generator script.
- Previously, when a class overrode a property from its parent
class the value was stored separately for both of them, transformed
by each of the contracts. Thus each class accessed the value of its contract.
In absolute majority of the cases, the observed value was the same. However,
if the contracts were compatible on the provided value (say int() and
string() contracts on the value "123"), they were different. This is
considered to be a bad pattern.
Now, the value is stored only once per object and transformed by the
contract defined in the actual object, type. All base contracts are used
to validate the transformed object thus this pattern will not work
anymore.
- The value that is stored in the object's properties is obtained by
executing a special ``finalize`` contract implementation that, by default
returns the input value unmodified. Because validation happens on
the transformed value before it gets finalized,
the transformation can return a value that will pass the validation, though the final value will not.
This is used to relax the ``template()`` contract
limitation that prevented child class from excluding additional properties
from the template.
- The ``string()`` contract no longer converts everything to string values.
Now, it only converts scalar values to strings.
Previous behavior allowed the ``string()`` property to
accept lists and convert them to their Python string representation, which
is clearly not what developers expected.
- Due to refactoring, contracts work a little bit faster because there is
no more need to generate YAQL function definition for each contract method
on each call.

View File

@ -0,0 +1,4 @@
---
fixes:
- Prevented the resource leak for objects created during deployment
with ``new()`` function call.

View File

@ -0,0 +1,10 @@
---
features:
- Changed the type representation in the object model. Previously, there were
three attributes in the "?" section of the object - ``type``, ``classVersion``,
and ``package``, where only the ``type`` was mandatory. Now, these attributes are merged into
single attribute ``type`` that has the ``typeName/version@package`` format.
The ``version`` and ``package`` parts are still optional.
upgrades:
- Any tools that inspected the object model should be updated to expect
new object format representation ``typeName/version@package``

View File

@ -0,0 +1,5 @@
---
fixes:
- Murano is now able to deploy applications in the environments with disabled
Neutron Security Groups. Detection is based on the presence of
the ``security-group`` Neutron extension.

View File

@ -0,0 +1,18 @@
---
features:
- Previously, the pre-deployment garbage collection executed the ``.destroy``
method for objects that were present in the ``ObjectsCopy`` section of the
object model (which is the the snapshot of the model after last deployment)
and not present in the current model anymore (because they were deleted
through the API between deployments). If the destroyed objects were to
access another object that was not deleted, it was accessing its copy from
the ``ObjectsCopy``. Thus any changes to the internal state made by that
object were lost after the garbage collection finished (that is, before the
``.deploy`` method call) and could not affect the deployment.
Now, if the object is present in both ``Objects`` and ``ObjectsCopy``, a
single instance (the one from ``Objects``) is used for both garbage
collection and deployment.
As a consequence, instances (in their ``.destroy`` method) now may observe
changes made to other objects they refer if they were not deleted, but
modified through the API. In some rare cases, it may break existing
applications.

View File

@ -0,0 +1,3 @@
---
features:
- OSC plugin now accepts ``--murano-url`` and ``MURANO_URL`` to allow using a custom murano-api endpoint

View File

@ -0,0 +1,6 @@
---
fixes:
- Fixed the password check in dynamic UI forms. Previously,
the dashboard did not validate the password fields with IDs not ending with 'password'.
Now, to determine whether to add default password validators to the field or not,
the dashbord only checks the field type itself, instead of both field type and ending of the field ID.

View File

@ -0,0 +1,4 @@
---
fixes:
- The :guilabel:`Environment components` page now reloads after an empty environment deployment.
This allows adding new components to the empty environment without having to reload the page manually.

View File

@ -0,0 +1,11 @@
---
features:
- Murano dashboard now comes with the ``muranodashboard/local/local_settings.d/_50_murano.py``
file that contains murano-specific settings for horizon
(for example, ``MURANO_API_URL``).
upgrade:
- Previously, all murano-specific horizon settings had to be kept in ``local_settings.py``
file of Horizon. You need to remove those settings from ``local_settings.py`` and
copy ``muranodashboard/local/local_settings.d/_50_murano.py``
to ``openstack_dashboard/local/local_settings.d/`` directory in horizon, and keep all
murano-related changes there.

View File

@ -0,0 +1,5 @@
---
fixes:
- Fixed the order of packages import. The main package is now imported before
all its dependencies. Cyclic dependencies are imported in a
random order.

View File

@ -0,0 +1,5 @@
---
fixes:
- Added the capability to simultaneously use the :option:`--resources-dir`
and :option:`--template` arguments for the :command:`package-create` command.
This allows creating HOT-packages with the ``Resources`` folder.

View File

@ -0,0 +1,9 @@
---
security:
- Addressed cve-2016-4972. In several places
Murano used loaders inherited directly from ``yaml.Loader``
when parsing MuranoPL and UI files from packages.
This is unsafe, because this loader is capable of creating
custom python objects from specifically constructed
yaml files. With this change all yaml loading operations are done
using safe loaders instead.

View File

@ -0,0 +1,6 @@
---
fixes:
- Whenever murano-engine accesses script files,
text script files are opened in 'rU' mode that recognizes all types of
newlines and binary files are opened in 'rb' mode to prevent their
corruption.

View File

@ -0,0 +1,4 @@
---
features:
- Separated murano service broker from murano-api into a murano-cfapi service.
Created a separate database and ``paste.ini`` for service broker.

View File

@ -0,0 +1,4 @@
---
fixes:
- Improved the performance of the :guilabel:`Recent Activity` panel on
the :guilabel:`Browse Catalog` page.

View File

@ -0,0 +1,7 @@
---
features:
- Added a new API endpoint ``v1/actions`` to call static public methods.
It accepts class name, method name,
method arguments, and optionally package name and class version in the
request body. This call does not create an environment,
object instances or database records.

View File

@ -0,0 +1,7 @@
---
fixes:
- Fixed the issue that reset all environment changes from the
previous session (adding or removing components without deployment) after consequent login.
Also, the :guilabel:`Ready to deploy` status now only displays if there are changes pending in the current session.

View File

@ -0,0 +1,11 @@
---
features:
- Implemented a new contract function ``template()``. ``template()`` works
similar to the ``class()`` in regards to the data validation but does not
instantiate objects. Instead, the data is left in the object model
in dictionary format so that it could be instantiated later with the ``new()``
function. Additionally, the function allows excluding specified properties from
validation and from the resulting template so that they could be provided later.
Objects that are assigned to the property or argument with ``template()``
contract will be automatically converted to their object model
representation.

View File

@ -0,0 +1,6 @@
---
fixes:
- The test-runner now outputs the tests it runs and their results to stdout
directly, instead of the logging system.
- The test-runner now does not output logs to stderr by default unless a
'use_stderr' parameter is specified in the configuration file.

View File

@ -0,0 +1,4 @@
---
fixes:
- Fixed the issue that prevented the test-runner from properly
invoking ``setUp`` and ``tearDown`` methods of fixtures in some cases.

View File

@ -0,0 +1,5 @@
---
features:
- Split ``Instance``'s ``.deploy()`` method into two phases - ``beginDeploy()``
and ``endDeploy()``. This allows the application developer to provision multiple
instances at once without the need to push the stack for each instance.

View File

@ -0,0 +1,4 @@
---
features:
- Added ``/templates/{env_template_id}/services/{path:.*?}`` API endpoint
for environment template application update operation.

View File

@ -0,0 +1,11 @@
---
features:
- >
Added the capability to declare MuranoPL YAML methods with variable length,
positional, and keyword arguments. This is done using argument ``Usage``
attribute. Regular arguments have ``Standard`` usage which is the default.
Variable length args (args in Python) should have ``Usage: VarArgs`` and
keyword args (kwargs) are declared with ``Usage: KwArgs``. Inside the
method they are seen as a list and a dictionary correspondingly. For such
arguments contracts are written for individual argument values, thus
no need to write them as lists or dicts.

View File

@ -1 +1,3 @@
sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
reno>=1.8.0 # Apache2