[openstack-announce] [release][murano] murano 2.0.0 release (mitaka)
no-reply at openstack.org
no-reply at openstack.org
Thu Apr 7 07:56:35 UTC 2016
We are overjoyed to announce the release of:
murano 2.0.0: Murano API
This release is part of the mitaka release series.
For more details, please see below.
2.0.0
^^^^^
New Features
************
* Now all native MuranoPL methods (those that are written in Python)
have "?muranoMethod" metadata key referring to MuranoMethod instance
for the method.
* Classes to work with Cinder volumes were added to core library.
Now it is possible to create new volume from various sources or use
existing volume. Also it is possible to attach volumes to instances.
This doesn't include ability to boot instances from volumes.
* Class configs are now also versioned. For class foo.bar version
1.2.3 the following file names will be examined: foo.bar-1.2.3.json
foo.bar-1.2.3.yaml foo.bar-1.2.json foo.bar-1.2.yaml foo.bar-1.json
foo.bar-1.yaml In addition for classes of version 0.x.y file name
without version suffix are also examined as a last attempt so the
backward compatibility is retained
* New plugin 'murano_heat-translator_plugin' was added. Now it is
possible to deploy applications from CSAR templates.
* Enable mocks in MuranoPL tests cases.
* Added >>:command:`murano-test-tunner`<< command to run murano
package tests.
<SYSTEM MESSAGE: <string>:17: (ERROR/3) Unknown interpreted text
role "command".>
* Introduced two YAQL *inject* functions to enable mocks "def
inject(target, target_method, mock_object, mock_name)" and "def
inject(target, target_method, yaql_expr)".
* New method type: extension methods. Extension methods enable you
to "add" methods to existing types without modifying the original
type. Extension methods are a special kind of static method, but
they are called as if they were instance methods on the extended
type. Extension methods are identified by "Usage: Extension" and the
type they extend is determined by their first argument contract.
Thus such methods must have at lease one parameter.
* New type-level keyword "Import" which can be either list or scalar
that specifies type names which extensions methods should be
imported into class context and thus become available to type
members.
* Added filter by 'Name' which only matches package name.
* All HOT template outputs are put into a single dictionary property
'templateOutputs' rather than in a generated property per each
output. As a result there are no more constraints on output names.
* Added magnum plugin to murano, that allows creating/deleting of
magnum baymodels and bays from MuranoPL
* Added ability to extend MuranoPL entities with custom metadata.
* For MuranoPL classes new key "Usage" was added. By default it is
"Class". But it can also be "Meta" to define meta-class. Meta-class
has all the capabilities of regular classes and in addition has 3
new attributes: Cardinality, Applies and Inherited.
* It is possible to attach meta-class instances to packages, classes
(including other meta-classes), properties, methods and method
arguments. Each of them got new "Meta" key containing list (or
single scalar) of meta-class instances.
* Now it is possible to have several classes in one YAML file.
Classes are separated using YAML document separator (3 dashes).
Empty documents are skipped. If the class doesn't have Namespace
section corresponding section from the previous class in the same
file is used. Thus it is possible to declare namespace prefixes once
at the file header. Even if there are several classes in one file
all of them are still required to be declared in manifest file.
* Add multiple engine workers
* New operator *is* was added to MuranoPL. Now it is possible to
test if MuranoPL object is of particular type.
* Murano engine is now capable of caching packages on disk for
reuse. This is controlled by *packages_cache* directory path and
*enable_packages_cache* boolean parameter (true by default). The
packages are cached in a eventlet/inter-process safe manner and are
cleaned up as soon as newer version of the package becomes available
(unless it's used by ongoing deployment)
* Added public field to environment templates. GET method for api
now displays public templates from other projects(tenants).
* Added public filter to environment templates api.
* Added clone action to environment templates.
* Basic reflection capabilities were added to MuranoPL. Now it is
possible to get type info with typeinfo() function and using it as a
starting point obtain information about the class, its methods and
properties as well as the package of the class. Reflected properties
can be used to obtain or set its value in a given object or invoke
its method.
* Static methods and properties were introduced. Both properties and
methods can be marked as Usage: Static Statics can be accessed using
ns:Class.property / ns:Class.method(), :Class.property /
:Class.method() to access class from current namespace or
type('full.name').property / type('full.name').method() to use full
type name.
* io.murano.configuration.Linux methods are now static
* Heat stacks created by murano during environment deployment now
have 'murano' tag by default. This is controlled by "stack_tags"
config parameter.
* Murano was migrated to yaql 1.1
* New format MuranoPL/1.3 can be specified in manifest files.
MuranoPL/1.3 is identical to MuranoPL/1.2 but except for the fact
that MuranoPL/1.3 packages cannot be imported to earlier Murano
versions. Thus applications that use new features of yaql 1.1 should
use this format version.
Known Issues
************
* Enabling multiple workers might break workflows under BSD and
Windows systems
Upgrade Notes
*************
* When updating to Mitaka, the operator should update service name
and type for endpoint in keystone from "application_catalog" to
"application-catalog" if SQL is used for catalog back-end driver.
Bug Fixes
*********
* Murano is now able to work with keystone configured to use a
templated catalog.
* It was impossible to explicitly provide attribute owner class to
getAttr/setAttr methods without using namespace prefix or if the
type was not from the core library.
* Murano is now able to assign correct floating IPs when using
multiple external networks. It attempts to choose one that shares a
router with internal network.
* Avoid race condition during parallel upload of packages, when
packages have same tags.
* Fixed incorrect murano behaviour if deployed on devstack with
keystone v3 by default.
* RequestContext now serialises it's roles. This should allow murano
to work correctly (and allow rules like "role:xxx" in policy.json)
when using oslo.context prior to 2.2.0 and oslo.policy
Changes in murano 2.0.0.0rc2..2.0.0
-----------------------------------
579731a Destroy orphan objects
f2b8c28 Don't use bash eval for Linux.runCommand
Diffstat (except docs and test files)
-------------------------------------
meta/io.murano/Resources/RunCommand.template | 15 ++++++-----
meta/io.murano/Resources/scripts/runCommand.sh | 14 ----------
murano/common/engine.py | 7 ++++-
murano/dsl/executor.py | 37 ++++++++++++++++++++------
murano/dsl/object_store.py | 6 +++++
murano/dsl/serializer.py | 5 ++--
murano/engine/system/agent.py | 12 +++++----
8 files changed, 60 insertions(+), 38 deletions(-)
More information about the OpenStack-announce
mailing list