summaryrefslogtreecommitdiff
path: root/netconf/tests/runtests.js
blob: fedc18c263d0edeed71b7d77d78e475807c42bbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
 * ZeroTier One Redis netconf master test script -- see README.md for instructions
 */

// Use this Redis database number to avoid conflicting with running data that might be in DB #0
var redisDatabaseNumber = 9;

// ---------------------------------------------------------------------------
// Test data

// Test signing identity (and first 10 digits of our test network IDs of course)
var netconfMasterIdentity = "39410d7f2a:0:badb041ef2a6e50e001222e76cf41ee41a71d944e67501d71d0635701975bd27a7c84106d76a4b14c5dc0082cce73ecbf05762df9d740df10314ce8f58841c99:ae8cc6d2b48123b48c5c78d4ead5947adc58cbcab2585b3997061e2316a60f7916ac5564e7602e4d035816fd11906d4e0018a18c8fc5fd88b4e46ce706c45597";

// Test member identities
var memberIdentities = {
	"bf521d42f3": "bf521d42f3:0:1f08082079e35dc4a08e87947b9f314ec1cbecd8ff9f744f69a5ba9840efe76d9490a307262f684d643c7ba517dd9209d65b4cf2f691f21c3884514b9dc88fb1:9b8b4a7de3bae5c26513ce1c75495e4a42b7c7b29dc650bea477019f13f57f6b84f098fe3498caf758175dcb0ddafd8fc818b05f7cc620b46a51c78a9177c96a",
	"c0dd8dbaf3": "c0dd8dbaf3:0:ce3513e1344ec32cb5d914cf2295d76a4818a8f6c0e9242efbf9744a861893552d8bed75a4fd9954ca1db259e72fd4e0c3a1f7b1ef665c341ab3c4929e741716:92410fe5b422bb1891a94d139e219a5b035866e9070eb43a96898f71aef61e01dee9e9de8f6e9565d5a1c3167b128a040781bf627d643e6be368d8f32eeaa27e",
	"c8a24c4e66": "c8a24c4e66:0:4b1fea827d3e36bf7aa880ccb31ba9af85c4822da3ee672bebd0d7b6b2e39052de45d185a0093badb4945c9c51bf6274e2fb60405cd5fe92e35af47ada133b71:e78b9df0355eece7b12274c049d96219a3025c0612f87138dd82f171dcad9ef6ac6fdd362e2d81cd79abdfea310a9c8eb9b66bce00c11f8ee90e6a5e09f6de6f",
	"d75952db23": "d75952db23:0:3f94e97ca4f5d406af80d56e2b92dd1218214f683e4828b69f0e3686888b397385979f882e1112ad45b8d913c11968eeaf67bd117bdcc648d903b3caac669284:b5798859e7bcce9ef75024f5bc53ee1299aa05e129dfa528b362f7be7ed4947e5a07634d55e53d96f65967a5819537327eadab2fe93d487348864a3acdbfd06d",
	"46cf921359": "46cf921359:0:5bb72587cd0be9c7ed5fa4a8660251533c9dce8ce9267e6d886eb9670ca2cb44c610bcd37d64d33a1a66c8ece66e79a9528e9ca6d6ee718770551de4ab6a585a:ea5fb0429234a4e4f182d8bedcdacbd896e6502347e79e8ce9cacb6ca9271145457ce797a585511427f7d03bb5add636d408e8292ef3f9a5478da1d6ac56cf90",
	"d3cc6e0998": "d3cc6e0998:0:ab43003195bcbfb52d860eec52bca97782ca7a7d640721dbfa92e2ba0d897e19e61c6e6ca8f55ba3600d3a5163474679c29c1c5873ca3f4a102adbc696e7bf9f:dcfb7c9ec072aca226d86d3d3c9229c3cf1a6ef2ab650e6c0ac314951eb391e8d5dc9751259ece45e8cf0bca3540da82ce984c7a04e0cab7f74ffe15ad81a2db",
	"3b09b12f05": "3b09b12f05:0:413e3a01d5b5b626f815ef2f984caebd2337fd7a679a9c35a1d4fb63e357625bfa9905bfc93f866908baeac0df943f356981ad735dd6125941961f1950145956:9be0be044d2f0625420017fe1dddda1321739ce1072ea9f2af6d651af07342c83302fdfeef80184315625761407084c2da08d2a0e61d9fd297bec46a2fe46fdc",
	"b1df956f1b": "b1df956f1b:0:87635a20426a8b7ed6d590fdc972e0849635f9c765fc1edc05724eb79d32cd4d9962329074f7fd9673acc0dc3898e1f3c720b8aac8a1b382e0ff421810785f94:408c8a3a55d12846e956369c506148c710345dd7249239a10dc2829e79536e864867cadaf48ea9626c7489307a9832fdaef854cff065331696fee28e597586cc"
};

