Added release-notes to plugin guide
Change-Id: I1b5fc3bf2df212d0fe70ee890a427ea317dc5aa6
This commit is contained in:
parent
c65f530fdb
commit
7e6a646f03
|
@ -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.
|
||||
|
|
|
@ -8,4 +8,5 @@ The Murano Plugin for Fuel Guide
|
|||
intro
|
||||
install
|
||||
configure
|
||||
update
|
||||
update
|
||||
release_notes
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
1.0.0 Fuel Murano Plugin Release Notes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. release-notes::
|
|
@ -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.
|
|
@ -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``.
|
|
@ -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.
|
|
@ -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>`
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- Added the ``timeout`` parameter to ``runCommand`` and ``putFile``
|
||||
methods of the ``io.murano.configuration.Linux`` class.
|
|
@ -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> ...]`
|
|
@ -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> ...]`
|
|
@ -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> ...]]`
|
|
@ -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>`
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
||||
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- Implemented the capability for the helper methods of Linux class to run concurrently
|
||||
if executed for different VM agents.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- Added the capability to execute actions (delete, abandon or deploy)
|
||||
on multiple selected environments.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
fixes:
|
||||
- The equality check (assertEqual) in the test-runner can now properly compare two MuranoPl objects.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
fixes:
|
||||
- Prevented the resource leak for objects created during deployment
|
||||
with ``new()`` function call.
|
|
@ -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``
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
features:
|
||||
- OSC plugin now accepts ``--murano-url`` and ``MURANO_URL`` to allow using a custom murano-api endpoint
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
fixes:
|
||||
- Improved the performance of the :guilabel:`Recent Activity` panel on
|
||||
the :guilabel:`Browse Catalog` page.
|
|
@ -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.
|
|
@ -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.
|
||||
|
||||
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- Added ``/templates/{env_template_id}/services/{path:.*?}`` API endpoint
|
||||
for environment template application update operation.
|
|
@ -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.
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue