| OLD | NEW | 
|---|
| 1 <!-- | 1 <!-- | 
| 2   Copyright 2016 The LUCI Authors. All rights reserved. | 2   Copyright 2016 The LUCI Authors. All rights reserved. | 
| 3   Use of this source code is governed under the Apache License, Version 2.0 | 3   Use of this source code is governed under the Apache License, Version 2.0 | 
| 4   that can be found in the LICENSE file. | 4   that can be found in the LICENSE file. | 
| 5 | 5 | 
| 6 --> | 6 --> | 
| 7 <!DOCTYPE html> | 7 <!DOCTYPE html> | 
| 8 <html> | 8 <html> | 
| 9 <head> | 9 <head> | 
| 10   <title>bot-page Demo</title> | 10   <title>task-page Demo</title> | 
| 11     <meta charset="utf-8"> | 11     <meta charset="utf-8"> | 
| 12   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | 12   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | 
| 13   <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-
     scale=1, user-scalable=yes"> | 13   <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-
     scale=1, user-scalable=yes"> | 
| 14   <script src="../bower_components/webcomponentsjs/webcomponents-lite.js"></scri
     pt> | 14   <script src="../bower_components/webcomponentsjs/webcomponents-lite.js"></scri
     pt> | 
| 15   <script src="../../../node_modules/skia-common-js/common.js"></script> | 15   <script src="../../../node_modules/skia-common-js/common.js"></script> | 
| 16   <script src="/res/js/common.js"></script> | 16   <script src="/res/js/common.js"></script> | 
| 17   <script src="/res/js/alias.js"></script> | 17   <script src="/res/js/alias.js"></script> | 
| 18   <script src="../../../node_modules/sinon/pkg/sinon-1.17.5.js"></script> | 18   <script src="../../../node_modules/sinon/pkg/sinon-1.17.5.js"></script> | 
| 19   <!-- Makes a var called bots.  It's an array of things that could be returned-
     -> | 19   <!-- Makes a var called requests.  It's an array of things that could be retur
     ned--> | 
| 20   <script type="text/javascript" src="bot-demo.json"></script> | 20   <script type="text/javascript" src="task-request-demo.json"></script> | 
| 21   <!-- Makes a var called events.  It's an array of things that could be returne
     d--> | 21   <!-- Makes a var called results.  It's an array of things that could be return
     ed--> | 
| 22   <script type="text/javascript" src="bot-events-demo.json"></script> | 22   <script type="text/javascript" src="task-result-demo.json"></script> | 
| 23   <!-- Makes a var called tasks.  It's an array of things that could be returned
     --> | 23   <!-- Makes a var called stdouts.  It's an array of things that could be return
     ed--> | 
| 24   <script type="text/javascript" src="bot-tasks-demo.json"></script> | 24   <script type="text/javascript" src="task-stdout-demo.json"></script> | 
| 25 | 25 | 
| 26   <script type="text/javascript" charset="utf-8"> | 26   <script type="text/javascript" charset="utf-8"> | 
| 27     sinon.format = function(object) {return JSON.stringify(object);} | 27     sinon.format = function(object) {return JSON.stringify(object);} | 
| 28     sinon.log = function(message) {console.log(message);}; | 28     sinon.log = function(message) {console.log(message);}; | 
| 29     var server = sinon.fakeServer.create(); | 29     var server = sinon.fakeServer.create(); | 
| 30     server.autoRespond = true; | 30     server.autoRespond = true; | 
| 31     server.autoRespondAfter = 1000; | 31      server.autoRespondAfter = 700; | 
| 32 | 32 | 
| 33     var genResponse = function(arr) { | 33     var genResponse = function(arr) { | 
| 34       return function(request){ | 34       return function(request){ | 
| 35         if (!request.requestHeaders.authorization) { | 35         if (!request.requestHeaders.authorization) { | 
| 36           sinon.log("You must be logged in (check your Oauth?)"); | 36           sinon.log("You must be logged in (check your Oauth?)"); | 
| 37           request.respond(403, {}, "You must be logged in (check your Oauth?)"); | 37           request.respond(403, {}, "You must be logged in (check your Oauth?)"); | 
| 38           return; | 38           return; | 
| 39         } | 39         } | 
| 40         sinon.log("User authenticated :) "+ request.requestHeaders.authorization
     ); | 40         sinon.log("User authenticated :) "+ request.requestHeaders.authorization
     ); | 
| 41         sinon.log("Bot Request: "+sinon.format(request)); | 41         sinon.log("Bot Request: "+sinon.format(request)); | 
| 42         // If the user changes bot id, show them some of the other sample data. | 42         // If the user changes bot id, show them some of the other sample data. | 
| 43         var idx = request.url.indexOf("-00"); | 43         var idx = request.url.indexOf("f00"); | 
| 44         var item = 0; | 44         var item = 0; | 
| 45         if (idx !=-1) { | 45         if (idx !=-1) { | 
| 46           var name = request.url.substring(idx+1, idx+4); | 46           var name = request.url.substring(idx+1, idx+4); | 
| 47           item = parseInt(name) || 0; | 47           item = parseInt(name) || 0; | 
| 48           name = Math.max(name - 1, 0); | 48           name = Math.max(name - 1, 0); | 
| 49           name = Math.min(name, arr.length-1); | 49           name = Math.min(name, arr.length-1); | 
| 50         } | 50         } | 
| 51 | 51 | 
| 52 |  | 
| 53         request.respond(200, {"Content-Type":"application/json"}, JSON.stringify
     (arr[name])); | 52         request.respond(200, {"Content-Type":"application/json"}, JSON.stringify
     (arr[name])); | 
| 54       } | 53       } | 
| 55     } | 54     } | 
| 56 | 55 | 
| 57 | 56 | 
| 58     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/get
     .*/, genResponse(bots)); | 57     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/reque
     st.*/, genResponse(requests)); | 