// Test database initial state
var initialTestData = {
	"zt1:schema": 2,

	"zt1:network:39410d7f2a111111:~": {
		"id": "39410d7f2a111111",
		"name": "zerotier-testnet",
		"desc": "Test Public Network",
		"private": "0",
		"etherTypes": "0800,0806",
		"enableBroadcast": "1",
		"v4AssignMode": "zt",
		"v4AssignPool": "192.168.123.0/24",
		"v6AssignMode": "none"
	},
	"zt1:network:39410d7f2a111111:revision": 1,

	"zt1:network:39410d7f2a222222:~": {
		"id": "39410d7f2a222222",
		"name": "zerotier-testnet2",
		"desc": "Test Private Network",
		"private": "1",
		"etherTypes": "0800,0806",
		"enableBroadcast": "1",
		"v4AssignMode": "zt",
		"v4AssignPool": "192.168.124.0/24",
		"v6AssignMode": "none"
	},
	"zt1:network:39410d7f2a222222:members": [ "bf521d42f3", "c0dd8dbaf3" ],
	"zt1:network:39410d7f2a222222:member:bf521d42f3": {
		"id": "bf521d42f3",
		"nwid": "39410d7f2a222222",
		"authorized": "1",
		"identity": "bf521d42f3:0:1f08082079e35dc4a08e87947b9f314ec1cbecd8ff9f744f69a5ba9840efe76d9490a307262f684d643c7ba517dd9209d65b4cf2f691f21c3884514b9dc88fb1"
	},
	"zt1:network:39410d7f2a222222:member:c0dd8dbaf3": {
		"id": "c0dd8dbaf3",
		"nwid": "39410d7f2a222222",
		"authorized": "0",
		"identity": "c0dd8dbaf3:0:ce3513e1344ec32cb5d914cf2295d76a4818a8f6c0e9242efbf9744a861893552d8bed75a4fd9954ca1db259e72fd4e0c3a1f7b1ef665c341ab3c4929e741716"
	},
	"zt1:network:39410d7f2a222222:revision": 2
};

// ---------------------------------------------------------------------------

var async = require('async');
var redis = require('redis');

var DB = redis.createClient();
DB.on("error",function(err) { console.error('redis query error: '+err); });
DB.select(redisDatabaseNumber,function() {});

async.series([function(nextStepInTesting) {

	console.log('Loading test data...');

	async.eachSeries(Object.keys(initialTestData),function(key,next) {
		var value = initialTestData[key];
		if (typeof value === 'object') {
			async.eachSeries(Object.keys(value),function(hkey,next2) {
				DB.hset(key,hkey,value[hkey],next2);
			},next);
		} else if ((typeof value !== 'undefined')&&(value !== null)) {
			if (Array.isArray(value)) {
				DB.sadd(key,value,next);
			} else {
				DB.set(key,value,next);
			}
		} else return next(null);
	},function(err) {
		if (err) {
			console.log('Error loading initial data: '+err);
			return process.exit(1);
		} else {
			return nextStepInTesting();
		}
	});

},function(nextStepInTesting) {

}]);