1# Copyright 2018 Fortinet, Inc.
2#
3# This program is free software: you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation, either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with Ansible.  If not, see <https://www.gnu.org/licenses/>.
15
16# Make coding more python3-ish
17from __future__ import (absolute_import, division, print_function)
18__metaclass__ = type
19
20import os
21import json
22from ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager import FortiManagerHandler
23import pytest
24
25try:
26    from ansible_collections.community.fortios.plugins.modules import fmgr_device_provision_template
27except ImportError:
28    pytest.skip("Could not load required modules for testing", allow_module_level=True)
29
30
31def load_fixtures():
32    fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures') + "/{filename}.json".format(
33        filename=os.path.splitext(os.path.basename(__file__))[0])
34    try:
35        with open(fixture_path, "r") as fixture_file:
36            fixture_data = json.load(fixture_file)
37    except IOError:
38        return []
39    return [fixture_data]
40
41
42@pytest.fixture(autouse=True)
43def module_mock(mocker):
44    connection_class_mock = mocker.patch('ansible.module_utils.basic.AnsibleModule')
45    return connection_class_mock
46
47
48@pytest.fixture(autouse=True)
49def connection_mock(mocker):
50    connection_class_mock = mocker.patch('ansible_collections.community.fortios.plugins.modules.fmgr_device_provision_template.Connection')
51    return connection_class_mock
52
53
54@pytest.fixture(scope="function", params=load_fixtures())
55def fixture_data(request):
56    func_name = request.function.__name__.replace("test_", "")
57    return request.param.get(func_name, None)
58
59
60fmg_instance = FortiManagerHandler(connection_mock, module_mock)
61
62
63def test_get_devprof(fixture_data, mocker):
64    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
65                 side_effect=fixture_data)
66    #  Fixture sets used:###########################
67
68    ##################################################
69    # snmpv3_security_level: None
70    # snmp_v2c_query_status: None
71    # ntp_type: None
72    # dns_suffix: None
73    # snmpv3_queries: None
74    # snmpv3_trap_status: None
75    # snmp_v2c_name: None
76    # syslog_facility: syslog
77    # snmp_v2c_status: None
78    # smtp_validate_cert: None
79    # snmpv3_name: None
80    # snmp_v2c_trap_src_ipv4: None
81    # syslog_port: None
82    # ntp_server: None
83    # admin_https_port: None
84    # ntp_status: None
85    # syslog_server: None
86    # dns_primary_ipv4: None
87    # admin_timeout: None
88    # snmpv3_auth_proto: None
89    # smtp_port: None
90    # snmpv3_priv_pwd: None
91    # smtp_server: None
92    # syslog_enc_algorithm: disable
93    # dns_secondary_ipv4: None
94    # smtp_username: None
95    # snmpv3_auth_pwd: None
96    # syslog_certificate: None
97    # admin_fortiguard_target: None
98    # snmpv3_query_port: None
99    # smtp_password: None
100    # adom: ansible
101    # snmpv3_notify_hosts: None
102    # syslog_mode: udp
103    # snmp_v2c_query_port: None
104    # snmp_v2c_trap_status: None
105    # snmp_status: enable
106    # syslog_status: None
107    # admin_fortianalyzer_target: None
108    # ntp_auth: None
109    # snmp_v2c_id: None
110    # admin_http_port: None
111    # ntp_v3: None
112    # snmp_v2c_query_hosts_ipv4: None
113    # ntp_sync_interval: None
114    # snmpv3_source_ip: None
115    # snmpv3_trap_rport: None
116    # admin_gui_theme: None
117    # syslog_filter: None
118    # ntp_auth_pwd: None
119    # provisioning_template: ansibleTest
120    # smtp_replyto: None
121    # provision_targets: None
122    # snmp_v2c_trap_port: None
123    # snmpv3_priv_proto: None
124    # admin_enable_fortiguard: None
125    # admin_switch_controller: None
126    # admin_language: None
127    # smtp_conn_sec: None
128    # mode: get
129    # smtp_source_ipv4: None
130    # snmpv3_status: None
131    # delete_provisioning_template: None
132    # snmp_v2c_trap_hosts_ipv4: None
133    # admin_https_redirect: None
134    ##################################################
135    ##################################################
136    # snmpv3_security_level: None
137    # snmp_v2c_query_status: None
138    # ntp_type: None
139    # dns_suffix: None
140    # snmpv3_queries: None
141    # snmpv3_trap_status: None
142    # snmp_v2c_name: None
143    # syslog_facility: kernel
144    # snmp_v2c_status: None
145    # smtp_validate_cert: None
146    # snmpv3_name: None
147    # snmp_v2c_trap_src_ipv4: None
148    # syslog_port: 514
149    # ntp_server: None
150    # admin_https_port: None
151    # ntp_status: None
152    # syslog_server: 10.7.220.59
153    # dns_primary_ipv4: None
154    # admin_timeout: None
155    # snmpv3_auth_proto: None
156    # smtp_port: None
157    # snmpv3_priv_pwd: None
158    # smtp_server: None
159    # syslog_enc_algorithm: disable
160    # dns_secondary_ipv4: None
161    # smtp_replyto: None
162    # smtp_username: None
163    # snmpv3_auth_pwd: None
164    # syslog_certificate: None
165    # admin_fortiguard_target: None
166    # snmpv3_query_port: None
167    # smtp_password: None
168    # adom: ansible
169    # snmpv3_notify_hosts: None
170    # syslog_mode: udp
171    # snmp_v2c_query_port: None
172    # snmp_v2c_trap_status: None
173    # snmp_status: None
174    # syslog_status: enable
175    # admin_fortianalyzer_target: None
176    # ntp_auth: None
177    # snmp_v2c_id: None
178    # admin_http_port: None
179    # snmp_v2c_query_hosts_ipv4: None
180    # ntp_sync_interval: None
181    # snmpv3_source_ip: None
182    # snmpv3_trap_rport: None
183    # admin_gui_theme: None
184    # syslog_filter: critical
185    # ntp_auth_pwd: None
186    # provisioning_template: ansibleTest
187    # snmp_v2c_trap_hosts_ipv4: None
188    # provision_targets: None
189    # snmp_v2c_trap_port: None
190    # snmpv3_priv_proto: None
191    # admin_enable_fortiguard: None
192    # admin_switch_controller: None
193    # admin_language: None
194    # smtp_conn_sec: None
195    # mode: get
196    # smtp_source_ipv4: None
197    # snmpv3_status: None
198    # delete_provisioning_template: None
199    # ntp_v3: None
200    # admin_https_redirect: None
201    ##################################################
202    ##################################################
203    # snmpv3_security_level: None
204    # snmp_v2c_query_status: enable
205    # ntp_type: None
206    # dns_suffix: None
207    # snmpv3_queries: None
208    # snmpv3_trap_status: None
209    # snmp_v2c_name: ansibleV2c
210    # syslog_facility: syslog
211    # snmp_v2c_status: enable
212    # smtp_validate_cert: None
213    # snmpv3_name: None
214    # snmp_v2c_trap_src_ipv4: 10.7.220.41
215    # syslog_port: None
216    # ntp_server: None
217    # admin_https_port: None
218    # ntp_status: None
219    # syslog_server: None
220    # dns_primary_ipv4: None
221    # admin_timeout: None
222    # snmpv3_auth_proto: None
223    # smtp_port: None
224    # snmpv3_priv_pwd: None
225    # smtp_server: None
226    # syslog_enc_algorithm: disable
227    # dns_secondary_ipv4: None
228    # smtp_username: None
229    # snmpv3_auth_pwd: None
230    # syslog_certificate: None
231    # admin_fortiguard_target: None
232    # snmpv3_query_port: None
233    # smtp_password: None
234    # adom: ansible
235    # snmpv3_notify_hosts: None
236    # syslog_mode: udp
237    # snmp_v2c_query_port: 162
238    # snmp_v2c_trap_status: enable
239    # snmp_status: enable
240    # syslog_status: None
241    # admin_fortianalyzer_target: None
242    # ntp_auth: None
243    # snmp_v2c_id: 1
244    # admin_http_port: None
245    # ntp_v3: None
246    # snmp_v2c_query_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.0 255.255.255.0
247    # ntp_sync_interval: None
248    # snmpv3_source_ip: None
249    # snmpv3_trap_rport: None
250    # admin_gui_theme: None
251    # syslog_filter: None
252    # ntp_auth_pwd: None
253    # provisioning_template: ansibleTest
254    # smtp_replyto: None
255    # provision_targets: None
256    # snmp_v2c_trap_port: 161
257    # snmpv3_priv_proto: None
258    # admin_enable_fortiguard: None
259    # admin_switch_controller: None
260    # admin_language: None
261    # smtp_conn_sec: None
262    # mode: get
263    # smtp_source_ipv4: None
264    # snmpv3_status: None
265    # delete_provisioning_template: None
266    # snmp_v2c_trap_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.60 255.255.255.255
267    # admin_https_redirect: None
268    ##################################################
269    ##################################################
270    # snmpv3_security_level: auth-priv
271    # snmp_v2c_query_status: None
272    # provision_targets: None
273    # ntp_type: None
274    # dns_suffix: None
275    # snmpv3_queries: enable
276    # snmpv3_trap_status: enable
277    # snmp_v2c_name: None
278    # syslog_facility: syslog
279    # snmp_v2c_status: None
280    # smtp_validate_cert: None
281    # snmpv3_name: ansibleSNMPv3
282    # snmp_v2c_id: None
283    # syslog_port: None
284    # ntp_server: None
285    # admin_https_port: None
286    # ntp_status: None
287    # syslog_server: None
288    # admin_switch_controller: None
289    # admin_timeout: None
290    # snmpv3_auth_proto: sha
291    # smtp_port: None
292    # snmpv3_priv_pwd: fortinet
293    # smtp_server: None
294    # syslog_enc_algorithm: disable
295    # snmp_v2c_query_hosts_ipv4: None
296    # smtp_username: None
297    # mode: get
298    # syslog_certificate: None
299    # admin_fortiguard_target: None
300    # snmpv3_query_port: 161
301    # smtp_password: None
302    # adom: ansible
303    # snmpv3_notify_hosts: 10.7.220.59,10.7.220.60
304    # syslog_mode: udp
305    # snmp_v2c_query_port: None
306    # snmp_v2c_trap_status: None
307    # snmp_status: enable
308    # syslog_status: None
309    # snmp_v2c_trap_hosts_ipv4: None
310    # admin_fortianalyzer_target: None
311    # snmp_v2c_trap_src_ipv4: None
312    # admin_http_port: None
313    # dns_secondary_ipv4: None
314    # syslog_filter: None
315    # snmpv3_source_ip: 0.0.0.0
316    # snmpv3_trap_rport: 162
317    # admin_gui_theme: None
318    # ntp_sync_interval: None
319    # ntp_auth_pwd: None
320    # provisioning_template: ansibleTest
321    # ntp_v3: None
322    # ntp_auth: None
323    # snmp_v2c_trap_port: None
324    # snmpv3_priv_proto: aes256
325    # admin_enable_fortiguard: None
326    # dns_primary_ipv4: None
327    # admin_language: None
328    # smtp_conn_sec: None
329    # snmpv3_auth_pwd: fortinet
330    # smtp_source_ipv4: None
331    # snmpv3_status: enable
332    # delete_provisioning_template: None
333    # smtp_replyto: None
334    # admin_https_redirect: None
335    ##################################################
336    ##################################################
337    # snmpv3_security_level: None
338    # snmp_v2c_query_status: None
339    # ntp_type: fortiguard
340    # dns_suffix: None
341    # snmpv3_queries: None
342    # snmpv3_trap_status: None
343    # snmp_v2c_name: None
344    # syslog_facility: syslog
345    # snmp_v2c_status: None
346    # smtp_validate_cert: None
347    # snmpv3_name: None
348    # snmp_v2c_trap_src_ipv4: None
349    # syslog_port: None
350    # ntp_server: None
351    # admin_https_port: None
352    # ntp_status: enable
353    # syslog_server: None
354    # dns_primary_ipv4: None
355    # admin_timeout: None
356    # snmpv3_auth_proto: None
357    # smtp_port: None
358    # snmpv3_priv_pwd: None
359    # smtp_server: None
360    # syslog_enc_algorithm: disable
361    # dns_secondary_ipv4: None
362    # smtp_replyto: None
363    # smtp_username: None
364    # snmpv3_auth_pwd: None
365    # syslog_certificate: None
366    # admin_fortiguard_target: None
367    # snmpv3_query_port: None
368    # smtp_password: None
369    # adom: ansible
370    # snmpv3_notify_hosts: None
371    # syslog_mode: udp
372    # snmp_v2c_query_port: None
373    # snmp_v2c_trap_status: None
374    # snmp_status: None
375    # syslog_status: None
376    # admin_fortianalyzer_target: None
377    # ntp_auth: None
378    # snmp_v2c_id: None
379    # admin_http_port: None
380    # snmp_v2c_query_hosts_ipv4: None
381    # ntp_sync_interval: 60
382    # snmpv3_source_ip: None
383    # snmpv3_trap_rport: None
384    # admin_gui_theme: None
385    # syslog_filter: None
386    # ntp_auth_pwd: None
387    # provisioning_template: ansibleTest
388    # snmp_v2c_trap_hosts_ipv4: None
389    # provision_targets: None
390    # snmp_v2c_trap_port: None
391    # snmpv3_priv_proto: None
392    # admin_enable_fortiguard: None
393    # admin_switch_controller: None
394    # admin_language: None
395    # smtp_conn_sec: None
396    # mode: get
397    # smtp_source_ipv4: None
398    # snmpv3_status: None
399    # delete_provisioning_template: None
400    # ntp_v3: None
401    # admin_https_redirect: None
402    ##################################################
403    ##################################################
404    # snmpv3_security_level: None
405    # snmp_v2c_query_status: None
406    # ntp_type: custom
407    # dns_suffix: None
408    # snmpv3_queries: None
409    # snmpv3_trap_status: None
410    # snmp_v2c_name: None
411    # syslog_facility: syslog
412    # snmp_v2c_status: None
413    # smtp_validate_cert: None
414    # snmpv3_name: None
415    # snmp_v2c_trap_src_ipv4: None
416    # syslog_port: None
417    # ntp_server: 10.7.220.32,10.7.220.1
418    # admin_https_port: None
419    # ntp_status: enable
420    # syslog_server: None
421    # dns_primary_ipv4: None
422    # admin_timeout: None
423    # snmpv3_auth_proto: None
424    # smtp_port: None
425    # snmpv3_priv_pwd: None
426    # smtp_server: None
427    # syslog_enc_algorithm: disable
428    # dns_secondary_ipv4: None
429    # smtp_username: None
430    # snmpv3_auth_pwd: None
431    # syslog_certificate: None
432    # admin_fortiguard_target: None
433    # snmpv3_query_port: None
434    # smtp_password: None
435    # adom: ansible
436    # snmpv3_notify_hosts: None
437    # syslog_mode: udp
438    # snmp_v2c_query_port: None
439    # snmp_v2c_trap_status: None
440    # snmp_status: None
441    # syslog_status: None
442    # admin_fortianalyzer_target: None
443    # ntp_auth: enable
444    # snmp_v2c_id: None
445    # admin_http_port: None
446    # ntp_v3: None
447    # snmp_v2c_query_hosts_ipv4: None
448    # ntp_sync_interval: 60
449    # snmpv3_source_ip: None
450    # snmpv3_trap_rport: None
451    # admin_gui_theme: None
452    # syslog_filter: None
453    # ntp_auth_pwd: fortinet
454    # provisioning_template: ansibleTest
455    # smtp_replyto: None
456    # provision_targets: None
457    # snmp_v2c_trap_port: None
458    # snmpv3_priv_proto: None
459    # admin_enable_fortiguard: None
460    # admin_switch_controller: None
461    # admin_language: None
462    # smtp_conn_sec: None
463    # mode: get
464    # smtp_source_ipv4: None
465    # snmpv3_status: None
466    # delete_provisioning_template: None
467    # snmp_v2c_trap_hosts_ipv4: None
468    # admin_https_redirect: None
469    ##################################################
470    ##################################################
471    # snmpv3_security_level: None
472    # snmp_v2c_query_status: None
473    # ntp_type: None
474    # dns_suffix: None
475    # snmpv3_queries: None
476    # snmpv3_trap_status: None
477    # snmp_v2c_name: None
478    # syslog_facility: syslog
479    # snmp_v2c_status: None
480    # smtp_validate_cert: None
481    # snmpv3_name: None
482    # snmp_v2c_trap_src_ipv4: None
483    # syslog_port: None
484    # ntp_server: None
485    # admin_https_port: 4433
486    # ntp_status: None
487    # syslog_server: None
488    # dns_primary_ipv4: None
489    # admin_timeout: 60
490    # snmpv3_auth_proto: None
491    # smtp_port: None
492    # snmpv3_priv_pwd: None
493    # smtp_server: None
494    # syslog_enc_algorithm: disable
495    # dns_secondary_ipv4: None
496    # smtp_replyto: None
497    # smtp_username: None
498    # snmpv3_auth_pwd: None
499    # syslog_certificate: None
500    # admin_fortiguard_target: None
501    # snmpv3_query_port: None
502    # smtp_password: None
503    # adom: ansible
504    # snmpv3_notify_hosts: None
505    # syslog_mode: udp
506    # snmp_v2c_query_port: None
507    # snmp_v2c_trap_status: None
508    # snmp_status: None
509    # syslog_status: None
510    # admin_fortianalyzer_target: 10.7.220.38
511    # ntp_auth: None
512    # snmp_v2c_id: None
513    # admin_http_port: 8080
514    # snmp_v2c_query_hosts_ipv4: None
515    # ntp_sync_interval: None
516    # snmpv3_source_ip: None
517    # snmpv3_trap_rport: None
518    # admin_gui_theme: blue
519    # syslog_filter: None
520    # ntp_auth_pwd: None
521    # provisioning_template: ansibleTest
522    # snmp_v2c_trap_hosts_ipv4: None
523    # provision_targets: None
524    # snmp_v2c_trap_port: None
525    # snmpv3_priv_proto: None
526    # admin_enable_fortiguard: this-fmg
527    # admin_switch_controller: enable
528    # admin_language: english
529    # smtp_conn_sec: None
530    # mode: get
531    # smtp_source_ipv4: None
532    # snmpv3_status: None
533    # delete_provisioning_template: None
534    # ntp_v3: None
535    # admin_https_redirect: enable
536    ##################################################
537    ##################################################
538    # snmpv3_security_level: None
539    # snmp_v2c_query_status: None
540    # ntp_type: None
541    # dns_suffix: None
542    # snmpv3_queries: None
543    # snmpv3_trap_status: None
544    # snmp_v2c_name: None
545    # syslog_facility: syslog
546    # snmp_v2c_status: None
547    # smtp_validate_cert: disable
548    # snmpv3_name: None
549    # snmp_v2c_trap_src_ipv4: None
550    # syslog_port: None
551    # ntp_server: None
552    # admin_https_port: None
553    # ntp_status: None
554    # syslog_server: None
555    # dns_primary_ipv4: None
556    # admin_timeout: None
557    # snmpv3_auth_proto: None
558    # smtp_port: 25
559    # snmpv3_priv_pwd: None
560    # smtp_server: 10.7.220.32
561    # syslog_enc_algorithm: disable
562    # dns_secondary_ipv4: None
563    # smtp_username: ansible
564    # snmpv3_auth_pwd: None
565    # syslog_certificate: None
566    # admin_fortiguard_target: None
567    # snmpv3_query_port: None
568    # smtp_password: fortinet
569    # adom: ansible
570    # snmpv3_notify_hosts: None
571    # syslog_mode: udp
572    # snmp_v2c_query_port: None
573    # snmp_v2c_trap_status: None
574    # snmp_status: None
575    # syslog_status: None
576    # admin_fortianalyzer_target: None
577    # ntp_auth: None
578    # snmp_v2c_id: None
579    # admin_http_port: None
580    # ntp_v3: None
581    # snmp_v2c_query_hosts_ipv4: None
582    # ntp_sync_interval: None
583    # snmpv3_source_ip: None
584    # snmpv3_trap_rport: None
585    # admin_gui_theme: None
586    # syslog_filter: None
587    # ntp_auth_pwd: None
588    # provisioning_template: ansibleTest
589    # smtp_replyto: ansible@do-not-reply.com
590    # provision_targets: None
591    # snmp_v2c_trap_port: None
592    # snmpv3_priv_proto: None
593    # admin_enable_fortiguard: None
594    # admin_switch_controller: None
595    # admin_language: None
596    # smtp_conn_sec: starttls
597    # mode: get
598    # smtp_source_ipv4: 0.0.0.0
599    # snmpv3_status: None
600    # delete_provisioning_template: None
601    # snmp_v2c_trap_hosts_ipv4: None
602    # admin_https_redirect: None
603    ##################################################
604    ##################################################
605    # snmpv3_security_level: None
606    # snmp_v2c_query_status: None
607    # ntp_type: None
608    # dns_suffix: ansible.local
609    # snmpv3_queries: None
610    # snmpv3_trap_status: None
611    # snmp_v2c_name: None
612    # syslog_facility: syslog
613    # snmp_v2c_status: None
614    # smtp_validate_cert: None
615    # snmpv3_name: None
616    # snmp_v2c_trap_src_ipv4: None
617    # syslog_port: None
618    # ntp_server: None
619    # admin_https_port: None
620    # ntp_status: None
621    # syslog_server: None
622    # dns_primary_ipv4: 8.8.8.8
623    # admin_timeout: None
624    # snmpv3_auth_proto: None
625    # smtp_port: None
626    # snmpv3_priv_pwd: None
627    # smtp_server: None
628    # syslog_enc_algorithm: disable
629    # dns_secondary_ipv4: 4.4.4.4
630    # smtp_replyto: None
631    # smtp_username: None
632    # snmpv3_auth_pwd: None
633    # syslog_certificate: None
634    # admin_fortiguard_target: None
635    # snmpv3_query_port: None
636    # smtp_password: None
637    # adom: ansible
638    # snmpv3_notify_hosts: None
639    # syslog_mode: udp
640    # snmp_v2c_query_port: None
641    # snmp_v2c_trap_status: None
642    # snmp_status: None
643    # syslog_status: None
644    # admin_fortianalyzer_target: None
645    # ntp_auth: None
646    # snmp_v2c_id: None
647    # admin_http_port: None
648    # snmp_v2c_query_hosts_ipv4: None
649    # ntp_sync_interval: None
650    # snmpv3_source_ip: None
651    # snmpv3_trap_rport: None
652    # admin_gui_theme: None
653    # syslog_filter: None
654    # ntp_auth_pwd: None
655    # provisioning_template: ansibleTest
656    # snmp_v2c_trap_hosts_ipv4: None
657    # provision_targets: None
658    # snmp_v2c_trap_port: None
659    # snmpv3_priv_proto: None
660    # admin_enable_fortiguard: None
661    # admin_switch_controller: None
662    # admin_language: None
663    # smtp_conn_sec: None
664    # mode: get
665    # smtp_source_ipv4: None
666    # snmpv3_status: None
667    # delete_provisioning_template: None
668    # ntp_v3: None
669    # admin_https_redirect: None
670    ##################################################
671    ##################################################
672    # snmpv3_security_level: None
673    # snmp_v2c_query_status: None
674    # ntp_type: None
675    # dns_suffix: None
676    # snmpv3_queries: None
677    # snmpv3_trap_status: None
678    # snmp_v2c_name: None
679    # syslog_facility: syslog
680    # snmp_v2c_status: None
681    # smtp_validate_cert: None
682    # snmpv3_name: None
683    # snmp_v2c_trap_src_ipv4: None
684    # syslog_port: None
685    # ntp_server: None
686    # admin_https_port: None
687    # ntp_status: None
688    # syslog_server: None
689    # dns_primary_ipv4: None
690    # admin_timeout: None
691    # snmpv3_auth_proto: None
692    # smtp_port: None
693    # snmpv3_priv_pwd: None
694    # smtp_server: None
695    # syslog_enc_algorithm: disable
696    # dns_secondary_ipv4: None
697    # smtp_username: None
698    # snmpv3_auth_pwd: None
699    # syslog_certificate: None
700    # admin_fortiguard_target: None
701    # snmpv3_query_port: None
702    # smtp_password: None
703    # adom: ansible
704    # snmpv3_notify_hosts: None
705    # syslog_mode: udp
706    # snmp_v2c_query_port: None
707    # snmp_v2c_trap_status: None
708    # snmp_status: None
709    # syslog_status: None
710    # admin_fortianalyzer_target: None
711    # ntp_auth: None
712    # snmp_v2c_id: None
713    # admin_http_port: None
714    # ntp_v3: None
715    # snmp_v2c_query_hosts_ipv4: None
716    # ntp_sync_interval: None
717    # snmpv3_source_ip: None
718    # snmpv3_trap_rport: None
719    # admin_gui_theme: None
720    # syslog_filter: None
721    # ntp_auth_pwd: None
722    # provisioning_template: ansibleTest
723    # smtp_replyto: None
724    # provision_targets: FGT1,FGT2
725    # snmp_v2c_trap_port: None
726    # snmpv3_priv_proto: None
727    # admin_enable_fortiguard: None
728    # admin_switch_controller: None
729    # admin_language: None
730    # smtp_conn_sec: None
731    # mode: get
732    # smtp_source_ipv4: None
733    # snmpv3_status: None
734    # delete_provisioning_template: None
735    # snmp_v2c_trap_hosts_ipv4: None
736    # admin_https_redirect: None
737    ##################################################
738
739    # Test using fixture 1 #
740    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[0]['paramgram_used'])
741    assert isinstance(output['raw_response'], dict) is True
742    # Test using fixture 2 #
743    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[1]['paramgram_used'])
744    assert isinstance(output['raw_response'], dict) is True
745    # Test using fixture 3 #
746    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[2]['paramgram_used'])
747    assert isinstance(output['raw_response'], dict) is True
748    # Test using fixture 4 #
749    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[3]['paramgram_used'])
750    assert isinstance(output['raw_response'], dict) is True
751    # Test using fixture 5 #
752    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[4]['paramgram_used'])
753    assert isinstance(output['raw_response'], dict) is True
754    # Test using fixture 6 #
755    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[5]['paramgram_used'])
756    assert isinstance(output['raw_response'], dict) is True
757    # Test using fixture 7 #
758    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[6]['paramgram_used'])
759    assert isinstance(output['raw_response'], dict) is True
760    # Test using fixture 8 #
761    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[7]['paramgram_used'])
762    assert isinstance(output['raw_response'], dict) is True
763    # Test using fixture 9 #
764    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[8]['paramgram_used'])
765    assert isinstance(output['raw_response'], dict) is True
766    # Test using fixture 10 #
767    output = fmgr_device_provision_template.get_devprof(fmg_instance, fixture_data[9]['paramgram_used'])
768    assert isinstance(output['raw_response'], dict) is True
769
770
771def test_set_devprof(fixture_data, mocker):
772    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
773                 side_effect=fixture_data)
774    #  Fixture sets used:###########################
775
776    ##################################################
777    # snmpv3_security_level: None
778    # snmp_v2c_query_status: None
779    # smtp_port: None
780    # ntp_type: None
781    # dns_suffix: None
782    # snmpv3_queries: None
783    # snmpv3_trap_status: None
784    # snmp_v2c_name: None
785    # syslog_facility: syslog
786    # snmp_v2c_status: None
787    # smtp_validate_cert: None
788    # snmpv3_name: None
789    # snmp_v2c_trap_src_ipv4: None
790    # syslog_port: None
791    # ntp_server: None
792    # admin_https_port: None
793    # ntp_status: None
794    # syslog_server: None
795    # dns_primary_ipv4: None
796    # admin_timeout: None
797    # snmpv3_auth_proto: None
798    # ntp_auth: None
799    # snmpv3_priv_pwd: None
800    # smtp_server: None
801    # syslog_enc_algorithm: disable
802    # dns_secondary_ipv4: None
803    # smtp_replyto: None
804    # smtp_username: None
805    # snmpv3_auth_pwd: None
806    # syslog_certificate: None
807    # admin_fortiguard_target: None
808    # snmpv3_query_port: None
809    # smtp_password: None
810    # adom: ansible
811    # snmpv3_notify_hosts: None
812    # syslog_mode: udp
813    # snmp_v2c_query_port: None
814    # snmp_v2c_trap_status: None
815    # snmp_status: None
816    # syslog_status: None
817    # admin_fortianalyzer_target: None
818    # snmp_v2c_id: None
819    # admin_http_port: None
820    # snmp_v2c_query_hosts_ipv4: None
821    # ntp_sync_interval: None
822    # snmpv3_source_ip: None
823    # snmpv3_trap_rport: None
824    # admin_gui_theme: None
825    # syslog_filter: None
826    # ntp_auth_pwd: None
827    # provisioning_template: None
828    # snmp_v2c_trap_hosts_ipv4: None
829    # provision_targets: None
830    # snmp_v2c_trap_port: None
831    # snmpv3_priv_proto: None
832    # admin_enable_fortiguard: None
833    # admin_switch_controller: None
834    # admin_language: None
835    # smtp_conn_sec: None
836    # mode: delete
837    # smtp_source_ipv4: None
838    # snmpv3_status: None
839    # delete_provisioning_template: ansibleTest
840    # ntp_v3: None
841    # admin_https_redirect: None
842    ##################################################
843
844    # Test using fixture 1 #
845    output = fmgr_device_provision_template.set_devprof(fmg_instance, fixture_data[0]['paramgram_used'])
846    assert output['raw_response']['status']['code'] == 0
847
848
849def test_set_devprof_scope(fixture_data, mocker):
850    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
851                 side_effect=fixture_data)
852    #  Fixture sets used:###########################
853
854    ##################################################
855    # snmpv3_security_level: None
856    # snmp_v2c_query_status: None
857    # provision_targets: FGT1,FGT2
858    # ntp_type: None
859    # dns_suffix: None
860    # snmpv3_queries: None
861    # snmpv3_trap_status: None
862    # snmp_v2c_name: None
863    # syslog_facility: syslog
864    # snmp_v2c_status: None
865    # smtp_validate_cert: None
866    # snmpv3_name: None
867    # snmp_v2c_id: None
868    # syslog_port: None
869    # ntp_server: None
870    # admin_https_port: None
871    # ntp_status: None
872    # syslog_server: None
873    # admin_switch_controller: None
874    # admin_timeout: None
875    # snmpv3_auth_proto: None
876    # smtp_port: None
877    # snmpv3_priv_pwd: None
878    # smtp_server: None
879    # syslog_enc_algorithm: disable
880    # snmp_v2c_query_hosts_ipv4: None
881    # smtp_username: None
882    # mode: set
883    # syslog_certificate: None
884    # admin_fortiguard_target: None
885    # snmpv3_query_port: None
886    # smtp_password: None
887    # adom: ansible
888    # snmpv3_notify_hosts: None
889    # syslog_mode: udp
890    # snmp_v2c_query_port: None
891    # snmp_v2c_trap_status: None
892    # snmp_status: None
893    # syslog_status: None
894    # admin_https_redirect: None
895    # admin_fortianalyzer_target: None
896    # snmp_v2c_trap_src_ipv4: None
897    # admin_http_port: None
898    # dns_secondary_ipv4: None
899    # syslog_filter: None
900    # snmpv3_source_ip: None
901    # snmpv3_trap_rport: None
902    # admin_gui_theme: None
903    # ntp_sync_interval: None
904    # ntp_auth_pwd: None
905    # provisioning_template: ansibleTest
906    # smtp_replyto: None
907    # ntp_auth: None
908    # snmp_v2c_trap_port: None
909    # snmpv3_priv_proto: None
910    # admin_enable_fortiguard: None
911    # dns_primary_ipv4: None
912    # admin_language: None
913    # smtp_conn_sec: None
914    # snmpv3_auth_pwd: None
915    # smtp_source_ipv4: None
916    # snmpv3_status: None
917    # delete_provisioning_template: None
918    # snmp_v2c_trap_hosts_ipv4: None
919    # ntp_v3: None
920    ##################################################
921
922    # Test using fixture 1 #
923    output = fmgr_device_provision_template.set_devprof_scope(fmg_instance, fixture_data[0]['paramgram_used'])
924    assert output['raw_response']['status']['code'] == 0
925
926
927def test_set_devprof_snmp(fixture_data, mocker):
928    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
929                 side_effect=fixture_data)
930    #  Fixture sets used:###########################
931
932    ##################################################
933    # snmpv3_security_level: None
934    # snmp_v2c_query_status: None
935    # provision_targets: None
936    # ntp_type: None
937    # dns_suffix: None
938    # snmpv3_queries: None
939    # snmpv3_trap_status: None
940    # snmp_v2c_name: None
941    # syslog_facility: syslog
942    # snmp_v2c_status: None
943    # smtp_validate_cert: None
944    # snmpv3_name: None
945    # snmp_v2c_id: None
946    # syslog_port: None
947    # ntp_server: None
948    # admin_https_port: None
949    # ntp_status: None
950    # syslog_server: None
951    # admin_switch_controller: None
952    # admin_timeout: None
953    # snmpv3_auth_proto: None
954    # smtp_port: None
955    # snmpv3_priv_pwd: None
956    # smtp_server: None
957    # syslog_enc_algorithm: disable
958    # snmp_v2c_query_hosts_ipv4: None
959    # smtp_username: None
960    # mode: set
961    # syslog_certificate: None
962    # admin_fortiguard_target: None
963    # snmpv3_query_port: None
964    # smtp_password: None
965    # adom: ansible
966    # snmpv3_notify_hosts: None
967    # syslog_mode: udp
968    # snmp_v2c_query_port: None
969    # snmp_v2c_trap_status: None
970    # snmp_status: enable
971    # syslog_status: None
972    # admin_https_redirect: None
973    # admin_fortianalyzer_target: None
974    # snmp_v2c_trap_src_ipv4: None
975    # admin_http_port: None
976    # dns_secondary_ipv4: None
977    # syslog_filter: None
978    # snmpv3_source_ip: None
979    # snmpv3_trap_rport: None
980    # admin_gui_theme: None
981    # ntp_sync_interval: None
982    # ntp_auth_pwd: None
983    # provisioning_template: ansibleTest
984    # smtp_replyto: None
985    # ntp_auth: None
986    # snmp_v2c_trap_port: None
987    # snmpv3_priv_proto: None
988    # admin_enable_fortiguard: None
989    # dns_primary_ipv4: None
990    # admin_language: None
991    # smtp_conn_sec: None
992    # snmpv3_auth_pwd: None
993    # smtp_source_ipv4: None
994    # snmpv3_status: None
995    # delete_provisioning_template: None
996    # snmp_v2c_trap_hosts_ipv4: None
997    # ntp_v3: None
998    ##################################################
999    ##################################################
1000    # snmpv3_security_level: None
1001    # snmp_v2c_query_status: enable
1002    # provision_targets: None
1003    # ntp_type: None
1004    # dns_suffix: None
1005    # snmpv3_queries: None
1006    # snmpv3_trap_status: None
1007    # snmp_v2c_name: ansibleV2c
1008    # syslog_facility: syslog
1009    # snmp_v2c_status: enable
1010    # smtp_validate_cert: None
1011    # snmpv3_name: None
1012    # snmp_v2c_id: 1
1013    # syslog_port: None
1014    # ntp_server: None
1015    # admin_https_port: None
1016    # ntp_status: None
1017    # syslog_server: None
1018    # admin_switch_controller: None
1019    # admin_timeout: None
1020    # snmpv3_auth_proto: None
1021    # smtp_port: None
1022    # snmpv3_priv_pwd: None
1023    # smtp_server: None
1024    # syslog_enc_algorithm: disable
1025    # snmp_v2c_query_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.0 255.255.255.0
1026    # smtp_username: None
1027    # mode: set
1028    # syslog_certificate: None
1029    # admin_fortiguard_target: None
1030    # snmpv3_query_port: None
1031    # smtp_password: None
1032    # adom: ansible
1033    # snmpv3_notify_hosts: None
1034    # syslog_mode: udp
1035    # snmp_v2c_query_port: 162
1036    # snmp_v2c_trap_status: enable
1037    # snmp_status: enable
1038    # syslog_status: None
1039    # admin_https_redirect: None
1040    # admin_fortianalyzer_target: None
1041    # snmp_v2c_trap_src_ipv4: 10.7.220.41
1042    # admin_http_port: None
1043    # dns_secondary_ipv4: None
1044    # syslog_filter: None
1045    # snmpv3_source_ip: None
1046    # snmpv3_trap_rport: None
1047    # admin_gui_theme: None
1048    # ntp_sync_interval: None
1049    # ntp_auth_pwd: None
1050    # provisioning_template: ansibleTest
1051    # smtp_replyto: None
1052    # ntp_auth: None
1053    # snmp_v2c_trap_port: 161
1054    # snmpv3_priv_proto: None
1055    # admin_enable_fortiguard: None
1056    # dns_primary_ipv4: None
1057    # admin_language: None
1058    # smtp_conn_sec: None
1059    # snmpv3_auth_pwd: None
1060    # smtp_source_ipv4: None
1061    # snmpv3_status: None
1062    # delete_provisioning_template: None
1063    # snmp_v2c_trap_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.60 255.255.255.255
1064    # ntp_v3: None
1065    ##################################################
1066    ##################################################
1067    # snmpv3_security_level: auth-priv
1068    # snmp_v2c_query_status: None
1069    # ntp_type: None
1070    # dns_suffix: None
1071    # snmpv3_queries: enable
1072    # snmpv3_trap_status: enable
1073    # snmp_v2c_name: None
1074    # syslog_facility: syslog
1075    # snmp_v2c_status: None
1076    # smtp_validate_cert: None
1077    # snmpv3_name: ansibleSNMPv3
1078    # snmp_v2c_trap_src_ipv4: None
1079    # syslog_port: None
1080    # ntp_server: None
1081    # admin_https_port: None
1082    # ntp_status: None
1083    # syslog_server: None
1084    # dns_primary_ipv4: None
1085    # admin_timeout: None
1086    # snmpv3_auth_proto: sha
1087    # smtp_port: None
1088    # snmpv3_priv_pwd: fortinet
1089    # smtp_server: None
1090    # syslog_enc_algorithm: disable
1091    # dns_secondary_ipv4: None
1092    # smtp_username: None
1093    # snmpv3_auth_pwd: fortinet
1094    # syslog_certificate: None
1095    # admin_fortiguard_target: None
1096    # snmpv3_query_port: 161
1097    # smtp_password: None
1098    # adom: ansible
1099    # snmpv3_notify_hosts: 10.7.220.59,10.7.220.60
1100    # syslog_mode: udp
1101    # snmp_v2c_query_port: None
1102    # snmp_v2c_trap_status: None
1103    # snmp_status: enable
1104    # syslog_status: None
1105    # admin_fortianalyzer_target: None
1106    # ntp_auth: None
1107    # snmp_v2c_id: None
1108    # admin_http_port: None
1109    # ntp_v3: None
1110    # snmp_v2c_query_hosts_ipv4: None
1111    # ntp_sync_interval: None
1112    # snmpv3_source_ip: 0.0.0.0
1113    # snmpv3_trap_rport: 162
1114    # admin_gui_theme: None
1115    # syslog_filter: None
1116    # ntp_auth_pwd: None
1117    # provisioning_template: ansibleTest
1118    # smtp_replyto: None
1119    # provision_targets: None
1120    # snmp_v2c_trap_port: None
1121    # snmpv3_priv_proto: aes256
1122    # admin_enable_fortiguard: None
1123    # admin_switch_controller: None
1124    # admin_language: None
1125    # smtp_conn_sec: None
1126    # mode: set
1127    # smtp_source_ipv4: None
1128    # snmpv3_status: enable
1129    # delete_provisioning_template: None
1130    # snmp_v2c_trap_hosts_ipv4: None
1131    # admin_https_redirect: None
1132    ##################################################
1133
1134    # Test using fixture 1 #
1135    output = fmgr_device_provision_template.set_devprof_snmp(fmg_instance, fixture_data[0]['paramgram_used'])
1136    assert output['raw_response']['status']['code'] == 0
1137    # Test using fixture 2 #
1138    output = fmgr_device_provision_template.set_devprof_snmp(fmg_instance, fixture_data[1]['paramgram_used'])
1139    assert output['raw_response']['status']['code'] == 0
1140    # Test using fixture 3 #
1141    output = fmgr_device_provision_template.set_devprof_snmp(fmg_instance, fixture_data[2]['paramgram_used'])
1142    assert output['raw_response']['status']['code'] == 0
1143
1144
1145def test_set_devprof_snmp_v2c(fixture_data, mocker):
1146    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1147                 side_effect=fixture_data)
1148    #  Fixture sets used:###########################
1149
1150    ##################################################
1151    # snmpv3_security_level: None
1152    # snmp_v2c_query_status: enable
1153    # ntp_type: None
1154    # dns_suffix: None
1155    # snmpv3_queries: None
1156    # snmpv3_trap_status: None
1157    # snmp_v2c_name: ansibleV2c
1158    # syslog_facility: syslog
1159    # snmp_v2c_status: enable
1160    # smtp_validate_cert: None
1161    # snmpv3_name: None
1162    # snmp_v2c_trap_src_ipv4: 10.7.220.41
1163    # syslog_port: None
1164    # ntp_server: None
1165    # admin_https_port: None
1166    # ntp_status: None
1167    # syslog_server: None
1168    # dns_primary_ipv4: None
1169    # admin_timeout: None
1170    # snmpv3_auth_proto: None
1171    # smtp_port: None
1172    # snmpv3_priv_pwd: None
1173    # smtp_server: None
1174    # syslog_enc_algorithm: disable
1175    # dns_secondary_ipv4: None
1176    # smtp_replyto: None
1177    # smtp_username: None
1178    # snmpv3_auth_pwd: None
1179    # syslog_certificate: None
1180    # admin_fortiguard_target: None
1181    # snmpv3_query_port: None
1182    # smtp_password: None
1183    # adom: ansible
1184    # snmpv3_notify_hosts: None
1185    # syslog_mode: udp
1186    # snmp_v2c_query_port: 162
1187    # snmp_v2c_trap_status: enable
1188    # snmp_status: enable
1189    # syslog_status: None
1190    # admin_fortianalyzer_target: None
1191    # ntp_auth: None
1192    # snmp_v2c_id: 1
1193    # admin_http_port: None
1194    # snmp_v2c_query_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.0 255.255.255.0
1195    # ntp_sync_interval: None
1196    # snmpv3_source_ip: None
1197    # snmpv3_trap_rport: None
1198    # admin_gui_theme: None
1199    # syslog_filter: None
1200    # ntp_auth_pwd: None
1201    # provisioning_template: ansibleTest
1202    # snmp_v2c_trap_hosts_ipv4: 10.7.220.59 255.255.255.255, 10.7.220.60 255.255.255.255
1203    # provision_targets: None
1204    # snmp_v2c_trap_port: 161
1205    # snmpv3_priv_proto: None
1206    # admin_enable_fortiguard: None
1207    # admin_switch_controller: None
1208    # admin_language: None
1209    # smtp_conn_sec: None
1210    # mode: set
1211    # smtp_source_ipv4: None
1212    # snmpv3_status: None
1213    # delete_provisioning_template: None
1214    # ntp_v3: None
1215    # admin_https_redirect: None
1216    ##################################################
1217
1218    # Test using fixture 1 #
1219    output = fmgr_device_provision_template.set_devprof_snmp_v2c(fmg_instance, fixture_data[0]['paramgram_used'])
1220    assert isinstance(output['raw_response'], dict) is True
1221
1222
1223def test_set_devprof_snmp_v3(fixture_data, mocker):
1224    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1225                 side_effect=fixture_data)
1226    #  Fixture sets used:###########################
1227
1228    ##################################################
1229    # snmpv3_security_level: auth-priv
1230    # snmp_v2c_query_status: None
1231    # provision_targets: None
1232    # ntp_type: None
1233    # dns_suffix: None
1234    # snmpv3_queries: enable
1235    # snmpv3_trap_status: enable
1236    # snmp_v2c_name: None
1237    # syslog_facility: syslog
1238    # snmp_v2c_status: None
1239    # smtp_validate_cert: None
1240    # snmpv3_name: ansibleSNMPv3
1241    # snmp_v2c_id: None
1242    # syslog_port: None
1243    # ntp_server: None
1244    # admin_https_port: None
1245    # ntp_status: None
1246    # syslog_server: None
1247    # admin_switch_controller: None
1248    # admin_timeout: None
1249    # snmpv3_auth_proto: sha
1250    # smtp_port: None
1251    # snmpv3_priv_pwd: fortinet
1252    # smtp_server: None
1253    # syslog_enc_algorithm: disable
1254    # snmp_v2c_query_hosts_ipv4: None
1255    # smtp_username: None
1256    # mode: set
1257    # syslog_certificate: None
1258    # admin_fortiguard_target: None
1259    # snmpv3_query_port: 161
1260    # smtp_password: None
1261    # adom: ansible
1262    # snmpv3_notify_hosts: 10.7.220.59,10.7.220.60
1263    # syslog_mode: udp
1264    # snmp_v2c_query_port: None
1265    # snmp_v2c_trap_status: None
1266    # snmp_status: enable
1267    # syslog_status: None
1268    # admin_https_redirect: None
1269    # admin_fortianalyzer_target: None
1270    # snmp_v2c_trap_src_ipv4: None
1271    # admin_http_port: None
1272    # dns_secondary_ipv4: None
1273    # syslog_filter: None
1274    # snmpv3_source_ip: 0.0.0.0
1275    # snmpv3_trap_rport: 162
1276    # admin_gui_theme: None
1277    # ntp_sync_interval: None
1278    # ntp_auth_pwd: None
1279    # provisioning_template: ansibleTest
1280    # smtp_replyto: None
1281    # ntp_auth: None
1282    # snmp_v2c_trap_port: None
1283    # snmpv3_priv_proto: aes256
1284    # admin_enable_fortiguard: None
1285    # dns_primary_ipv4: None
1286    # admin_language: None
1287    # smtp_conn_sec: None
1288    # snmpv3_auth_pwd: fortinet
1289    # smtp_source_ipv4: None
1290    # snmpv3_status: enable
1291    # delete_provisioning_template: None
1292    # snmp_v2c_trap_hosts_ipv4: None
1293    # ntp_v3: None
1294    ##################################################
1295
1296    # Test using fixture 1 #
1297    output = fmgr_device_provision_template.set_devprof_snmp_v3(fmg_instance, fixture_data[0]['paramgram_used'])
1298    assert output['raw_response']['status']['code'] == 0
1299
1300
1301def test_set_devprof_syslog(fixture_data, mocker):
1302    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1303                 side_effect=fixture_data)
1304    #  Fixture sets used:###########################
1305
1306    ##################################################
1307    # snmpv3_security_level: None
1308    # snmp_v2c_query_status: None
1309    # provision_targets: None
1310    # ntp_type: None
1311    # dns_suffix: None
1312    # snmpv3_queries: None
1313    # snmpv3_trap_status: None
1314    # snmp_v2c_name: None
1315    # syslog_facility: kernel
1316    # snmp_v2c_status: None
1317    # smtp_validate_cert: None
1318    # snmpv3_name: None
1319    # snmp_v2c_id: None
1320    # syslog_port: 514
1321    # ntp_server: None
1322    # admin_https_port: None
1323    # ntp_status: None
1324    # syslog_server: 10.7.220.59
1325    # admin_switch_controller: None
1326    # admin_timeout: None
1327    # snmpv3_auth_proto: None
1328    # smtp_port: None
1329    # snmpv3_priv_pwd: None
1330    # smtp_server: None
1331    # syslog_enc_algorithm: disable
1332    # snmp_v2c_query_hosts_ipv4: None
1333    # smtp_username: None
1334    # mode: set
1335    # syslog_certificate: None
1336    # admin_fortiguard_target: None
1337    # snmpv3_query_port: None
1338    # smtp_password: None
1339    # adom: ansible
1340    # snmpv3_notify_hosts: None
1341    # syslog_mode: udp
1342    # snmp_v2c_query_port: None
1343    # snmp_v2c_trap_status: None
1344    # snmp_status: None
1345    # syslog_status: enable
1346    # snmp_v2c_trap_hosts_ipv4: None
1347    # admin_fortianalyzer_target: None
1348    # snmp_v2c_trap_src_ipv4: None
1349    # admin_http_port: None
1350    # dns_secondary_ipv4: None
1351    # syslog_filter: critical
1352    # snmpv3_source_ip: None
1353    # snmpv3_trap_rport: None
1354    # admin_gui_theme: None
1355    # ntp_sync_interval: None
1356    # ntp_auth_pwd: None
1357    # provisioning_template: ansibleTest
1358    # ntp_v3: None
1359    # ntp_auth: None
1360    # snmp_v2c_trap_port: None
1361    # snmpv3_priv_proto: None
1362    # admin_enable_fortiguard: None
1363    # dns_primary_ipv4: None
1364    # admin_language: None
1365    # smtp_conn_sec: None
1366    # snmpv3_auth_pwd: None
1367    # smtp_source_ipv4: None
1368    # snmpv3_status: None
1369    # delete_provisioning_template: None
1370    # smtp_replyto: None
1371    # admin_https_redirect: None
1372    ##################################################
1373
1374    # Test using fixture 1 #
1375    output = fmgr_device_provision_template.set_devprof_syslog(fmg_instance, fixture_data[0]['paramgram_used'])
1376    assert output['raw_response']['status']['code'] == 0
1377
1378
1379def test_set_devprof_ntp(fixture_data, mocker):
1380    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1381                 side_effect=fixture_data)
1382    #  Fixture sets used:###########################
1383
1384    ##################################################
1385    # snmpv3_security_level: None
1386    # snmp_v2c_query_status: None
1387    # provision_targets: None
1388    # ntp_type: fortiguard
1389    # dns_suffix: None
1390    # snmpv3_queries: None
1391    # snmpv3_trap_status: None
1392    # snmp_v2c_name: None
1393    # syslog_facility: syslog
1394    # snmp_v2c_status: None
1395    # smtp_validate_cert: None
1396    # snmpv3_name: None
1397    # snmp_v2c_id: None
1398    # syslog_port: None
1399    # ntp_server: None
1400    # admin_https_port: None
1401    # ntp_status: enable
1402    # syslog_server: None
1403    # admin_switch_controller: None
1404    # admin_timeout: None
1405    # snmpv3_auth_proto: None
1406    # smtp_port: None
1407    # snmpv3_priv_pwd: None
1408    # smtp_server: None
1409    # syslog_enc_algorithm: disable
1410    # snmp_v2c_query_hosts_ipv4: None
1411    # smtp_username: None
1412    # mode: set
1413    # syslog_certificate: None
1414    # admin_fortiguard_target: None
1415    # snmpv3_query_port: None
1416    # smtp_password: None
1417    # adom: ansible
1418    # snmpv3_notify_hosts: None
1419    # syslog_mode: udp
1420    # snmp_v2c_query_port: None
1421    # snmp_v2c_trap_status: None
1422    # snmp_status: None
1423    # syslog_status: None
1424    # snmp_v2c_trap_hosts_ipv4: None
1425    # admin_fortianalyzer_target: None
1426    # snmp_v2c_trap_src_ipv4: None
1427    # admin_http_port: None
1428    # dns_secondary_ipv4: None
1429    # syslog_filter: None
1430    # snmpv3_source_ip: None
1431    # snmpv3_trap_rport: None
1432    # admin_gui_theme: None
1433    # ntp_sync_interval: 60
1434    # ntp_auth_pwd: None
1435    # provisioning_template: ansibleTest
1436    # ntp_v3: None
1437    # ntp_auth: None
1438    # snmp_v2c_trap_port: None
1439    # snmpv3_priv_proto: None
1440    # admin_enable_fortiguard: None
1441    # dns_primary_ipv4: None
1442    # admin_language: None
1443    # smtp_conn_sec: None
1444    # snmpv3_auth_pwd: None
1445    # smtp_source_ipv4: None
1446    # snmpv3_status: None
1447    # delete_provisioning_template: None
1448    # smtp_replyto: None
1449    # admin_https_redirect: None
1450    ##################################################
1451    ##################################################
1452    # snmpv3_security_level: None
1453    # snmp_v2c_query_status: None
1454    # provision_targets: None
1455    # ntp_type: custom
1456    # dns_suffix: None
1457    # snmpv3_queries: None
1458    # snmpv3_trap_status: None
1459    # snmp_v2c_name: None
1460    # syslog_facility: syslog
1461    # snmp_v2c_status: None
1462    # smtp_validate_cert: None
1463    # snmpv3_name: None
1464    # snmp_v2c_id: None
1465    # syslog_port: None
1466    # ntp_server: 10.7.220.32,10.7.220.1
1467    # admin_https_port: None
1468    # ntp_status: enable
1469    # syslog_server: None
1470    # admin_switch_controller: None
1471    # admin_timeout: None
1472    # snmpv3_auth_proto: None
1473    # smtp_port: None
1474    # snmpv3_priv_pwd: None
1475    # smtp_server: None
1476    # syslog_enc_algorithm: disable
1477    # snmp_v2c_query_hosts_ipv4: None
1478    # smtp_username: None
1479    # mode: set
1480    # syslog_certificate: None
1481    # admin_fortiguard_target: None
1482    # snmpv3_query_port: None
1483    # smtp_password: None
1484    # adom: ansible
1485    # snmpv3_notify_hosts: None
1486    # syslog_mode: udp
1487    # snmp_v2c_query_port: None
1488    # snmp_v2c_trap_status: None
1489    # snmp_status: None
1490    # syslog_status: None
1491    # admin_https_redirect: None
1492    # admin_fortianalyzer_target: None
1493    # snmp_v2c_trap_src_ipv4: None
1494    # admin_http_port: None
1495    # dns_secondary_ipv4: None
1496    # syslog_filter: None
1497    # snmpv3_source_ip: None
1498    # snmpv3_trap_rport: None
1499    # admin_gui_theme: None
1500    # ntp_sync_interval: 60
1501    # ntp_auth_pwd: fortinet
1502    # provisioning_template: ansibleTest
1503    # smtp_replyto: None
1504    # ntp_auth: enable
1505    # snmp_v2c_trap_port: None
1506    # snmpv3_priv_proto: None
1507    # admin_enable_fortiguard: None
1508    # dns_primary_ipv4: None
1509    # admin_language: None
1510    # smtp_conn_sec: None
1511    # snmpv3_auth_pwd: None
1512    # smtp_source_ipv4: None
1513    # snmpv3_status: None
1514    # delete_provisioning_template: None
1515    # snmp_v2c_trap_hosts_ipv4: None
1516    # ntp_v3: None
1517    ##################################################
1518
1519    # Test using fixture 1 #
1520    output = fmgr_device_provision_template.set_devprof_ntp(fmg_instance, fixture_data[0]['paramgram_used'])
1521    assert output['raw_response']['status']['code'] == 0
1522    # Test using fixture 2 #
1523    output = fmgr_device_provision_template.set_devprof_ntp(fmg_instance, fixture_data[1]['paramgram_used'])
1524    assert output['raw_response']['status']['code'] == 0
1525
1526
1527def test_set_devprof_admin(fixture_data, mocker):
1528    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1529                 side_effect=fixture_data)
1530    #  Fixture sets used:###########################
1531
1532    ##################################################
1533    # snmpv3_security_level: None
1534    # snmp_v2c_query_status: None
1535    # provision_targets: None
1536    # ntp_type: None
1537    # dns_suffix: None
1538    # snmpv3_queries: None
1539    # snmpv3_trap_status: None
1540    # snmp_v2c_name: None
1541    # syslog_facility: syslog
1542    # snmp_v2c_status: None
1543    # smtp_validate_cert: None
1544    # snmpv3_name: None
1545    # snmp_v2c_id: None
1546    # syslog_port: None
1547    # ntp_server: None
1548    # admin_https_port: 4433
1549    # ntp_status: None
1550    # syslog_server: None
1551    # admin_switch_controller: enable
1552    # admin_timeout: 60
1553    # snmpv3_auth_proto: None
1554    # smtp_port: None
1555    # snmpv3_priv_pwd: None
1556    # smtp_server: None
1557    # syslog_enc_algorithm: disable
1558    # snmp_v2c_query_hosts_ipv4: None
1559    # smtp_username: None
1560    # mode: set
1561    # syslog_certificate: None
1562    # admin_fortiguard_target: None
1563    # snmpv3_query_port: None
1564    # smtp_password: None
1565    # adom: ansible
1566    # snmpv3_notify_hosts: None
1567    # syslog_mode: udp
1568    # snmp_v2c_query_port: None
1569    # snmp_v2c_trap_status: None
1570    # snmp_status: None
1571    # syslog_status: None
1572    # snmp_v2c_trap_hosts_ipv4: None
1573    # admin_fortianalyzer_target: 10.7.220.38
1574    # snmp_v2c_trap_src_ipv4: None
1575    # admin_http_port: 8080
1576    # dns_secondary_ipv4: None
1577    # syslog_filter: None
1578    # snmpv3_source_ip: None
1579    # snmpv3_trap_rport: None
1580    # admin_gui_theme: blue
1581    # ntp_sync_interval: None
1582    # ntp_auth_pwd: None
1583    # provisioning_template: ansibleTest
1584    # ntp_v3: None
1585    # ntp_auth: None
1586    # snmp_v2c_trap_port: None
1587    # snmpv3_priv_proto: None
1588    # admin_enable_fortiguard: this-fmg
1589    # dns_primary_ipv4: None
1590    # admin_language: english
1591    # smtp_conn_sec: None
1592    # snmpv3_auth_pwd: None
1593    # smtp_source_ipv4: None
1594    # snmpv3_status: None
1595    # delete_provisioning_template: None
1596    # smtp_replyto: None
1597    # admin_https_redirect: enable
1598    ##################################################
1599
1600    # Test using fixture 1 #
1601    output = fmgr_device_provision_template.set_devprof_admin(fmg_instance, fixture_data[0]['paramgram_used'])
1602    assert output['raw_response']['status']['code'] == 0
1603
1604
1605def test_set_devprof_smtp(fixture_data, mocker):
1606    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1607                 side_effect=fixture_data)
1608    #  Fixture sets used:###########################
1609
1610    ##################################################
1611    # snmpv3_security_level: None
1612    # snmp_v2c_query_status: None
1613    # provision_targets: None
1614    # ntp_type: None
1615    # dns_suffix: None
1616    # snmpv3_queries: None
1617    # snmpv3_trap_status: None
1618    # snmp_v2c_name: None
1619    # syslog_facility: syslog
1620    # snmp_v2c_status: None
1621    # smtp_validate_cert: disable
1622    # snmpv3_name: None
1623    # snmp_v2c_id: None
1624    # syslog_port: None
1625    # ntp_server: None
1626    # admin_https_port: None
1627    # ntp_status: None
1628    # syslog_server: None
1629    # admin_switch_controller: None
1630    # admin_timeout: None
1631    # snmpv3_auth_proto: None
1632    # smtp_port: 25
1633    # snmpv3_priv_pwd: None
1634    # smtp_server: 10.7.220.32
1635    # syslog_enc_algorithm: disable
1636    # snmp_v2c_query_hosts_ipv4: None
1637    # smtp_username: ansible
1638    # mode: set
1639    # syslog_certificate: None
1640    # admin_fortiguard_target: None
1641    # snmpv3_query_port: None
1642    # smtp_password: fortinet
1643    # adom: ansible
1644    # snmpv3_notify_hosts: None
1645    # syslog_mode: udp
1646    # snmp_v2c_query_port: None
1647    # snmp_v2c_trap_status: None
1648    # snmp_status: None
1649    # syslog_status: None
1650    # admin_https_redirect: None
1651    # admin_fortianalyzer_target: None
1652    # snmp_v2c_trap_src_ipv4: None
1653    # admin_http_port: None
1654    # dns_secondary_ipv4: None
1655    # syslog_filter: None
1656    # snmpv3_source_ip: None
1657    # snmpv3_trap_rport: None
1658    # admin_gui_theme: None
1659    # ntp_sync_interval: None
1660    # ntp_auth_pwd: None
1661    # provisioning_template: ansibleTest
1662    # smtp_replyto: ansible@do-not-reply.com
1663    # ntp_auth: None
1664    # snmp_v2c_trap_port: None
1665    # snmpv3_priv_proto: None
1666    # admin_enable_fortiguard: None
1667    # dns_primary_ipv4: None
1668    # admin_language: None
1669    # smtp_conn_sec: starttls
1670    # snmpv3_auth_pwd: None
1671    # smtp_source_ipv4: 0.0.0.0
1672    # snmpv3_status: None
1673    # delete_provisioning_template: None
1674    # snmp_v2c_trap_hosts_ipv4: None
1675    # ntp_v3: None
1676    ##################################################
1677
1678    # Test using fixture 1 #
1679    output = fmgr_device_provision_template.set_devprof_smtp(fmg_instance, fixture_data[0]['paramgram_used'])
1680    assert output['raw_response']['status']['code'] == 0
1681
1682
1683def test_set_devprof_dns(fixture_data, mocker):
1684    mocker.patch('ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.fortimanager.FortiManagerHandler.process_request',
1685                 side_effect=fixture_data)
1686    #  Fixture sets used:###########################
1687
1688    ##################################################
1689    # snmpv3_security_level: None
1690    # snmp_v2c_query_status: None
1691    # provision_targets: None
1692    # ntp_type: None
1693    # dns_suffix: ansible.local
1694    # snmpv3_queries: None
1695    # snmpv3_trap_status: None
1696    # snmp_v2c_name: None
1697    # syslog_facility: syslog
1698    # snmp_v2c_status: None
1699    # smtp_validate_cert: None
1700    # snmpv3_name: None
1701    # snmp_v2c_id: None
1702    # syslog_port: None
1703    # ntp_server: None
1704    # admin_https_port: None
1705    # ntp_status: None
1706    # syslog_server: None
1707    # admin_switch_controller: None
1708    # admin_timeout: None
1709    # snmpv3_auth_proto: None
1710    # smtp_port: None
1711    # snmpv3_priv_pwd: None
1712    # smtp_server: None
1713    # syslog_enc_algorithm: disable
1714    # snmp_v2c_query_hosts_ipv4: None
1715    # smtp_username: None
1716    # mode: set
1717    # syslog_certificate: None
1718    # admin_fortiguard_target: None
1719    # snmpv3_query_port: None
1720    # smtp_password: None
1721    # adom: ansible
1722    # snmpv3_notify_hosts: None
1723    # syslog_mode: udp
1724    # snmp_v2c_query_port: None
1725    # snmp_v2c_trap_status: None
1726    # snmp_status: None
1727    # syslog_status: None
1728    # snmp_v2c_trap_hosts_ipv4: None
1729    # admin_fortianalyzer_target: None
1730    # snmp_v2c_trap_src_ipv4: None
1731    # admin_http_port: None
1732    # dns_secondary_ipv4: 4.4.4.4
1733    # syslog_filter: None
1734    # snmpv3_source_ip: None
1735    # snmpv3_trap_rport: None
1736    # admin_gui_theme: None
1737    # ntp_sync_interval: None
1738    # ntp_auth_pwd: None
1739    # provisioning_template: ansibleTest
1740    # ntp_v3: None
1741    # ntp_auth: None
1742    # snmp_v2c_trap_port: None
1743    # snmpv3_priv_proto: None
1744    # admin_enable_fortiguard: None
1745    # dns_primary_ipv4: 8.8.8.8
1746    # admin_language: None
1747    # smtp_conn_sec: None
1748    # snmpv3_auth_pwd: None
1749    # smtp_source_ipv4: None
1750    # snmpv3_status: None
1751    # delete_provisioning_template: None
1752    # smtp_replyto: None
1753    # admin_https_redirect: None
1754    ##################################################
1755
1756    # Test using fixture 1 #
1757    output = fmgr_device_provision_template.set_devprof_dns(fmg_instance, fixture_data[0]['paramgram_used'])
1758    assert output['raw_response']['status']['code'] == 0
1759