summaryrefslogtreecommitdiffstats
path: root/docs/com/pres/Summit/Berlin-2016
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2016-10-14 09:13:38 +0000
committerGerrit Code Review <gerrit@opnfv.org>2016-10-14 09:13:38 +0000
commitcfb353b01c2dd21007db01c2d18a5cbd415689b8 (patch)
tree16cd87a5c956af7bb0126e068d0702dda0f9768e /docs/com/pres/Summit/Berlin-2016
parent733dbe143cd4d37787cdb167021129b9ffac78fa (diff)
parent6bb45e4d1ba014c1dd33bedff49be8afa9426d17 (diff)
Merge "remove 3rd part files with MIT or BSD license"
Diffstat (limited to 'docs/com/pres/Summit/Berlin-2016')
-rwxr-xr-xdocs/com/pres/Summit/Berlin-2016/conversation.html251
-rwxr-xr-xdocs/com/pres/Summit/Berlin-2016/summit-Berlin.html313
-rwxr-xr-xdocs/com/pres/Summit/Berlin-2016/testapi.html274
3 files changed, 838 insertions, 0 deletions
diff --git a/docs/com/pres/Summit/Berlin-2016/conversation.html b/docs/com/pres/Summit/Berlin-2016/conversation.html
new file mode 100755
index 000000000..b56b1e100
--- /dev/null
+++ b/docs/com/pres/Summit/Berlin-2016/conversation.html
@@ -0,0 +1,251 @@
+<!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="../../../css/reveal.css">
+ <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
+
+ <!-- Code syntax highlighting -->
+ <link rel="stylesheet" href="../../../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 ) ? '../../../css/print/pdf.css' : '../../../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="../../../lib/js/head.min.js"></script>
+ <script src="../../../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: '../../../lib/js/classList.js', condition: function() { return !document.body.classList; } },
+ { src: '../../../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
+ { src: '../../../plugin/zoom-js/zoom.js', async: true },
+ { src: '../../../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
new file mode 100755
index 000000000..4173a86ac
--- /dev/null
+++ b/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html
@@ -0,0 +1,313 @@
+<!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="../../../css/reveal.css">
+ <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
+
+ <!-- Code syntax highlighting -->
+ <link rel="stylesheet" href="../../../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 ) ? '../../../css/print/pdf.css' : '../../../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>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, test API)
+ * 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="../../../lib/js/head.min.js"></script>
+ <script src="../../../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: '../../../lib/js/classList.js', condition: function() { return !document.body.classList; } },
+ { src: '../../../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
+ { src: '../../../plugin/zoom-js/zoom.js', async: true },
+ { src: '../../../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
new file mode 100755
index 000000000..7035d71df
--- /dev/null
+++ b/docs/com/pres/Summit/Berlin-2016/testapi.html
@@ -0,0 +1,274 @@
+<!doctype html>
+<html lang="en">
+
+ <head>
+ <meta charset="utf-8">
+
+ <title>OPNFV presentation</title>
+
+ <meta name="description" content="Test API">
+ <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="../../../css/reveal.css">
+ <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
+
+ <!-- Code syntax highlighting -->
+ <link rel="stylesheet" href="../../../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 ) ? '../../../css/print/pdf.css' : '../../../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>Test API</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>
+ # test API: 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 "Test API 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="../../../lib/js/head.min.js"></script>
+ <script src="../../../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: '../../../lib/js/classList.js', condition: function() { return !document.body.classList; } },
+ { src: '../../../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+ { src: '../../../plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
+ { src: '../../../plugin/zoom-js/zoom.js', async: true },
+ { src: '../../../plugin/notes/notes.js', async: true }
+ ]
+ });
+
+ </script>
+
+ </body>
+</html>