| 59     server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/get.*/, 
     genResponse(bots)); | 58     server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/request.*/
     , genResponse(requests)); | 
| 60 | 59 | 
| 61     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/eve
     nts.*/, genResponse(events)); | 60     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/resul
     t.*/, genResponse(results)); | 
| 62     server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/events.*
     /, genResponse(events)); | 61     server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/result.*/,
      genResponse(results)); | 
| 63 | 62 | 
| 64     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/tas
     ks.*/, genResponse(tasks)); | 63     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/stdou
     t.*/, genResponse(stdouts)); | 
| 65     server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/tasks.*/
     , genResponse(tasks)); | 64     server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/stdout.*/,
      genResponse(stdouts)); | 
| 66 | 65 | 
| 67     var permissions = { | 66     var permissions = { | 
| 68       cancel_task: true, | 67       cancel_task: true, | 
| 69       delete_bot: true, |  | 
| 70       terminate_bot: true, |  | 
| 71     }; | 68     }; | 
| 72     server.respondWith("GET",  /^\/_ah\/api\/swarming\/v1\/server\/permissions/,
      JSON.stringify(permissions)); | 69     server.respondWith("GET",  /^\/_ah\/api\/swarming\/v1\/server\/permissions/,
      JSON.stringify(permissions)); | 
| 73     server.respondWith("GET", /^\/api\/swarming\/v1\/server\/permissions/, JSON.
     stringify(permissions)); | 70     server.respondWith("GET", /^\/api\/swarming\/v1\/server\/permissions/, JSON.
     stringify(permissions)); | 
| 74 | 71 | 
| 75     var details = { | 72     var details = { | 
| 76       server_version: "1234-deadbeef", | 73       server_version: "1234-deadbeef", | 
| 77     }; | 74     }; | 
| 78     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/details/, JSON
     .stringify(details)); | 75     server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/details/, JSON
     .stringify(details)); | 
| 79     server.respondWith("GET", /^\/api\/swarming\/v1\/server\/details/, JSON.stri
     ngify(details)); | 76     server.respondWith("GET", /^\/api\/swarming\/v1\/server\/details/, JSON.stri
     ngify(details)); | 
| 80 |  | 
| 81     var deleteRequest = function(request) { |  | 
| 82       console.log("Deleting", request); |  | 
| 83       if (!request.requestHeaders.authorization) { |  | 
| 84         sinon.log("You must be logged in (check your Oauth?)"); |  | 
| 85           request.respond(403, {}, "You must be logged in (check your Oauth?)"); |  | 
| 86         return; |  | 
| 87       } |  | 
| 88       request.respond(200, {}, "Bot has been deleted."); |  | 
| 89     } |  | 
| 90 |  | 
| 91     server.respondWith("POST", /^\/_ah\/api\/swarming\/v1\/bot\/.+\/delete/, del
     eteRequest); |  | 
| 92     server.respondWith("POST", /^\/api\/swarming\/v1\/bot\/.+\/delete/, deleteRe
     quest); |  | 
| 93 |  | 
| 94     var terminateRequest = function(request) { |  | 
| 95       console.log("Terminating", request); |  | 
| 96       if (!request.requestHeaders.authorization) { |  | 
| 97         sinon.log("You must be logged in (check your Oauth?)"); |  | 
| 98           request.respond(403, {}, "You must be logged in (check your Oauth?)"); |  | 
| 99         return; |  | 
| 100       } |  | 
| 101       request.respond(200, {}, "Bot has been terminated."); |  | 
| 102     } |  | 
| 103 |  | 
| 104     server.respondWith("POST", /^\/_ah\/api\/swarming\/v1\/bot\/.+\/terminate/, 
     terminateRequest); |  | 
| 105     server.respondWith("POST", /^\/api\/swarming\/v1\/bot\/.+\/terminate/, termi
     nateRequest); |  | 
| 106     </script> | 77     </script> | 
| 107 | 78 | 
| 108     <link rel="import" href="bot-page.html"> | 79     <link rel="import" href="task-page.html"> | 
| 109 </head> | 80 </head> | 
| 110 <body> | 81 <body> | 
| 111 | 82 | 
| 112 <bot-page | 83 <task-page | 
| 113   bot_id="test-bot-001" | 84   task_id="abcdef001" | 
| 114   client_id="20770472288-t5smpbpjptka4nd888fv0ctd23ftba2o.apps.googleusercontent
     .com"> | 85   client_id="20770472288-t5smpbpjptka4nd888fv0ctd23ftba2o.apps.googleusercontent
     .com" | 
| 115 </bot-page> | 86   milo_prefix="/res/imp/taskpage/milo-sample.html?"> | 
|  | 87 </task-page> | 
| 116 | 88 | 
| 117 </body> | 89 </body> | 
| 118 </html> | 90 </html> | 
| OLD | NEW | 
|---|