Jump to: navigation, search

Difference between revisions of "Murano/Specifications/Per Tenant Isolation"

(Per-Tenant Isolation (for Murano-v0.4))
 
(7 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
==Introduction==
 
==Introduction==
 
[https://wiki.openstack.org/wiki/Murano/SimplifiedMetadataRepository Murano Metadata Repository]  Server was introduced in Murano-v0.4 release.
 
[https://wiki.openstack.org/wiki/Murano/SimplifiedMetadataRepository Murano Metadata Repository]  Server was introduced in Murano-v0.4 release.
But there is no restrictions: any user is able to edit any service definition or file. To prevent this behavior new per-tenant isolation feature would be added to Murano-v0.4.1 release.
+
But there are no access restrictions: any user is able to edit any service definition or file. To prevent this behavior new per-tenant isolation feature will be added to Murano-v0.4.1 release.
  
 
==Details==
 
==Details==
In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside "Servicies" derectory along with manifests files (service definitions). Since Metadata Server works on file system, the best solution for data isolation would be dividing data into separate folders.  
+
In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside '"Services'" directory along with manifest files (service definitions). Since Metadata Server stores data on a file system, the best solution for data isolation would be dividing data into separate folders.  
  
 
===Directory structure===
 
===Directory structure===
 +
* Common folder
 +
This initial data for all common servicies. It will contain all shared resources. The contents of this folder will be non-editable from UI. There will be only one way to modify it - by copying files directly to the '''Common''' folder (''Note: files should be copied to the correct place and all client and server caches should be cleaned''). Folder content will be copied to tenant folders.
 +
 
* Tenant folders
 
* Tenant folders
Separate folder named by tenant_id for an each tenant will created. Users belong to the same tenant will have equal rights on file modification. This folder should be created on first uploading request.
+
Separate folder named by tenant_id for an each tenant will be created. Users belonging to the same tenant will have equal rights on file modification. This folder should be created on the first uploading request and filled with data from  '''Common''' folder. All modification will be held in tenant's folders.
 
 
* Common folder
 
Except tenant folders on the main level there will be "Common" folder that contains all shared resources. This folder will be non-editable. There will be only one way to edit it - by copying files directly to the "Common" folder (''Note: files should be copied to the correct place and all client and server cache should be cleaned''). In case where name of file from tenant folder will coincide with name of file from the "Common" - file from tenant folder will be used.
 
  
 
===Client Cache Structure===
 
===Client Cache Structure===
 
* Murano Conductor cache organizations will stay the same - it has per-task isolation, so diffirent task will execute in a different tenant.
 
* Murano Conductor cache organizations will stay the same - it has per-task isolation, so diffirent task will execute in a different tenant.
* Murano Dashbord cache should be organized by tenants: one folder with tenant name stores separate cache.
+
* Murano Dashbord cache should be organized by tenants: for each tenant there will be a separate tenant_id folder with cache for that tenant.
 
 
===Import and Export ===
 
Shared services should be exportable. And it should be an opportunity to import new service to tenant-only environment.
 
 
 
  
 
==UI Changes==
 
==UI Changes==
In Murano Dashboard only minor changes should be made.  
+
In Murano Dashboard only minor changes should be made. For each tenant separate folder for storing cache will be created.
During table rendering in "Service Definitions" section all shared servicies and files that are stored in "Common" folder will have no permitions to modify or delete.
 
In case of name coincidence of common and tenant files common service would be invalid.
 

Latest revision as of 17:40, 14 January 2014

Per-Tenant Isolation (for Murano-v0.4)

Introduction

Murano Metadata Repository Server was introduced in Murano-v0.4 release. But there are no access restrictions: any user is able to edit any service definition or file. To prevent this behavior new per-tenant isolation feature will be added to Murano-v0.4.1 release.

Details

In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside '"Services'" directory along with manifest files (service definitions). Since Metadata Server stores data on a file system, the best solution for data isolation would be dividing data into separate folders.

Directory structure

  • Common folder

This initial data for all common servicies. It will contain all shared resources. The contents of this folder will be non-editable from UI. There will be only one way to modify it - by copying files directly to the Common folder (Note: files should be copied to the correct place and all client and server caches should be cleaned). Folder content will be copied to tenant folders.

  • Tenant folders

Separate folder named by tenant_id for an each tenant will be created. Users belonging to the same tenant will have equal rights on file modification. This folder should be created on the first uploading request and filled with data from Common folder. All modification will be held in tenant's folders.

Client Cache Structure

  • Murano Conductor cache organizations will stay the same - it has per-task isolation, so diffirent task will execute in a different tenant.
  • Murano Dashbord cache should be organized by tenants: for each tenant there will be a separate tenant_id folder with cache for that tenant.

UI Changes

In Murano Dashboard only minor changes should be made. For each tenant separate folder for storing cache will be created.