· 7 years ago · Jun 03, 2018, 02:48 AM
1/*
2Setup:
3 npm install ws
4
5Usage:
6 Create an API key in Rancher and start up with:
7
8 node socket.js address.of.rancher:8080 access_key secret_key project_id
9*/
10var WebSocket = require('ws');
11
12var host = process.argv[2];
13var accessKey = process.argv[3];
14var secretKey = process.argv[4];
15var projectId = process.argv[5];
16
17var url = 'ws://'+accessKey+':'+secretKey+'@'+host+'/v1/projects/'+projectId+'/subscribe?eventNames=resource.change';
18var socket = new WebSocket(url);
19
20socket.on('open', function() {
21 console.log('Socket opened');
22});
23
24socket.on('message', function(messageStr) {
25 var message = JSON.parse(messageStr);
26
27 if ( message.name === 'ping' )
28 {
29 console.log('ping');
30 }
31 else if ( message.name === 'resource.change' && message.data )
32 {
33 var resource = message.data.resource;
34
35 var info = 'name='+resource.name + ', state='+resource.state;
36 if ( resource.transitioning !== 'no' )
37 {
38 info += ', transitioning='+resource.transitioning + ', message='+resource.transitioningMessage
39 }
40
41 console.log(message.resourceType, message.resourceId, 'changed:', info);
42 }
43});
44
45socket.on('close', function() {
46 console.log('Socket closed');
47});