Commit 1c47a391 authored by Dimitrios Giannopoulos's avatar Dimitrios Giannopoulos
Browse files

Deployed 467173f8 to develop in public with MkDocs 1.6.0 and mike 2.1.2

parent b3d06413
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -1182,6 +1182,15 @@
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#how-is-it-possible-to-intervene-in-the-workflow-process-and-affect-it" class="md-nav__link">
    <span class="md-ellipsis">
      How is it possible to intervene in the workflow process and affect it?
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
@@ -2715,6 +2724,15 @@
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#how-is-it-possible-to-intervene-in-the-workflow-process-and-affect-it" class="md-nav__link">
    <span class="md-ellipsis">
      How is it possible to intervene in the workflow process and affect it?
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
@@ -2757,7 +2775,7 @@
<p>So in the system there are already predefined recipes, which in each process-step of the workflow some piece of code is executed. </p>
<p>How is it possible to intervene in the workflow process and inject some user defined actions? The next image illustrates the idea</p>
<p><a href="../lcm/img02.png"><img alt="lcm" src="../lcm/img02.png" /></a></p>
<p>## How is it possible to intervene in the workflow process and affect it?</p>
<h2 id="how-is-it-possible-to-intervene-in-the-workflow-process-and-affect-it">How is it possible to intervene in the workflow process and affect it?</h2>
<p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are the following types of rules defined:</p>
<ul>
<li>PRE_PROVISION</li>
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+208 −3
Original line number Diff line number Diff line
@@ -75,6 +75,11 @@
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#examples-of-rules" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
@@ -1662,6 +1667,19 @@
      
      
        
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          
  
  <span class="md-ellipsis">
    Typical Examples
  </span>
  

          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        
  
@@ -1672,6 +1690,79 @@

      </a>
      
        

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#define-variables-according-to-cases" class="md-nav__link">
    <span class="md-ellipsis">
      Define variables according to cases
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-rules-to-create-a-resource-for-a-kubernetes-operator" class="md-nav__link">
    <span class="md-ellipsis">
      Define Rules to create a resource for a Kubernetes Operator
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-complex-osm-configs-for-day-0" class="md-nav__link">
    <span class="md-ellipsis">
      Define complex OSM configs for DAY 0
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-and-instantiate-different-services-according-to-service-order-request" class="md-nav__link">
    <span class="md-ellipsis">
      Define and instantiate different services according to Service Order request
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#call-an-external-restful-service" class="md-nav__link">
    <span class="md-ellipsis">
      Call an external RESTful service
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#create-new-service-orders" class="md-nav__link">
    <span class="md-ellipsis">
      Create New Service Orders
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

@@ -2636,6 +2727,70 @@
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#define-variables-according-to-cases" class="md-nav__link">
    <span class="md-ellipsis">
      Define variables according to cases
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-rules-to-create-a-resource-for-a-kubernetes-operator" class="md-nav__link">
    <span class="md-ellipsis">
      Define Rules to create a resource for a Kubernetes Operator
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-complex-osm-configs-for-day-0" class="md-nav__link">
    <span class="md-ellipsis">
      Define complex OSM configs for DAY 0
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#define-and-instantiate-different-services-according-to-service-order-request" class="md-nav__link">
    <span class="md-ellipsis">
      Define and instantiate different services according to Service Order request
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#call-an-external-restful-service" class="md-nav__link">
    <span class="md-ellipsis">
      Call an external RESTful service
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#create-new-service-orders" class="md-nav__link">
    <span class="md-ellipsis">
      Create New Service Orders
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
@@ -2649,9 +2804,59 @@
                  


  <h1>Typical Examples</h1>


