Skip to content

Commit

Permalink
ref_state: implement publishser
Browse files Browse the repository at this point in the history
  • Loading branch information
javierajorge committed May 12, 2024
1 parent 2495b39 commit 991fa73
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/lua

--! LibreMesh
--! Generic hook to be called as a symbolic link for each ref type
--! Copyright (C) 2024 Javier Jorge
--! Copyright (C) 2024 Asociación Civil Altermundi <[email protected]>
--! SPDX-License-Identifier: AGPL-3.0-only
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/lua

--! LibreMesh
--! Copyright (C) 2023 Javier Jorge <[email protected]>
--! Copyright (C) 2023 Asociación Civil Altermundi <[email protected]>
--!
--! This program is free software: you can redistribute it and/or modify
--! it under the terms of the GNU Affero General Public License as
--! published by the Free Software Foundation, either version 3 of the
--! License, or (at your option) any later version.
--!
--! This program is distributed in the hope that it will be useful,
--! but WITHOUT ANY WARRANTY; without even the implied warranty of
--! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--! GNU Affero General Public License for more details.
--!
--! You should have received a copy of the GNU Affero General Public License
--! along with this program. If not, see <http://www.gnu.org/licenses/>.

local JSON = require("luci.jsonc")
local network = require ("lime.network")
local location = require("lime.location")
local utils = require('lime.utils')
local config = require("lime.config")

local hostname = utils.hostname()
function get_node_info()
local uci = config.get_uci_cursor()
local coords = location.get_node() or location.get_community() or
{lat="FIXME", long="FIXME"}
local fw_version = "no version"
pcall(function () fw_version = utils.release_info()['DISTRIB_RELEASE'] end)
local board = "no board"
pcall(function () board = utils.current_board() end)
local ipv4 = uci:get("network", "lan", "ipaddr")
local ipv6 = uci:get("network", "lan", "ip6addr")
if ipv6 then ipv6 = ipv6:gsub("/.*$", "") end
local uptime = utils.uptime_s()
local macs = network.get_own_macs("*")
return {hostname=hostname, firmware_version=fw_version, board=board,
ipv4=ipv4, ipv6=ipv6,coordinates=coords,macs= macs,uptime = uptime,
device = "Router" }
end

local result = { [hostname] = get_node_info() }
io.popen("shared-state-async insert node_info", "w"):write(JSON.stringify(result))
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/lua

--! LibreMesh
--! Copyright (C) 2024 Javier Jorge
--! Copyright (C) 2024 Asociación Civil Altermundi <[email protected]>
--! SPDX-License-Identifier: AGPL-3.0-only

local JSON = require("luci.jsonc")
local utils = require "lime.utils"
local fs = require("nixio.fs")


local ref_file_folder = "/etc/shared-state/ref_state/"
--get data_type from publisher
for data_type in fs.dir(ref_file_folder) do
local path = ref_file_folder .. data_type
local result = { [utils.hostname()] = utils.read_file(path .. data_type) }
io.popen("shared-state-async insert " .. data_type, "w"):write(JSON.stringify(result))
end
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ local uci = nil
--package.path = package.path .. ";packages/shared-state-bat_links_info/files/usr/share/shared-state/hooks/bat_links_info_ref/?;;"
--require ("shared-state-update_refstate")



describe('bat links ref state tests', function()

it('test obj store', function()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}

0 comments on commit 991fa73

Please sign in to comment.