From 82685dab40bd40f4f87135db26112e62468939c8 Mon Sep 17 00:00:00 2001 From: Simon Schuster Date: Fri, 2 Sep 2016 21:56:40 +0200 Subject: [PATCH] Add ubus_{call,connect} to ansible.lua --- src/ansible.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/ansible.lua b/src/ansible.lua index 6d7cf91..dfaa9d0 100644 --- a/src/ansible.lua +++ b/src/ansible.lua @@ -3,6 +3,7 @@ local Ansible = {} local io = require("io") local json = require("dkjson") +local ubus = require("ubus") Ansible.__index = Ansible @@ -369,4 +370,30 @@ function Ansible:get_params() return self.params end +function Ansible:ubus_connect() + local p = self:get_params() + local timeout = p['timeout'] + if not timeout then + timeout = 30 + end + local socket = p['socket'] + + local conn = ubus.connect(socket, timeout) + if not conn then + self:fail_json({msg="Failed to connect to ubus"}) + end + + return conn +end + +function Ansible:ubus_call(conn, namespace, procedure, arg) + local res, status = conn:call(namespace, procedure, arg) + + if nil ~= status and 0 ~= status then + self:fail_json({msg="Ubus call failed", call={namespace=namespace, procedure=procedure, arg=arg, status=status}}) + end + + return res +end + return Ansible