diff --git a/freenas_network_unlock.py b/freenas_network_unlock.py index b4d58eb..0abcdb8 100644 --- a/freenas_network_unlock.py +++ b/freenas_network_unlock.py @@ -1,41 +1,56 @@ import requests # For the api calls import platform # For getting the operating system name import subprocess # For executing a shell command -import yaml # For parsing the yaml config file import config # configuration file +import logging + +#try: +# import http.client as http_client +#except ImportError: + # Python 2 +# import httplib as http_client +#http_client.HTTPConnection.debuglevel = 1 + +# You must initialize logging, otherwise you'll not see debug output. +#logging.basicConfig() +#logging.getLogger().setLevel(logging.DEBUG) +#requests_log = logging.getLogger("requests.packages.urllib3") +#requests_log.setLevel(logging.DEBUG) +#requests_log.propagate = True def ping(host): - """ - Returns True if host (str) responds to a ping request. - Remember that a host may not respond to a ping (ICMP) request even if the host name is valid. - """ + """ + Returns True if host (str) responds to a ping request. + Remember that a host may not respond to a ping (ICMP) request even if the host name is valid. + """ - # Option for the number of packets as a function of - param = '-n' if platform.system().lower()=='windows' else '-c' + # Option for the number of packets as a function of + param = '-n' if platform.system().lower()=='windows' else '-c' - # Building the command. Ex: "ping -c 1 google.com" - command = ['ping', param, '1', host] + # Building the command. Ex: "ping -c 1 google.com" + command = ['ping', param, '1', host] - return subprocess.call(command) == 0 + return subprocess.call(command) == 0 -#if ping(FREENAS_HOST): +#if ping(config.HOSTNAME): VOLUMES = requests.get( 'https://{}/api/v1.0/storage/volume/'.format(config.HOSTNAME), auth=('root', '{}'.format(config.ROOT_PASSWORD)), verify='{}'.format(config.CA_CERT_PATH), -).json() +) -for volume in VOLUMES: +for volume in VOLUMES.json(): if volume['is_decrypted'] == False: - response = request.post( - 'https://{}/api/v1.0/storage/volume/{}/unlock/'.format(config.HOSTNAME,volume['name']), - data={'passphrase': '{}'.format(config.POOLS[volume['name']])}, - auth=('root', '{}'.format(config.ROOT_PASSWORD)), - verify='{}'.format(config.CA_CERT_PATH), - ).json() - print(response) + response = requests.post( + 'https://{}/api/v1.0/storage/volume/{}/unlock/'.format(config.HOSTNAME,volume['name']), + json={'passphrase': '{}'.format(config.POOLS[volume['name']])}, + auth=('root', '{}'.format(config.ROOT_PASSWORD)), + verify='{}'.format(config.CA_CERT_PATH), + ) + print(response.status_code) + print(response.text) #else: - #print("Host,{}, is not online".format(FREENAS_HOST)) + #print("Host,{}, is not online".format(config.HOSTNAME))