mirror of
https://github.com/zahodi/ansible-mikrotik.git
synced 2025-07-25 05:14:47 +02:00
add a simple check to verify if API service is available
This commit is contained in:
parent
d08d716ba5
commit
d8cb822fa6
3 changed files with 26 additions and 13 deletions
|
@ -1,6 +1,5 @@
|
||||||
#! /usr/bin/python
|
#! /usr/bin/python
|
||||||
|
import socket
|
||||||
import json
|
|
||||||
from ansible.module_utils import mt_api
|
from ansible.module_utils import mt_api
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
@ -23,12 +22,19 @@ def main():
|
||||||
msg = ""
|
msg = ""
|
||||||
|
|
||||||
mk = mt_api.Mikrotik(hostname,username,password)
|
mk = mt_api.Mikrotik(hostname,username,password)
|
||||||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
result = sock.connect_ex((hostname, 8728))
|
||||||
|
if result == 0:
|
||||||
try:
|
try:
|
||||||
mk.login()
|
mk.login()
|
||||||
except:
|
except:
|
||||||
module.fail_json(
|
module.fail_json(
|
||||||
msg="Could not log into Mikrotik device. Check the username and password."
|
msg="Could not log into Mikrotik device. Check the username and password."
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
module.fail_json(
|
||||||
|
msg="Could not access RouterOS api." + " Verify API service is enabled and not blocked by firewall."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# response = apiros.talk([b'/ip/address/add', b'=address=192.168.15.2/24', b'=interface=ether7'])
|
# response = apiros.talk([b'/ip/address/add', b'=address=192.168.15.2/24', b'=interface=ether7'])
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
from ansible.module_utils import mt_api
|
from ansible.module_utils import mt_api
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import socket
|
||||||
|
|
||||||
|
|
||||||
def list_to_string(list):
|
def list_to_string(list):
|
||||||
|
@ -83,12 +84,17 @@ class MikrotikIdempotent():
|
||||||
self.username,
|
self.username,
|
||||||
self.password,
|
self.password,
|
||||||
)
|
)
|
||||||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
result = sock.connect_ex((self.hostname, 8728))
|
||||||
|
if result == 0:
|
||||||
try:
|
try:
|
||||||
self.mk.login()
|
self.mk.login()
|
||||||
self.login_success = True
|
self.login_success = True
|
||||||
except:
|
except:
|
||||||
self.failed_msg = "Could not log into Mikrotik device." + " Check the username and password.",
|
self.failed_msg = "Could not log into Mikrotik device." + " Check the username and password.",
|
||||||
|
else:
|
||||||
|
self.failed_msg = "Could not access RouterOS api." + " Verify API service is enabled and not blocked by firewall.",
|
||||||
|
|
||||||
|
|
||||||
def get_current_params(self):
|
def get_current_params(self):
|
||||||
clean_params(self.desired_params)
|
clean_params(self.desired_params)
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
hostname: "{{ mt_hostname }}"
|
hostname: "{{ mt_hostname }}"
|
||||||
username: "{{ mt_user }}"
|
username: "{{ mt_user }}"
|
||||||
password: "{{ mt_pass }}"
|
password: "{{ mt_pass }}"
|
||||||
|
tags: test_login
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
# Interfaces
|
# Interfaces
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue