Ocata Series Release Notes
- Since Newton release, heat is available as a devstack plugin. So we remove heat as enable_service in devstack.
- It is now possible to configure the notifications to use a different transport URL than the RPCs. These could potentially be completely different message broker hosts (though they doesn’t need to be). If the notification-specific configuration is not provided, the notifier will use the same transport as the RPCs.
- It is now possible to make a GET request to ‘/deployments’ endpoint. This will result in deployments for all environments in a specific project (tenant) being returned.
- /environments/ENV_ID/model/PATH endpoint added. GET request responds with the subsection of ENV_ID’s object model located in its PATH. PATCH request applies json-patch from request body to ENV_ID’s model. It does not contain PATH in the URL.
- New on-request garbage collector for MuranoPL objects were implemented. Garbage collection is triggered by io.murano.system.GC.collect() static method. Garbage collector destroys all object that are not reachable anymore. GC can handle objects with cross-references and isolated object graphs. When portion of object model becomes not reachable it destroyed in predictable order such that child objects get destroyed before their parents and, when possible, before objects that are subscribed to their destruction notifications.
- Internally, both pre-deployment garbage collection (that was done by comparison of
ObjectsCopy) and post-deployment orphan object collection are now done through the new GC.
- io.murano.system.HeatStack.push can be called with async => true flag for asynchronous push
- “List Environments” API call is now able to filter environments by an owner project (tenant).
- Added a MetadataAware mixin class capable to retrieve the metadata attributes from the implementing objects and all its parents.
- Added a
metadata() yaql function to retrieve the meta information about the object, stored in the ”?/metadata” section of object model.
- Previously, when pre-deployment garbage collection occurred it executed
.destroy method for objects that were present in the
ObjectsCopy section of the object model (which is 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
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.
- Added classes that represent OpenStack user and project
- Added ability to retrieve current user and project info
- Added ability to retrieve environment owner user and project info
- If a VM being a part of some shared-ip group is attached to the network which is not owned by the current tenant (shared network) a policy violation may occur thus failing the deployment.
- added default rules to NeutronSecurityGroupManager to avoid error if createDefaultInstanceSecurityGroupRules() method isn’t extended in inheritor and SecurityGroups isn’t created in application with call of addGroupIngress() method.
- Now admin can delete user’s environments.
- It is now possible to make a PUT request with body equal to ‘’ to ‘/environments/<env_id>/services’ endpoint. This will result in removing all apps from current session. This allows deleting the last application from environment from CLI.
- Fixed ‘io.murano.SharedIp’ class to properly wotk in muti-region environments.
- Previously Cinder Volumes created in MuranoPL were not released correctly on object destruction. The issue is now fixed.
- Murano no longer specifies fixed-ip parameter for ports when creating VMs attached to networks owned and shared by other tenants. Specifying this parameter for non-owned networks could cause violation of neutron policies.
- It is now possible to use version specifications like ‘=0.0.0’ when
semantic_version library version ‘2.3.1’ is installed. Previously such specifications caused an error and ‘==0.0.0’ had to be used.
- Bumped the RUNTIME_VERSION attribute to 1.5