Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 168.77 KB | None | 0 0
  1. <!doctype html>
  2. <html ng-app="App">
  3. <head>
  4.   <meta charset="utf-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <meta name="generator" content="Rally version 0.9.1~dev631">
  7.   <title>Rally | Rally Task Report</title>
  8.  
  9.  
  10.   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.css">
  11.   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.3/angular.min.js"></script>
  12.   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.13/d3.min.js"></script>
  13.   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.js"></script>
  14.  
  15.  
  16.   <script type="text/javascript">
  17.     "use strict";
  18.     var widgetDirective = function($compile) {
  19.   var Chart = {
  20.     _render: function(node, data, chart, do_after){
  21.       nv.addGraph(function() {
  22.         d3.select(node)
  23.           .datum(data).transition().duration(0)
  24.           .call(chart);
  25.         if (typeof do_after === "function") {
  26.           do_after(node, chart)
  27.         }
  28.         nv.utils.windowResize(chart.update);
  29.       })
  30.     },
  31.     _widgets: {
  32.       Pie: "pie",
  33.       StackedArea: "stack",
  34.       Lines: "lines",
  35.       Histogram: "histogram"
  36.     },
  37.     get_chart: function(widget) {
  38.       if (widget in this._widgets) {
  39.         var name = this._widgets[widget];
  40.         return Chart[name]
  41.       }
  42.       return function() { console.log("Error: unexpected widget:", widget) }
  43.     },
  44.     pie: function(node, data, opts, do_after) {
  45.       var chart = nv.models.pieChart()
  46.         .x(function(d) { return d.key })
  47.         .y(function(d) { return d.values })
  48.         .showLabels(true)
  49.         .labelType("percent")
  50.         .donut(true)
  51.         .donutRatio(0.25)
  52.         .donutLabelsOutside(true)
  53.         .color(function(d){
  54.           if (d.data && d.data.color) { return d.data.color }
  55.        });
  56.       var colorizer = new Chart.colorizer("errors"), data_ = [];
  57.       for (var i in data) {
  58.         data_.push({key:data[i][0], values:data[i][1], color:colorizer.get_color(data[i][0])})
  59.       }
  60.       Chart._render(node, data_, chart)
  61.     },
  62.     colorizer: function(failure_key, failure_color) {
  63.       this.failure_key = failure_key || "failed_duration";
  64.       this.failure_color = failure_color || "#d62728";  // red
  65.       this.color_idx = -1;
  66.       /* NOTE(amaretskiy): this is actually a result of
  67.          d3.scale.category20().range(), excluding red color (#d62728)
  68.          which is reserved for errors */
  69.       this.colors = ["#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c",
  70.                      "#98df8a", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b",
  71.                      "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7",
  72.                      "#bcbd22", "#dbdb8d", "#17becf", "#9edae5"];
  73.       this.get_color = function(key) {
  74.         if (key === this.failure_key) {
  75.           return this.failure_color
  76.         }
  77.         if (this.color_idx > (this.colors.length - 2)) {
  78.           this.color_idx = 0
  79.         } else {
  80.           this.color_idx++
  81.         }
  82.         return this.colors[this.color_idx]
  83.       }
  84.     },
  85.     stack: function(node, data, opts, do_after) {
  86.       var chart = nv.models.stackedAreaChart()
  87.         .x(function(d) { return d[0] })
  88.         .y(function(d) { return d[1] })
  89.         .useInteractiveGuideline(opts.guide)
  90.         .showControls(opts.controls)
  91.         .clipEdge(true);
  92.       chart.xAxis
  93.         .axisLabel(opts.xname)
  94.         .tickFormat(opts.xformat)
  95.         .showMaxMin(opts.showmaxmin);
  96.       chart.yAxis
  97.         .orient("left")
  98.         .tickFormat(d3.format(opts.yformat || ",.3f"));
  99.       var colorizer = new Chart.colorizer(), data_ = [];
  100.       for (var i in data) {
  101.         data_.push({key:data[i][0], values:data[i][1], color:colorizer.get_color(data[i][0])})
  102.       }
  103.       Chart._render(node, data_, chart, do_after);
  104.     },
  105.     lines: function(node, data, opts, do_after) {
  106.       var chart = nv.models.lineChart()
  107.         .x(function(d) { return d[0] })
  108.         .y(function(d) { return d[1] })
  109.         .useInteractiveGuideline(opts.guide)
  110.         .clipEdge(true);
  111.       chart.xAxis
  112.         .axisLabel(opts.xname)
  113.         .tickFormat(opts.xformat)
  114.         .rotateLabels(opts.xrotate)
  115.         .showMaxMin(opts.showmaxmin);
  116.       chart.yAxis
  117.         .orient("left")
  118.         .tickFormat(d3.format(opts.yformat || ",.3f"));
  119.       var colorizer = new Chart.colorizer(), data_ = [];
  120.       for (var i in data) {
  121.         data_.push({key:data[i][0], values:data[i][1], color:colorizer.get_color(data[i][0])})
  122.       }
  123.       Chart._render(node, data_, chart, do_after)
  124.     },
  125.     histogram: function(node, data, opts) {
  126.       var chart = nv.models.multiBarChart()
  127.         .reduceXTicks(true)
  128.         .showControls(false)
  129.         .transitionDuration(0)
  130.         .groupSpacing(0.05);
  131.       chart
  132.         .legend.radioButtonMode(true);
  133.       chart.xAxis
  134.         .axisLabel("Duration (seconds)")
  135.         .tickFormat(d3.format(",.2f"));
  136.       chart.yAxis
  137.         .axisLabel("Iterations (frequency)")
  138.         .tickFormat(d3.format("d"));
  139.       Chart._render(node, data, chart)
  140.     }
  141.   };
  142.  
  143.   return {
  144.     restrict: "A",
  145.     scope: { data: "=" },
  146.     link: function(scope, element, attrs) {
  147.       scope.$watch("data", function(data) {
  148.         if (! data) { return console.log("Chart has no data to render!") }
  149.         if (attrs.widget === "Table") {
  150.           var template = "<table class='striped'><thead>" +
  151.             "<tr><th ng-repeat='i in data.cols track by $index'>{{i}}<tr>" +
  152.             "</thead><tbody>" +
  153.             "<tr ng-class='data.styles[$index] ? data.styles[$index] : \"\"' ng-repeat='row in data.rows track by $index'>" +
  154.             "<td ng-repeat='i in row track by $index'>{{i}}" +
  155.             "<tr>" +
  156.             "</tbody></table>";
  157.           var el = element.empty().append($compile(template)(scope)).children()[0]
  158.         } else if (attrs.widget === "TextArea") {
  159.           var template = "<div style='padding:0 0 5px' ng-repeat='str in data track by $index'>{{str}}</div><div style='height:10px'></div>";
  160.           var el = element.empty().append($compile(template)(scope)).children()[0]
  161.         } else {
  162.  
  163.           var el_chart = element.addClass("chart").css({display:"block"});
  164.           var el = el_chart.html("<svg></svg>").children()[0];
  165.  
  166.           var do_after = null;
  167.  
  168.           if (attrs.widget in {StackedArea:0, Lines:0}) {
  169.  
  170.             /* Hide widget if not enough data */
  171.             if ((! data.length) || (data[0].length < 1) || (data[0][1].length < 2)) {
  172.              return element.empty().css({display:"none"})
  173.            }
  174.  
  175.            /* NOTE(amaretskiy): Dirty fix for changing chart width in case
  176.               if there are too long Y values that overlaps chart box. */
  177.            var do_after = function(node, chart){
  178.              var g_box = angular.element(el_chart[0].querySelector(".nv-y.nv-axis"));
  179.  
  180.              if (g_box && g_box[0] && g_box[0].getBBox) {
  181.  
  182.                try {
  183.                  // 30 is padding aroung graphs
  184.                  var width = g_box[0].getBBox().width + 30;
  185.                } catch (err) {
  186.                  // This happens sometimes, just skip silently
  187.                  return
  188.                }
  189.  
  190.                // 890 is chart width (set by CSS)
  191.                if (typeof width === "number" && width > 890) {
  192.                   width = (890 * 2) - width;
  193.                   if (width > 0) {
  194.                     angular.element(node).css({width:width+"px"});
  195.                     chart.update()
  196.                   }
  197.                 }
  198.               }
  199.             }
  200.           }
  201.           else if (attrs.widget === "Pie") {
  202.             if (! data.length) {
  203.               return element.empty().css({display:"none"})
  204.             }
  205.           }
  206.  
  207.           var opts = {
  208.             xname: attrs.nameX || "",
  209.             xrotate: attrs.rotateX || 0,
  210.             yformat: attrs.formatY || ",.3f",
  211.             controls: attrs.controls === "true",
  212.             guide: attrs.guide === "true",
  213.             showmaxmin: attrs.showmaxmin === "true"
  214.           };
  215.           if (attrs.formatDateX) {
  216.             opts.xformat = function(d) { return d3.time.format(attrs.formatDateX)(new Date(d)) }
  217.           } else {
  218.             opts.xformat = d3.format(attrs.formatX || "d")
  219.           }
  220.           Chart.get_chart(attrs.widget)(el, data, opts, do_after);
  221.         }
  222.  
  223.         if (attrs.nameY) {
  224.           /* NOTE(amaretskiy): Dirty fix for displaying Y-axis label correctly.
  225.              I believe sometimes NVD3 will allow doing this in normal way */
  226.           var label_y = angular.element("<div>").addClass("chart-label-y").text(attrs.nameY);
  227.           angular.element(el).parent().prepend(label_y)
  228.         }
  229.  
  230.         if (attrs.description) {
  231.           var desc_el = angular.element("<div>").addClass(attrs.descriptionClass || "h3").text(attrs.description);
  232.           angular.element(el).parent().prepend(desc_el)
  233.         }
  234.  
  235.         if (attrs.title) {
  236.           var title_el = angular.element("<div>").addClass(attrs.titleClass || "h2").text(attrs.title);
  237.           angular.element(el).parent().prepend(title_el)
  238.         }
  239.  
  240.         angular.element(el).parent().append(angular.element("<div style='clear:both'>"))
  241.       });
  242.     }
  243.   }
  244. };
  245.  
  246.     var controllerFunction = function($scope, $location) {
  247.         $scope.source = "{\n  \"version\": 2, \n  \"title\": \"\", \n  \"description\": \"\", \n  \"subtasks\": [\n    {\n      \"title\": \"NeutronNetworks.create_and_list_floating_ips\", \n      \"description\": \"\", \n      \"workloads\": [\n        {\n          \"scenario\": {\n            \"NeutronNetworks.create_and_list_floating_ips\": {\n              \"floating_network\": \"ex-network\", \n              \"floating_ip_args\": {}\n            }\n          }, \n          \"description\": \"Create and list floating IPs.\", \n          \"contexts\": {\n            \"users\": {\n              \"tenants\": 2, \n              \"users_per_tenant\": 3\n            }, \n            \"quotas\": {\n              \"neutron\": {\n                \"floatingip\": -1\n              }\n            }\n          }, \n          \"runner\": {\n            \"constant\": {\n              \"times\": 500, \n              \"concurrency\": 100\n            }\n          }, \n          \"hooks\": [], \n          \"sla\": {\n            \"failure_rate\": {\n              \"max\": 0\n            }\n          }\n        }\n      ]\n    }\n  ]\n}";
  248.         $scope.scenarios = [{"runner": "constant", "hooks": [], "pos": "0", "atomic": {"pie": [["neutron.create_floating_ip", 29.768786859989167], ["neutron.list_floating_ips", 0.9481827216148376]], "iter": [["neutron.create_floating_ip", [[1, 6.438760995864868], [2, 7.671622037887573], [3, 5.488811016082764], [4, 24.97407293319702], [5, 15.63464903831482], [6, 20.054168939590454], [7, 10.502562999725342], [8, 4.355813026428223], [9, 7.334047079086304], [10, 108.26130604743958], [11, 17.405211925506592], [12, 13.664616107940674], [13, 13.649494886398315], [14, 17.316570043563843], [15, 24.312312841415405], [16, 14.149526119232178], [17, 23.15372109413147], [18, 16.026712894439697], [19, 35.61775016784668], [20, 17.435481071472168], [21, 15.716617107391357], [22, 95.52734303474426], [23, 11.585673093795776], [24, 108.68682980537415], [25, 16.104182958602905], [26, 33.36328983306885], [27, 12.24055004119873], [28, 15.19452691078186], [29, 32.44872498512268], [30, 31.68655300140381], [31, 36.69259786605835], [32, 38.54943299293518], [33, 21.889217138290405], [34, 110.58815217018127], [35, 29.405611038208008], [36, 12.090751886367798], [37, 22.30542802810669], [38, 32.92535996437073], [39, 17.483433961868286], [40, 39.22908806800842], [41, 55.120667934417725], [42, 65.17862510681152], [43, 25.453917026519775], [44, 23.174155950546265], [45, 36.29753088951111], [46, 99.85064601898193], [47, 17.44580388069153], [48, 89.90400981903076], [49, 89.77613091468811], [50, 35.44659185409546], [51, 57.646239042282104], [52, 91.71143102645874], [53, 19.699648141860962], [54, 38.30334496498108], [55, 22.078879833221436], [56, 24.717966079711914], [57, 120.47220802307129], [58, 49.05564212799072], [59, 22.963968992233276], [60, 45.34664607048035], [61, 82.35249400138855], [62, 39.738234996795654], [63, 114.80699110031128], [64, 48.103116035461426], [65, 94.95798707008362], [66, 30.300873041152954], [67, 119.55406904220581], [68, 25.74759006500244], [69, 96.0978479385376], [70, 76.58630895614624], [71, 109.05310082435608], [72, 39.566797971725464], [73, 24.900609016418457], [74, 106.26201701164246], [75, 21.148963928222656], [76, 31.13754105567932], [77, 65.20572900772095], [78, 131.66279077529907], [79, 119.01860785484314], [80, 33.53435397148132], [81, 64.66470193862915], [82, 74.8991858959198], [83, 130.14911580085754], [84, 124.50284385681152], [85, 98.2136640548706], [86, 51.5708270072937], [87, 71.53983497619629], [88, 30.91620182991028], [89, 17.686975955963135], [90, 125.75616884231567], [91, 65.41027498245239], [92, 116.41056084632874], [93, 44.123255014419556], [94, 61.783154010772705], [95, 81.4989640712738], [96, 45.07183885574341], [97, 129.82533192634583], [98, 24.026819944381714], [99, 110.99756503105164], [100, 130.67950296401978], [101, 29.72754216194153], [102, 15.744634866714478], [103, 24.835283994674683], [104, 88.88603711128235], [105, 19.742995977401733], [106, 5.501614809036255], [107, 6.345494031906128], [108, 8.574602127075195], [109, 4.199834823608398], [110, 23.214097023010254], [111, 14.82335877418518], [112, 13.307000875473022], [113, 30.804073095321655], [114, 6.445815086364746], [115, 14.633522033691406], [116, 13.439706087112427], [117, 7.870268821716309], [118, 6.781202077865601], [119, 40.01658391952515], [120, 7.017565011978149], [121, 12.63286304473877], [122, 6.650518894195557], [123, 48.18323612213135], [124, 10.284775972366333], [125, 14.430051803588867], [126, 11.187114953994751], [127, 8.26561689376831], [128, 8.507772207260132], [129, 9.80977988243103], [130, 51.54258894920349], [131, 60.26535701751709], [132, 9.174638032913208], [133, 82.22761988639832], [134, 5.903810977935791], [135, 71.75466203689575], [136, 24.30163288116455], [137, 12.573086023330688], [138, 58.124587059020996], [139, 26.085740089416504], [140, 13.553523063659668], [141, 28.573108911514282], [142, 44.4051718711853], [143, 18.62328314781189], [144, 6.174572944641113], [145, 80.80785584449768], [146, 39.36010408401489], [147, 14.546499967575073], [148, 17.765448093414307], [149, 16.08864712715149], [150, 8.405370950698853], [151, 9.973305940628052], [152, 5.897475957870483], [153, 20.990455865859985], [154, 11.427140951156616], [155, 29.979480981826782], [156, 7.616935968399048], [157, 10.192478895187378], [158, 23.605642795562744], [159, 12.591368913650513], [160, 78.6807689666748], [161, 22.22385883331299], [162, 93.54439377784729], [163, 28.08368492126465], [164, 86.26102590560913], [165, 8.991408824920654], [166, 20.343428134918213], [167, 5.612643003463745], [168, 11.86182188987732], [169, 7.08620810508728], [170, 11.981628179550171], [171, 6.241924047470093], [172, 14.803662776947021], [173, 15.825860023498535], [174, 10.876380920410156], [175, 22.380964994430542], [176, 6.8667309284210205], [177, 8.280948877334595], [178, 5.707129955291748], [179, 16.856180906295776], [180, 15.094175100326538], [181, 17.660912036895752], [182, 18.97317910194397], [183, 11.468191146850586], [184, 6.508542060852051], [185, 9.716217994689941], [186, 88.39346694946289], [187, 15.005956172943115], [188, 17.85518980026245], [189, 25.921220779418945], [190, 14.76618480682373], [191, 7.701188087463379], [192, 20.526790142059326], [193, 4.238919973373413], [194, 30.353224992752075], [195, 22.112305164337158], [196, 23.619961977005005], [197, 46.18633580207825], [198, 15.57449984550476], [199, 56.66336011886597], [200, 12.471939086914062], [201, 79.17338991165161], [202, 14.383230209350586], [203, 18.94541096687317], [204, 13.43245792388916], [205, 12.492242097854614], [206, 25.843744039535522], [207, 6.627311944961548], [208, 6.22849702835083], [209, 83.79400181770325], [210, 22.78054976463318], [211, 9.3299880027771], [212, 14.740380048751831], [213, 7.057284116744995], [214, 46.461313009262085], [215, 5.581214189529419], [216, 9.363238096237183], [217, 6.501288175582886], [218, 6.100452899932861], [219, 13.609782934188843], [220, 9.066898107528687], [221, 20.636817932128906], [222, 51.02859902381897], [223, 6.298341989517212], [224, 9.947571992874146], [225, 18.346049070358276], [226, 80.7640130519867], [227, 8.252557039260864], [228, 15.804078102111816], [229, 35.55131816864014], [230, 83.3386299610138], [231, 19.600534200668335], [232, 10.90100622177124], [233, 8.314439058303833], [234, 12.288830995559692], [235, 10.55771517753601], [236, 56.93515586853027], [237, 83.52176594734192], [238, 7.642126083374023], [239, 16.976096868515015], [240, 13.953756093978882], [241, 8.922223806381226], [242, 16.140372037887573], [243, 9.969693183898926], [244, 13.100813150405884], [245, 15.303329944610596], [246, 15.261208057403564], [247, 6.1478941440582275], [248, 22.02193784713745], [249, 14.761879205703735], [250, 13.527688980102539], [251, 19.996896982192993], [252, 9.432147026062012], [253, 6.845166921615601], [254, 12.412188053131104], [255, 17.451409816741943], [256, 26.49857211112976], [257, 16.25711703300476], [258, 10.698683977127075], [259, 8.252081871032715], [260, 13.014067888259888], [261, 23.301093101501465], [262, 14.948932886123657], [263, 60.56414604187012], [264, 34.408092975616455], [265, 23.769389152526855], [266, 18.403289079666138], [267, 37.21066999435425], [268, 12.69779896736145], [269, 10.130131959915161], [270, 20.1930570602417], [271, 9.144267082214355], [272, 8.678071022033691], [273, 23.161349058151245], [274, 29.464555025100708], [275, 27.210347175598145], [276, 14.355724096298218], [277, 81.328045129776], [278, 23.526923894882202], [279, 10.127957105636597], [280, 6.023344039916992], [281, 5.12452507019043], [282, 15.29076099395752], [283, 12.817970991134644], [284, 32.2104549407959], [285, 9.16016697883606], [286, 12.495934963226318], [287, 37.931883096694946], [288, 16.142863035202026], [289, 8.64123797416687], [290, 30.497940063476562], [291, 14.661940097808838], [292, 84.83260107040405], [293, 23.03092098236084], [294, 6.446134090423584], [295, 9.425142049789429], [296, 7.721163034439087], [297, 11.27527379989624], [298, 33.809008836746216], [299, 14.170166015625], [300, 13.583847999572754], [301, 5.384081840515137], [302, 93.78545999526978], [303, 85.78004193305969], [304, 95.36498808860779], [305, 88.84109807014465], [306, 53.08064079284668], [307, 5.88120698928833], [308, 76.07441711425781], [309, 4.208863973617554], [310, 6.655253887176514], [311, 32.97538495063782], [312, 25.781012058258057], [313, 14.245035886764526], [314, 10.71750807762146], [315, 12.478036880493164], [316, 39.4050350189209], [317, 24.43176007270813], [318, 10.931525945663452], [319, 7.835283994674683], [320, 13.41100001335144], [321, 19.53114414215088], [322, 23.87192416191101], [323, 8.27464485168457], [324, 7.5269691944122314], [325, 8.432695150375366], [326, 6.437551021575928], [327, 21.465917110443115], [328, 12.043282985687256], [329, 32.1224730014801], [330, 17.29362988471985], [331, 17.26502513885498], [332, 10.660441160202026], [333, 15.689489841461182], [334, 70.38200688362122], [335, 9.928430080413818], [336, 8.99212098121643], [337, 10.724220037460327], [338, 23.74894404411316], [339, 68.67482304573059], [340, 7.917655944824219], [341, 45.425029039382935], [342, 61.550682067871094], [343, 31.239629983901978], [344, 25.004951000213623], [345, 16.0641930103302], [346, 64.47011804580688], [347, 26.99145483970642], [348, 41.27772307395935], [349, 21.906502962112427], [350, 14.101676940917969], [351, 10.298165082931519], [352, 21.156723976135254], [353, 20.269160985946655], [354, 9.085376024246216], [355, 18.698960065841675], [356, 13.051452159881592], [357, 63.54986214637756], [358, 14.659478902816772], [359, 44.959352016448975], [360, 12.006644010543823], [361, 15.460553884506226], [362, 9.914963006973267], [363, 59.674196004867554], [364, 12.68704891204834], [365, 5.8578200340271], [366, 18.95611596107483], [367, 9.10239291191101], [368, 15.933767795562744], [369, 59.279189109802246], [370, 15.970911979675293], [371, 11.446819067001343], [372, 69.5477888584137], [373, 18.91255497932434], [374, 43.682332038879395], [375, 29.555903911590576], [376, 80.96521496772766], [377, 40.523772954940796], [378, 22.736627101898193], [379, 4.87415885925293], [380, 63.54853081703186], [381, 55.164756059646606], [382, 11.210949182510376], [383, 63.82020592689514], [384, 13.764798164367676], [385, 17.225610971450806], [386, 31.060304880142212], [387, 17.273138999938965], [388, 13.198144912719727], [389, 18.111351013183594], [390, 10.691647052764893], [391, 11.196116924285889], [392, 56.510353088378906], [393, 14.454952955245972], [394, 65.77323913574219], [395, 57.52974796295166], [396, 16.006946086883545], [397, 10.562021017074585], [398, 20.694593906402588], [399, 19.587921142578125], [400, 10.431628942489624], [401, 52.142394065856934], [402, 18.736428022384644], [403, 67.06873607635498], [404, 41.407443046569824], [405, 16.494606018066406], [406, 16.543196201324463], [407, 26.45842409133911], [408, 22.097973108291626], [409, 58.18186593055725], [410, 30.332239151000977], [411, 16.21783208847046], [412, 19.329389095306396], [413, 18.945898056030273], [414, 29.20483708381653], [415, 29.888339042663574], [416, 15.619544982910156], [417, 13.804871082305908], [418, 14.807788848876953], [419, 38.88091707229614], [420, 30.177953958511353], [421, 32.16043400764465], [422, 56.081432819366455], [423, 7.532632827758789], [424, 37.67840385437012], [425, 48.47051405906677], [426, 50.79834699630737], [427, 59.946038007736206], [428, 49.78016996383667], [429, 21.57677388191223], [430, 37.03212785720825], [431, 25.531108856201172], [432, 27.86223077774048], [433, 27.47663903236389], [434, 12.083361148834229], [435, 24.9849591255188], [436, 39.902700901031494], [437, 29.620173931121826], [438, 56.783961057662964], [439, 14.417836904525757], [440, 16.00412106513977], [441, 9.815056085586548], [442, 40.578041076660156], [443, 16.783538818359375], [444, 25.663264989852905], [445, 17.274240016937256], [446, 5.686064004898071], [447, 15.28741192817688], [448, 21.738887071609497], [449, 17.484190940856934], [450, 14.530703067779541], [451, 26.647159814834595], [452, 24.16084885597229], [453, 16.93074083328247], [454, 16.620441198349], [455, 38.19576621055603], [456, 12.865458011627197], [457, 27.41936993598938], [458, 31.409542083740234], [459, 6.780879974365234], [460, 31.869277000427246], [461, 18.929857969284058], [462, 32.515161991119385], [463, 20.579130172729492], [464, 43.933274030685425], [465, 20.336513996124268], [466, 17.139472007751465], [467, 28.48359489440918], [468, 21.780576944351196], [469, 15.248758792877197], [470, 21.64314913749695], [471, 16.953258991241455], [472, 14.23682689666748], [473, 35.43883490562439], [474, 15.11818814277649], [475, 16.887763023376465], [476, 17.04905891418457], [477, 20.7899649143219], [478, 19.80965495109558], [479, 15.137235164642334], [480, 10.628788948059082], [481, 20.278191804885864], [482, 17.654759883880615], [483, 12.400544881820679], [484, 22.2704119682312], [485, 17.399412870407104], [486, 18.33225989341736], [487, 15.474748849868774], [488, 15.496466159820557], [489, 18.440458059310913], [490, 23.50739812850952], [491, 19.57787299156189], [492, 26.59323215484619], [493, 23.30640196800232], [494, 11.735454082489014], [495, 19.718379020690918], [496, 17.397062063217163], [497, 13.26111102104187], [498, 8.563307046890259], [499, 16.817008018493652], [500, 6.7181220054626465]]], ["neutron.list_floating_ips", [[1, 0.7680599689483643], [2, 0.22112703323364258], [3, 0.19841504096984863], [4, 0.23050689697265625], [5, 0.5149219036102295], [6, 0.412308931350708], [7, 0.36794090270996094], [8, 0.16710495948791504], [9, 0.17955899238586426], [10, 0], [11, 0.7115859985351562], [12, 0.36098313331604004], [13, 0.3647770881652832], [14, 0.8022081851959229], [15, 0.38763904571533203], [16, 0.2665698528289795], [17, 0.20137810707092285], [18, 0.44158101081848145], [19, 0.6678831577301025], [20, 0.6864950656890869], [21, 0.4789419174194336], [22, 0.9540278911590576], [23, 0.1711750030517578], [24, 0], [25, 0.16371703147888184], [26, 0.2814300060272217], [27, 0.3321819305419922], [28, 0.27045607566833496], [29, 0.6752579212188721], [30, 1.9067740440368652], [31, 0.36617302894592285], [32, 0.28878283500671387], [33, 0.3997650146484375], [34, 0], [35, 0.521798849105835], [36, 0.37404298782348633], [37, 0.6562259197235107], [38, 0.5569820404052734], [39, 0.24115419387817383], [40, 1.277338981628418], [41, 0.6099469661712646], [42, 0.7940211296081543], [43, 0.3022029399871826], [44, 0.45572996139526367], [45, 0.3405590057373047], [46, 0], [47, 0.16208100318908691], [48, 0], [49, 0], [50, 0.427807092666626], [51, 0.86248779296875], [52, 1.0875780582427979], [53, 0.34541893005371094], [54, 0.5304720401763916], [55, 0.8679959774017334], [56, 0.4532289505004883], [57, 2.142271041870117], [58, 0.39101505279541016], [59, 0.8468639850616455], [60, 0.9503111839294434], [61, 0.9131739139556885], [62, 0.7684190273284912], [63, 0], [64, 0.4348599910736084], [65, 0], [66, 1.1867809295654297], [67, 0], [68, 0.2809109687805176], [69, 0], [70, 0.7541041374206543], [71, 2.350830078125], [72, 0.5079059600830078], [73, 0.6105470657348633], [74, 0], [75, 0.2522389888763428], [76, 0.6825180053710938], [77, 1.442106008529663], [78, 0], [79, 0], [80, 0.414884090423584], [81, 0.6436619758605957], [82, 0.6741600036621094], [83, 1.2662379741668701], [84, 2.219640016555786], [85, 1.6137580871582031], [86, 0.5421149730682373], [87, 1.6277248859405518], [88, 0.5157608985900879], [89, 0.32883214950561523], [90, 0], [91, 1.1819019317626953], [92, 0], [93, 1.1662180423736572], [94, 0.5525660514831543], [95, 1.3335299491882324], [96, 0.6060531139373779], [97, 0], [98, 1.0707271099090576], [99, 0], [100, 0], [101, 0.6436901092529297], [102, 0.5414159297943115], [103, 0.39240097999572754], [104, 0], [105, 0.6976280212402344], [106, 0.22433185577392578], [107, 0.37509894371032715], [108, 0.966541051864624], [109, 0.19601988792419434], [110, 0.38675904273986816], [111, 0.586663007736206], [112, 0.7096519470214844], [113, 0.6652109622955322], [114, 0.22592401504516602], [115, 0.5855917930603027], [116, 0.7626240253448486], [117, 0.37248897552490234], [118, 0.4407210350036621], [119, 1.2618460655212402], [120, 0.5176651477813721], [121, 1.3274388313293457], [122, 0.4329960346221924], [123, 0.5033929347991943], [124, 0.49990296363830566], [125, 0.3511359691619873], [126, 0.6024720668792725], [127, 0.6884090900421143], [128, 0.8113059997558594], [129, 0.5978779792785645], [130, 0.6389050483703613], [131, 1.181088924407959], [132, 0.3753530979156494], [133, 0], [134, 0.3595540523529053], [135, 0], [136, 0.8475170135498047], [137, 0.7141368389129639], [138, 0.6931378841400146], [139, 1.5106089115142822], [140, 0.5203709602355957], [141, 0.6142539978027344], [142, 0.6206068992614746], [143, 0.6039400100708008], [144, 0.5692229270935059], [145, 0], [146, 1.1493480205535889], [147, 0.6441190242767334], [148, 0.565295934677124], [149, 1.0093169212341309], [150, 0.48502087593078613], [151, 0.3039588928222656], [152, 0.32593297958374023], [153, 1.436586856842041], [154, 0.4316830635070801], [155, 0.5927879810333252], [156, 0.5210189819335938], [157, 0.48468804359436035], [158, 0.6120829582214355], [159, 0.3804621696472168], [160, 0], [161, 0.5045669078826904], [162, 1.9638409614562988], [163, 0.8487610816955566], [164, 0], [165, 0.5517661571502686], [166, 1.4695041179656982], [167, 0.2975330352783203], [168, 0.5730271339416504], [169, 0.41737890243530273], [170, 0.43831396102905273], [171, 0.3170948028564453], [172, 0.7010679244995117], [173, 0.41956496238708496], [174, 0.6042089462280273], [175, 0.5172638893127441], [176, 0.8516130447387695], [177, 0.5428299903869629], [178, 0.7975339889526367], [179, 1.0364060401916504], [180, 0.6285750865936279], [181, 1.0340750217437744], [182, 1.361832857131958], [183, 0.7332041263580322], [184, 0.5339071750640869], [185, 0.7046010494232178], [186, 1.4201858043670654], [187, 0.7800559997558594], [188, 1.1104540824890137], [189, 1.053877830505371], [190, 0.9556479454040527], [191, 0.8073148727416992], [192, 1.3038079738616943], [193, 0.6821248531341553], [194, 0.9660792350769043], [195, 0.5203149318695068], [196, 1.3160841464996338], [197, 1.01749587059021], [198, 1.2474229335784912], [199, 1.6434590816497803], [200, 1.2733349800109863], [201, 0], [202, 0.6812939643859863], [203, 0.5810718536376953], [204, 0.8292298316955566], [205, 0.511681079864502], [206, 1.2067539691925049], [207, 0.7949388027191162], [208, 0.43398213386535645], [209, 0], [210, 1.0900111198425293], [211, 0.9886190891265869], [212, 0.6747448444366455], [213, 0.49816393852233887], [214, 2.131633996963501], [215, 0.5835881233215332], [216, 0.6740970611572266], [217, 0.8847661018371582], [218, 0.7199039459228516], [219, 1.1275548934936523], [220, 0.6624579429626465], [221, 0.9265670776367188], [222, 1.028777837753296], [223, 0.49300503730773926], [224, 0.7863340377807617], [225, 0.6539738178253174], [226, 0], [227, 0.7990119457244873], [228, 0.8888790607452393], [229, 1.7820680141448975], [230, 0], [231, 1.4858489036560059], [232, 0.474628210067749], [233, 0.5374431610107422], [234, 0.5509052276611328], [235, 0.8509161472320557], [236, 2.052889823913574], [237, 0], [238, 0.8300600051879883], [239, 0.6841740608215332], [240, 1.096703052520752], [241, 1.0609560012817383], [242, 1.3937098979949951], [243, 0.9342970848083496], [244, 0.6725420951843262], [245, 1.317608118057251], [246, 1.123744010925293], [247, 0.8079969882965088], [248, 0.6732048988342285], [249, 1.0334131717681885], [250, 1.030789852142334], [251, 0.9860448837280273], [252, 1.4598791599273682], [253, 0.6259491443634033], [254, 0.8506729602813721], [255, 0.7976758480072021], [256, 1.3663170337677002], [257, 1.3929941654205322], [258, 0.6854770183563232], [259, 0.9868190288543701], [260, 1.4424169063568115], [261, 0.5906400680541992], [262, 0.6994879245758057], [263, 1.6222598552703857], [264, 1.2175278663635254], [265, 0.693242073059082], [266, 1.210690975189209], [267, 1.021407127380371], [268, 0.8238928318023682], [269, 0.8562259674072266], [270, 1.3868730068206787], [271, 0.6828250885009766], [272, 1.1234228610992432], [273, 1.3121330738067627], [274, 1.1994500160217285], [275, 1.338029146194458], [276, 1.4145958423614502], [277, 0.8331620693206787], [278, 1.051588773727417], [279, 1.4327220916748047], [280, 1.1061348915100098], [281, 0.7232890129089355], [282, 0.6313819885253906], [283, 0.773709774017334], [284, 1.1182160377502441], [285, 1.0030081272125244], [286, 0.8715620040893555], [287, 1.3682658672332764], [288, 0.9352991580963135], [289, 0.6967298984527588], [290, 1.0969741344451904], [291, 0.6987290382385254], [292, 1.4725780487060547], [293, 0.9699230194091797], [294, 1.0291640758514404], [295, 0.5836420059204102], [296, 0.8612320423126221], [297, 1.11338210105896], [298, 1.6493198871612549], [299, 1.3689079284667969], [300, 1.4841821193695068], [301, 0.9407610893249512], [302, 0.7394239902496338], [303, 1.0181450843811035], [304, 0.9964818954467773], [305, 1.1750869750976562], [306, 0.9164111614227295], [307, 0.9413797855377197], [308, 1.1070659160614014], [309, 1.0013518333435059], [310, 1.1538820266723633], [311, 2.059148073196411], [312, 1.7863988876342773], [313, 0.6758179664611816], [314, 1.0117769241333008], [315, 1.2897679805755615], [316, 1.3463921546936035], [317, 1.118561029434204], [318, 0.8071749210357666], [319, 0.6758170127868652], [320, 0.8513388633728027], [321, 1.8494369983673096], [322, 0.9815518856048584], [323, 1.2186410427093506], [324, 0.7949559688568115], [325, 0.8940520286560059], [326, 0.9534220695495605], [327, 0.8829998970031738], [328, 1.1650550365447998], [329, 1.7445180416107178], [330, 2.8508238792419434], [331, 2.855203151702881], [332, 1.2279751300811768], [333, 1.860642910003662], [334, 0.8140969276428223], [335, 1.6602959632873535], [336, 1.2849838733673096], [337, 1.4592270851135254], [338, 1.0908548831939697], [339, 0.7386000156402588], [340, 1.1490659713745117], [341, 1.750389814376831], [342, 0.8113958835601807], [343, 2.2206389904022217], [344, 1.1858069896697998], [345, 1.471851110458374], [346, 1.225381851196289], [347, 1.5443108081817627], [348, 0.9969367980957031], [349, 1.424713134765625], [350, 0.8511669635772705], [351, 0.9893410205841064], [352, 1.277069091796875], [353, 1.0344197750091553], [354, 0.8392138481140137], [355, 1.9390568733215332], [356, 1.8269829750061035], [357, 1.3102929592132568], [358, 1.5457301139831543], [359, 1.8480439186096191], [360, 1.485055923461914], [361, 1.4131639003753662], [362, 1.3504960536956787], [363, 1.1242938041687012], [364, 0.8469879627227783], [365, 1.8207449913024902], [366, 1.6793489456176758], [367, 1.7206158638000488], [368, 1.3054580688476562], [369, 0.7000479698181152], [370, 2.0387330055236816], [371, 0.9360740184783936], [372, 0.6664650440216064], [373, 1.2866699695587158], [374, 1.0167229175567627], [375, 3.008747100830078], [376, 1.0870039463043213], [377, 1.5235280990600586], [378, 1.6298420429229736], [379, 1.3382320404052734], [380, 1.0267980098724365], [381, 0.8280248641967773], [382, 1.0994830131530762], [383, 0.8541769981384277], [384, 1.4217219352722168], [385, 0.9577779769897461], [386, 1.3968911170959473], [387, 0.9694900512695312], [388, 1.6899118423461914], [389, 1.6882140636444092], [390, 1.1998939514160156], [391, 1.6425600051879883], [392, 0.9056820869445801], [393, 1.5203580856323242], [394, 1.0261399745941162], [395, 1.225740909576416], [396, 1.4067487716674805], [397, 1.5295679569244385], [398, 1.430142879486084], [399, 2.115556001663208], [400, 1.8383710384368896], [401, 1.1393117904663086], [402, 2.504863977432251], [403, 1.0710160732269287], [404, 1.6039059162139893], [405, 1.958832025527954], [406, 1.466068983078003], [407, 0.8635518550872803], [408, 1.8006391525268555], [409, 0.9388060569763184], [410, 1.95188307762146], [411, 1.2912092208862305], [412, 1.8427181243896484], [413, 1.2373859882354736], [414, 1.6718659400939941], [415, 1.1941139698028564], [416, 1.1776878833770752], [417, 1.25077486038208], [418, 1.8397619724273682], [419, 1.0706961154937744], [420, 1.7325198650360107], [421, 1.4695961475372314], [422, 0.8227789402008057], [423, 0.9647059440612793], [424, 0.7726809978485107], [425, 0.7194278240203857], [426, 0.6937289237976074], [427, 0.7724850177764893], [428, 1.149799108505249], [429, 2.0955498218536377], [430, 0.8211040496826172], [431, 1.705759048461914], [432, 1.3050861358642578], [433, 1.0944609642028809], [434, 1.9785370826721191], [435, 1.1763770580291748], [436, 1.3491389751434326], [437, 1.3254101276397705], [438, 0.5982229709625244], [439, 1.8205759525299072], [440, 1.3925230503082275], [441, 1.438478946685791], [442, 0.7132959365844727], [443, 2.212380886077881], [444, 1.6423850059509277], [445, 1.1456079483032227], [446, 1.0576131343841553], [447, 1.5180928707122803], [448, 1.5646381378173828], [449, 1.458522081375122], [450, 1.283064842224121], [451, 1.7518959045410156], [452, 1.1891119480133057], [453, 2.4973859786987305], [454, 1.6516988277435303], [455, 0.9134969711303711], [456, 1.2534120082855225], [457, 0.7236990928649902], [458, 0.7787551879882812], [459, 0.9125649929046631], [460, 0.9706871509552002], [461, 1.2620530128479004], [462, 0.7861080169677734], [463, 1.0763969421386719], [464, 0.6855161190032959], [465, 0.7710459232330322], [466, 1.8404371738433838], [467, 0.7732570171356201], [468, 1.3161039352416992], [469, 1.5548949241638184], [470, 0.7742679119110107], [471, 1.0710899829864502], [472, 1.2891759872436523], [473, 0.8040440082550049], [474, 1.2056679725646973], [475, 1.979240894317627], [476, 1.3810088634490967], [477, 1.5956850051879883], [478, 1.1980948448181152], [479, 1.6328778266906738], [480, 0.978640079498291], [481, 1.5441288948059082], [482, 0.7099621295928955], [483, 0.9961371421813965], [484, 0.6674840450286865], [485, 0.7759292125701904], [486, 0.7398171424865723], [487, 1.2269179821014404], [488, 1.9406421184539795], [489, 1.2133121490478516], [490, 1.0328540802001953], [491, 0.5402870178222656], [492, 0.6223700046539307], [493, 1.3223350048065186], [494, 1.0214259624481201], [495, 0.6437079906463623], [496, 1.2645039558410645], [497, 1.028818130493164], [498, 1.360856056213379], [499, 0.889847993850708], [500, 1.7404978275299072]]], ["failed_duration", [[1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0], [8, 0], [9, 0], [10, 3.504753112792969e-05], [11, 0], [12, 0], [13, 0], [14, 0], [15, 0], [16, 0], [17, 0], [18, 0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 6.008148193359375e-05], [25, 0], [26, 0], [27, 0], [28, 0], [29, 0], [30, 0], [31, 0], [32, 0], [33, 0], [34, 2.8848648071289062e-05], [35, 0], [36, 0], [37, 0], [38, 0], [39, 0], [40, 0], [41, 0], [42, 0], [43, 0], [44, 0], [45, 0], [46, 3.0040740966796875e-05], [47, 0], [48, 3.218650817871094e-05], [49, 3.600120544433594e-05], [50, 0], [51, 0], [52, 0], [53, 0], [54, 0], [55, 0], [56, 0], [57, 0], [58, 0], [59, 0], [60, 0], [61, 0], [62, 0], [63, 8.678436279296875e-05], [64, 0], [65, 2.7894973754882812e-05], [66, 0], [67, 3.0040740966796875e-05], [68, 0], [69, 2.4080276489257812e-05], [70, 0], [71, 0], [72, 0], [73, 0], [74, 2.3126602172851562e-05], [75, 0], [76, 0], [77, 0], [78, 3.123283386230469e-05], [79, 3.62396240234375e-05], [80, 0], [81, 0], [82, 0], [83, 0], [84, 0], [85, 0], [86, 0], [87, 0], [88, 0], [89, 0], [90, 4.029273986816406e-05], [91, 0], [92, 2.4080276489257812e-05], [93, 0], [94, 0], [95, 0], [96, 0], [97, 2.8133392333984375e-05], [98, 0], [99, 4.100799560546875e-05], [100, 4.1961669921875e-05], [101, 0], [102, 0], [103, 0], [104, 3.1948089599609375e-05], [105, 0], [106, 0], [107, 0], [108, 0], [109, 0], [110, 0], [111, 0], [112, 0], [113, 0], [114, 0], [115, 0], [116, 0], [117, 0], [118, 0], [119, 0], [120, 0], [121, 0], [122, 0], [123, 0], [124, 0], [125, 0], [126, 0], [127, 0], [128, 0], [129, 0], [130, 0], [131, 0], [132, 0], [133, 3.528594970703125e-05], [134, 0], [135, 2.8848648071289062e-05], [136, 0], [137, 0], [138, 0], [139, 0], [140, 0], [141, 0], [142, 0], [143, 0], [144, 0], [145, 3.933906555175781e-05], [146, 0], [147, 0], [148, 0], [149, 0], [150, 0], [151, 0], [152, 0], [153, 0], [154, 0], [155, 0], [156, 0], [157, 0], [158, 0], [159, 0], [160, 2.5987625122070312e-05], [161, 0], [162, 0], [163, 0], [164, 4.315376281738281e-05], [165, 0], [166, 0], [167, 0], [168, 0], [169, 0], [170, 0], [171, 0], [172, 0], [173, 0], [174, 0], [175, 0], [176, 0], [177, 0], [178, 0], [179, 0], [180, 0], [181, 0], [182, 0], [183, 0], [184, 0], [185, 0], [186, 0], [187, 0], [188, 0], [189, 0], [190, 0], [191, 0], [192, 0], [193, 0], [194, 0], [195, 0], [196, 0], [197, 0], [198, 0], [199, 0], [200, 0], [201, 2.5987625122070312e-05], [202, 0], [203, 0], [204, 0], [205, 0], [206, 0], [207, 0], [208, 0], [209, 2.8133392333984375e-05], [210, 0], [211, 0], [212, 0], [213, 0], [214, 0], [215, 0], [216, 0], [217, 0], [218, 0], [219, 0], [220, 0], [221, 0], [222, 0], [223, 0], [224, 0], [225, 0], [226, 3.695487976074219e-05], [227, 0], [228, 0], [229, 0], [230, 4.601478576660156e-05], [231, 0], [232, 0], [233, 0], [234, 0], [235, 0], [236, 0], [237, 2.2172927856445312e-05], [238, 0], [239, 0], [240, 0], [241, 0], [242, 0], [243, 0], [244, 0], [245, 0], [246, 0], [247, 0], [248, 0], [249, 0], [250, 0], [251, 0], [252, 0], [253, 0], [254, 0], [255, 0], [256, 0], [257, 0], [258, 0], [259, 0], [260, 0], [261, 0], [262, 0], [263, 0], [264, 0], [265, 0], [266, 0], [267, 0], [268, 0], [269, 0], [270, 0], [271, 0], [272, 0], [273, 0], [274, 0], [275, 0], [276, 0], [277, 0], [278, 0], [279, 0], [280, 0], [281, 0], [282, 0], [283, 0], [284, 0], [285, 0], [286, 0], [287, 0], [288, 0], [289, 0], [290, 0], [291, 0], [292, 0], [293, 0], [294, 0], [295, 0], [296, 0], [297, 0], [298, 0], [299, 0], [300, 0], [301, 0], [302, 0], [303, 0], [304, 0], [305, 0], [306, 0], [307, 0], [308, 0], [309, 0], [310, 0], [311, 0], [312, 0], [313, 0], [314, 0], [315, 0], [316, 0], [317, 0], [318, 0], [319, 0], [320, 0], [321, 0], [322, 0], [323, 0], [324, 0], [325, 0], [326, 0], [327, 0], [328, 0], [329, 0], [330, 0], [331, 0], [332, 0], [333, 0], [334, 0], [335, 0], [336, 0], [337, 0], [338, 0], [339, 0], [340, 0], [341, 0], [342, 0], [343, 0], [344, 0], [345, 0], [346, 0], [347, 0], [348, 0], [349, 0], [350, 0], [351, 0], [352, 0], [353, 0], [354, 0], [355, 0], [356, 0], [357, 0], [358, 0], [359, 0], [360, 0], [361, 0], [362, 0], [363, 0], [364, 0], [365, 0], [366, 0], [367, 0], [368, 0], [369, 0], [370, 0], [371, 0], [372, 0], [373, 0], [374, 0], [375, 0], [376, 0], [377, 0], [378, 0], [379, 0], [380, 0], [381, 0], [382, 0], [383, 0], [384, 0], [385, 0], [386, 0], [387, 0], [388, 0], [389, 0], [390, 0], [391, 0], [392, 0], [393, 0], [394, 0], [395, 0], [396, 0], [397, 0], [398, 0], [399, 0], [400, 0], [401, 0], [402, 0], [403, 0], [404, 0], [405, 0], [406, 0], [407, 0], [408, 0], [409, 0], [410, 0], [411, 0], [412, 0], [413, 0], [414, 0], [415, 0], [416, 0], [417, 0], [418, 0], [419, 0], [420, 0], [421, 0], [422, 0], [423, 0], [424, 0], [425, 0], [426, 0], [427, 0], [428, 0], [429, 0], [430, 0], [431, 0], [432, 0], [433, 0], [434, 0], [435, 0], [436, 0], [437, 0], [438, 0], [439, 0], [440, 0], [441, 0], [442, 0], [443, 0], [444, 0], [445, 0], [446, 0], [447, 0], [448, 0], [449, 0], [450, 0], [451, 0], [452, 0], [453, 0], [454, 0], [455, 0], [456, 0], [457, 0], [458, 0], [459, 0], [460, 0], [461, 0], [462, 0], [463, 0], [464, 0], [465, 0], [466, 0], [467, 0], [468, 0], [469, 0], [470, 0], [471, 0], [472, 0], [473, 0], [474, 0], [475, 0], [476, 0], [477, 0], [478, 0], [479, 0], [480, 0], [481, 0], [482, 0], [483, 0], [484, 0], [485, 0], [486, 0], [487, 0], [488, 0], [489, 0], [490, 0], [491, 0], [492, 0], [493, 0], [494, 0], [495, 0], [496, 0], [497, 0], [498, 0], [499, 0], [500, 0]]]], "histogram": {"data": [[{"disabled": 0, "values": [{"y": 80, "x": 9.741869565217392}, {"y": 102, "x": 15.283739130434782}, {"y": 92, "x": 20.825608695652175}, {"y": 54, "x": 26.367478260869564}, {"y": 33, "x": 31.909347826086954}, {"y": 19, "x": 37.451217391304354}, {"y": 17, "x": 42.99308695652174}, {"y": 13, "x": 48.53495652173913}, {"y": 8, "x": 54.07682608695652}, {"y": 12, "x": 59.61869565217391}, {"y": 11, "x": 65.16056521739131}, {"y": 8, "x": 70.7024347826087}, {"y": 4, "x": 76.24430434782609}, {"y": 8, "x": 81.78617391304348}, {"y": 8, "x": 87.32804347826087}, {"y": 6, "x": 92.86991304347826}, {"y": 7, "x": 98.41178260869566}, {"y": 1, "x": 103.95365217391304}, {"y": 4, "x": 109.49552173913044}, {"y": 3, "x": 115.03739130434782}, {"y": 4, "x": 120.57926086956522}, {"y": 2, "x": 126.12113043478261}, {"y": 4, "x": 131.66299999999998}], "key": "neutron.create_floating_ip", "view": "Square Root Choice"}, {"disabled": 1, "values": [{"y": 47, "x": 0.2857826086956522}, {"y": 26, "x": 0.40956521739130436}, {"y": 34, "x": 0.5333478260869565}, {"y": 42, "x": 0.6571304347826087}, {"y": 58, "x": 0.780913043478261}, {"y": 45, "x": 0.9046956521739131}, {"y": 43, "x": 1.0284782608695653}, {"y": 41, "x": 1.1522608695652174}, {"y": 34, "x": 1.2760434782608696}, {"y": 36, "x": 1.3998260869565218}, {"y": 27, "x": 1.523608695652174}, {"y": 16, "x": 1.647391304347826}, {"y": 14, "x": 1.7711739130434783}, {"y": 13, "x": 1.8949565217391304}, {"y": 8, "x": 2.0187391304347826}, {"y": 7, "x": 2.142521739130435}, {"y": 3, "x": 2.266304347826087}, {"y": 1, "x": 2.3900869565217393}, {"y": 2, "x": 2.5138695652173912}, {"y": 0, "x": 2.6376521739130436}, {"y": 0, "x": 2.7614347826086956}, {"y": 2, "x": 2.885217391304348}, {"y": 1, "x": 3.009}], "key": "neutron.list_floating_ips", "view": "Square Root Choice"}], [{"disabled": 0, "values": [{"y": 216, "x": 16.9463}, {"y": 129, "x": 29.692600000000002}, {"y": 52, "x": 42.438900000000004}, {"y": 23, "x": 55.18520000000001}, {"y": 26, "x": 67.93150000000001}, {"y": 10, "x": 80.6778}, {"y": 19, "x": 93.42410000000001}, {"y": 8, "x": 106.17040000000001}, {"y": 8, "x": 118.91670000000002}, {"y": 9, "x": 131.663}], "key": "neutron.create_floating_ip", "view": "Sturges Formula"}, {"disabled": 1, "values": [{"y": 85, "x": 0.4467}, {"y": 105, "x": 0.7314}, {"y": 98, "x": 1.0161}, {"y": 90, "x": 1.3008}, {"y": 61, "x": 1.5855}, {"y": 37, "x": 1.8702}, {"y": 15, "x": 2.1549}, {"y": 4, "x": 2.4396}, {"y": 2, "x": 2.7243}, {"y": 3, "x": 3.009}], "key": "neutron.list_floating_ips", "view": "Sturges Formula"}], [{"disabled": 0, "values": [{"y": 120, "x": 12.1664375}, {"y": 144, "x": 20.132875000000002}, {"y": 74, "x": 28.0993125}, {"y": 38, "x": 36.06575}, {"y": 23, "x": 44.032187500000006}, {"y": 17, "x": 51.998625000000004}, {"y": 16, "x": 59.96506250000001}, {"y": 14, "x": 67.9315}, {"y": 6, "x": 75.89793750000001}, {"y": 14, "x": 83.86437500000001}, {"y": 9, "x": 91.83081250000001}, {"y": 7, "x": 99.79725}, {"y": 2, "x": 107.7636875}, {"y": 6, "x": 115.73012500000002}, {"y": 4, "x": 123.69656250000001}, {"y": 6, "x": 131.663}], "key": "neutron.create_floating_ip", "view": "Rice Rule"}, {"disabled": 1, "values": [{"y": 55, "x": 0.3399375}, {"y": 47, "x": 0.517875}, {"y": 72, "x": 0.6958125000000001}, {"y": 73, "x": 0.87375}, {"y": 58, "x": 1.0516874999999999}, {"y": 56, "x": 1.229625}, {"y": 46, "x": 1.4075624999999998}, {"y": 32, "x": 1.5855}, {"y": 24, "x": 1.7634375}, {"y": 16, "x": 1.9413749999999999}, {"y": 10, "x": 2.1193125}, {"y": 5, "x": 2.29725}, {"y": 1, "x": 2.4751875}, {"y": 2, "x": 2.6531249999999997}, {"y": 0, "x": 2.8310625}, {"y": 3, "x": 3.009}], "key": "neutron.list_floating_ips", "view": "Rice Rule"}]], "views": [{"id": 0, "name": "Square Root Choice"}, {"id": 1, "name": "Sturges Formula"}, {"id": 2, "name": "Rice Rule"}]}}, "iterations": {"pie": [["success", 471], ["errors", 29]], "iter": [["duration", [[1, 7.207024097442627], [2, 7.892816781997681], [3, 5.687337160110474], [4, 25.204663038253784], [5, 16.149664163589478], [6, 20.46660614013672], [7, 10.870601892471313], [8, 4.5229880809783936], [9, 7.513660907745361], [10, 0], [11, 18.116855144500732], [12, 14.025656938552856], [13, 14.014430046081543], [14, 18.118865966796875], [15, 24.700026035308838], [16, 14.416218996047974], [17, 23.355165004730225], [18, 16.46842885017395], [19, 36.285767793655396], [20, 18.122090816497803], [21, 16.195632934570312], [22, 96.48154783248901], [23, 11.7569100856781], [24, 0], [25, 16.26798105239868], [26, 33.64479422569275], [27, 12.572798013687134], [28, 15.465031147003174], [29, 33.12407088279724], [30, 33.59340310096741], [31, 37.05988001823425], [32, 38.838340044021606], [33, 22.28904700279236], [34, 0], [35, 29.927507162094116], [36, 12.464879989624023], [37, 22.96171808242798], [38, 33.48240804672241], [39, 17.724637031555176], [40, 40.50653409957886], [41, 55.73078489303589], [42, 65.97291994094849], [43, 25.75617289543152], [44, 23.629968881607056], [45, 36.638188123703], [46, 0], [47, 17.607967138290405], [48, 0], [49, 0], [50, 35.87448215484619], [51, 58.50888204574585], [52, 92.79940795898438], [53, 20.045149087905884], [54, 38.833895206451416], [55, 22.946967124938965], [56, 25.171268939971924], [57, 122.61475419998169], [58, 49.44679093360901], [59, 23.810899019241333], [60, 46.29708290100098], [61, 83.26594114303589], [62, 40.50676488876343], [63, 0], [64, 48.53823494911194], [65, 0], [66, 31.48778510093689], [67, 0], [68, 26.028563022613525], [69, 0], [70, 77.340567111969], [71, 111.40412497520447], [72, 40.074833154678345], [73, 25.511216163635254], [74, 0], [75, 21.40130615234375], [76, 31.820126056671143], [77, 66.6484010219574], [78, 0], [79, 0], [80, 33.94936490058899], [81, 65.30860590934753], [82, 75.57356905937195], [83, 131.4156129360199], [84, 126.72293090820312], [85, 99.82763409614563], [86, 52.113065004348755], [87, 73.16780996322632], [88, 31.43203592300415], [89, 18.015870094299316], [90, 0], [91, 66.59232211112976], [92, 0], [93, 45.289584159851074], [94, 62.335901975631714], [95, 82.83271217346191], [96, 45.67806696891785], [97, 0], [98, 25.097618103027344], [99, 0], [100, 0], [101, 30.37131094932556], [102, 16.286171913146973], [103, 25.22776198387146], [104, 0], [105, 20.440718173980713], [106, 5.726017951965332], [107, 6.7206830978393555], [108, 9.541233777999878], [109, 4.3959221839904785], [110, 23.600950002670288], [111, 15.410086870193481], [112, 14.016727924346924], [113, 31.46942710876465], [114, 6.67182993888855], [115, 15.219319105148315], [116, 14.202438116073608], [117, 8.242838144302368], [118, 7.221988916397095], [119, 41.27864694595337], [120, 7.535299777984619], [121, 13.960368871688843], [122, 7.083590984344482], [123, 48.68677997589111], [124, 10.784754991531372], [125, 14.781270980834961], [126, 11.789777994155884], [127, 8.954102039337158], [128, 9.319169044494629], [129, 10.407767057418823], [130, 52.18165588378906], [131, 61.44672203063965], [132, 9.5501070022583], [133, 0], [134, 6.263432025909424], [135, 0], [136, 25.14932894706726], [137, 13.287407875061035], [138, 58.81786394119263], [139, 27.59654188156128], [140, 14.073956966400146], [141, 29.18754291534424], [142, 45.02604103088379], [143, 19.22735095024109], [144, 6.743886947631836], [145, 0], [146, 40.509624004364014], [147, 15.190729856491089], [148, 18.33084201812744], [149, 17.098198890686035], [150, 8.8904550075531], [151, 10.277321100234985], [152, 6.223490953445435], [153, 22.4273419380188], [154, 11.858975172042847], [155, 30.572420120239258], [156, 8.13802719116211], [157, 10.677235126495361], [158, 24.21794295310974], [159, 12.97195291519165], [160, 0], [161, 22.728561878204346], [162, 95.50841689109802], [163, 28.93256902694702], [164, 0], [165, 9.543285131454468], [166, 21.8131000995636], [167, 5.910253047943115], [168, 12.434986114501953], [169, 7.503736972808838], [170, 12.420027017593384], [171, 6.559095144271851], [172, 15.504848003387451], [173, 16.245545864105225], [174, 11.480712175369263], [175, 22.898478984832764], [176, 7.718435049057007], [177, 8.823899030685425], [178, 6.504801988601685], [179, 17.892720937728882], [180, 15.722998857498169], [181, 18.69508695602417], [182, 20.33517813682556], [183, 12.201605081558228], [184, 7.042701005935669], [185, 10.421020030975342], [186, 89.81385207176208], [187, 15.786166906356812], [188, 18.965745210647583], [189, 26.975356101989746], [190, 15.721930027008057], [191, 8.508980989456177], [192, 21.830785036087036], [193, 4.9211812019348145], [194, 31.31943392753601], [195, 22.632807970046997], [196, 24.93635392189026], [197, 47.204071044921875], [198, 16.822244882583618], [199, 58.307064056396484], [200, 13.74550986289978], [201, 0], [202, 15.064620018005371], [203, 19.526714086532593], [204, 14.26186203956604], [205, 13.004065036773682], [206, 27.05069398880005], [207, 7.4223878383636475], [208, 6.662597894668579], [209, 0], [210, 23.870770931243896], [211, 10.318753004074097], [212, 15.415402889251709], [213, 7.555586099624634], [214, 48.59316110610962], [215, 6.165024995803833], [216, 10.037452936172485], [217, 7.386229991912842], [218, 6.820577144622803], [219, 14.737509965896606], [220, 9.729531049728394], [221, 21.56371307373047], [222, 52.05761694908142], [223, 6.791482925415039], [224, 10.734035968780518], [225, 19.000179052352905], [226, 0], [227, 9.051778793334961], [228, 16.69324493408203], [229, 37.33358097076416], [230, 0], [231, 21.086557149887085], [232, 11.375782012939453], [233, 8.852009057998657], [234, 12.839920043945312], [235, 11.408885955810547], [236, 58.98831105232239], [237, 0], [238, 8.472349882125854], [239, 17.660596132278442], [240, 15.05061411857605], [241, 9.983340978622437], [242, 17.534246921539307], [243, 10.904217958450317], [244, 13.773511171340942], [245, 16.62109613418579], [246, 16.38514494895935], [247, 6.956117868423462], [248, 22.69537901878357], [249, 15.79548192024231], [250, 14.558712005615234], [251, 20.98311495780945], [252, 10.892323017120361], [253, 7.4713051319122314], [254, 13.263075113296509], [255, 18.249289989471436], [256, 27.865069150924683], [257, 17.650249004364014], [258, 11.384346961975098], [259, 9.239073038101196], [260, 14.456757068634033], [261, 23.89193105697632], [262, 15.648602962493896], [263, 62.18667912483215], [264, 35.6257758140564], [265, 24.462905883789062], [266, 19.614117860794067], [267, 38.23233509063721], [268, 13.52186894416809], [269, 10.986511945724487], [270, 21.58008599281311], [271, 9.82738208770752], [272, 9.801722049713135], [273, 24.473711013793945], [274, 30.664317846298218], [275, 28.548688888549805], [276, 15.770622968673706], [277, 82.16155481338501], [278, 24.578730821609497], [279, 11.560819149017334], [280, 7.129651069641113], [281, 5.847941875457764], [282, 15.922284126281738], [283, 13.5918550491333], [284, 33.32913112640381], [285, 10.16342806816101], [286, 13.367650032043457], [287, 39.30034399032593], [288, 17.078359127044678], [289, 9.338205099105835], [290, 31.59512186050415], [291, 15.360790014266968], [292, 86.30542492866516], [293, 24.000988006591797], [294, 7.475618124008179], [295, 10.009010076522827], [296, 8.582641124725342], [297, 12.388935804367065], [298, 35.45852208137512], [299, 15.539245128631592], [300, 15.068279027938843], [301, 6.32508111000061], [302, 94.52537083625793], [303, 86.79840517044067], [304, 96.3617889881134], [305, 90.01646494865417], [306, 53.99732780456543], [307, 6.822839021682739], [308, 77.18167495727539], [309, 5.210430145263672], [310, 7.809355020523071], [311, 35.03475999832153], [312, 27.56760811805725], [313, 14.921040058135986], [314, 11.729496002197266], [315, 13.76799988746643], [316, 40.751615047454834], [317, 25.550498962402344], [318, 11.738864183425903], [319, 8.511322975158691], [320, 14.26252007484436], [321, 21.380850076675415], [322, 24.853672981262207], [323, 9.493438959121704], [324, 8.322153091430664], [325, 9.326961994171143], [326, 7.391274929046631], [327, 22.349178075790405], [328, 13.208472967147827], [329, 33.86718201637268], [330, 20.144702911376953], [331, 20.120502948760986], [332, 11.88863205909729], [333, 17.55038595199585], [334, 71.19635009765625], [335, 11.58899188041687], [336, 10.277400970458984], [337, 12.183785200119019], [338, 24.84000301361084], [339, 69.41362500190735], [340, 9.06692385673523], [341, 47.17566204071045], [342, 62.36233186721802], [343, 33.46049404144287], [344, 26.190996170043945], [345, 17.5362229347229], [346, 65.6957221031189], [347, 28.5361430644989], [348, 42.27483797073364], [349, 23.331438064575195], [350, 14.953110933303833], [351, 11.287790060043335], [352, 22.43412184715271], [353, 21.30386996269226], [354, 9.924773931503296], [355, 20.638278007507324], [356, 14.87874698638916], [357, 64.86037683486938], [358, 16.20539903640747], [359, 46.80760979652405], [360, 13.491942882537842], [361, 16.873929023742676], [362, 11.265630960464478], [363, 60.798922061920166], [364, 13.534191131591797], [365, 7.678837060928345], [366, 20.6358380317688], [367, 10.823344230651855], [368, 17.23943281173706], [369, 59.979496002197266], [370, 18.00991702079773], [371, 12.383058071136475], [372, 70.21464204788208], [373, 20.199493885040283], [374, 44.69949698448181], [375, 32.5649950504303], [376, 82.05263614654541], [377, 42.04753613471985], [378, 24.366811990737915], [379, 6.2125561237335205], [380, 64.57558989524841], [381, 55.99305987358093], [382, 12.310688972473145], [383, 64.67478394508362], [384, 15.18670916557312], [385, 18.183578968048096], [386, 32.45735502243042], [387, 18.242830991744995], [388, 14.88869595527649], [389, 19.79976201057434], [390, 11.891813039779663], [391, 12.838919162750244], [392, 57.4162712097168], [393, 15.975553035736084], [394, 66.79963898658752], [395, 58.7559278011322], [396, 17.413896083831787], [397, 12.091913938522339], [398, 22.125190019607544], [399, 21.703731060028076], [400, 12.270297050476074], [401, 53.28199887275696], [402, 21.2414870262146], [403, 68.14004898071289], [404, 43.012043952941895], [405, 18.453694105148315], [406, 18.009517192840576], [407, 27.322432041168213], [408, 23.898900032043457], [409, 59.121089935302734], [410, 32.28438186645508], [411, 17.509232997894287], [412, 21.172510862350464], [413, 20.183594942092896], [414, 30.87710404396057], [415, 31.082730054855347], [416, 16.79743003845215], [417, 15.055811166763306], [418, 16.64775514602661], [419, 39.95189619064331], [420, 31.911000967025757], [421, 33.63038897514343], [422, 56.90441012382507], [423, 8.49757981300354], [424, 38.4513680934906], [425, 49.19018793106079], [426, 51.49231314659119], [427, 60.71877098083496], [428, 50.93019700050354], [429, 23.672620058059692], [430, 37.853540897369385], [431, 27.237136125564575], [432, 29.167503118515015], [433, 28.571408987045288], [434, 14.062434911727905], [435, 26.161596059799194], [436, 41.25206685066223], [437, 30.945820093154907], [438, 57.38243389129639], [439, 16.238744020462036], [440, 17.396939039230347], [441, 11.253761053085327], [442, 41.29166102409363], [443, 18.99613904953003], [444, 27.305999040603638], [445, 18.420073986053467], [446, 6.744016170501709], [447, 16.805718898773193], [448, 23.30399990081787], [449, 18.943002939224243], [450, 15.814117908477783], [451, 28.399302005767822], [452, 25.350292921066284], [453, 19.42848491668701], [454, 18.27236294746399], [455, 39.109538078308105], [456, 14.119075059890747], [457, 28.143280029296875], [458, 32.18876004219055], [459, 7.693603992462158], [460, 32.84013390541077], [461, 20.192307949066162], [462, 33.30153203010559], [463, 21.656079053878784], [464, 44.619117975234985], [465, 21.10791301727295], [466, 18.980148792266846], [467, 29.257102012634277], [468, 23.097126960754395], [469, 16.80393409729004], [470, 22.418022871017456], [471, 18.024614095687866], [472, 15.526178121566772], [473, 36.24311900138855], [474, 16.32407808303833], [475, 18.867238998413086], [476, 18.43113899230957], [477, 22.385953187942505], [478, 21.008063077926636], [479, 16.770487785339355], [480, 11.607774019241333], [481, 21.82256007194519], [482, 18.364923000335693], [483, 13.396934032440186], [484, 22.938102960586548], [485, 18.175657033920288], [486, 19.072268962860107], [487, 16.70211100578308], [488, 17.437609910964966], [489, 19.65410304069519], [490, 24.54062795639038], [491, 20.118412017822266], [492, 27.215790033340454], [493, 24.628965139389038], [494, 12.75716495513916], [495, 20.362260103225708], [496, 18.66185188293457], [497, 14.290113925933838], [498, 9.924558877944946], [499, 17.707287073135376], [500, 8.458834171295166]]], ["idle_duration", [[1, 0.0], [2, 0.0], [3, 0.0], [4, 0.0], [5, 0.0], [6, 0.0], [7, 0.0], [8, 0.0], [9, 0.0], [10, 0], [11, 0.0], [12, 0.0], [13, 0.0], [14, 0.0], [15, 0.0], [16, 0.0], [17, 0.0], [18, 0.0], [19, 0.0], [20, 0.0], [21, 0.0], [22, 0.0], [23, 0.0], [24, 0], [25, 0.0], [26, 0.0], [27, 0.0], [28, 0.0], [29, 0.0], [30, 0.0], [31, 0.0], [32, 0.0], [33, 0.0], [34, 0], [35, 0.0], [36, 0.0], [37, 0.0], [38, 0.0], [39, 0.0], [40, 0.0], [41, 0.0], [42, 0.0], [43, 0.0], [44, 0.0], [45, 0.0], [46, 0], [47, 0.0], [48, 0], [49, 0], [50, 0.0], [51, 0.0], [52, 0.0], [53, 0.0], [54, 0.0], [55, 0.0], [56, 0.0], [57, 0.0], [58, 0.0], [59, 0.0], [60, 0.0], [61, 0.0], [62, 0.0], [63, 0], [64, 0.0], [65, 0], [66, 0.0], [67, 0], [68, 0.0], [69, 0], [70, 0.0], [71, 0.0], [72, 0.0], [73, 0.0], [74, 0], [75, 0.0], [76, 0.0], [77, 0.0], [78, 0], [79, 0], [80, 0.0], [81, 0.0], [82, 0.0], [83, 0.0], [84, 0.0], [85, 0.0], [86, 0.0], [87, 0.0], [88, 0.0], [89, 0.0], [90, 0], [91, 0.0], [92, 0], [93, 0.0], [94, 0.0], [95, 0.0], [96, 0.0], [97, 0], [98, 0.0], [99, 0], [100, 0], [101, 0.0], [102, 0.0], [103, 0.0], [104, 0], [105, 0.0], [106, 0.0], [107, 0.0], [108, 0.0], [109, 0.0], [110, 0.0], [111, 0.0], [112, 0.0], [113, 0.0], [114, 0.0], [115, 0.0], [116, 0.0], [117, 0.0], [118, 0.0], [119, 0.0], [120, 0.0], [121, 0.0], [122, 0.0], [123, 0.0], [124, 0.0], [125, 0.0], [126, 0.0], [127, 0.0], [128, 0.0], [129, 0.0], [130, 0.0], [131, 0.0], [132, 0.0], [133, 0], [134, 0.0], [135, 0], [136, 0.0], [137, 0.0], [138, 0.0], [139, 0.0], [140, 0.0], [141, 0.0], [142, 0.0], [143, 0.0], [144, 0.0], [145, 0], [146, 0.0], [147, 0.0], [148, 0.0], [149, 0.0], [150, 0.0], [151, 0.0], [152, 0.0], [153, 0.0], [154, 0.0], [155, 0.0], [156, 0.0], [157, 0.0], [158, 0.0], [159, 0.0], [160, 0], [161, 0.0], [162, 0.0], [163, 0.0], [164, 0], [165, 0.0], [166, 0.0], [167, 0.0], [168, 0.0], [169, 0.0], [170, 0.0], [171, 0.0], [172, 0.0], [173, 0.0], [174, 0.0], [175, 0.0], [176, 0.0], [177, 0.0], [178, 0.0], [179, 0.0], [180, 0.0], [181, 0.0], [182, 0.0], [183, 0.0], [184, 0.0], [185, 0.0], [186, 0.0], [187, 0.0], [188, 0.0], [189, 0.0], [190, 0.0], [191, 0.0], [192, 0.0], [193, 0.0], [194, 0.0], [195, 0.0], [196, 0.0], [197, 0.0], [198, 0.0], [199, 0.0], [200, 0.0], [201, 0], [202, 0.0], [203, 0.0], [204, 0.0], [205, 0.0], [206, 0.0], [207, 0.0], [208, 0.0], [209, 0], [210, 0.0], [211, 0.0], [212, 0.0], [213, 0.0], [214, 0.0], [215, 0.0], [216, 0.0], [217, 0.0], [218, 0.0], [219, 0.0], [220, 0.0], [221, 0.0], [222, 0.0], [223, 0.0], [224, 0.0], [225, 0.0], [226, 0], [227, 0.0], [228, 0.0], [229, 0.0], [230, 0], [231, 0.0], [232, 0.0], [233, 0.0], [234, 0.0], [235, 0.0], [236, 0.0], [237, 0], [238, 0.0], [239, 0.0], [240, 0.0], [241, 0.0], [242, 0.0], [243, 0.0], [244, 0.0], [245, 0.0], [246, 0.0], [247, 0.0], [248, 0.0], [249, 0.0], [250, 0.0], [251, 0.0], [252, 0.0], [253, 0.0], [254, 0.0], [255, 0.0], [256, 0.0], [257, 0.0], [258, 0.0], [259, 0.0], [260, 0.0], [261, 0.0], [262, 0.0], [263, 0.0], [264, 0.0], [265, 0.0], [266, 0.0], [267, 0.0], [268, 0.0], [269, 0.0], [270, 0.0], [271, 0.0], [272, 0.0], [273, 0.0], [274, 0.0], [275, 0.0], [276, 0.0], [277, 0.0], [278, 0.0], [279, 0.0], [280, 0.0], [281, 0.0], [282, 0.0], [283, 0.0], [284, 0.0], [285, 0.0], [286, 0.0], [287, 0.0], [288, 0.0], [289, 0.0], [290, 0.0], [291, 0.0], [292, 0.0], [293, 0.0], [294, 0.0], [295, 0.0], [296, 0.0], [297, 0.0], [298, 0.0], [299, 0.0], [300, 0.0], [301, 0.0], [302, 0.0], [303, 0.0], [304, 0.0], [305, 0.0], [306, 0.0], [307, 0.0], [308, 0.0], [309, 0.0], [310, 0.0], [311, 0.0], [312, 0.0], [313, 0.0], [314, 0.0], [315, 0.0], [316, 0.0], [317, 0.0], [318, 0.0], [319, 0.0], [320, 0.0], [321, 0.0], [322, 0.0], [323, 0.0], [324, 0.0], [325, 0.0], [326, 0.0], [327, 0.0], [328, 0.0], [329, 0.0], [330, 0.0], [331, 0.0], [332, 0.0], [333, 0.0], [334, 0.0], [335, 0.0], [336, 0.0], [337, 0.0], [338, 0.0], [339, 0.0], [340, 0.0], [341, 0.0], [342, 0.0], [343, 0.0], [344, 0.0], [345, 0.0], [346, 0.0], [347, 0.0], [348, 0.0], [349, 0.0], [350, 0.0], [351, 0.0], [352, 0.0], [353, 0.0], [354, 0.0], [355, 0.0], [356, 0.0], [357, 0.0], [358, 0.0], [359, 0.0], [360, 0.0], [361, 0.0], [362, 0.0], [363, 0.0], [364, 0.0], [365, 0.0], [366, 0.0], [367, 0.0], [368, 0.0], [369, 0.0], [370, 0.0], [371, 0.0], [372, 0.0], [373, 0.0], [374, 0.0], [375, 0.0], [376, 0.0], [377, 0.0], [378, 0.0], [379, 0.0], [380, 0.0], [381, 0.0], [382, 0.0], [383, 0.0], [384, 0.0], [385, 0.0], [386, 0.0], [387, 0.0], [388, 0.0], [389, 0.0], [390, 0.0], [391, 0.0], [392, 0.0], [393, 0.0], [394, 0.0], [395, 0.0], [396, 0.0], [397, 0.0], [398, 0.0], [399, 0.0], [400, 0.0], [401, 0.0], [402, 0.0], [403, 0.0], [404, 0.0], [405, 0.0], [406, 0.0], [407, 0.0], [408, 0.0], [409, 0.0], [410, 0.0], [411, 0.0], [412, 0.0], [413, 0.0], [414, 0.0], [415, 0.0], [416, 0.0], [417, 0.0], [418, 0.0], [419, 0.0], [420, 0.0], [421, 0.0], [422, 0.0], [423, 0.0], [424, 0.0], [425, 0.0], [426, 0.0], [427, 0.0], [428, 0.0], [429, 0.0], [430, 0.0], [431, 0.0], [432, 0.0], [433, 0.0], [434, 0.0], [435, 0.0], [436, 0.0], [437, 0.0], [438, 0.0], [439, 0.0], [440, 0.0], [441, 0.0], [442, 0.0], [443, 0.0], [444, 0.0], [445, 0.0], [446, 0.0], [447, 0.0], [448, 0.0], [449, 0.0], [450, 0.0], [451, 0.0], [452, 0.0], [453, 0.0], [454, 0.0], [455, 0.0], [456, 0.0], [457, 0.0], [458, 0.0], [459, 0.0], [460, 0.0], [461, 0.0], [462, 0.0], [463, 0.0], [464, 0.0], [465, 0.0], [466, 0.0], [467, 0.0], [468, 0.0], [469, 0.0], [470, 0.0], [471, 0.0], [472, 0.0], [473, 0.0], [474, 0.0], [475, 0.0], [476, 0.0], [477, 0.0], [478, 0.0], [479, 0.0], [480, 0.0], [481, 0.0], [482, 0.0], [483, 0.0], [484, 0.0], [485, 0.0], [486, 0.0], [487, 0.0], [488, 0.0], [489, 0.0], [490, 0.0], [491, 0.0], [492, 0.0], [493, 0.0], [494, 0.0], [495, 0.0], [496, 0.0], [497, 0.0], [498, 0.0], [499, 0.0], [500, 0.0]]], ["failed_duration", [[1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0], [8, 0], [9, 0], [10, 108.2613410949707], [11, 0], [12, 0], [13, 0], [14, 0], [15, 0], [16, 0], [17, 0], [18, 0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 108.68688988685608], [25, 0], [26, 0], [27, 0], [28, 0], [29, 0], [30, 0], [31, 0], [32, 0], [33, 0], [34, 110.58818101882935], [35, 0], [36, 0], [37, 0], [38, 0], [39, 0], [40, 0], [41, 0], [42, 0], [43, 0], [44, 0], [45, 0], [46, 99.8506760597229], [47, 0], [48, 89.90404200553894], [49, 89.77616691589355], [50, 0], [51, 0], [52, 0], [53, 0], [54, 0], [55, 0], [56, 0], [57, 0], [58, 0], [59, 0], [60, 0], [61, 0], [62, 0], [63, 114.80707788467407], [64, 0], [65, 94.95801496505737], [66, 0], [67, 119.55409908294678], [68, 0], [69, 96.09787201881409], [70, 0], [71, 0], [72, 0], [73, 0], [74, 106.26204013824463], [75, 0], [76, 0], [77, 0], [78, 131.66282200813293], [79, 119.01864409446716], [80, 0], [81, 0], [82, 0], [83, 0], [84, 0], [85, 0], [86, 0], [87, 0], [88, 0], [89, 0], [90, 125.75620913505554], [91, 0], [92, 116.41058492660522], [93, 0], [94, 0], [95, 0], [96, 0], [97, 129.82536005973816], [98, 0], [99, 110.99760603904724], [100, 130.6795449256897], [101, 0], [102, 0], [103, 0], [104, 88.88606905937195], [105, 0], [106, 0], [107, 0], [108, 0], [109, 0], [110, 0], [111, 0], [112, 0], [113, 0], [114, 0], [115, 0], [116, 0], [117, 0], [118, 0], [119, 0], [120, 0], [121, 0], [122, 0], [123, 0], [124, 0], [125, 0], [126, 0], [127, 0], [128, 0], [129, 0], [130, 0], [131, 0], [132, 0], [133, 82.22765517234802], [134, 0], [135, 71.75469088554382], [136, 0], [137, 0], [138, 0], [139, 0], [140, 0], [141, 0], [142, 0], [143, 0], [144, 0], [145, 80.80789518356323], [146, 0], [147, 0], [148, 0], [149, 0], [150, 0], [151, 0], [152, 0], [153, 0], [154, 0], [155, 0], [156, 0], [157, 0], [158, 0], [159, 0], [160, 78.68079495429993], [161, 0], [162, 0], [163, 0], [164, 86.26106905937195], [165, 0], [166, 0], [167, 0], [168, 0], [169, 0], [170, 0], [171, 0], [172, 0], [173, 0], [174, 0], [175, 0], [176, 0], [177, 0], [178, 0], [179, 0], [180, 0], [181, 0], [182, 0], [183, 0], [184, 0], [185, 0], [186, 0], [187, 0], [188, 0], [189, 0], [190, 0], [191, 0], [192, 0], [193, 0], [194, 0], [195, 0], [196, 0], [197, 0], [198, 0], [199, 0], [200, 0], [201, 79.17341589927673], [202, 0], [203, 0], [204, 0], [205, 0], [206, 0], [207, 0], [208, 0], [209, 83.79402995109558], [210, 0], [211, 0], [212, 0], [213, 0], [214, 0], [215, 0], [216, 0], [217, 0], [218, 0], [219, 0], [220, 0], [221, 0], [222, 0], [223, 0], [224, 0], [225, 0], [226, 80.76405000686646], [227, 0], [228, 0], [229, 0], [230, 83.33867597579956], [231, 0], [232, 0], [233, 0], [234, 0], [235, 0], [236, 0], [237, 83.52178812026978], [238, 0], [239, 0], [240, 0], [241, 0], [242, 0], [243, 0], [244, 0], [245, 0], [246, 0], [247, 0], [248, 0], [249, 0], [250, 0], [251, 0], [252, 0], [253, 0], [254, 0], [255, 0], [256, 0], [257, 0], [258, 0], [259, 0], [260, 0], [261, 0], [262, 0], [263, 0], [264, 0], [265, 0], [266, 0], [267, 0], [268, 0], [269, 0], [270, 0], [271, 0], [272, 0], [273, 0], [274, 0], [275, 0], [276, 0], [277, 0], [278, 0], [279, 0], [280, 0], [281, 0], [282, 0], [283, 0], [284, 0], [285, 0], [286, 0], [287, 0], [288, 0], [289, 0], [290, 0], [291, 0], [292, 0], [293, 0], [294, 0], [295, 0], [296, 0], [297, 0], [298, 0], [299, 0], [300, 0], [301, 0], [302, 0], [303, 0], [304, 0], [305, 0], [306, 0], [307, 0], [308, 0], [309, 0], [310, 0], [311, 0], [312, 0], [313, 0], [314, 0], [315, 0], [316, 0], [317, 0], [318, 0], [319, 0], [320, 0], [321, 0], [322, 0], [323, 0], [324, 0], [325, 0], [326, 0], [327, 0], [328, 0], [329, 0], [330, 0], [331, 0], [332, 0], [333, 0], [334, 0], [335, 0], [336, 0], [337, 0], [338, 0], [339, 0], [340, 0], [341, 0], [342, 0], [343, 0], [344, 0], [345, 0], [346, 0], [347, 0], [348, 0], [349, 0], [350, 0], [351, 0], [352, 0], [353, 0], [354, 0], [355, 0], [356, 0], [357, 0], [358, 0], [359, 0], [360, 0], [361, 0], [362, 0], [363, 0], [364, 0], [365, 0], [366, 0], [367, 0], [368, 0], [369, 0], [370, 0], [371, 0], [372, 0], [373, 0], [374, 0], [375, 0], [376, 0], [377, 0], [378, 0], [379, 0], [380, 0], [381, 0], [382, 0], [383, 0], [384, 0], [385, 0], [386, 0], [387, 0], [388, 0], [389, 0], [390, 0], [391, 0], [392, 0], [393, 0], [394, 0], [395, 0], [396, 0], [397, 0], [398, 0], [399, 0], [400, 0], [401, 0], [402, 0], [403, 0], [404, 0], [405, 0], [406, 0], [407, 0], [408, 0], [409, 0], [410, 0], [411, 0], [412, 0], [413, 0], [414, 0], [415, 0], [416, 0], [417, 0], [418, 0], [419, 0], [420, 0], [421, 0], [422, 0], [423, 0], [424, 0], [425, 0], [426, 0], [427, 0], [428, 0], [429, 0], [430, 0], [431, 0], [432, 0], [433, 0], [434, 0], [435, 0], [436, 0], [437, 0], [438, 0], [439, 0], [440, 0], [441, 0], [442, 0], [443, 0], [444, 0], [445, 0], [446, 0], [447, 0], [448, 0], [449, 0], [450, 0], [451, 0], [452, 0], [453, 0], [454, 0], [455, 0], [456, 0], [457, 0], [458, 0], [459, 0], [460, 0], [461, 0], [462, 0], [463, 0], [464, 0], [465, 0], [466, 0], [467, 0], [468, 0], [469, 0], [470, 0], [471, 0], [472, 0], [473, 0], [474, 0], [475, 0], [476, 0], [477, 0], [478, 0], [479, 0], [480, 0], [481, 0], [482, 0], [483, 0], [484, 0], [485, 0], [486, 0], [487, 0], [488, 0], [489, 0], [490, 0], [491, 0], [492, 0], [493, 0], [494, 0], [495, 0], [496, 0], [497, 0], [498, 0], [499, 0], [500, 0]]]], "histogram": {"data": [[{"disabled": null, "values": [{"y": 100, "x": 9.929265654605368}, {"y": 92, "x": 15.462609125220258}, {"y": 95, "x": 20.99595259583515}, {"y": 64, "x": 26.529296066450037}, {"y": 32, "x": 32.062639537064925}, {"y": 24, "x": 37.59598300767982}, {"y": 19, "x": 43.12932647829471}, {"y": 11, "x": 48.662669948909596}, {"y": 10, "x": 54.19601341952448}, {"y": 11, "x": 59.72935689013937}, {"y": 10, "x": 65.26270036075427}, {"y": 9, "x": 70.79604383136916}, {"y": 3, "x": 76.32938730198404}, {"y": 2, "x": 81.86273077259894}, {"y": 6, "x": 87.39607424321382}, {"y": 3, "x": 92.92941771382871}, {"y": 4, "x": 98.46276118444361}, {"y": 1, "x": 103.99610465505849}, {"y": 0, "x": 109.52944812567338}, {"y": 1, "x": 115.06279159628826}, {"y": 0, "x": 120.59613506690316}, {"y": 1, "x": 126.12947853751805}, {"y": 2, "x": 131.66282200813293}], "key": "task", "view": "Square Root Choice"}], [{"disabled": null, "values": [{"y": 227, "x": 17.122612166404725}, {"y": 142, "x": 29.84930214881897}, {"y": 56, "x": 42.57599213123322}, {"y": 22, "x": 55.302682113647464}, {"y": 27, "x": 68.0293720960617}, {"y": 8, "x": 80.75606207847596}, {"y": 9, "x": 93.4827520608902}, {"y": 5, "x": 106.20944204330445}, {"y": 1, "x": 118.93613202571869}, {"y": 3, "x": 131.66282200813293}], "key": "task", "view": "Sturges Formula"}], [{"disabled": null, "values": [{"y": 139, "x": 12.350103422999382}, {"y": 141, "x": 20.304284662008286}, {"y": 81, "x": 28.25846590101719}, {"y": 41, "x": 36.21264714002609}, {"y": 24, "x": 44.166828379034996}, {"y": 18, "x": 52.1210096180439}, {"y": 15, "x": 60.0751908570528}, {"y": 15, "x": 68.0293720960617}, {"y": 6, "x": 75.98355333507061}, {"y": 6, "x": 83.93773457407951}, {"y": 4, "x": 91.89191581308842}, {"y": 6, "x": 99.84609705209732}, {"y": 0, "x": 107.80027829110622}, {"y": 1, "x": 115.75445953011513}, {"y": 1, "x": 123.70864076912403}, {"y": 2, "x": 131.66282200813293}], "key": "task", "view": "Rice Rule"}]], "views": [{"id": 0, "name": "Square Root Choice"}, {"id": 1, "name": "Sturges Formula"}, {"id": 2, "name": "Rice Rule"}]}}, "table": {"styles": {"1": "oblique", "3": "rich", "4": "oblique", "5": "oblique"}, "rows": [["neutron.create_floating_ip", 4.2, 18.946, 71.561, 91.803, 131.663, 29.769, "94.2%", 500], [" -> neutron.list_networks", 0.991, 1.837, 10.769, 11.56, 12.955, 3.366, "94.2%", 500], ["neutron.list_floating_ips", 0.162, 0.95, 1.672, 1.884, 3.009, 1.007, "100.0%", 471], ["total", 4.396, 20.196, 71.896, 92.886, 131.663, 30.717, "94.2%", 500], [" -> duration", 4.396, 20.196, 71.896, 92.886, 131.663, 30.717, "94.2%", 500], [" -> idle_duration", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, "94.2%", 500]], "cols": ["Action", "Min (sec)", "Median (sec)", "90%ile (sec)", "95%ile (sec)", "Max (sec)", "Avg (sec)", "Success", "Count"]}, "errors": [{"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.53-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-daf6b0ee-9bbe-45ba-bb58-ca7e2027dccd']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.53-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-daf6b0ee-9bbe-45ba-bb58-ca7e2027dccd']\n", "iteration": 10}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.58-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2b348386-5aa4-4cbb-a11b-f17496ce5438']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.58-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2b348386-5aa4-4cbb-a11b-f17496ce5438']\n", "iteration": 24}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.53-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-176a4925-fa89-41e1-bb43-6682c8a6e59c']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.53-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-176a4925-fa89-41e1-bb43-6682c8a6e59c']\n", "iteration": 34}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.35-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-e0bb8fe8-e1a9-440f-b1ed-98d4a0f5dbbd']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.35-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-e0bb8fe8-e1a9-440f-b1ed-98d4a0f5dbbd']\n", "iteration": 46}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.12-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-4445a9b7-9c89-4219-9bc8-f6b045e5514a']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.12-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-4445a9b7-9c89-4219-9bc8-f6b045e5514a']\n", "iteration": 48}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.12-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5d69a8df-d299-4072-8502-77cec0bf6afb']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.12-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5d69a8df-d299-4072-8502-77cec0bf6afb']\n", "iteration": 49}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.64-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9979e67b-6df8-4cc5-b8a6-bbd87053cb77']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.64-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9979e67b-6df8-4cc5-b8a6-bbd87053cb77']\n", "iteration": 63}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.21-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-bff888df-9663-4c05-8349-38b94fee11d5']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.21-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-bff888df-9663-4c05-8349-38b94fee11d5']\n", "iteration": 65}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.82-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-ca19f97d-59c3-4145-8e95-878f17f3d7d1']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.82-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-ca19f97d-59c3-4145-8e95-878f17f3d7d1']\n", "iteration": 67}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.28-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-44ffd8f2-21d1-4132-8b07-1b1e023f5ff1']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.28-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-44ffd8f2-21d1-4132-8b07-1b1e023f5ff1']\n", "iteration": 69}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.56-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-55e6dc10-7654-484d-a048-475c3dc99c53']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.56-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-55e6dc10-7654-484d-a048-475c3dc99c53']\n", "iteration": 74}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.108-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d2fa4075-f4c8-4477-8de7-ed9a5a3beede']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.108-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d2fa4075-f4c8-4477-8de7-ed9a5a3beede']\n", "iteration": 78}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.84-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-3148dbbf-6b1a-4c1b-b603-986953ac2418']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.84-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-3148dbbf-6b1a-4c1b-b603-986953ac2418']\n", "iteration": 79}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.96-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d2745405-23a2-4288-af98-89ab653032fe']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.96-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d2745405-23a2-4288-af98-89ab653032fe']\n", "iteration": 90}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.77-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2923129b-e0ec-44d1-8b31-ff85643b1ac2']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.77-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2923129b-e0ec-44d1-8b31-ff85643b1ac2']\n", "iteration": 92}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.102-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9c892df6-98ab-422c-9e9f-574a26b930bd']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.102-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9c892df6-98ab-422c-9e9f-574a26b930bd']\n", "iteration": 97}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.67-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-11821c64-4c62-4afb-9d54-9af4b60fe658']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.67-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-11821c64-4c62-4afb-9d54-9af4b60fe658']\n", "iteration": 99}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.106-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5bbbdfca-7f65-4651-a1b3-2619080066e6']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.106-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5bbbdfca-7f65-4651-a1b3-2619080066e6']\n", "iteration": 100}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.20-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2b5a8af3-883d-4913-a49b-6edff0b26ab2']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.20-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-2b5a8af3-883d-4913-a49b-6edff0b26ab2']\n", "iteration": 104}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.48-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5e9d99c9-af50-4c9d-b9d8-4bed2d0970dc']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.48-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-5e9d99c9-af50-4c9d-b9d8-4bed2d0970dc']\n", "iteration": 133}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.26-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-f8625e35-999c-4f7e-a28f-48216fcb25fa']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.26-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-f8625e35-999c-4f7e-a28f-48216fcb25fa']\n", "iteration": 135}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.50-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-79a20878-f1d2-4fb5-bf47-6399b014d158']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.50-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-79a20878-f1d2-4fb5-bf47-6399b014d158']\n", "iteration": 145}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.55-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-fc50e94b-b971-4f1a-a90f-7fd97972dc25']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.55-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-fc50e94b-b971-4f1a-a90f-7fd97972dc25']\n", "iteration": 160}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.84-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-8b5f4d7e-a77d-4763-8b0b-2d198b7f5829']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.84-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-8b5f4d7e-a77d-4763-8b0b-2d198b7f5829']\n", "iteration": 164}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.93-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9eaf2b3e-b60e-4fc8-8236-0938fea8e226']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.93-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-9eaf2b3e-b60e-4fc8-8236-0938fea8e226']\n", "iteration": 201}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.113-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-7ecd193c-aac5-413e-9373-2eede5f48d28']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.113-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-7ecd193c-aac5-413e-9373-2eede5f48d28']\n", "iteration": 209}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.114-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d9063f24-c933-4eaa-8f50-328f4eb9c908']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.114-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-d9063f24-c933-4eaa-8f50-328f4eb9c908']\n", "iteration": 226}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.128-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-593e58dc-9819-483b-a3c6-3b7c064ee1b3']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.128-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-593e58dc-9819-483b-a3c6-3b7c064ee1b3']\n", "iteration": 230}, {"type": "Conflict", "message": "Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.133-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-639b1bdd-b2e5-41e6-bbf8-17435ca3beca']", "traceback": "Traceback (most recent call last):\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/runner.py\", line 72, in _run_scenario_once\n    getattr(scenario_inst, method_name)(**scenario_kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/network.py\", line 531, in run\n    self._create_floatingip(floating_network, **floating_ip_args)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/task/atomic.py\", line 85, in func_atomic_actions\n    f = func(self, *args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/rally/plugins/openstack/scenarios/neutron/utils.py\", line 547, in _create_floatingip\n    return self.clients(\"neutron\").create_floatingip({\"floatingip\": args})\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 931, in create_floatingip\n    return self.post(self.floatingips_path, body=body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 357, in post\n    headers=headers, params=params)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 292, in do_request\n    self._handle_fault_response(status_code, replybody, resp)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 268, in _handle_fault_response\n    exception_handler_v20(status_code, error_body)\n  File \"/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py\", line 92, in exception_handler_v20\n    request_ids=request_ids)\nConflict: Failed to create a duplicate IpamAllocation: for attribute(s) ['PRIMARY'] with value(s) 111.0.1.133-f9f8245b-6920-4a51-a21b-76e0ab8e2984\nNeutron server returns request_ids: ['req-639b1bdd-b2e5-41e6-bbf8-17435ca3beca']\n", "iteration": 237}], "iterations_count": 500, "load_duration": 178.48356008529663, "complete_output": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "config": "{\n  \"version\": 2, \n  \"title\": \"A cropped version of a bigger task.\", \n  \"description\": \"Auto-generated task from a single workload (uuid=0954a332-6566-4035-bf10-53710c72ceae)\", \n  \"subtasks\": [\n    {\n      \"title\": \"NeutronNetworks.create_and_list_floating_ips\", \n      \"description\": \"Create and list floating IPs.\", \n      \"scenario\": {\n        \"NeutronNetworks.create_and_list_floating_ips\": {\n          \"floating_network\": \"ex-network\", \n          \"floating_ip_args\": {}\n        }\n      }, \n      \"contexts\": {\n        \"users\": {\n          \"tenants\": 2, \n          \"users_per_tenant\": 3\n        }, \n        \"quotas\": {\n          \"neutron\": {\n            \"floatingip\": -1\n          }\n        }\n      }, \n      \"runner\": {\n        \"constant\": {\n          \"times\": 500, \n          \"concurrency\": 100\n        }\n      }, \n      \"hooks\": [], \n      \"sla\": {\n        \"failure_rate\": {\n          \"max\": 0\n        }\n      }\n    }\n  ]\n}", "sla_success": false, "output_errors": [], "cls": "NeutronNetworks", "description": "Create and list floating IPs.", "met": "create_and_list_floating_ips", "has_output": false, "full_duration": 298.58703804016113, "load_profile": [["parallel iterations", [[0.0, 0], [1.8205323128700257, 95.6240300489444], [3.6410646257400514, 100], [5.461596938610077, 99.99804501544759], [7.282129251480103, 99.99538375867577], [9.102661564350129, 99.9956716107689], [10.923193877220154, 99.99813943826794], [12.74372619009018, 99.99355410371989], [14.564258502960206, 99.9943126293447], [16.384790815830232, 99.99096422064724], [18.205323128700257, 99.98280993921932], [20.025855441570283, 99.99794731860433], [21.846387754440308, 99.9926863566912], [23.666920067310333, 99.98641267401545], [25.48745238018036, 99.97747144844395], [27.307984693050386, 99.99427190049987], [29.12851700592041, 99.991392724764], [30.949049318790436, 99.98757914289327], [32.769581631660465, 99.98174326255942], [34.590113944530486, 99.98597788377467], [36.410646257400515, 99.99036612214437], [38.23117857027054, 99.98519604710681], [40.051710883140565, 99.99206887597276], [41.872243196010594, 99.97993600192011], [43.692775508880615, 99.99124146490617], [45.513307821750644, 99.98544015825408], [47.333840134620665, 99.9903747655648], [49.154372447490694, 99.99160959604073], [50.97490476036072, 99.99096631602188], [52.795437073230744, 99.98618139703798], [54.61596938610077, 99.98475601842944], [56.436501698970794, 99.98729495770579], [58.25703401184082, 99.98985249343225], [60.07756632471085, 99.97433166048549], [61.89809863758087, 99.99337377053868], [63.7186309504509, 99.98670131187406], [65.53916326332093, 99.9913432215378], [67.35969557619094, 99.97875800848159], [69.18022788906097, 99.99527335862368], [71.000760201931, 99.98655568333561], [72.82129251480103, 99.98522643003933], [74.64182482767106, 99.97845470300047], [76.46235714054107, 99.98834526425124], [78.2828894534111, 99.99114481575025], [80.10342176628113, 99.9776572819836], [81.92395407915116, 99.98815458515773], [83.74448639202119, 99.97747825841158], [85.5650187048912, 99.99809674500936], [87.38555101776123, 99.9925504192605], [89.20608333063126, 99.98388237815956], [91.02661564350129, 99.97963348220439], [92.84714795637132, 99.99045046097422], [94.66768026924133, 99.99130026635737], [96.48821258211136, 99.97033748351173], [98.30874489498139, 99.995442560127], [100.12927720785142, 99.9947592060679], [101.94980952072144, 99.98915879346075], [103.77034183359146, 99.98572617689432], [105.59087414646149, 99.98353389116235], [107.41140645933152, 99.9878173607993], [109.23193877220154, 99.98524594321577], [111.05247108507157, 99.98841284008387], [112.87300339794159, 99.98291366026463], [114.69353571081162, 99.98980809768176], [116.51406802368165, 99.99039951717792], [118.33460033655167, 99.98435292073037], [120.1551326494217, 99.99134754324804], [121.97566496229172, 99.98877678046908], [123.79619727516175, 99.99303772482851], [125.61672958803177, 99.99203050442442], [127.4372619009018, 99.97799817324766], [129.25779421377183, 99.98911426674935], [131.07832652664186, 99.98810730826708], [132.8988588395119, 99.99116537661403], [134.7193911523819, 99.98489130105546], [136.53992346525192, 99.99582260870493], [138.36045577812195, 99.98648038080896], [140.18098809099197, 98.8349830664563], [142.001520403862, 93.76331009305373], [143.82205271673203, 88.53266949868443], [145.64258502960206, 82.49940702324756], [147.4631173424721, 76.17772318172597], [149.28364965534212, 66.83846189729641], [151.10418196821215, 59.71593848545863], [152.92471428108215, 50.62651693597125], [154.74524659395217, 45.126696243597614], [156.5657789068222, 37.099302689933744], [158.38631121969223, 31.009911015512404], [160.20684353256226, 25.102124404210432], [162.0273758454323, 21.38185201397069], [163.84790815830232, 18.18398355982037], [165.66844047117235, 13.910445281857577], [167.48897278404237, 9.74258537305632], [169.3095050969124, 8.135944899395271], [171.1300374097824, 6.4721979306529684], [172.95056972265243, 4.1473709174048], [174.77110203552246, 2.2268422306808486], [176.5916343483925, 1], [178.41216666126252, 1], [180.23269897413255, 0.039215686274506806], [182.05323128700257, 0]]]], "name": "create_and_list_floating_ips", "created_at": "2017-10-21T03:21:04", "additive_output": [], "sla": [{"criterion": "failure_rate", "detail": "Failure rate criteria 0.00% <= 5.80% <= 0.00% - Failed", "success": false}]}];
  249.      $scope.location = {
  250.        /* #/path/hash/sub/div */
  251.        normalize: function(str) {
  252.          /* Remove unwanted characters from string */
  253.          if (typeof str !== "string") { return "" }
  254.          return str.replace(/[^\w\-\.]/g, "")
  255.        },
  256.        uri: function(obj) {
  257.          /* Getter/Setter */
  258.          if (! obj) {
  259.            var uri = {path: "", hash: "", sub: "", div: ""};
  260.            var arr = ["div", "sub", "hash", "path"];
  261.            angular.forEach($location.url().split("/"), function(value){
  262.              var v = $scope.location.normalize(value);
  263.              if (v) { var k = arr.pop(); if (k) { this[k] = v }}
  264.            }, uri);
  265.            return uri
  266.          }
  267.          var arr = [obj.path, obj.hash, obj.sub, obj.div], res = [];
  268.          for (var i in arr) { if (! arr[i]) { break }; res.push(arr[i]) }
  269.          return $location.url("/" + res.join("/"))
  270.        },
  271.        path: function(path, hash) {
  272.          /* Getter/Setter */
  273.          if (path === "") { return this.uri({}) }
  274.          path = this.normalize(path);
  275.          var uri = this.uri();
  276.          if (! path) { return uri.path }
  277.          uri.path = path;
  278.          var _hash = this.normalize(hash);
  279.          if (_hash || hash === "") { uri.hash = _hash }
  280.          return this.uri(uri)
  281.        },
  282.        hash: function(hash) {
  283.          /* Getter/Setter */
  284.          if (hash) { this.uri({path:this.uri().path, hash:hash}) }
  285.          return this.uri().hash
  286.        }
  287.      }
  288.      /* Dispatch */
  289.      $scope.route = function(uri) {
  290.        if (! $scope.scenarios_map) { return }
  291.        // Expand menu if there is only one menu group
  292.        if ($scope.nav.length === 1) {
  293.          $scope.nav_idx = $scope.nav[0].idx;
  294.        }
  295.        if (uri.path in $scope.scenarios_map) {
  296.          $scope.view = {is_scenario:true};
  297.          $scope.scenario = $scope.scenarios_map[uri.path];
  298.          $scope.nav_idx = $scope.nav_map[uri.path];
  299.          if ($scope.scenario.iterations.histogram.views.length) {
  300.            $scope.mainHistogram = $scope.scenario.iterations.histogram.views[0]
  301.          }
  302.          if ($scope.scenario.atomic.histogram.views.length) {
  303.            $scope.atomicHistogram = $scope.scenario.atomic.histogram.views[0]
  304.          }
  305.          $scope.outputIteration = 0;
  306.          $scope.showTab(uri);
  307.        } else {
  308.          $scope.scenario = null;
  309.          if (uri.path === "source") {
  310.            $scope.view = {is_source:true}
  311.          } else {
  312.            $scope.view = {is_main:true}
  313.          }
  314.        }
  315.      }
  316.      $scope.$on("$locationChangeSuccess", function (event, newUrl, oldUrl) {
  317.        $scope.route($scope.location.uri())
  318.      });
  319.      $scope.showNav = function(nav_idx) { $scope.nav_idx = nav_idx }
  320.      /* Tabs */
  321.      $scope.tabs = [
  322.        {
  323.          id: "overview",
  324.          name: "Overview",
  325.          visible: function(){ return !! $scope.scenario.iterations.pie.length }
  326.        },{
  327.          id: "details",
  328.          name: "Details",
  329.          visible: function(){ return !! $scope.scenario.atomic.pie.length }
  330.        },{
  331.          id: "output",
  332.          name: "Scenario Data",
  333.          visible: function(){ return $scope.scenario.has_output }
  334.        },{
  335.          id: "hooks",
  336.          name: "Hooks",
  337.          visible: function(){ return $scope.scenario.hooks.length }
  338.        },{
  339.          id: "failures",
  340.          name: "Failures",
  341.          visible: function(){ return !! $scope.scenario.errors.length }
  342.        },{
  343.          id: "task",
  344.          name: "Input task",
  345.          visible: function(){ return !! $scope.scenario.config }
  346.        }
  347.      ];
  348.      $scope.tabs_map = {};
  349.      angular.forEach($scope.tabs,
  350.                      function(tab){ this[tab.id] = tab }, $scope.tabs_map);
  351.      $scope.showTab = function(uri) {
  352.        $scope.tab = uri.hash in $scope.tabs_map ? uri.hash : "overview";
  353.        if (uri.hash === "output") {
  354.          if (typeof $scope.scenario.output === "undefined") {
  355.            var has_additive = !! $scope.scenario.additive_output.length;
  356.            var has_complete = !! ($scope.scenario.complete_output.length
  357.                                   && $scope.scenario.complete_output[0].length);
  358.            $scope.scenario.output = {
  359.              has_additive: has_additive,
  360.              has_complete: has_complete,
  361.              length: has_additive + has_complete,
  362.              active: has_additive ? "additive" : (has_complete ? "complete" : "")
  363.            }
  364.          }
  365.          if (uri.sub && $scope.scenario.output["has_" + uri.sub]) {
  366.            $scope.scenario.output.active = uri.sub
  367.          }
  368.        }
  369.        else if (uri.hash === "hooks") {
  370.          if ($scope.scenario.hooks.length) {
  371.            var hook_idx = parseInt(uri.sub);
  372.            if (isNaN(hook_idx) || ($scope.scenario.hooks.length - hook_idx) <= 0) {
  373.              hook_idx = 0
  374.            }
  375.            if ($scope.scenario.hook_idx === hook_idx) {
  376.              return
  377.            }
  378.            $scope.scenario.hooks.cur = $scope.scenario.hooks[hook_idx];
  379.            $scope.scenario.hook_idx = hook_idx;
  380.            if (typeof $scope.scenario.hooks.cur.active === "undefined") {
  381.              if ($scope.scenario.hooks.cur.additive.length) {
  382.                $scope.scenario.hooks.cur.active = "additive"
  383.              }
  384.              if ($scope.scenario.hooks.cur.complete.length) {
  385.                if (typeof $scope.scenario.hooks.cur.active === "undefined") {
  386.                  $scope.scenario.hooks.cur.active = "complete"
  387.                }
  388.                $scope.set_hook_run()
  389.              }
  390.            }
  391.          }
  392.        }
  393.      }
  394.      for (var i in $scope.tabs) {
  395.        if ($scope.tabs[i].id === $scope.location.hash()) {
  396.          $scope.tab = $scope.tabs[i].id
  397.        }
  398.        $scope.tabs[i].isVisible = function() {
  399.          if ($scope.scenario) {
  400.            if (this.visible()) { return true }
  401.            /* If tab should be hidden but is selected - show another one */
  402.            if (this.id === $scope.location.hash()) {
  403.              for (var i in $scope.tabs) {
  404.                var tab = $scope.tabs[i];
  405.                if (tab.id != this.id && tab.visible()) {
  406.                  $scope.tab = tab.id;
  407.                  return false
  408.                }
  409.              }
  410.            }
  411.          }
  412.          return false
  413.        }
  414.      }
  415.      $scope.set_hook_run = function(idx) {
  416.        if (typeof idx !== "undefined") {
  417.          $scope.scenario.hooks.cur.run_idx = idx
  418.        }
  419.        else if (typeof $scope.scenario.hooks.cur.run_idx === "undefined") {
  420.          $scope.scenario.hooks.cur.run_idx = 0
  421.        }
  422.        idx = $scope.scenario.hooks.cur.run_idx;
  423.        if (($scope.scenario.hooks.cur.complete.length - idx) > 0) {
  424.           $scope.scenario.hooks.cur.run = $scope.scenario.hooks.cur.complete[idx]
  425.         }
  426.       }
  427.  
  428.       $scope.complete_hooks_as_dropdown = function() {
  429.         return $scope.scenario.hooks.cur.complete.length > 10
  430.       }
  431.  
  432.       /* Other helpers */
  433.  
  434.       $scope.showError = function(message) {
  435.           return (function (e) {
  436.             e.style.display = "block";
  437.             e.textContent = message
  438.           })(document.getElementById("page-error"))
  439.       }
  440.  
  441.       $scope.compact_atomics = function() {
  442.         return ($scope.scenario && $scope.scenario.atomic.iter.length < 9)
  443.      }
  444.  
  445.      /* Initialization */
  446.  
  447.      angular.element(document).ready(function(){
  448.        if (! $scope.scenarios.length) {
  449.          return $scope.showError("No data...")
  450.        }
  451.  
  452.        /* Compose data mapping */
  453.  
  454.        $scope.nav = [];
  455.         $scope.nav_map = {};
  456.         $scope.scenarios_map = {};
  457.         var met = [], itr = 0, cls_idx = 0;
  458.         var prev_cls, prev_met;
  459.  
  460.         for (var idx in $scope.scenarios) {
  461.           var sc = $scope.scenarios[idx];
  462.           if (! prev_cls) {
  463.             prev_cls = sc.cls
  464.           }
  465.           else if (prev_cls !== sc.cls) {
  466.             $scope.nav.push({cls:prev_cls, met:met, idx:cls_idx});
  467.             prev_cls = sc.cls;
  468.             met = [];
  469.             itr = 1;
  470.             cls_idx += 1
  471.           }
  472.  
  473.           if (prev_met !== sc.met) { itr = 1 };
  474.           sc.ref = $scope.location.normalize(sc.cls+"."+sc.met+(itr > 1 ? "-"+itr : ""));
  475.           $scope.scenarios_map[sc.ref] = sc;
  476.           $scope.nav_map[sc.ref] = cls_idx;
  477.           met.push({name:sc.name, itr:itr, idx:idx, ref:sc.ref});
  478.           prev_met = sc.met;
  479.           itr += 1;
  480.         }
  481.  
  482.         if (met.length) {
  483.           $scope.nav.push({cls:prev_cls, met:met, idx:cls_idx})
  484.         }
  485.  
  486.         /* Start */
  487.  
  488.         var uri = $scope.location.uri();
  489.         uri.path = $scope.location.path();
  490.         $scope.route(uri);
  491.         $scope.$digest()
  492.       })
  493.     };
  494.  
  495.     if (typeof angular === "object") {
  496.       angular.module("App", [])
  497.         .controller("Controller", ["$scope", "$location", controllerFunction])
  498.         .directive("widget", widgetDirective)
  499.     }
  500.  
  501.  
  502. </script>
  503.   <style>
  504.     body { margin:0; padding:0 0 50px; font-size:14px; font-family:Helvetica,Arial,sans-serif }
  505.     a, a:active, a:focus, a:visited { text-decoration:none; outline:none }
  506.     p { margin:0; padding:5px 0 }
  507.     p.thesis { padding:10px 0 }
  508.     h1 { color:#666; margin:0 0 20px; font-size:30px; font-weight:normal }
  509.     h2, .h2 { color:#666; margin:24px 0 6px; font-size:25px; font-weight:normal }
  510.     h3, .h3 { color:#777; margin:12px 0 4px; font-size:18px; font-weight:normal }
  511.     table { border-collapse:collapse; border-spacing:0; width:100%; font-size:12px; margin:0 0 10px }
  512.     table th { text-align:left; padding:8px; color:#000; border:2px solid #ddd; border-width:0 0 2px 0 }
  513.     table th.sortable { cursor:pointer }
  514.     table td { text-align:left; border-top:1px solid #ddd; padding:8px; color:#333 }
  515.     table.compact td { padding:4px 8px }
  516.     table.striped tr:nth-child(odd) td { background:#f9f9f9 }
  517.     table.linked tbody tr:hover { background:#f9f9f9; cursor:pointer }
  518.     .pointer { cursor:pointer }
  519.     .rich, .rich td { font-weight:bold }
  520.     .oblique { font-style:italic }
  521.     .code { padding:10px; font-size:13px; color:#333; background:#f6f6f6; border:1px solid #e5e5e5; border-radius:4px }
  522.  
  523.     .header { text-align:left; background:#333; font-size:18px; padding:13px 0; margin-bottom:20px; color:#fff; background-image:linear-gradient(to bottom, #444 0px, #222 100%) }
  524.     .header a, .header a:visited, .header a:focus { color:#999 }
  525.  
  526.     .notify-error { padding:5px 10px; background:#fee; color:red }
  527.     .status-skip, .status-skip td { color:grey }
  528.     .status-pass, .status-pass td { color:green }
  529.     .status-fail, .status-fail td { color:red }
  530.     .capitalize { text-transform:capitalize }
  531.    
  532.     .aside { margin:0 20px 0 0; display:block; width:255px; float:left }
  533.     .aside > div { margin-bottom: 15px }
  534.     .aside > div div:first-child { border-top-left-radius:4px; border-top-right-radius:4px }
  535.     .aside > div div:last-child { border-bottom-left-radius:4px; border-bottom-right-radius:4px }
  536.     .navcls { color:#678; background:#eee; border:1px solid #ddd; margin-bottom:-1px; display:block; padding:8px 9px; font-weight:bold; text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer }
  537.     .navcls.expanded { color:#469 }
  538.     .navcls.active { background:#428bca; background-image:linear-gradient(to bottom, #428bca 0px, #3278b3 100%); border-color:#3278b3; color:#fff }
  539.     .navmet { color:#555; background:#fff; border:1px solid #ddd; font-size:12px; display:block; margin-bottom:-1px; padding:8px 10px; text-align:left; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; cursor:pointer }
  540.     .navmet:hover { background:#f8f8f8 }
  541.     .navmet.active, .navmet.active:hover { background:#428bca; background-image:linear-gradient(to bottom, #428bca 0px, #3278b3 100%); border-color:#3278b3; color:#fff }
  542.  
  543.     .buttn { color:#555; background:#fff; border:1px solid #ddd; border-radius:5px; font-size:12px; margin-bottom:-1px; padding:5px 7px; text-align:left; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; cursor:pointer }
  544.     .buttn:hover { background:#f8f8f8 }
  545.     .buttn.active, .bttn.active:hover { background:#428bca; background-image:linear-gradient(to bottom, #428bca 0px, #3278b3 100%); border-color:#3278b3; color:#fff; cursor:default }
  546.  
  547.     .tabs { list-style:outside none none; margin:0 0 5px; padding:0; border-bottom:1px solid #ddd }
  548.     .tabs:after { clear:both }
  549.     .tabs li { float:left; margin-bottom:-1px; display:block; position:relative }
  550.     .tabs li div { border:1px solid transparent; border-radius:4px 4px 0 0; line-height:20px; margin-right:2px; padding:10px 15px; color:#428bca }
  551.     .tabs li div:hover { border-color:#eee #eee #ddd; background:#eee; cursor:pointer; }
  552.     .tabs li.active div { background:#fff; border-color:#ddd #ddd transparent; border-style:solid; border-width:1px; color:#555; cursor:default }
  553.     .failure-mesg { color:#900 }
  554.     .failure-trace { color:#333; white-space:pre; overflow:auto }
  555.  
  556.     .link { color:#428BCA; padding:5px 15px 5px 5px; text-decoration:underline; cursor:pointer }
  557.     .link.active { color:#333; text-decoration:none; cursor:default }
  558.  
  559.     .chart { padding:0; margin:0; width:890px }
  560.     .chart svg { height:300px; padding:0; margin:0; overflow:visible; float:right }
  561.     .chart.lower svg { height:180px }
  562.     .chart-label-y { font-size:12px; position:relative; top:5px; padding:0; margin:0 }
  563.  
  564.     .expandable { cursor:pointer }
  565.     .clearfix { clear:both }
  566.     .sortable > .arrow { display:inline-block; width:12px; height:inherit; color:#c90 }
  567.     .content-main { margin:0 5px; display:block; float:left }
  568.  
  569.     .content-wrap {  margin:0 auto; padding:0 5px;  }
  570.    
  571.     @media only screen and (min-width: 320px)  { .content-wrap { width:900px  } .content-main { width:600px } }
  572.     @media only screen and (min-width: 900px)  { .content-wrap { width:880px  } .content-main { width:590px } }
  573.     @media only screen and (min-width: 1000px) { .content-wrap { width:980px  } .content-main { width:690px } }
  574.     @media only screen and (min-width: 1100px) { .content-wrap { width:1080px } .content-main { width:790px } }
  575.     @media only screen and (min-width: 1200px) { .content-wrap { width:1180px } .content-main { width:890px } }
  576.  
  577.   </style>
  578. </head>
  579. <body ng-controller="Controller">
  580.  
  581.   <div class="header" id="page-header">
  582.     <div class="content-wrap">
  583.       <a href="https://github.com/openstack/rally">Rally</a>&nbsp;
  584.       <span>task results</span>
  585.     </div>
  586.   </div>
  587.  
  588.   <div class="content-wrap" id="page-content">
  589.    
  590.  
  591.     <p id="page-error" class="notify-error" style="display:none"></p>
  592.  
  593.     <div id="content-nav" class="aside" ng-show="scenarios.length" ng-cloack>
  594.       <div>
  595.         <div class="navcls"
  596.             ng-class="{active:view.is_main}"
  597.             ng-click="location.path('')">Task overview</div>
  598.         <div class="navcls"
  599.             ng-class="{active:view.is_source}"
  600.             ng-click="location.path('source', '')">Input file</div>
  601.       </div>
  602.       <div>
  603.         <div class="navcls" title="{{n.cls}}"
  604.             ng-repeat-start="n in nav track by $index"
  605.             ng-click="showNav(n.idx)"
  606.             ng-class="{expanded:n.idx==nav_idx}">
  607.                 <span ng-hide="n.idx==nav_idx">&#9658;</span>
  608.                 <span ng-show="n.idx==nav_idx">&#9660;</span>
  609.                 {{n.cls}}</div>
  610.         <div class="navmet" title="{{m.name}}"
  611.             ng-show="n.idx==nav_idx"
  612.             ng-class="{active:m.ref==scenario.ref}"
  613.             ng-click="location.path(m.ref)"
  614.             ng-repeat="m in n.met track by $index"
  615.             ng-repeat-end>{{m.name}}</div>
  616.       </div>
  617.     </div>
  618.  
  619.     <div id="content-main" class="content-main" ng-show="scenarios.length" ng-cloak>
  620.  
  621.       <div ng-show="view.is_main">
  622.         <h1>Task overview</h1>
  623.         <table class="linked compact"
  624.               ng-init="ov_srt='ref'; ov_dir=false">
  625.           <thead>
  626.             <tr>
  627.               <th class="sortable"
  628.                  title="Scenario name, with optional suffix of call number"
  629.                  ng-click="ov_srt='ref'; ov_dir=!ov_dir">
  630.                 Scenario
  631.                 <span class="arrow">
  632.                   <b ng-show="ov_srt=='ref' && !ov_dir">&#x25b4;</b>
  633.                   <b ng-show="ov_srt=='ref' && ov_dir">&#x25be;</b>
  634.                 </span>
  635.               <th class="sortable"
  636.                  title="How long the scenario run, without context duration"
  637.                  ng-click="ov_srt='load_duration'; ov_dir=!ov_dir">
  638.                 Load duration (s)
  639.                 <span class="arrow">
  640.                   <b ng-show="ov_srt=='load_duration' && !ov_dir">&#x25b4;</b>
  641.                   <b ng-show="ov_srt=='load_duration' && ov_dir">&#x25be;</b>
  642.                 </span>
  643.               <th class="sortable"
  644.                  title="Scenario duration plus context duration"
  645.                  ng-click="ov_srt='full_duration'; ov_dir=!ov_dir">
  646.                 Full duration (s)
  647.                 <span class="arrow">
  648.                   <b ng-show="ov_srt=='full_duration' && !ov_dir">&#x25b4;</b>
  649.                   <b ng-show="ov_srt=='full_duration' && ov_dir">&#x25be;</b>
  650.                 </span>
  651.               <th class="sortable" title="Number of iterations"
  652.                  ng-click="ov_srt='iterations_count'; ov_dir=!ov_dir">
  653.                 Iterations
  654.                 <span class="arrow">
  655.                   <b ng-show="ov_srt=='iterations_count' && !ov_dir">&#x25b4;</b>
  656.                   <b ng-show="ov_srt=='iterations_count' && ov_dir">&#x25be;</b>
  657.                 </span>
  658.               <th class="sortable" title="Scenario runner type"
  659.                  ng-click="ov_srt='runner'; ov_dir=!ov_dir">
  660.                 Runner
  661.                 <span class="arrow">
  662.                   <b ng-show="ov_srt=='runner' && !ov_dir">&#x25b4;</b>
  663.                   <b ng-show="ov_srt=='runner' && ov_dir">&#x25be;</b>
  664.                 </span>
  665.               <th class="sortable" title="Number of errors occurred"
  666.                  ng-click="ov_srt='errors.length'; ov_dir=!ov_dir">
  667.                 Errors
  668.                 <span class="arrow">
  669.                   <b ng-show="ov_srt=='errors.length' && !ov_dir">&#x25b4;</b>
  670.                   <b ng-show="ov_srt=='errors.length' && ov_dir">&#x25be;</b>
  671.                 </span>
  672.               <th class="sortable" title="Number of hooks"
  673.                  ng-click="ov_srt='hooks.length'; ov_dir=!ov_dir">
  674.                 Hooks
  675.                 <span class="arrow">
  676.                   <b ng-show="ov_srt=='hooks.length' && !ov_dir">&#x25b4;</b>
  677.                   <b ng-show="ov_srt=='hooks.length' && ov_dir">&#x25be;</b>
  678.                 </span>
  679.               <th class="sortable" title="Whether SLA check is successful"
  680.                  ng-click="ov_srt='sla_success'; ov_dir=!ov_dir">
  681.                 Success (SLA)
  682.                 <span class="arrow">
  683.                   <b ng-show="ov_srt=='sla_success' && !ov_dir">&#x25b4;</b>
  684.                   <b ng-show="ov_srt=='sla_success' && ov_dir">&#x25be;</b>
  685.                 </span>
  686.             <tr>
  687.           </thead>
  688.           <tbody>
  689.             <tr ng-repeat="sc in scenarios | orderBy:ov_srt:ov_dir"
  690.                ng-click="location.path(sc.ref)">
  691.               <td>{{sc.ref}}
  692.               <td>{{sc.load_duration | number:3}}
  693.               <td>{{sc.full_duration | number:3}}
  694.               <td>{{sc.iterations_count}}
  695.               <td>{{sc.runner}}
  696.               <td>{{sc.errors.length}}
  697.               <td>{{sc.hooks.length}}
  698.               <td>
  699.                 <span ng-show="sc.sla_success" class="status-pass">&#x2714;</span>
  700.                 <span ng-hide="sc.sla_success" class="status-fail">&#x2716;</span>
  701.             <tr>
  702.           </tbody>
  703.         </table>
  704.       </div>
  705.  
  706.       <div ng-show="view.is_source">
  707.         <h1>Input file</h1>
  708.         <pre class="code">{{source}}</pre>
  709.       </div>
  710.  
  711.       <div ng-show="view.is_scenario">
  712.         <h1>{{scenario.cls}}.<wbr>{{scenario.name}} ({{scenario.full_duration | number:3}}s)</h1>
  713.         <div ng-show="scenario.description" style="margin-bottom: 20px;">
  714.             <i>{{scenario.description}}</i>
  715.         </div>
  716.         <ul class="tabs">
  717.           <li ng-repeat="t in tabs"
  718.              ng-show="t.isVisible()"
  719.              ng-class="{active:t.id == tab}"
  720.              ng-click="location.hash(t.id)">
  721.             <div>{{t.name}}</div>
  722.           </li>
  723.           <div class="clearfix"></div>
  724.         </ul>
  725.         <div ng-include="tab"></div>
  726.  
  727.         <script type="text/ng-template" id="overview">
  728.           <p class="thesis">
  729.             Load duration: <b>{{scenario.load_duration | number:3}} s</b> &nbsp;
  730.             Full duration: <b>{{scenario.full_duration | number:3}} s</b> &nbsp;
  731.             Iterations: <b>{{scenario.iterations_count}}</b> &nbsp;
  732.             Failures: <b>{{scenario.errors.length}}</b> &nbsp;
  733.             Started at: <b>{{scenario.created_at}}</b>
  734.           </p>
  735.  
  736.           <div ng-show="scenario.sla.length">
  737.             <h2>Service-level agreement</h2>
  738.             <table class="striped">
  739.               <thead>
  740.                 <tr>
  741.                   <th>Criterion
  742.                   <th>Detail
  743.                   <th>Success
  744.                 <tr>
  745.               </thead>
  746.               <tbody>
  747.                 <tr class="rich"
  748.                    ng-repeat="row in scenario.sla track by $index"
  749.                    ng-class="{'status-fail':!row.success, 'status-pass':row.success}">
  750.                   <td>{{row.criterion}}
  751.                   <td>{{row.detail}}
  752.                   <td class="capitalize">{{row.success}}
  753.                 <tr>
  754.               </tbody>
  755.             </table>
  756.           </div>
  757.  
  758.           <div widget="Table"
  759.               data="scenario.table"
  760.               lastrow-class="rich"
  761.               title="Total durations">
  762.           </div>
  763.  
  764.           <div widget="StackedArea"
  765.               data="scenario.iterations.iter"
  766.               name-x="Iteration sequence number"
  767.               controls="true"
  768.               guide="true">
  769.           </div>
  770.  
  771.           <div widget="StackedArea"
  772.               data="scenario.load_profile"
  773.               title="Load Profile"
  774.               title-class="h3"
  775.               name-x="Timeline (seconds)"
  776.               format-y="d"
  777.               format-x=",.2f"
  778.               class="lower">
  779.           </div>
  780.  
  781.           <div widget="Pie"
  782.               data="scenario.iterations.pie"
  783.               title="Distribution"
  784.               title-class="h3"
  785.               style="float:left; width:40%; margin-top:15px">
  786.           </div>
  787.  
  788.           <div widget="Histogram"
  789.               ng-if="scenario.iterations.histogram.data.length"
  790.               data="scenario.iterations.histogram.data[mainHistogram.id]"
  791.               style="float:left; width:59%; margin-top:15px; position:relative; top:40px">
  792.           </div>
  793.  
  794.           <select ng-model="mainHistogram"
  795.                  ng-show="scenario.iterations.histogram.data.length"
  796.                  ng-options="i.name for i in scenario.iterations.histogram.views track by i.id"
  797.                  style="float:right; margin:45px 35px 0">
  798.           </select>
  799.  
  800.           <div class="clearfix"></div>
  801.  
  802.         </script>
  803.  
  804.         <script type="text/ng-template" id="details">
  805.  
  806.           <div widget="StackedArea"
  807.               data="scenario.atomic.iter"
  808.               title="Atomic Action Durations"
  809.               name-x="Iteration sequence number"
  810.               controls="true"
  811.               guide="true">
  812.           </div>
  813.  
  814.           <div widget="Pie"
  815.               data="scenario.atomic.pie"
  816.               title="Distribution"
  817.               title-class="h3"
  818.               style="float:left; margin-top:15px"
  819.               ng-style="compact_atomics() ? {width:'40%'} : {}">
  820.           </div>
  821.  
  822.           <div widget="Histogram" data="scenario.atomic.histogram.data[atomicHistogram.id]"
  823.               ng-if="scenario.atomic.histogram.data.length"
  824.               style="float:left; position:relative; top:40px"
  825.               ng-style="compact_atomics() ? {width:'59%', 'margin-top':'15px'} : {}">
  826.           </div>
  827.  
  828.           <select ng-show="scenario.atomic.histogram.data.length"
  829.                  ng-model="atomicHistogram"
  830.                  ng-options="i.name for i in scenario.atomic.histogram.views track by i.id"
  831.                  style="float:right; margin:45px 35px 0">
  832.           </select>
  833.  
  834.           <div class="clearfix"></div>
  835.  
  836.         </script>
  837.  
  838.         <script type="text/ng-template" id="output">
  839.  
  840.           <div style="padding:10px 0 0">
  841.             <span class="link"
  842.                  ng-click="location.hash('output/additive')"
  843.                  ng-class="{active:scenario.output.active === 'additive'}"
  844.                  ng-if="scenario.output.has_additive">Aggregated</span>
  845.             <span class="link"
  846.                  ng-click="location.hash('output/complete')"
  847.                  ng-class="{active:scenario.output.active === 'complete'}"
  848.                  ng-if="scenario.output.has_complete">Per iteration</span>
  849.           </div>
  850.  
  851.           <div ng-repeat="chart in scenario.additive_output"
  852.               ng-if="scenario.output.active === 'additive'">
  853.             <div widget="{{chart.widget}}"
  854.                 title="{{chart.title}}"
  855.                 description="{{chart.description}}"
  856.                 name-x="{{chart.axis_label}}"
  857.                 name-y="{{chart.label}}"
  858.                 data="chart.data">
  859.             </div>
  860.           </div>
  861.  
  862.           <div ng-if="scenario.output.active === 'complete'" style="padding:10px 0 0">
  863.             <select ng-model="outputIteration">
  864.               <option ng-repeat="i in scenario.complete_output track by $index"
  865.                      value="{{$index}}">
  866.                 Iteration {{$index}}
  867.             </select>
  868.  
  869.             <div ng-repeat="chart in scenario.complete_output[outputIteration]">
  870.               <div widget="{{chart.widget}}"
  871.                   title="{{chart.title}}"
  872.                   description="{{chart.description}}"
  873.                   name-x="{{chart.axis_label}}"
  874.                   name-y="{{chart.label}}"
  875.                   data="chart.data">
  876.               </div>
  877.             </div>
  878.           </div>
  879.         </script>
  880.  
  881.         <script type="text/ng-template" id="hooks">
  882.  
  883.           <div style="padding:15px 0">
  884.             <span ng-repeat="h in scenario.hooks track by $index"
  885.                  class="buttn"
  886.                  title="{{h.desc}}"
  887.                  style="margin:0 10px 0 0"
  888.                  ng-click="location.hash('hooks/'+$index)"
  889.                  ng-class="{active:scenario.hook_idx===$index}">
  890.               {{h.name}}
  891.             </span>
  892.           </div>
  893.  
  894.           <table class="striped" style="margin:5px 0 25px">
  895.             <thead>
  896.               <tr>
  897.                 <th>Plugin
  898.                 <th>Description
  899.             </thead>
  900.             <tbody>
  901.               <tr>
  902.                 <td>{{scenario.hooks.cur.name}}
  903.                 <td>{{scenario.hooks.cur.desc}}
  904.             </tbody>
  905.           </table>
  906.  
  907.           <div>
  908.             <span class="link"
  909.                  ng-click="scenario.hooks.cur.active = 'additive'"
  910.                  ng-class="{active:scenario.hooks.cur.active === 'additive'}"
  911.                  ng-if="scenario.hooks.cur.additive.length">Aggregated</span>
  912.             <span class="link"
  913.                  ng-click="scenario.hooks.cur.active = 'complete'"
  914.                  ng-class="{active:scenario.hooks.cur.active === 'complete'}"
  915.                  ng-if="scenario.hooks.cur.complete.length">Per hook run</span>
  916.           </div>
  917.  
  918.           <div ng-repeat="chart in scenario.hooks.cur.additive"
  919.               ng-if="scenario.hooks.cur.active === 'additive'">
  920.             <div widget="{{chart.widget}}"
  921.                 title="{{chart.title}}"
  922.                 description="{{chart.description}}"
  923.                 name-x="{{chart.axis_label}}"
  924.                 name-y="{{chart.label}}"
  925.                 data="chart.data">
  926.             </div>
  927.           </div>
  928.  
  929.           <div ng-if="scenario.hooks.cur.active === 'complete'" style="padding:10px 0 0">
  930.  
  931.             <select ng-if="complete_hooks_as_dropdown()"
  932.                    ng-model="scenario.hooks.cur.run_idx"
  933.                    ng-change="set_hook_run()">
  934.               <option ng-repeat="h in scenario.hooks.cur.complete track by $index"
  935.                      ng-selected="scenario.hooks.cur.run_idx == $index"
  936.                      value="{{$index}}">
  937.                 {{h.triggered_by}}
  938.             </select>
  939.  
  940.             <div ng-if="! complete_hooks_as_dropdown()"
  941.                 style="border:#ccc solid; border-width:1px 0 0; padding:5px 0 0">
  942.               <span ng-repeat="h in scenario.hooks.cur.complete track by $index"
  943.                    class="link"
  944.                    ng-class="{active:scenario.hooks.cur.run_idx == $index}"
  945.                    ng-click="set_hook_run($index)">
  946.                 {{h.triggered_by}}
  947.               </span>
  948.             </div>
  949.  
  950.             <table class="striped" style="margin:15px 0 15px">
  951.               <thead>
  952.                 <tr>
  953.                   <th>Status
  954.                   <th>Triggered by
  955.                   <th>Started at
  956.                   <th>Finished at
  957.               </thead>
  958.               <tbody>
  959.                 <tr>
  960.                   <td ng-style="scenario.hooks.cur.run.status === 'success' ? {color:'green'} : {color:'red'}">
  961.                     <b>{{scenario.hooks.cur.run.status}}</b>
  962.                   <td>{{scenario.hooks.cur.run.triggered_by}}
  963.                   <td>{{scenario.hooks.cur.run.started_at}}
  964.                   <td>{{scenario.hooks.cur.run.finished_at}}
  965.               </tbody>
  966.             </table>
  967.  
  968.             <div ng-repeat="chart in scenario.hooks.cur.run.charts">
  969.               <div widget="{{chart.widget}}"
  970.                   title="{{chart.title}}"
  971.                   description="{{chart.description}}"
  972.                   name-x="{{chart.axis_label}}"
  973.                   name-y="{{chart.label}}"
  974.                   data="chart.data">
  975.               </div>
  976.             </div>
  977.           </div>
  978.         </script>
  979.  
  980.         <script type="text/ng-template" id="failures">
  981.           <h2>Task failures (<ng-pluralize
  982.            count="scenario.errors.length"
  983.            when="{'1': '1 iteration', 'other': '{} iterations'}"></ng-pluralize> failed)
  984.           </h2>
  985.           <table class="striped">
  986.             <thead>
  987.               <tr>
  988.                 <th>
  989.                 <th>Iteration
  990.                 <th>Exception type
  991.                 <th>Exception message
  992.               </tr>
  993.             </thead>
  994.             <tbody>
  995.               <tr class="expandable"
  996.                  ng-repeat-start="i in scenario.errors track by $index"
  997.                  ng-click="i.expanded = ! i.expanded">
  998.                 <td>
  999.                   <span ng-hide="i.expanded">&#9658;</span>
  1000.                   <span ng-show="i.expanded">&#9660;</span>
  1001.                 <td>{{i.iteration}}
  1002.                 <td>{{i.type}}
  1003.                 <td class="failure-mesg">{{i.message}}
  1004.               </tr>
  1005.               <tr ng-show="i.expanded" ng-repeat-end>
  1006.                 <td colspan="4" class="failure-trace">{{i.traceback}}
  1007.               </tr>
  1008.             </tbody>
  1009.           </table>
  1010.         </script>
  1011.  
  1012.         <script type="text/ng-template" id="task">
  1013.           <h2>The Workload Configuration</h2>
  1014.           <pre class="code">{{scenario.config}}</pre>
  1015.         </script>
  1016.       </div>
  1017.  
  1018.     </div>
  1019.     <div class="clearfix"></div>
  1020.  
  1021.  
  1022.   </div>
  1023.  
  1024.   <script type="text/javascript">
  1025.     if (! window.angular) {(function(f){
  1026.       f(document.getElementById("content-nav"), "none");
  1027.       f(document.getElementById("content-main"), "none");
  1028.       f(document.getElementById("page-error"), "block").textContent = "Failed to load AngularJS framework"
  1029.     })(function(e, s){e.style.display = s; return e})}
  1030. </script>
  1031. </body>
  1032. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement