def main(): # Parse for command line argument for fgt ip if len(sys.argv) < 2: # Requires fgt ip and vdom print "Please specify fgt ip address" exit() # Initilize fgt connection ip = sys.argv[1] #fgt = FGT(ip) # Hard coded vdom value for all requests vdom = "root" # Login to the FGT ip fgt = FortiOSAPI() fgt.login(ip, 'admin', '') parameters = {'global': '1'} upload_data = {'source': 'upload', 'scope': 'global'} files = {'file': ('license', open("license.lic", 'r'), 'text/plain')} fgt.upload('system/vmlicense', 'upload', data=upload_data, parameters=parameters, files=files) fgt.logout()
from fortiosapi import FortiOSAPI FG = FortiOSAPI() # Source _host FG_HOST = os.environ['FG_HOST'] FG_USER = os.environ['FG_USER'] FG_PASS = os.environ['FG_PASS'] DEVICE = { 'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG._https = False # Connect using http before license is applied FG.login(**DEVICE) filename = 'license.lic' f = open(filename) data = { 'source': 'upload', 'scope': 'global', } license_file = {'file': (filename, f, 'text/plain')} FG.upload('system', 'vmlicense/upload', data=data, files=license_file) # Will reboot automatically after POST
from fortiosapi import FortiOSAPI FG = FortiOSAPI() # Source _host FG_HOST = os.environ['FG_HOST'] FG_USER = os.environ['FG_USER'] FG_PASS = os.environ['FG_PASS'] DEVICE = { 'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG.login(**DEVICE) # Obtain FIRMWARE_ID with monitor_system_firmware FIRMWARE_ID = '06000000FIMG0012000000' # 6.0.0 # FIRMWARE_ID = '06000000FIMG0012000001' # 6.0.1 UPLOAD_DATA = { 'source': 'fortiguard', 'filename': FIRMWARE_ID, } UPLOAD_DATA = json.dumps(UPLOAD_DATA) FG.upload('system', 'firmware/upgrade', data=UPLOAD_DATA)
'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG.login(**DEVICE) UPLOAD_DATA = { 'event_log_message': 'going down', } UPLOAD_DATA = json.dumps(UPLOAD_DATA) # Using upload method because it's the easiest way to POST to # /monitor using fortiosapi at the moment FG.upload('system', 'os/reboot', data=UPLOAD_DATA) ''' Currently this code works but will hang at the end and will raise the following errors: Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 600, in urlopen chunked=chunked) File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 384, in _make_request six.raise_from(e, None) File "<string>", line 2, in raise_from File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 380, in _make_request httplib_response = conn.getresponse() File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse response.begin() File "/usr/lib/python3.5/http/client.py", line 297, in begin version, status, reason = self._read_status()
from fortiosapi import FortiOSAPI FG = FortiOSAPI() # Source _host FG_HOST = os.environ['FG_HOST'] FG_USER = os.environ['FG_USER'] FG_PASS = os.environ['FG_PASS'] DEVICE = { 'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG.login(**DEVICE) filename = 'fg_backup.txt' f = open(filename) data = { 'source': 'upload', 'scope': 'global', } backup_file = {'file': (filename, f, 'text/plain')} FG.upload('system', 'config/restore', data=data, files=backup_file) # Will reboot automatically after POST
import json from fortiosapi import FortiOSAPI FG = FortiOSAPI() # Source _host FG_HOST = os.environ['FG_HOST'] FG_USER = os.environ['FG_USER'] FG_PASS = os.environ['FG_PASS'] DEVICE = { 'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG.login(**DEVICE) filename = 'FGT_VM64-v6-build0163-FORTINET.out' f = open(filename, 'rb') firmware_file = {'file': (filename, f, 'text/plain')} data = { 'source': 'upload', 'scope': 'global', } FG.upload('system', 'firmware/upgrade', data=data, files=firmware_file) # Will reboot automatically after POST
'host': FG_HOST, 'username': FG_USER, 'password': FG_PASS, } FG.login(**DEVICE) UPLOAD_DATA = { 'event_log_message': 'going down', } UPLOAD_DATA = json.dumps(UPLOAD_DATA) # Using upload method because it's the easiest way to POST to # /monitor using fortiosapi at the moment FG.upload('system', 'os/shutdown', data=UPLOAD_DATA) ''' Currently this code works but will hang at the end and will raise the following errors: Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 600, in urlopen chunked=chunked) File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 384, in _make_request six.raise_from(e, None) File "<string>", line 2, in raise_from File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 380, in _make_request httplib_response = conn.getresponse() File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse response.begin() File "/usr/lib/python3.5/http/client.py", line 297, in begin version, status, reason = self._read_status()