Remove references to Apex-PCVS Examples 66/134066/1
authoradheli.tavares <adheli.tavares@est.tech>
Tue, 11 Apr 2023 13:07:08 +0000 (14:07 +0100)
committeradheli.tavares <adheli.tavares@est.tech>
Tue, 11 Apr 2023 13:08:33 +0000 (14:08 +0100)
Issue-ID: POLICY-4640
Change-Id: I2d64a082f2990e8ee35fc9627555fd090ab34c84
Signed-off-by: adheli.tavares <adheli.tavares@est.tech>
docs/apex/APEX-PCVS-Example.rst [deleted file]
docs/apex/APEX-Policy-Examples.rst
docs/apex/images/pcvs/vpnsla-arch.png [deleted file]

diff --git a/docs/apex/APEX-PCVS-Example.rst b/docs/apex/APEX-PCVS-Example.rst
deleted file mode 100644 (file)
index 380a258..0000000
+++ /dev/null
@@ -1,916 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-.. _apex-PCVSExample:
-
-Policy-controlled Video Streaming (pcvs) with APEX
-**************************************************
-
-.. contents::
-    :depth: 3
-
-Introduction
-^^^^^^^^^^^^
-
-      .. container:: sectionbody
-
-           .. container:: paragraph
-
-              This module contains several demos for
-              Policy-controlled Video Streaming (PCVS). Each demo
-              defines a policy using AVRO and Javascript (or other
-              scripting languages for the policy logic). To run the
-              demo, a vanilla Ubuntu server with some extra software packages is required:
-
-               .. container:: ulist
-
-                  -  Mininet as network simulator
-
-                  -  Floodlight as SDN controller
-
-                  -  Kafka as messaging system
-
-                  -  Zookeeper for Kafka configuration
-
-                  -  APEX for policy control
-
-Install Ubuntu Server and SW
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-          .. container:: sect1
-
-            .. rubric:: Install Demo
-               :name: install_demo
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  Requirements:
-
-               .. container:: ulist
-
-                  -  Ubuntu server: 1.4 GB
-
-                  -  Ubuntu with Xubuntu Desktop, git, Firefox: 2.3 GB
-
-                  -  Ubuntu with all, system updated: 3 GB
-
-                  -  With ZK, Kafka, VLC, Mininet, Floodlight, Python:
-                     4.4 GB
-
-                  -  APEX Build (M2 and built): M2 ~ 2 GB, APEX ~3.5 GB
-
-                  -  APEX install (not build locally): ~ 300 MB
-
-               .. container:: paragraph
-
-                  On a Ubuntu OS (install a stable or LTS server first)
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        # pre for Ubuntu, tools and X
-                        sudo apt-get  -y install --no-install-recommends software-properties-common
-                        sudo apt-get  -y install --no-install-recommends build-essential
-                        sudo apt-get  -y install --no-install-recommends git
-                        sudo aptitude -y install --no-install-recommends xubuntu-desktop
-                        sudo apt-get  -y install --no-install-recommends firefox
-
-
-                        # install Java
-                        sudo add-apt-repository ppa:webupd8team/java
-                        sudo apt-get update
-                        sudo apt-get -y install --no-install-recommends oracle-java8-installer
-                        java -version
-
-
-                        # reboot system, run system update, then continue
-
-                        # if VBox additions are needed, install and reboot
-                        sudo (cd /usr/local/share; wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.7-120528.iso)
-                        sudo mount /usr/local/share/VBoxGuestAdditions_5.2.7-120528.iso /media/cdrom
-                        sudo (cd /media/cdrom;VBoxLinuxAdditions.run)
-
-
-                        # update apt-get DB
-                        sudo apt-get update
-
-                        # if APEX is build from source, install maven and rpm
-                        sudo apt-get install maven rpm
-
-                        # install ZooKeeper
-                        sudo apt-get install zookeeperd
-
-                        # install Kafka
-                        (cd /tmp;wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/1.0.0/kafka_2.12-1.0.0.tgz --show-progress)
-                        sudo mkdir /opt/Kafka
-                        sudo tar -xvf /tmp/kafka_2.12-1.0.0.tgz -C /opt/Kafka/
-
-                        # install mininet
-                        cd /usr/local/src
-                        sudo git clone https://github.com/mininet/mininet.git
-                        (cd mininet;util/install.sh -a)
-
-                        # install floodlight, requires ant
-                        sudo apt-get install ant
-                        cd /usr/local/src
-                        sudo wget --no-check-certificate https://github.com/floodlight/floodlight/archive/master.zip
-                        sudo unzip master.zip
-                        cd floodlight-master
-                        sudo ant
-                        sudo mkdir /var/lib/floodlight
-                        sudo chmod 777 /var/lib/floodlight
-
-                        # install python pip
-                        sudo apt-get install python-pip
-
-                        # install kafka-python (need newer version from github)
-                        cd /usr/local/src
-                        sudo git clone https://github.com/dpkp/kafka-python
-                        sudo pip install ./kafka-python
-
-                        # install vlc
-                        sudo apt-get install vlc
-
-               .. container:: paragraph
-
-                  Install APEX either from source or from a distribution
-                  package. See the APEX documentation for details. We
-                  assume that APEX is installed in
-                  ``/opt/ericsson/apex/apex``
-
-               .. container:: paragraph
-
-                  Copy the LinkMonitor file to Kafka-Python
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        sudo cp /opt/ericsson/apex/apex/examples/scripts/pcvs/vpnsla/LinkMonitor.py /usr/local/src/kafka-python
-
-               .. container:: paragraph
-
-                  Change the Logback configuration in APEX to logic
-                  logging
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        (cd /opt/ericsson/apex/apex/etc; sudo cp logback-logic.xml logback.xml)
-
-         .. container:: sect1
-
-            .. rubric:: Get the Demo Video
-               :name: get_the_demo_video
-
-            .. container:: sectionbody
-
-               .. container:: ulist
-
-                  -  For all download options of the movie please visit
-                     http://bbb3d.renderfarming.net/download.html
-
-                  -  For lower-res downloads and mirrors see
-                     https://peach.blender.org/download
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        sudo mkdir /usr/local/src/videos
-
-               .. container:: paragraph
-
-                  Standard 720p (recommended)
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        (cd /usr/local/src/videos; sudo curl -o big_buck_bunny_480p_surround.avi http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi)
-
-               .. container:: paragraph
-
-                  Full HD video
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     ::
-
-                        (cd videos; sudo curl -o bbb_sunflower_1080p_60fps_normal.mp4 http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4)
-
-
-
-VPN SLA Demo
-^^^^^^^^^^^^
-
-          .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  This demo uses a network with several central office
-                  and core switches, over which two VPNs are run. A
-                  customer ``A`` has two location ``A1`` and ``A2`` and
-                  a VPN between them. A customer ``B`` has two location
-                  ``B1`` and ``B2`` and a VPN between them.
-
-               .. container:: imageblock
-
-                  .. container:: content
-
-                     |VPN SLA Architecture|
-
-               .. container:: paragraph
-
-                  The architecture above shows the scenario. The
-                  components are realized in this demo as follows:
-
-               .. container:: ulist
-
-                  -  *CEP / Analytics* - a simple Python script taking
-                     events from Kafka and sending them to APEX
-
-                  -  *APEX / Policy* - the APEX engine running the VPA
-                     SLA policy
-
-                  -  *Controller* - A vanilla Floodlight controller
-                     taking events from the Link Monitor and configuring
-                     Mininet
-
-                  -  *Network* - A network created using Mininet
-
-               .. container:: paragraph
-
-                  The demo requires to start some software (detailed
-                  below). To show actual video streams, we use ``VLC``.
-                  If you do not want to show video streams, but only the
-                  policy, skip the ``VLC`` section.
-
-               .. container:: paragraph
-
-                  All shown scripts are available in a full APEX
-                  installation in
-                  ``$APEX_HOME/examples/scripts/pcvs/vpnsla``.
-
-               .. container:: sect2
-
-                  .. rubric:: Start all Software
-                     :name: start_all_software
-
-                  .. container:: paragraph
-
-                     Create environment variables in a file, say
-                     ``env.sh``. In each new Xterm
-
-                  .. container:: ulist
-
-                     -  Source these environment settings, e.g.
-                        ``. ./env.sh``
-
-                     -  Run the commands below as root (``sudo`` per
-                        command or ``sudo -i`` for interactive mode as
-                        shown below)
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           #!/usr/bin/env bash
-
-                           export src_dir=/usr/local/src
-                           export APEX_HOME=/opt/ericsson/apex/apex
-                           export APEX_USER=apexuser
-
-                  .. container:: paragraph
-
-                     In a new Xterm, start Floodlight
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           sudo -i
-                           . ./env.sh
-                           cd $src_dir/floodlight-master && java -jar target/floodlight.jar
-
-                  .. container:: paragraph
-
-                     In a new Xterm start Mininet
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           sudo -i
-                           . ./env.sh
-                           mn -c && python $APEX_HOME/examples/scripts/pcvs/vpnsla/MininetTopology.py
-
-                  .. container:: paragraph
-
-                     In a new Xterm, start Kafka
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           sudo -i
-                           . ./env.sh
-                           /opt/Kafka/kafka_2.12-1.0.0/bin/kafka-server-start.sh /opt/Kafka/kafka_2.12-1.0.0/config/server.properties
-
-                  .. container:: paragraph
-
-                     In a new Xerm start APEX with the Kafka
-                     configuration for this demo
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           cd $APEX_HOME
-                           ./bin/apexApps.sh engine -c examples/config/pcvs/vpnsla/kafka2kafka.json
-
-                  .. container:: paragraph
-
-                     In a new Xterm start the Link Monitor. The Link
-                     Monitor has a 30 second sleep to slow down the
-                     demonstration. So the first action of it comes 30
-                     seconds after start. Every new action in 30 second
-                     intervals.
-
-                  .. container:: listingblock
-
-                     .. container:: content
-
-                        ::
-
-                           sudo -i
-                           . ./env.sh
-                           cd $src_dir
-                           xterm -hold -e 'python3 $src_dir/kafka-python/LinkMonitor.py' &
-
-                  .. container:: paragraph
-
-                     Now all software should be started and the demo is
-                     running. The Link Monitor will send link up events,
-                     picked up by APEX which triggers the policy. Since
-                     there is no problem, the policy will do nothing.
-
-               .. container:: sect2
-
-                  .. rubric:: Create 2 Video Streams with VLC
-                     :name: create_2_video_streams_with_vlc
-
-                  .. container:: paragraph
-
-                     In the Mininet console, type ``xterm A1 A2`` and
-                     ``xterm B1 B2`` to open terminals on these nodes.
-
-                  .. container:: paragraph
-
-                     ``A2`` and ``B2`` are the receiving nodes. In these
-                     terminals, run ``vlc-wrapper``. In each opened VLC
-                     window do
-
-                  .. container:: ulist
-
-                     -  Click Media → Open Network Stream
-
-                     -  Give the URL as ``rtp://@:5004``
-
-                  .. container:: paragraph
-
-                     ``A1`` and ``B1`` are the sending nodes (sending
-                     the video stream) In these terminals, run
-                     ``vlc-wrapper``. In each opened VLC window do
-
-                  .. container:: ulist
-
-                     -  Click Media → Stream
-
-                     -  Add the video (from ``/usr/local/src/videos``)
-
-                     -  Click ``Stream``
-
-                     -  Click ``Next``
-
-                     -  Change the destination
-                        ``RTP / MPEG Transport Stream`` and click
-                        ``Add``
-
-                     -  Change the address and type to ``10.0.0.2`` in
-                        ``A1`` and to ``10.0.0.4`` in ``B1``
-
-                     -  Turn off ``Active Transcoding`` (this is
-                        important to minimize CPU load)
-
-                     -  Click ``Next``
-
-                     -  Click ``Stream``
-
-                  .. container:: paragraph
-
-                     The video should be streaming across the network
-                     from ``A1`` to ``A2`` and from ``B1`` to ``B2``. If
-                     the video streams a slow or interrupted the CPU
-                     load is too high. In these cases either try a
-                     better machine or use a different (lower quality)
-                     video stream.
-
-               .. container:: sect2
-
-                  .. rubric:: Take out L09 and let the Policy do it’s
-                     Magic
-                     :name: take_out_l09_and_let_the_policy_do_it_s_magic
-
-                  .. container:: paragraph
-
-                     Now it is time to take out the link ``L09``. This
-                     will be picked up by the Link Monitor, which sends
-                     a new event (L09 DOWN) to the policy. The policy
-                     then will calculate which customer should be
-                     impeded (throttled). This will continue, until SLAs
-                     are violated, then a priority calculation will kick
-                     in (Customer ``A`` is prioritized in the setup).
-
-                  .. container:: paragraph
-
-                     To initiate this, simply type ``link s5 s6 down``
-                     in the Mininet console followed by ``exit``.
-
-                  .. container:: paragraph
-
-                     If you have the video streams running, you will see
-                     one or the other struggeling, depending on the
-                     policy decision.
-
-               .. container:: sect2
-
-                  .. rubric:: Reset the Demo
-                     :name: reset_the_demo
-
-                  .. container:: paragraph
-
-                     If you want to reset the demo, simple stop (in this
-                     order) the following process
-
-                  .. container:: ulist
-
-                     -  Link Monitor
-
-                     -  APEX
-
-                     -  Mininet
-
-                     -  Floodlight
-
-                  .. container:: paragraph
-
-                     Then restart them in this order
-
-                  .. container:: ulist
-
-                     -  Floodlight
-
-                     -  Mininet
-
-                     -  APEX
-
-                     -  Link Monitor
-
-               .. container:: sect2
-
-                  .. rubric:: Monitor the Demo
-                     :name: monitor_the_demo
-
-                  .. container:: paragraph
-
-                     Floodlight and APEX provide REST interfaces for
-                     monitoring.
-
-                  .. container:: ulist
-
-                     -  Floodlight: see `Floodlight
-                        Docs <https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/40403023/Web+GUI>`__
-                        for details on how to access the monitoring. In
-                        a standard installation as we use here, pointing
-                        browser to the URL
-                        ``http://localhost:8080/ui/pages/index.html``
-                        should work on the same host
-
-VPN SLA Policy
-^^^^^^^^^^^^^^
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The VPN SLA policy is designed as a MEDA policy. The
-                  first state (M = Match) takes the trigger event (a
-                  link up or down) and checks if this is a change to the
-                  known topology. The second state (E = Establish) takes
-                  all available information (trigger event, local
-                  context) and defines what situation we have. The third
-                  state (D = Decide) takes the situation and selects
-                  which algorithm is best to process it. This state can
-                  select between ``none`` (nothing to do), ``solved`` (a
-                  problem is solved now), ``sla`` (compare the current
-                  customer SLA situation and select one to impede), and
-                  ``priority`` (impede non-priority customers). The
-                  fourth and final state (A = Act) selects the right
-                  action for the taken decision and creates the response
-                  event sent to the orchestrator.
-
-               .. container:: paragraph
-
-                  We have added three more policies to set the local
-                  context: one for adding nodes, one for adding edges
-                  (links), and one for adding customers. These policies
-                  do not realize any action, they are only here for
-                  updating the local context. This mechanism is the
-                  fasted way to update local context, and it is
-                  independent of any context plugin.
-
-               .. container:: paragraph
-
-                  The policy uses data defined in Avro, so we have a
-                  number of Avro schema definitions.
-
-Context Schemas
----------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The context schemas are for the local context. We
-                  model edges and nodes for the topology, customers, and
-                  problems with all information on detected problems.
-
-                  .. container:: ulist
-
-                     -  |avroSchemaEdges_link|
-                     -  |avroSchemaNodes_link|
-                     -  |avroSchemaCustomers_link|
-
-
-Trigger Schemas
----------------
-
-        .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The trigger event provides a status as ``UP`` or
-                  ``DOWN``. To avoid tests for these strings in the
-                  logic, we defined an Avro schema for an enumeration (|avroSchemaLinkStatus_link|).
-                  This does not impact the trigger system (it can still
-                  send the strings), but makes the task logic simpler.
-
-
-
-Context Logic Nodes
--------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The node context logic simply takes the trigger event
-                  (for context) and creates a new node in the local
-                  context topology (|cntxtNodes_link|).
-
-Context Logic Edges
--------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The edge context logic simply takes the trigger event
-                  (for context) and creates a new edge in the local
-                  context topology (|cntxtEdges_link|).
-
-
-Context Logic Customer
-----------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The customer context logic simply takes the trigger
-                  event (for context) and creates a new customer in the
-                  local context topology (|cntxtCustomer_link|).
-
-
-Logic: Match
-------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  This is the logic for the match state. It is kept very
-                  simple. Beside taking the trigger event, it also
-                  creates a timestamp. This timestamp is later used for
-                  SLA and downtime calculations as well as for some
-                  performance information of the policy .
-                  Sample |taskMatch_link|
-
-
-Logic: Policy Establish State
------------------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  This is the logic for the establish state. It is the
-                  most complicated logic, since establishing a situation
-                  for a decision is the most important part of any
-                  policy. First, the policy describes what we find (the
-                  switch block), in terms of 8 normal situations and 1
-                  extreme error case.
-
-               .. container:: paragraph
-
-                  If required, it creates local context information for
-                  the problem (if it is new) or updates it (if the
-                  problem still exists). It also calculates customer SLA
-                  downtime and checks for any SLA violations. Finally,
-                  it creates a situation object.
-                  Sample |taskEstablish_link|
-
-Logic: Policy Decide State
---------------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The decide state can select between different
-                  algorithms depending on the situation. So it needs a
-                  Task Selection Logic (TSL). This TSL select a task in
-                  the current policy execution (i.e. potentially a
-                  different one per execution).
-                  Sample |tslDecide_Link|
-
-               .. container:: paragraph
-
-                  The actual task logic are then ``none``, ``solved``,
-                  ``sla``, and ``priority``.
-                  Sample task logic are as given below :
-
-                  .. container:: ulist
-
-                     -  |taskDecideNone_link|
-                     -  |taskDecideSolved_Link|
-                     -  |taskDecideSla_link|
-                     -  |taskDecidePriority_Link|
-
-
-Logic: Policy Act State
------------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  This is the logic for the act state. It is simply
-                  selecting an action, and creating the repsonse event
-                  for the orchestrator (the output of the policy).
-                  Sample |taskAct_link|
-
-CLI Spec
---------
-
-         .. container:: sect1
-
-            .. rubric:: Complete Policy Definition
-               :name: complete_policy_definition
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The complete policy definition is realized using the
-                  APEX CLI Editor. The script below shows the actual
-                  policy specification. All logic and schemas are
-                  included (as macro file).
-                  Sample |vpnsla-apex_link|
-
-
-Context Events Nodes
---------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The following events create all nodes of the topology.
-
-                  .. container:: ulist
-
-                     -  |ctxtNodesJson_link|
-
-
-Context Events Edges
---------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The following events create all edges of the topology.
-
-                  .. container:: ulist
-
-                     -  |ctxtEdgesJson_link|
-
-
-Context Events Customers
-------------------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The following events create all customers of the topology.
-
-                  .. container:: ulist
-
-                     -  |ctxtCustomerJson_link|
-
-
-Trigger Examples
-----------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The following events are examples for trigger events
-
-                  .. container:: ulist
-
-                     -  |triggerEdgeJson_link|
-
-Link Monitor
-------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The Link Monitor is a Python script. At startup, it
-                  sends the context events to APEX to initialize the
-                  topology and the customers. Then it takes events from
-                  Kafka and sends them to APEX.
-                  Sample |linkMonitor_link|
-
-Mininet Topology
-----------------
-
-         .. container:: sect1
-
-            .. container:: sectionbody
-
-               .. container:: paragraph
-
-                  The topology is realized using Mininet. This
-                  script is used to establish the topology and to realize
-                  network configurations.
-                  Sample |mininetTopology_link|
-
-
-   .. container::
-      :name: footer-text
-
-      2.3.0-SNAPSHOT
-      Last updated 2020-04-03 16:04:24 IST
-
-
-.. |VPN SLA Architecture| image:: images/pcvs/vpnsla-arch.png
-
-.. |avroSchemaEdges_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/avro/topology-edges.avsc" target="_blank">AVRO Schema Edges</a>
-.. |avroSchemaNodes_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src//main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/avro/topology-nodes.avsc" target="_blank">AVRO Schema Nodes</a>
-.. |avroSchemaCustomers_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/avro/customers.avsc" target="_blank">AVRO Schema Customers</a>
-.. |avroSchemaLinkStatus_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/avro/link-status.avsc" target="_blank">AVRO Schema Link Status</a>
-.. |cntxtNodes_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/ctxt-nodes.js" target="_blank">Logic Node Context</a>
-.. |cntxtEdges_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/ctxt-edges.js" target="_blank">Logic Edge Context</a>
-.. |cntxtCustomer_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/ctxt-customer.js" target="_blank">Logic Customer Context</a>
-.. |taskMatch_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-match.js" target="_blank">Logic Policy Match State</a>
-.. |taskEstablish_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-establish.js" target="_blank">Logic Policy Establish State</a>
-.. |tslDecide_Link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/tsl-decide.js" target="_blank">JS Logic Policy Decide State - TSL</a>
-.. |taskDecideNone_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-decide-none.js" target="_blank">Logic: Decide None</a>
-.. |taskDecideSolved_Link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-decide-solved.js" target="_blank">Logic: Decide Solved</a>
-.. |taskDecideSla_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-decide-sla.js" target="_blank">Logic: Decide SLA</a>
-.. |taskDecidePriority_Link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-decide-priority.js" target="_blank">Logic: Decide Priority</a>
-.. |taskAct_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/logic/task-act.js" target="_blank">Logic Policy Act State</a>
-.. |vpnsla-apex_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/org/onap/policy/apex/examples/pcvs/vpnsla/vpnsla.apex" target="_blank">APEX VPN SLA Policy Specification</a>
-.. |ctxtNodesJson_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/events/pcvs/vpnsla/CtxtNodes.json" target="_blank">Context Events Nodes</a>
-.. |ctxtEdgesJson_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/events/pcvs/vpnsla/CtxtEdges.json" target="_blank">Context Events Edges</a>
-.. |ctxtCustomerJson_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/events/pcvs/vpnsla/CtxtCustomers.json" target="_blank">Context Events Customers</a>
-.. |triggerEdgeJson_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/events/pcvs/vpnsla/Trigger_Edge09.json" target="_blank">Trigger Examples</a>
-.. |linkMonitor_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/LinkMonitor.py" target="_blank">Link Monitor</a>
-.. |mininetTopology_link| raw:: html
-
-  <a href="https://github.com/onap/policy-apex-pdp/tree/master/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py" target="_blank">Mininet Topology</a>
index 8a9a720..03ee84b 100644 (file)
@@ -10,7 +10,6 @@ Policy Examples
    :maxdepth: 1
 
    APEX-MyFirstPolicyExample.rst
