diff --git a/README.md b/README.md index a4175f79b627d45343d7804d7add64ca6c5e4aba..b91f6dcd763eeb8326dce35d43b1501a42e35061 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ npm run start ``` + + ## Introducer The introducer has a list of all VMs up, and gets messages when anotehr machine joins and leaves. Based on that, it updates all the nodes membership lists. diff --git a/cli/src/commands/leave.js b/cli/src/commands/leave.js index dd2db85f106f6425c2e53b46d498e48444d2456a..d1f9eed7ae28b705c9d784c74c3251779c651956 100644 --- a/cli/src/commands/leave.js +++ b/cli/src/commands/leave.js @@ -18,6 +18,19 @@ const process = require("process"); const socket = dgram.createSocket({ type: "udp4", reuseAddr: true }); +const machineToIps = { + "0": "172.16.138.158", + "1": "172.22.156.15", + "2": "172.22.158.15", + "3": "172.22.154.16", + "4": "172.22.156.16", + "5": "172.22.158.16", + "6": "172.22.154.17", + "8": "172.22.158.17", + "9": "172.22.154.18", + "10": "172.22.156.18" +}; + socket.bind(PORT); function sendMessage(number) { @@ -25,9 +38,16 @@ function sendMessage(number) { socket.send(message, 0, message.length, PORT, HOST, function() {}); } + +function sendMessageToNode(number) { + const message = Buffer.from(`leave ${number}`); + socket.send(message, 0, message.length, PORT, machineToIps[number], function() {}); +} + module.exports.handler = handleErrors(async (argv: {}) => { - console.log("Sending message to introducer") - let number = argv.number + console.log("Sending message to introducer"); + let number = argv.number; await sendMessage(number); + sendMessageToNode(number) process.exit(0); }); diff --git a/introducer/index.js b/introducer/index.js index 751d847095125d5e33099d30d84f470da2b0afc0..eac95c84ebe4c081f59518e21d99402bfdf0845c 100644 --- a/introducer/index.js +++ b/introducer/index.js @@ -57,19 +57,6 @@ socket.on("listening", function() { ); }); -function syn(machineNumberBeingChecked) { - console.log(machineNumberBeingChecked); - console.log("my machien number" + machineNumber); - const message = Buffer.from(`check ${machineToIps[machineNumber]}`); - socket.send( - message, - 0, - message.length, - PORT, - machineToIps[machineNumberBeingChecked], - function() {} - ); -} function initialize(machineNumber, connectedTo) { const message = Buffer.from(`initialize [${connectedTo}]`); diff --git a/machine/index.js b/machine/index.js index b8f69c065b6b9d3a10a16a101be1e4f798827f77..20c8da27f5615b29f2ede18e83e6d94e5914864a 100644 --- a/machine/index.js +++ b/machine/index.js @@ -163,6 +163,15 @@ socket.on("message", function(message, rinfo) { if (text[0] === "ack") { updateTimeStamp(text[1]) updateStatuses() + } + + if (text[0] === "leave") { + console.log(text[1]) + const deletedConnection = Object.keys(connections).filter(c => c.toString()[0] === text[1]); + console.log(deletedConnection) + + // delete myArray["lastname"]; } + });