summaryrefslogtreecommitdiffstats
path: root/docs/design/usecases.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design/usecases.rst')
-rw-r--r--docs/design/usecases.rst156
1 files changed, 78 insertions, 78 deletions
diff --git a/docs/design/usecases.rst b/docs/design/usecases.rst
index ca37e13..91b616c 100644
--- a/docs/design/usecases.rst
+++ b/docs/design/usecases.rst
@@ -18,26 +18,26 @@ As implemented by OpenStack Heat using server groups:
.. code::
- resources:
- servgrp1:
- type: OS::Nova::ServerGroup
- properties:
- policies:
- - affinity
- serv1:
- type: OS::Nova::Server
- properties:
- image: { get_param: image }
- flavor: { get_param: flavor }
- networks:
- - network: {get_param: network}
- serv2:
- type: OS::Nova::Server
- properties:
- image: { get_param: image }
- flavor: { get_param: flavor }
- networks:
- - network: {get_param: network}
+ resources:
+ servgrp1:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies:
+ - affinity
+ serv1:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ networks:
+ - network: {get_param: network}
+ serv2:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ networks:
+ - network: {get_param: network}
Anti-Affinity
.............
@@ -50,34 +50,34 @@ As implemented by OpenStack Heat using scheduler hints:
.. code::
- heat template version: 2013-05-23
- parameters:
- image:
- type: string
- default: TestVM
- flavor:
- type: string
- default: m1.micro
- network:
- type: string
- default: cirros_net2
- resources:
- serv1:
- type: OS::Nova::Server
- properties:
- image: { get_param: image }
- flavor: { get_param: flavor }
- networks:
- - network: {get_param: network}
- scheduler_hints: {different_host: {get_resource: serv2}}
- serv2:
- type: OS::Nova::Server
- properties:
- image: { get_param: image }
- flavor: { get_param: flavor }
- networks:
- - network: {get_param: network}
- scheduler_hints: {different_host: {get_resource: serv1}}
+ heat template version: 2013-05-23
+ parameters:
+ image:
+ type: string
+ default: TestVM
+ flavor:
+ type: string
+ default: m1.micro
+ network:
+ type: string
+ default: cirros_net2
+ resources:
+ serv1:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ networks:
+ - network: {get_param: network}
+ scheduler_hints: {different_host: {get_resource: serv2}}
+ serv2:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ networks:
+ - network: {get_param: network}
+ scheduler_hints: {different_host: {get_resource: serv1}}
DMZ Deployment
..............
@@ -108,47 +108,47 @@ This use case captures the intent of the following sub-use-cases:
* Unauthorized Link Mirroring Prevention: As a NFVaaS tenant, I need to be able to prevent other tenants from mirroring traffic on my virtual network ports so that I can protect the privacy of my service users.
* Link Mirroring Delegation: As a NFVaaS tenant, I need to be able to allow my NFVaaS SP customer support to mirror traffic on my virtual network ports so that they can assist in investigating trouble reports.
-As implemented through OpenStack Congress:
+As implemented through OpenStack Congress:
*Note: untested example...*
-.. code::
+.. code::
- error :-
- nova:vm(vm),
- neutron:network(network),
- nova:network(vm, network),
- neutron:private(network),
- nova:owner(vm, vm-own),
- neutron:owner(network, net-own),
+ error :-
+ nova:vm(vm),
+ neutron:network(network),
+ nova:network(vm, network),
+ neutron:private(network),
+ nova:owner(vm, vm-own),
+ neutron:owner(network, net-own),
-same-group(vm-own, net-own)
-
- same-group(user1, user2) :-
- ldap:group(user1, g),
+
+ same-group(user1, user2) :-
+ ldap:group(user1, g),
ldap:group(user2, g)
-
+
Storage Access Control
......................
Storage resources connected to VMs must be owned by someone in the VM owner's group.
-As implemented through OpenStack Congress:
+As implemented through OpenStack Congress:
*Note: untested example...*
-.. code::
+.. code::
- error :-
- nova:vm(vm),
- cinder:volumes(volume),
- nova:volume(vm, volume),
- nova:owner(vm, vm-own),
- neutron:owner(volume, vol-own),
+ error :-
+ nova:vm(vm),
+ cinder:volumes(volume),
+ nova:volume(vm, volume),
+ nova:owner(vm, vm-own),
+ neutron:owner(volume, vol-own),
-same-group(vm-own, vol-own)
-
- same-group(user1, user2) :-
- ldap:group(user1, g),
+
+ same-group(user1, user2) :-
+ ldap:group(user1, g),
ldap:group(user2, g)
Resource Management
@@ -157,11 +157,11 @@ Resource Management
Resource Reclamation
....................
-As a service provider or tenant, I need to be informed of VMs that are under-utilized so that I can reclaim the VI resources. (example from `RuleYourCloud blog <http://ruleyourcloud.com/2015/03/12/scaling-up-congress.html>`_)
+As a service provider or tenant, I need to be informed of VMs that are under-utilized so that I can reclaim the VI resources. (example from `RuleYourCloud blog <http://ruleyourcloud.com/2015/03/12/scaling-up-congress.html>`_)
-As implemented through OpenStack Congress:
+As implemented through OpenStack Congress:
-.. code::
+.. code::
reclaim_server(vm) :-
ceilometer:stats("cpu_util",vm, avg_cpu),
@@ -175,11 +175,11 @@ As implemented through OpenStack Congress:
Resource Use Limits
...................
-As a tenant or service provider, I need to be automatically terminate an instance that has run for a pre-agreed maximum duration.
+As a tenant or service provider, I need to be automatically terminate an instance that has run for a pre-agreed maximum duration.
-As implemented through OpenStack Congress:
+As implemented through OpenStack Congress:
-.. code::
+.. code::
terminate_server(vm) :-
ceilometer:statistics("duration",vm, avg_cpu),