aboutsummaryrefslogtreecommitdiffstats
path: root/docs/com/pres
diff options
context:
space:
mode:
Diffstat (limited to 'docs/com/pres')
-rw-r--r--docs/com/pres/Summit/Berlin-2016/conversation.html251
-rw-r--r--docs/com/pres/Summit/Berlin-2016/summit-Berlin.html313
-rw-r--r--docs/com/pres/Summit/Berlin-2016/testapi.html274
-rw-r--r--docs/com/pres/dashboard/dashboard_status.html146
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._danube.jpgbin468 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._dashboard_generate.pngbin511 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._duration.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._generation.pngbin503 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._number.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._percentage.pngbin382 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._period_select.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._result_model.pngbin505 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._selection_1.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._selection_2.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/danube.jpgbin320256 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/dashboard_generate.pngbin15169 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/duration.pngbin99179 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/generation.pngbin18823 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/logo-OPNFV.pngbin2829 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/number.pngbin89080 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/percentage.pngbin94954 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/period_select.pngbin53468 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/result_model.pngbin62624 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/selection_1.pngbin122394 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/selection_2.pngbin113187 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/title-bg.pngbin29675 -> 0 bytes
-rw-r--r--docs/com/pres/dockerslicing/dockerslicing.md124
-rw-r--r--docs/com/pres/dockerslicing/index.html52
-rw-r--r--docs/com/pres/euphrates_functest_evolution/euphrates.md281
-rw-r--r--docs/com/pres/euphrates_functest_evolution/index.html52
-rw-r--r--docs/com/pres/framework/framework.md407
-rw-r--r--docs/com/pres/framework/index.html52
m---------docs/com/pres/reveal.js0
33 files changed, 0 insertions, 1952 deletions
diff --git a/docs/com/pres/Summit/Berlin-2016/conversation.html b/docs/com/pres/Summit/Berlin-2016/conversation.html
deleted file mode 100644
index 356c2ad1..00000000
--- a/docs/com/pres/Summit/Berlin-2016/conversation.html
+++ /dev/null
@@ -1,251 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Conversation with the Testing community">
- <meta name="author" content="OPNFV Testing Worjing Group">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>Conversation with the Testing Community</h1>
- <br><br>
- <h4>OPNFV testing community</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
-
- </section>
-
- <section data-markdown>
- >“You make experiments and I make theories. Do you know the difference? A theory is something nobody believes, except the person who made it. An experiment is something everybody believes, except the person who made it." A.Einstein
- </section>
-
- <section data-markdown>
- # Agenda
- * Who are we?
- * Upstream, Upstream, Upstream
- * Towards Telco Cloud KPI
- </section>
-
- <section data-markdown>
- # Who are we?
- ![team](../../../img/OPNFV_testing_group.png)
- This is a representation...not a governance!
- </section>
- <section>
- <section>
- <h3>The test projects</h3>
- <table>
- <thead>
- <tr>
- <th>Test case</th>
- <th>Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Functest</td>
- <td>Umbrella project for Functional testing</td>
- </tr>
- <tr>
- <td>Yardstick</td>
- <td>Umbrella project for performance/qualification testing</td>
- </tr>
- <tr>
- <td>CPerf</td>
- <td>SDN controller performance testing</td>
- </tr>
- <tr>
- <td>StorPerf</td>
- <td>Storage performance testing</td>
- </tr>
- <tr>
- <td>VSPerf</td>
- <td>VSwitch qualification</td>
- </tr>
- <tr>
- <td>Bottlenecks</td>
- <td>Detect possible bottlenecks</td>
- </tr>
- <tr>
- <td>QTIP</td>
- <td>Benchmark to boost performance</td>
- </tr>
- </tbody>
- </table>
- </section>
-
- <section data-markdown>
- # Functest
- * Functional testing to validate scenarios
- * Contributors (raise your hands)
- * Functest presentation (here...1h ago :))
- * breakout sessions
- * Today 3.10PM-3.40PM (vIMS evolution) 4PM (feature project integration), 5PM (Colorado status)
- * tomorrow 11AM (API, test collection), 1PM (work Upstream), 3.15PM (D Release)(to be confirmed...)
- </section>
- <section data-markdown>
- # Yardstick
- * Performance testing framework and NFVI Validation
- * [Contributors](https://wiki.opnfv.org/display/yardstick/People)
- * Yardstick presentation
- * How to Do a Pre-deployment NFVI Validation Quickly and Efficiently? Wednesday, June 22, 4:00 PM - 4:30 PM
- * Yardstick: A Pre-deployment NFVI Validation Tool. Thursday, June 23, 3:10 PM - 3:30 PM
- * breakout sessions
- * Tomorrow 2PM (Yardstick in C)
- </section>
- <section data-markdown>
- # CPerf
- * SDN Controller Performance Testing
- * Upstream test experts + standards/metrics experts
- * Goal: Cross-controller perf tests in CI against realistic deployments
- </section>
- <section data-markdown>
- # StorPerf
- * Cinder Volume Performance Testing
- * Based on SNIA's SSD Test Specification
- * Presentation
- * StorPerf: Cinder Storage Performance Measurement.
- Wednesday, June 22, 3:40 PM - 3:55 PM
- * Breakout Session
- * Tomorrow 10:15 (StorPerf Test Results Working Session)
- </section>
- <section data-markdown>
- # VSPerf
- </section>
- <section data-markdown>
- # Bottlenecks
- </section>
- <section data-markdown>
- # QTIP
-
- ## OPNFV Platform Benchmark
-
- - Bottom up
- - testing baremetal components first
- - More than result
- - comparing against reference
- - Setup-Test-Diagnose-Improve
- - a closed loop to boost platform performance
-
- ## Breakout session
-
- - 14:30~15:45, June 21st/Tuesday
- - Room Tegel
- </section>
- </section>
- <section>
- <section data-markdown>
- # Upstream, upstream, upstream..
- </section>
- <section data-markdown>
- ## We are on the shoulders of the giants
- * Rally (OpenStack)
- * ODL, ONOS, ...
- * RobotFramework, Teston
- * .....
- </section>
- <section data-markdown>
- ## Time to give back
- ### How to improve work with testing upstream community
- </section>
-
- </section>
-
- <section>
-
- <section data-markdown>
- # Towards Telco Cloud KPI?
- </section>
-
- <section data-markdown>
- # Testing group goals
- * Define common needs (naming, rules, tools...)
- * Unify result collection, reporting, dashboarding, documentation
- * Share best practice: docker, CLI, ..
- * Identify testing domains
- * Encourage testing in poorly covered areas
- </section>
-
- <section data-markdown>
- # The ultimate goal: define Telco Cloud KPIs
- * Provide methodology and test suites to qualify a Telco Cloud
- * Provide reference benchs for plugfest/third party integration: compare apple with apple
- </section>
-
- </section>
-
- <section data-markdown>
- # Thank you
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html b/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html
deleted file mode 100644
index 97fa66c1..00000000
--- a/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html
+++ /dev/null
@@ -1,313 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Functest: Many rivers to cross">
- <meta name="author" content="Morgan Richomme and Functest contributors">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../../css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="l../../reveal.jsml5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>From Arno to Colorado</h1>
- <h3>Functest: Many rivers to cross</h3>
- <br>
- <h4>Functest contributors</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
-
- </section>
-
- <section>
- <blockquote>
- &ldquo;Bad programmers have all the answers. Good testers have all the questions. Gil Zilberfeld - &rdquo;
- </blockquote>
- </section>
-
- <section data-markdown>
- # Agenda
- * Functest
- * Arno
- * Brahmaputra
- * Colorado
- * D, E, F rivers and beyond
- </section>
-
- <section data-markdown>
- # The dream team
- ![team](../../../img/teamSummitBerlin.png)
- </section>
-
- <section>
- <section data-markdown>
- # Functest: what for?
- </section>
- <section data-markdown>
- ## Our goals
- ### make sure OPNFV works......
- </section>
- <section data-markdown>
- ## so concretely...
- * Validate scenarios for the release
- * Give confidence on OPNFV fresh releases
- * Ensure consistancy towards installers
- * Ensure End to End interoperability
- </section>
- <section data-markdown>
- ## and also
- * Provide functional test suites to be replayed
- * ~ post install sanity check
- * usable for plugfests
- * coherent with ETSI and Telco needs
- * Provide test tools
- * run tests
- * collect info
- * create dashboard
- </section>
- <section data-markdown>
- ## Our goals are not....
- * Performance testing (yardstick, Xperf )
- * Re-do tests done in specific projects
- * storage/storeperf
- * infra audit/qtip
- * Compare results
- </section>
-
- <section data-markdown>
- ## Our rules
- * Re-use as much as possible upstream suites (Rally, Tempest, Robot, testOn..)
- * Keep it simple...
- * Automate (if not it is not a test...)
- * Create new suites only if tests not covered
- * Consider fields not addressed by existing test projects
- </section>
-
- <section data-markdown>
- ## Our rules
- * Installer neutral
- * Controller neutral
- * Black box approach
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Arno
- </section>
- <section data-markdown>
- ## Proof of concept
- * 4 Testcases: vPing (userdata), Tempest, Rally, ODL
- * 1 scenario: os-odl_l2-nofeature-ha
- * 2 installers: Foreman/Fuel
- * Lots of manual operations (reporting, documentation)
- </section>
- </section>
- <section>
- <section data-markdown>
- # Brahmaputra
- </section>
- <section data-markdown>
- ## More everything....
- * 7 Testcases: vPing (ssh), ONOS, vIMS, Tempest and Rally extended
- * 3 feature projects: doctor, promise, sdnvpn
- * 13 Scenarios
- * 4 Installers (Apex, Compass, Fuel, Joid)
- * Test result collection
- * Automatic dashboard
- </section>
- <section>
- <h3>Jiras</h3>
- <img height="200" data-src="../../../img/jiras.png" alt="Jiras">
- <img height="200" data-src="../../../img/jiras2.png" alt="Jiras">
- </section>
-
- <section>
- <h3>Brahmaputra Scenario matrix</h3>
- <img width="800" data-src="../../../img/matrix.png" alt="Jiras">
- </section>
-
- <section>
- Comparison odl_l2-nofeature-ha scenario
- <table>
- <thead>
- <tr>
- <th>Project</th>
- <th>Apex</th>
- <th>Compass</th>
- <th>Fuel</th>
- <th>Joid</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>POD</td>
- <td>LF POD1</td>
- <td>Huawei US</td>
- <td>Ericsson POD2</td>
- <td>Orange POD2</td>
- </tr>
- <tr>
- <td>Functest</td>
- <td>2h50</td>
- <td>1h45</td>
- <td>2h35</td>
- <td>2h30</td>
- </tr>
- <tr>
- <td>Yardstick</td>
- <td>1h05</td>
- <td>1h00</td>
- <td>1h00</td>
- <td>0h55</td>
- </tr>
- </tbody>
- </table>
- * difference of duration due to POD and test suites
- </section>
-
- <section data-markdown>
- ## Lessons learned
- * Tempest/Rally
- * harmonizing installer related OpenStack configuration differences
- * creating customized test lists
- * main challenge was resolving SDN controller interworking problems
- * vIMS
- * complete but complex test case
- * very interesting to automate (pre MANO, most of Telco needs met there)
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Colorado
- </section>
-
- <section data-markdown>
- ## What's new?
- * New internal test cases: healthcheck, security
- * New controler: OpenContrail?
- * New feature projects (domino, multisites, movie, parser, moon, copper, models, onos-sfc...)
- * ARM Support (congratulations to ENEA team!)
- * Simplified feature project integration journey
- </section>
-
- <section data-markdown>
- ## What's new?
- * Slicing of the tests (healthcheck / Smoke / SDN controllers / Features / Components / VNFs)
- * Better Test duration management
- * Refactoring (repo, case management, TestAPI)
- * Automatic reporting
- * Dashboard evolution to ELK
- * CLI
- </section>
-
-
- <section>
- <h3>Automatic reporting</h3>
- <img height="400" data-src="../../../img/reporting.png" alt="Reporting">
- <br><a href="http://testresults.opnfv.org/reporting/functest/release/master/index-status-fuel.html">Validated scenarios for Colorado</a>
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Many rivers to cross
- ## Functest beyond Colorado
- </section>
- <section data-markdown>
- ## More test cases
- * New VNFs (vEPC, vCDN, vWhatever...)
- * Multi sites (e.g bgpvpn with different back ends)
- * Better test coverage
- </section>
- <section data-markdown>
- ## A Functional testing As a Service framework
- * Scenario owner can select their relevant test cases
- * Test duration estimation
- * Agile dashboarding
- * Analytics
- </section>
- <section data-markdown>
- ## Upstream
- * Rally: time to give back more
- * Functest description for ETSI?
- </section>
- </section>
-
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="../../../img/colorado.png" alt="tests">
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/Summit/Berlin-2016/testapi.html b/docs/com/pres/Summit/Berlin-2016/testapi.html
deleted file mode 100644
index c40637cb..00000000
--- a/docs/com/pres/Summit/Berlin-2016/testapi.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="TestAPI">
- <meta name="author" content="Serena Feng">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>TestAPI</h1>
- <h3>Clean, Easy, Complete</h3>
- <br>
- <h4>OPNFV testing community</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
- </section>
-
- <section data-markdown>
- # Agenda
- * TestAPI: what for?
- * API overview
- * API evolution
- * Roadmap
- </section>
-
- <section>
- <section data-markdown>
- # TestAPI: what for?
- </section>
- <section data-markdown>
- ## Consistant view for
- * Resources (Pods)
- * Projects
- * Test cases
- * Results
- </section>
-
- <section data-markdown>
- ## Status Currently
- * From many projects
- * Many formats (log, html, json, ..)
- * Many locations (in VM, Jumphost, external DB,...)
- </section>
- <section data-markdown>
- <script type='text/template'>
- ## Achieve using TestAPI
- * Uniform API: TestAPI
- * Uniform format: JSON
- * Universal Location: http://testresults.opnfv.org
- <aside class='notes'>
- By using TestAPI, we hope to provide a uniform way of collection and saving test results to a universal location
- </aside>
- </script>
- </section>
-
- <section data-markdown>
- ## Help building
- * Dashboards
- * Automatic reporting
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # API overview
- </section>
- <section data-markdown>
- ## Storage structure
- ![TestAPI](https://wiki.opnfv.org/download/attachments/2926452/results_collection_structure.png?version=1&modificationDate=1459196347000&api=v2 "OPNFV API page")
- </section>
- <section data-markdown>
- ## API in Brahmaputra
- ![TestAPI](../../../img/testapi0.png)
- https://wiki.opnfv.org/display/functest/Collection+Of+Test+Results
- </section>
-
- <section data-markdown>
- ## API status in Brahmaputra
- * Simple data models aggreed with the testing group
- * No unit tests
- * Wiki and rst documentation
- </section>
-
- <section data-markdown>
- ## Lessons learned in B.
- * Painful wiki documentation
- * Simple result model
- * Misuse version as scenario
- * No version actually
- * No overall criteria (PASS/FAIL)
- * Difficult refactoring
- </section>
- <section>
- <h2>Colorado refactoring</h2>
- <ul>
- <li>Unit tests</li>
- <li>Update of the data model</li>
- <li>Tornado_swagger for the documentation</li>
- <li>URL and MongoDB collection renaming</li>
- <li>Scripts to support databse backup/restore/update</li>
- <li>Support installation</li>
- <aside class='notes'>
- So you can discover and understand the capabilities of the service without
- access to source code, documentation, or through network traffic inspection,
- and also you can interact with the TestAPI directly through swagger website.
- </aside>
- </ul>
- <p class="fragment fade-up"><b>All done in Colorado!</b></p>
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # API Evoluation
- </section>
-
- <section>
- <h2> URI changes...</h2>
- <div style="text-align:left"">
- <p> testresults.opnfv.org/<span style="color:lightblue">TestAPI</span> => <br>testresults.opnfv.org/<span style="color:yellow">test/api/v1</span> </p>
-
- <p> /test/api/v1/<b>pods</b></p>
- <p> /test/api/v1/<b>projects</b></p>
- <p> /test/api/v1/projects/qtip/<b>cases</b></p>
- <p> /test/api/v1/<b>results</b></p>
- </div>
- </section>
- <section data-markdown>
- ## One new field for pods
- | Field | Colorado |
- | :--- | :--- |
- | role | community_pod, ci_pod, .. |
- </section>
- <section data-markdown>
- ## Changed fields for results
- | Item | Brahmaputra | Colorado |
- | :--- | :--- | :--- |
- | date | creation_date | start_date and stop_date |
- | version | used as scenario | opnfv release version |
- </section>
- <section data-markdown>
- <script type='text/template'>
- ## New fields for results
- | Item | Colorado |
- | :--- | :--- |
- | scenario | used for scenario |
- | criteria | PASS/FAILED |
- | trust_indicator | between 0 and 1|
- <aside class='notes'>
- to detect if the test case is stable over time and further more to avoid
- running it systematically and saving time for other long duration test cases
- </aside>
- </script>
- </section>
- <section data-markdown>
- ## One new filter for results
- | Item | Colorado |
- | :--- | :--- |
- | last | get last N results|
- </section>
- <section data-markdown>
- http://testresults.opnfv.org/test/swagger/spec.html
- ![alt text](../../../img/testapi1.png "TestAPI swagger interface")
- </section>
- <section>
- <h2>unit tests</h2>
- <pre><code class="hljs" data-trim contenteditable>
-umry8364@umry8364-Latitude-E6400:~/Dev/OPNFV/releng/utils/test/result_collection_api$ ./run_test.sh
-Tests running...
-WARNING:tornado.general:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1): Project name missing
-WARNING:tornado.access:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1) 2.30ms
-WARNING:tornado.general:400 POST /api/v1/projects (127.0.0.1): name missing
-............
-WARNING:tornado.access:400 POST /api/v1/projects (127.0.0.1) 1.13ms
-WARNING:tornado.access:403 PUT /api/v1/projects/functest/cases/vping_1 (127.0.0.1) 2.95ms
-WARNING:tornado.general:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1): {'project_name': u'functest', 'name': u'notFound'} could not be found in table [testcases]
-WARNING:tornado.access:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1) 2.85ms
-
-Ran 74 tests in 1.848s
-OK
- </code></pre>
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # Roadmap
- </section>
- <section data-markdown>
- ## Roadmap
- * Dockerize TestAPI
- * Automatic update of TestAPI
- * Command Line Interface
- * Automatic update for pods/projects/testcases
- </section>
- <section data-markdown>
- # suggestions ...
- </section>
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="../../../img/colorado.png" alt="tests">
- </section>
- </section>
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/dashboard/dashboard_status.html b/docs/com/pres/dashboard/dashboard_status.html
deleted file mode 100644
index 1321afa0..00000000
--- a/docs/com/pres/dashboard/dashboard_status.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Dashboard Status">
- <meta name="author" content="Serena Feng">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../css/theme/OPNFV.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../img/title-bg.png" data-background-transition="none">
- <h1>Dashboard Status</h1>
- <h3></h3>
- <br>
- <h4>OPNFV testing community</h4>
- <h5></h5>
- <br>
- </section>
-
- <section>
- <h3>results generation</h3>
- <img width="600" data-src="./dashboard_status/generation.png" alt="tests">
- </section>
- <section>
- <h3>result model</h3>
- <img width="600" data-src="./dashboard_status/result_model.png" alt="tests">
- </section>
- <section>
- <h3>dashboard generation</h3>
- <img width="600" data-src="./dashboard_status/dashboard_generate.png" alt="tests">
- </section>
- <section>
- <h3>selection layout(1)</h3>
- <img width="600" data-src="./dashboard_status/selection_1.png" alt="tests">
- </section>
- <section>
- <h3>selection layout(2)</h3>
- <img width="600" data-src="./dashboard_status/selection_2.png" alt="tests">
- </section>
- <section>
- <h3>display period select</h3>
- <img width="600" data-src="./dashboard_status/period_select.png" alt="tests">
- </section>
- <section>
- <h3>duration display</h3>
- <img width="600" data-src="./dashboard_status/duration.png" alt="tests">
- </section>
- <section>
- <h3>tests/failures display</h3>
- <img width="600" data-src="./dashboard_status/number.png" alt="tests">
- </section>
- <section>
- <h3>success_percentage display</h3>
- <img width="600" data-src="./dashboard_status/percentage.png" alt="tests">
- </section>
- <section data-markdown>
- # possible layouts
-
- * project
- * testcase
- * pod
- * installer
- * scenario
- * version
- * period
- </section>
- <section data-markdown>
- # possible display domains
-
- * duration
- * tests/failures
- * success_percentage
- </section>
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="./dashboard_status/danube.jpg" alt="tests">
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../img/logo-OPNFV.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/dashboard/dashboard_status/._danube.jpg b/docs/com/pres/dashboard/dashboard_status/._danube.jpg
deleted file mode 100644
index 15669502..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._danube.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png b/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png
deleted file mode 100644
index 1f2afc65..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._duration.png b/docs/com/pres/dashboard/dashboard_status/._duration.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._duration.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._generation.png b/docs/com/pres/dashboard/dashboard_status/._generation.png
deleted file mode 100644
index 4154da2e..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._generation.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._number.png b/docs/com/pres/dashboard/dashboard_status/._number.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._number.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._percentage.png b/docs/com/pres/dashboard/dashboard_status/._percentage.png
deleted file mode 100644
index 8e72b4a2..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._percentage.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._period_select.png b/docs/com/pres/dashboard/dashboard_status/._period_select.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._period_select.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._result_model.png b/docs/com/pres/dashboard/dashboard_status/._result_model.png
deleted file mode 100644
index b9c8c2e1..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._result_model.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._selection_1.png b/docs/com/pres/dashboard/dashboard_status/._selection_1.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._selection_1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._selection_2.png b/docs/com/pres/dashboard/dashboard_status/._selection_2.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._selection_2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/danube.jpg b/docs/com/pres/dashboard/dashboard_status/danube.jpg
deleted file mode 100644
index 4cf4ecce..00000000
--- a/docs/com/pres/dashboard/dashboard_status/danube.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png b/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png
deleted file mode 100644
index 991f26c7..00000000
--- a/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/duration.png b/docs/com/pres/dashboard/dashboard_status/duration.png
deleted file mode 100644
index 33497a9a..00000000
--- a/docs/com/pres/dashboard/dashboard_status/duration.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/generation.png b/docs/com/pres/dashboard/dashboard_status/generation.png
deleted file mode 100644
index ec5ae169..00000000
--- a/docs/com/pres/dashboard/dashboard_status/generation.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png b/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png
deleted file mode 100644
index 1519503e..00000000
--- a/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/number.png b/docs/com/pres/dashboard/dashboard_status/number.png
deleted file mode 100644
index a5f4ff43..00000000
--- a/docs/com/pres/dashboard/dashboard_status/number.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/percentage.png b/docs/com/pres/dashboard/dashboard_status/percentage.png
deleted file mode 100644
index 640ef748..00000000
--- a/docs/com/pres/dashboard/dashboard_status/percentage.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/period_select.png b/docs/com/pres/dashboard/dashboard_status/period_select.png
deleted file mode 100644
index 609a0d86..00000000
--- a/docs/com/pres/dashboard/dashboard_status/period_select.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/result_model.png b/docs/com/pres/dashboard/dashboard_status/result_model.png
deleted file mode 100644
index 4ac6d671..00000000
--- a/docs/com/pres/dashboard/dashboard_status/result_model.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/selection_1.png b/docs/com/pres/dashboard/dashboard_status/selection_1.png
deleted file mode 100644
index d264df81..00000000
--- a/docs/com/pres/dashboard/dashboard_status/selection_1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/selection_2.png b/docs/com/pres/dashboard/dashboard_status/selection_2.png
deleted file mode 100644
index a3d23667..00000000
--- a/docs/com/pres/dashboard/dashboard_status/selection_2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/title-bg.png b/docs/com/pres/dashboard/dashboard_status/title-bg.png
deleted file mode 100644
index 6a84a44f..00000000
--- a/docs/com/pres/dashboard/dashboard_status/title-bg.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dockerslicing/dockerslicing.md b/docs/com/pres/dockerslicing/dockerslicing.md
deleted file mode 100644
index a6645324..00000000
--- a/docs/com/pres/dockerslicing/dockerslicing.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# Docker slicing
-
-[Cédric Ollivier](mailto:cedric.ollivier@orange.com)
-
-2017/10/19
-
-
-
-## Danube issues
-
-
-### OPNFV projects' setup.py
-
-- no requirements were installed when calling *python setup.py install* as none of the next keys was set:
- - install_requires
- - tests_require
- - dependency_links
-- shell scripts were not installed neither in $PATH nor in dist-packages
-- all requirements were not synchronized over the OPNFV projects
-
-
-### Functest's Dockerfile
-
-- it copied all the files hosted by the third-party projects (e.g. docs, .git...)
-- several requirements were downgraded/upgraded when building the container as they were managed one after the other
-- it could download packages from [PyPI](https://pypi.python.org/pypi) (e.g. [networking-bgpvpn](https://pypi.python.org/pypi/networking-bgpvpn)...) instead of cloning git repository
-- build dependencies couldn't be removed to save space as it created multiple layers (>70)
-
-
-
-## Management of the requirements
-
-
-### Rely on [pbr](https://docs.openstack.org/developer/pbr/)
-
-- pbr injects requirements into the install_requires, tests_require and/or dependency_links arguments to setup
-- it supports conditional dependencies which can be added to the requirements (e.g. dnspython>=1.14.0;python_version=='2.7')
-
-
-### Split requirements into 3 files
-
-- **requirements.txt** which should list all abstract (i.e. [not associated with any particular index](https://packaging.python.org/requirements/)) dependencies of the OPNFV packages
-- **test-requirements.txt** which could list all abstract dependencies required for testing the OPNFV packages
-- **upper-constraints.txt** which should list all concrete dependencies required by Functest Docker container or the testing virtual environments
-
-
-### Follow [OpenStack requirements management](https://specs.openstack.org/openstack/openstack-specs/specs/requirements-management.html)
-
-- OPNFV (test-)requirements.txt have been updated according to stable/ocata global-requirements.txt.
-- Functest simply use (and complete) stable/ocata upper-constraints.txt in Docker files and tox configuration (testing virtual environments).
-
-
-### On the road
-
-- we have fixed lots of hardcoded paths hidden by the previous design
-- some files were outside the python packages
-- lots of (console) scripts added in OPNFV packages to ease the maintenance of Functest testcases.yaml
-
-
-
-## Docker slicing
-
-
-### 8 Functest containers
-
-```bash
-$ sudo docker search opnfv |grep functest-
-opnfv/functest-core OPNFV Functest core image
-opnfv/functest-restapi OPNFV Functest restapi image
-opnfv/functest-features OPNFV Functest vnf image
-opnfv/functest-healthcheck OPNFV Functest healthcheck image
-opnfv/functest-smoke OPNFV Functest smoke image
-opnfv/functest-vnf OPNFV Functest vnf image
-opnfv/functest-components OPNFV Functest components image
-opnfv/functest-parser OPNFV Functest parser image
-```
-
-
-### 8 Functest containers
-
-- Alpine 3.6 is now used as base image
-- one container per test suite has been published (5). All of them are built on top of functest-core.
-- Parser is hosted in its own containers (it requires librairies released for OpenStack Pike)
-- a full container is dedicated to our REST API.
-
-Please see [Run Alpine Functest containers](https://wiki.opnfv.org/display/functest/Run+Alpine+Functest+containers)
-
-
-
-## Next steps
-
-
-### Functest and XCI
-
-- the purpose is simply to allow any OPNFV project integrated by Functest to build their own containers on top of opnfv/functest-core
-- it will allow testing one specific change of these OPNFV projects before merging it in tree
-- it induces that all requirements are synchronized between the different OPNFV projects
-
-
-### F-release
-
-- to allow building opnfv/functest-core from a gerrit change (see https://gerrit.opnfv.org/gerrit/#/c/40909/)
-- to split Functest core/ci and the Functest testcases in two separated Python packages
-- to unlink prepare_env.py and tempest/rally
-
-
-### F-release
-
-- to add python3 support for Functest ci scripts (Functest core already supports both versions)
-- to unlink functest-core from others OPNFV projects (mainly releng and snaps)
-- to write a generic Dockerfile using a set of python packages as input
-
-
-### 2 OPNFV project proposals
-
-- requirements, the counterpart of [OpenStack requirements](https://wiki.openstack.org/wiki/Requirements),
-focused on additional OPNFV project needs
-- xtesting which would be derived from Functest (core and ci parts) as proposed in
-[Functional testing gating](https://wiki.opnfv.org/display/functest/Functional+testing+gating)
-
-
-
-## Thank you!
-
diff --git a/docs/com/pres/dockerslicing/index.html b/docs/com/pres/dockerslicing/index.html
deleted file mode 100644
index 1c65e4fa..00000000
--- a/docs/com/pres/dockerslicing/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>Docker slicing</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="dockerslicing.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/euphrates_functest_evolution/euphrates.md b/docs/com/pres/euphrates_functest_evolution/euphrates.md
deleted file mode 100644
index 49aab16c..00000000
--- a/docs/com/pres/euphrates_functest_evolution/euphrates.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# Functest
-### Feedback on Euphrates evolutions
-
-2017/10/09
-
-
-### Main Framework evolutions
- * Functest Framework refactoring
- * Docker slicing with Alpine
- * Building Functest dockers
- * Requirement management...1st time...in OPNFV
- * Functest API
-
-
-## Functest Framework refactoring
-
-### The framework
- * Initiated in Danube
- * Finalized in euphrates
- * Goal: ease the integration of feature/vnf tests
-
-### See complete presentation on the framework
-http://testresults.opnfv.org/functest/framework/
-
-
-## Docker slicing
-
-
-#### Short story of Functest Docker
-
-
-### Many rivers to cross
-| Version | Comment |
-|-------------|-----------------------------------------------------|
-| Arno | No docker, all tests initiated from the jumphost |
-| Brahmaputra | Introduction of Docker |
-| Colorado | Growth of Historical Docker |
-| Danube | Growth of Historical Docker |
-| Euphrates | Introduction of Alpine |
-
-
-### Focus on the Historical Docker
- * Based on ubuntu 14.04
-
-| Version | Compressed Size |
-|--------------|-----------------|
-| Brahmaputra | 354 MB |
-| Colorado.1.0 | 627 MB |
-| Danube.1.0 | 713 MB |
-| cvp.0.2.0 | 710 MB |
-
-* src: https://hub.docker.com/r/opnfv/functest/tags/
-
-
-### Introduction to Alpine
-* Alpine Linux is a GNU/Linux distribution based on musl and Busybox
-* Hardened kernel, compiles all user space binaries as position-independent executables with stack-smashing protection.
-* Docker Alpine leverage Alpine Linux: https://docs.docker.com/samples/library/alpine/
-
-
-### Our goals
-* Lighten docker / save bandwidth / save CI resources
-* Slice testing
-* Simplify Requirement management
-* Isolate "exotic" test cases
-
-
-### From 1 to many dockers
-| Docker | Size | Role |
-|-------------|-------|-------------------------------------------------|
-| core | 122MB | baseline (tools, env) |
-| healthcheck | 122MB | OS connectivity, API, DHCP testing |
-| smoke | 131MB | vpings, Tempest/Refstack, Rally, odl, Snaps |
-| features | 214MB | doctor, domino, sdnvpn, sfc, promise, barometer |
-
-
-### From 1 to many dockers
-| Docker | Size | Role |
-|-------------|-------|-------------------------------------------------|
-| components | 122MB | Full Tempest, Full Rally |
-| vnf | 155MB | vIMS, vRouter |
-| parser | 127MB | parser (feature needs pike clients) |
-
-
-### Easy way to run
-src: https://wiki.opnfv.org/display/functest/Run+Alpine+Functest+containers
- * env: OPNFV env variables
- * openstack.creds: OpenStack rc file
-
-```
-sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/openstack.creds \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-smoke:euphrates
-```
-
-
-#### Env
-```
-cat env
-INSTALLER_TYPE=Compass
-INSTALLER_IP=XXX
-EXTERNAL_NETWORK=ext-net
-DEPLOY_SCENARIO=os-nosdn-nofeature-ha
-```
-
-
-#### openstack.creds
-```
-cat openstack.creds
-export OS_AUTH_URL=XXX
-export OS_USER_DOMAIN_NAME=XXX
-export OS_PROJECT_DOMAIN_NAME=XXX
-export OS_USERNAME=XXX
-export OS_PROJECT_NAME=XXX
-export OS_PASSWORD=XXX
-export OS_IDENTITY_API_VERSION=3
-```
-
-
-#### Retrieve all the images
-```
-mkdir -p images && wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh | bash -s -- images && ls -1 images/*
-images/CentOS-7-aarch64-GenericCloud.qcow2
-images/CentOS-7-aarch64-GenericCloud.qcow2.xz
-images/CentOS-7-x86_64-GenericCloud.qcow2
-images/cirros-0.3.5-x86_64-disk.img
-images/cirros-0.3.5-x86_64-lxc.tar.gz
-images/cirros-d161201-aarch64-disk.img
-images/cirros-d161201-aarch64-initramfs
-images/cirros-d161201-aarch64-kernel
-images/cloudify-manager-premium-4.0.1.qcow2
-images/img
-images/trusty-server-cloudimg-amd64-disk1.img
-images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
-images/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
-images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
-images/vyos-1.1.7.img
-```
-* could be improved (retrieve only needed images Tier/config)
-
-
-#### Results
-```
-+----------------------+--------- + ------+----------+--------+
-| TEST CASE | PROJECT | TIER | DURATION | RESULT |
-+----------------------+--------- + ------+----------+--------+
-| vping_ssh | functest | smoke | 01:19 | PASS |
-| vping_userdata | functest | smoke | 01:56 | PASS |
-| tempest_smoke_serial | functest | smoke | 26:30 | PASS |
-| rally_sanity | functest | smoke | 19:42 | PASS |
-| refstack_defcore | functest | smoke | 22:00 | PASS |
-| snaps_smoke | functest | smoke | 41:14 | PASS |
-| odl | functest | smoke | 00:16 | PASS |
-| odl_netvirt | functest | smoke | 00:00 | SKIP |
-| fds | functest | smoke | 00:00 | SKIP |
-+----------------------+--------- + ------+----------+--------+
-
-```
-
-
-#### Easy way to customize
- * Change list of testcase -v your_config.yaml:/usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
- * Change logger param -v your_logger.ini:/usr/lib/python2.7/site-packages/functest/ci/logging.ini
-
-
-#### Docker slicing technical presentation
-http://testresults.opnfv.org/functest/dockerslicing/
-
-
-
-## Building Functest dockers
-
-
-#### Until Danube
- * the unique Functest docker was "produced" from Releng
-
-
-#### For Euphrates, build was done on Docker hub
- * Releng adaptations not ready in time
- * more capabilities using Docker Hub
- * Use of private ollivier then official opnfv Docker Hub
- * Euphrates 5.1: come back to releng with at least same level of features than Docker Hub/Travis CI
-
-
-
-## Requirement management
-Until now, requirements were managed as follow:
-
-
-# ?
-
-
-### Requirement management
- * Nothing was done
- * Danube, Colorado, .. dockers may run but no garantee on mid/long term because
- * No control of upstream or internal project dependencies
- * the dependencies of the last feature project overwrite the previous ones
-
-
-### Requirement management
- * Nothing done in any OPNFV project
- * No dependency list, no reco (e.g. support Python 3)
- * Only high level wiki declarative intentions for OpenStack (e.g. Euphrates => Ocata)
- * Nothing equivalent to OpenStack https://releases.openstack.org/ocata/
-
-
-### Functest evolutions
- * creation of requirements.txt, upper-constraints.text
- https://git.opnfv.org/functest/tree/requirements.txt
- https://git.opnfv.org/functest/tree/upper-constraints.txt
- ```
- pbr>=1.8 # Apache-2.0
- PyYAML>=3.10.0 # MIT
- GitPython>=1.0.1 # BSD License (3 clause)
- keystoneauth1>=2.18.0 # Apache-2.0
- python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
- python-glanceclient>=2.5.0 # Apache-2.0
- python-heatclient>=1.6.1 # Apache-2.0
- ...
- ```
- * sync with ocata done manually by Cédric
-
-
-### Functest evolutions
- * Code of the feature projects under project responsibility
- * code moved to their own repo
- * no more mix between Functest and Feature project code
- * All python OPNFV projects imported properly as python modules
- * all dependencies a priori under control...
-
-
-
-## Functest Rest API
-
-
-### Introduction
-* A Rest API has been introduced in Euphrates (Linda)
-* Goal: allow third party to invoke Functest resources
- * pseudo micro services approach
- * avoid overlap (e.g. deployement of vIMS from other project to run perfo tests)
-src: https://wiki.opnfv.org/display/functest/Functest+REST+API
-
-
-### Functest rest API
-| resource | Methods | Description |
-|-------------|----------|-------------------------------------------------|
-| environment | GET,POST | show, prepare environment |
-| openstack | GET,POST | show, check, clean, update credentials |
-| testcases | GET,POST | list, show, run |
-| tiers | GET,POST | list, show |
-| tasks | GET | Get the result of the task id |
-
-
-### Examples
-```
-curl -X POST --header "Content-Type: application/json" \
- --data '{"action":"run_test_case", "args": {"opts": {}, "testcase": "vping_ssh"}}' \
- http://127.0.0.1:5000/api/v1/functest/testcases/action
-{
- "task_id": "1a9f3c5d-ce0b-4354-862e-dd08b26fc484",
- "testcase":"vping_ssh"
-}
-```
-
-
-
-## Conclusions
- * Framework heavily refactored for Euphrates
- * Better code quality and rules (coverage, pylint, pep8, ..)
- * Much more "trustable", light and evolutive
-
-
-## Next steps
- * Still lots of work for Fraser
- * Adaptation to use it for XCI gating (xTesting)
- * Generic dockerfile Functest customized docker on demand
- * split framework and testcases in order to be able to reuse Functest for k8 or even beyond OPNFV
- * integrate k8 tests
- * better management of the images
- * ...
diff --git a/docs/com/pres/euphrates_functest_evolution/index.html b/docs/com/pres/euphrates_functest_evolution/index.html
deleted file mode 100644
index 5b8fb260..00000000
--- a/docs/com/pres/euphrates_functest_evolution/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>OPNFV Functest Feedback on Alpines</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="euphrates.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/framework/framework.md b/docs/com/pres/framework/framework.md
deleted file mode 100644
index 109d8a03..00000000
--- a/docs/com/pres/framework/framework.md
+++ /dev/null
@@ -1,407 +0,0 @@
-# Functest Framework
-
-created by [Cédric Ollivier](mailto:cedric.ollivier@orange.com)
-
-2017/06/05
-
-Note:
-
-- Functest integrates lots of heterogeneous testcases:
- - python vs bash
- - internal vs external
-- it aims to benefit from object programming
- - to define common operations
- - to avoid conditional instructions regarding the testcases
- - to avoid duplicating code
- - to ease the integration of third-party testcases (written in Bash or Python)
-
-
-
-## Quick overview
-
-
-### Functest function calls
-
-- **CI** calls *run_tests.py* (please see [jenkins jobs](https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=tree;f=jjb/functest))
-- *run_tests.py* parses *functest/ci/testcases.yaml* to:
- - check which testcase(s) must be run
- - execute the common operations on every testcase (run, push its results to db...)
-<!-- .element: class="fragment highlight-red"-->
- - return the right status code to **CI**
-
-
-### Our target
-
-- limit run_tests.py instructions by defining:
- - the basic testcase attributes
- - all common operations
- - the status codes expected
-- avoid duplicating codes between testcases
-- ease the development of third-party testcases (aka features)
-
-
-
-## class TestCase
-
-base model for single test case
-
-
-### instance attributes
-
-- project_name (default: 'functest')
-- case_name
-- criteria
-- result
-- start_time
-- stop_time
-- details
-
-
-### methods
-
-| Method | Purpose |
-|-------------------|------------------------------|
-| run(**kwargs) | run the test case |
-| is_successful() | interpret the results |
-| get_duration() | return the duration |
-| push_to_db() | push the results to the DB |
-| clean() | clean the resources |
-
-
-### run(**kwargs)
-
-- the subclasses must override the default implementation which is false on purpose
-- the new implementation must set the following attributes to push the results to DB:
- - result
- - start_time
- - stop_time
-
-
-### class attributes
-
-| Status code | Returned when |
-|--------------------|---------------------|
-| EX_OK | everything is OK |
-| EX_RUN_ERROR | run() failed |
-| EX_TESTCASE_FAILED | results are false |
-| EX_PUSH_TO_DB_ERROR| push_to_db() failed |
-
-
-### run_tests.py
-
-```python
-module = importlib.import_module(run_dict['module'])
-cls = getattr(module, run_dict['class'])
-test_dict = ft_utils.get_dict_by_test(test_name)
-test_case = cls(**test_dict)
-try:
- kwargs = run_dict['args']
- result = test_case.run(**kwargs)
-except KeyError:
- result = test_case.run()
-if result == testcase.TestCase.EX_OK:
- if GlobalVariables.REPORT_FLAG:
- test_case.push_to_db()
- result = test_case.is_successful()
-```
-
-
-
-## Your first test case
-
-
-### first.py
-
-```python
-#!/usr/bin/env python
-
-import time
-
-from functest.core import testcase
-
-class Test(testcase.TestCase):
-
- def run(self, **kwargs):
- self.start_time = time.time()
- print "Hello World"
- self.result = 100
- self.stop_time = time.time()
- return testcase.TestCase.EX_OK
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: first
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'first'
- class: 'Test'
-```
-
-
-
-## class Feature
-bases: TestCase
-
-base model for single feature
-
-
-### methods
-
-| Method | Purpose |
-|-------------------|---------------------------|
-| run(**kwargs) | run the feature |
-| execute(**kwargs) | execute the Python method |
-
-
-### run(**kwargs)
-
-- allows executing any Python method by calling execute()
-- sets the following attributes required to push the results to DB:
- - result
- - start_time
- - stop_time
-- doesn't fulfill details when pushing the results to the DB.
-
-
-### execute(**kwargs)
-
-- the subclasses must override the default implementation which is false on purpose
-- the new implementation must return 0 if success or anything else if failure.
-
-
-
-## Your second test case
-
-
-### second.py
-
-```python
-#!/usr/bin/env python
-
-from functest.core import feature
-
-class Test(feature.Feature):
-
- def execute(self, **kwargs):
- print "Hello World"
- return 0
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: second
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'second'
- class: 'Test'
-```
-
-
-
-## class BashFeature
-bases: Feature
-
-class designed to run any bash command
-
-
-### execute(**kwargs)
-
-execute the cmd passed as arg.
-
-
-
-## Your third test case
-
-
-### functest/ci/testcases.yaml
-
-```
-case_name: third
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'functest.core.feature'
- class: 'BashFeature'
- args:
- cmd: 'echo Hello World; exit 0'
-```
-
-
-
-## class Suite
-bases: TestCase
-
-base model for running unittest.TestSuite
-
-
-### run(**kwargs)
-
-- allows running any unittest.TestSuite
-- sets the following attributes required to push the results to DB:
- - result
- - start_time
- - stop_time
- - details
-
-
-
-## Your fourth test case
-
-
-### fourth.py
-
-```python
-#!/usr/bin/env python
-
-import unittest
-
-class TestStringMethods(unittest.TestCase):
-
- def test_upper(self):
- self.assertEqual('Hello World'.upper(),
- 'HELLO WORLD')
-```
-
-
-### functest/ci/testcases.yaml
-
-```
-case_name: fourth
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'functest.core.unit'
- class: 'Suite'
- args:
- name: 'fourth'
-```
-
-
-
-## class VNF
-bases: TestCase
-
-base model for VNF onboarding testing
-
-
-### methods
-
-| Method | Purpose |
-|-----------------------|---------------------------------------------------|
-| prepare() | prepare VNF env (user, tenant, security group,..) |
-| run(**kwargs) | run VNF test case |
-| deploy_orchestrator() | deploy cloudify, ONAP, OpenBaton,... (optional) |
-| deploy_vnf() | deploy the VNF |
-| test_vnf() | run tests on the VNF |
-
-
-### run(**kwargs)
-
-- deploys an orchestrator if needed (e.g. heat, OpenBaton, Cloudify, ONAP, Juju)
-- deploys the VNF
-- performs tests on the VNF
-
-
-### prepare()
-
-- creates a user
-- creates a Tenant/Project
-- allocates admin role to the user on this tenant
-
-
-### deploy_orchestrator()
-
-- deploys an orchestrator (optional)
-- if this function is overridden then raise orchestratorDeploymentException if error during orchestrator deployment
-
-
-### deploy_vnf()
-
-- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases.
-- The deployment can be executed via a specific orchestrator or using build-in orchestrators such as heat, openbaton, cloudify, juju, ONAP, ...
-- returns:
- True if the VNF is properly deployed
- False if the VNF is not deployed
-- raises VnfDeploymentException if error during VNF deployment
-
-
-### test_vnf()
-
-- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases.
-- Once a VNF is deployed, it is assumed that specific test suite can be run to validate the VNF.
-- returns:
- True if VNF tests are PASS
- False if test suite is FAIL
-- raises VnfTestException if error during VNF tests
-
-
-
-## Your fifth test case
-
-
-### fifth.py
-
-```python
-#!/usr/bin/env python
-
-from functest.core import vnf
-
-class Vnf(vnf.VnfOnBoarding):
-
- def deploy_vnf(self):
- print "Deploy your VNF here"
- print "Feed orchestrator with VNF descriptor"
- return 0
-
- def test_vnf(self):
- print "Test your VNF here"
- return 0
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: fifth
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'fifth'
- class: 'Vnf'
-```
-
-
-
-## Thank You!
diff --git a/docs/com/pres/framework/index.html b/docs/com/pres/framework/index.html
deleted file mode 100644
index 950c2beb..00000000
--- a/docs/com/pres/framework/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>OPNFV Functest Framework</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="framework.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/reveal.js b/docs/com/pres/reveal.js
deleted file mode 160000
-Subproject a349ff43c58c23f9c837b8ea9b5fc7d4761b8de