<h1 id="examples-of-rules">Examples of Rules</h1>
<p>The following images provide some examples of rules.</p>
<h3 id="define-variables-according-to-cases">Define variables according to cases</h3>
<p>In the following example we :</p>
<ul>
<li>define a String variable. </li>
<li>Then according to the Area of Service selected from the Service Order of the Service Specification we need to define it properly.</li>
<li>We output the value to the OSOM Log</li>
<li>Define dynamically the value of another parameter (This is fictional) and then do some other condition check</li>
</ul>
<p>The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells.</p>
<p><a href="../images/lcm/lcmfig9.png"><img alt="lcmrules" src="../images/lcm/lcmfig9.png" /></a></p>
<h3 id="define-rules-to-create-a-resource-for-a-kubernetes-operator">Define Rules to create a resource for a Kubernetes Operator</h3>
<ul>
<li>Modify the _CR_SPEC characteristic</li>
<li>Add an "Input with variables block"</li>
<li>Add a multiline Text block</li>
<li>Mark with %s, %d, etc the parameters to modify with some action</li>
<li>Add a list with the variables and their values</li>
</ul>
<p>in the example we modify a YAML spec with parama, paramb, action values from the characteristics spec.parama, spec.paramb, spec.action</p>
<p><a href="../images/lcm/lcmfig15.png"><img alt="lcmrules" src="../images/lcm/lcmfig15.png" /></a></p>
<h3 id="define-complex-osm-configs-for-day-0">Define complex OSM configs for DAY 0</h3>
<p>The following displays some complex examples for defining the parameters to pass to the NFV. In this case is OSM.</p>
<ul>
<li>
<p>NOTE: The OSM_CONFIG characteristic of a service is the one that it is used in orchestration to instantiate NS from OSM</p>
</li>
<li>
<p>check the variable strTargetsParam. It is passed to the variable strOsmConfig3 which is executed if the Number of Cameras is more than 100. </p>
</li>
<li>if the Video quality requested is 3, then the Maximum Namber of camers will be 8. Check the OSM detailed configuration block and its syntax.</li>
<li>if the Video quality requested is 2, we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We just injected a json text ( watch the Escape of the string for the Quotes!)</li>
<li>if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later</li>
</ul>
<p><a href="../images/lcm/lcmfig10.png"><img alt="lcmrules" src="../images/lcm/lcmfig10.png" /></a></p>
<h3 id="define-and-instantiate-different-services-according-to-service-order-request">Define and instantiate different services according to Service Order request</h3>
<p>In the following example we would like to offer a service either as Platinum, Gold or Silver. Depending on the selection we need to instantiate different services.</p>
<p>There are different ways to accomplish this:</p>
<ul>
<li>create dynamically New Service Orders of RFSs with equivalent quality of Services</li>
<li>change for example the VIMs that you deploy the NS</li>
<li>change the NSD (that is use different VNFs)</li>
</ul>
<p>The following image displays for example the latter case.</p>
<p><a href="../images/lcm/lcmfig11.png"><img alt="lcmrules" src="../images/lcm/lcmfig11.png" /></a></p>
<h3 id="call-an-external-restful-service">Call an external RESTful service</h3>
<p>This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service)</p>
<p><a href="../images/lcm/lcmfig12.png"><img alt="lcmrules" src="../images/lcm/lcmfig12.png" /></a></p>
<p><a href="../images/lcm/lcmfig13.png"><img alt="lcmrules" src="../images/lcm/lcmfig13.png" /></a></p>
<h3 id="create-new-service-orders">Create New Service Orders</h3>
<p>The following example calls to Order a New Service Specification with specific Parameter Values</p>
<p><a href="../images/lcm/lcmfig14.png"><img alt="lcmrules" src="../images/lcm/lcmfig14.png" /></a></p>



+285 KiB
Loading image diff...
+1 −8
Original line number Diff line number Diff line
@@ -3010,14 +3010,7 @@
<li>On the right side the user can define some rule properties or observe the underlying generated java code.</li>
</ul>
<h2 id="the-blocks-library">The blocks library</h2>
<p>The following images describe some blocks found in the library.</p>
<p>Blockly has syntax rules. It helps with colours to define them. </p>
<p>So for example a parameter that is a Number cannot be "glued" with a String. Will need some conversion first</p>
<p><a href="../images/lcm/lcmfig4.png"><img alt="lcmrules" src="../images/lcm/lcmfig4.png" /></a>
<a href="../images/lcm/lcmfig5.png"><img alt="lcmrules" src="../images/lcm/lcmfig5.png" /></a>
<a href="../images/lcm/lcmfig6.png"><img alt="lcmrules" src="../images/lcm/lcmfig6.png" /></a>
<a href="../images/lcm/lcmfig7.png"><img alt="lcmrules" src="../images/lcm/lcmfig7.png" /></a>
<a href="../images/lcm/lcmfig8.png"><img alt="lcmrules" src="../images/lcm/lcmfig8.png" /></a></p>
<p>See our <a href="../specification/">LCM Blocks specification</a></p>
<h2 id="examples-of-rules">Examples of Rules</h2>
<p>The following images provide some examples of rules.</p>
<h3 id="define-variables-according-to-cases">define variables according to cases</h3>
Loading