-   APEX-PCVS-Example.rst
    APEX-DecisionMakerExample.rst
 
 .. contents::
@@ -44,26 +43,6 @@ My First Policy
 
             -  :ref:`My-First-Policy Example <apex-myFirstExample>`
 
-VPN SLA
-^^^^^^^
-
-         .. container:: paragraph
-
-            The domain Policy-controlled Video Streaming (PCVS) contains
-            a policy for controlling video streams with different
-            strategies. It also provides details for installing an
-            actual testbed with off-the-shelve software (Mininet,
-            Floodlight, Kafka, Zookeeper). The policy model here
-            demonstrates virtually all APEX features: local context and
-            policies controlling it, task selection logic and multiple
-            tasks in a single state, AVRO schemas for context, AVOR
-            schemas for events (trigger and local), and a CLI editor
-            specification of the policy. The documentation can be found:
-
-         .. container:: ulist
-
-            -  :ref:`VPN SLA Policy on the APEX site <apex-PCVSExample>`
-
 Decision Maker
 ^^^^^^^^^^^^^^
 
diff --git a/docs/apex/images/pcvs/vpnsla-arch.png b/docs/apex/images/pcvs/vpnsla-arch.png
deleted file mode 100644 (file)
index 0aa3913..0000000
Binary files a/docs/apex/images/pcvs/vpnsla-arch.png and /dev/null differ