UNPKG

1.94 kBJavaScriptView Raw
1const https = require('https')
2
3var userName = process.argv[2]
4var accessKey = process.argv[3]
5var tunnelName = process.argv[4]
6
7function removeTunnel () {
8 const requestPath = `/rest/v1/${userName}/tunnels`
9 console.log(requestPath)
10 callSauce(requestPath, 'GET', function (error, result) {
11 if (error) {
12 console.log(error)
13 } else {
14 var data = JSON.parse(result)
15 for (var k in data) {
16 retrieveTunnel(data[k], function (error, result) {
17 if (error) {
18 console.log(error)
19 } else if (result.identtifier === tunnelName) {
20 deleteTunnel(result.id, function () {
21 console.log('tunnel deleted ' + data[k] + ' ' + tunnelName)
22 })
23 }
24 })
25 }
26 }
27 })
28}
29
30function retrieveTunnel (tunnelid, callback) {
31 const requestPath = `/rest/v1/${userName}/tunnels/${tunnelid}`
32 callSauce(requestPath, 'GET', function (error, result) {
33 if (error) {
34 callback(error)
35 } else {
36 callback(null, {'identtifier': JSON.parse(result).tunnel_identifier, 'id': tunnelid})
37 }
38 })
39}
40
41function deleteTunnel (tunnelid, callback) {
42 const requestPath = `/rest/v1/${userName}/tunnels/${tunnelid}`
43 callSauce(requestPath, 'DELETE', callback)
44}
45
46function callSauce (requestPath, type, callback) {
47 function responseCallback (res) {
48 res.setEncoding('utf8')
49 console.log('Response: ', res.statusCode, JSON.stringify(res.headers))
50 res.on('data', function onData (chunk) {
51 console.log('BODY: ' + chunk)
52 callback(null, chunk)
53 })
54 res.on('end', function onEnd () {})
55 }
56
57 var req = https.request({
58 hostname: 'saucelabs.com',
59 path: requestPath,
60 method: type,
61 auth: userName + ':' + accessKey
62 }, responseCallback)
63
64 req.on('error', function onError (e) {
65 console.log('problem with request: ' + e.message)
66 callback(e.message)
67 })
68 req.write('')
69 req.end()
70}
71
72removeTunnel()