Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b7096ca
Add Dell Enterprise SONiC 'mfa' module
Mar 16, 2025
469f423
Resolved sanity errors
Mar 18, 2025
29b3d72
Merge branch 'ansible-collections:main' into mfa
Divya-N3 Apr 14, 2025
10a83a0
Merge branch 'main' into mfa
Divya-N3 Apr 26, 2025
12b4be9
Addressing review comments
Apr 30, 2025
1537bd9
Merge branch 'main' into mfa
Divya-N3 May 8, 2025
0ab18ad
Merge branch 'ansible-collections:main' into mfa
Divya-N3 May 14, 2025
9a44d6d
Fixed check mode issue
May 14, 2025
0e04957
Fixed sanity error
May 14, 2025
219e989
Merge branch 'main' into mfa
Divya-N3 May 16, 2025
d21821b
Addressing review comments
May 17, 2025
bfac149
Merge branch 'main' into mfa
Divya-N3 Jun 14, 2025
9f9431b
Merge branch 'main' into mfa
Divya-N3 Nov 11, 2025
345a600
Merge branch 'ansible-collections:main' into mfa
Divya-N3 Nov 12, 2025
d60b7ff
Addressing review comments
Nov 12, 2025
5c9f452
Changes in replace function
Nov 12, 2025
3086216
Addressing review comments
Nov 12, 2025
690b0ad
Addressing nested dict review comment
Nov 13, 2025
de20fca
Merge branch 'ansible-collections:main' into mfa
Divya-N3 Nov 14, 2025
a069364
Addressing review comments
Nov 14, 2025
8227989
Creating symlink
Nov 14, 2025
881fdb5
Refactored regression prep and cleanup tasks
Nov 14, 2025
6c89925
Adressing lint issues
Nov 14, 2025
9d1af97
Addressing sanity error
Nov 14, 2025
8170d3d
Addressing review comments
Nov 17, 2025
55640dd
Addressing review comments of overridden state
Nov 18, 2025
97ce96f
Addressing review comments
Nov 21, 2025
96a2f0b
Merge branch 'ansible-collections:main' into mfa
Divya-N3 Nov 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions meta/runtime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ plugin_routing:
redirect: dellemc.enterprise_sonic.sonic_mac
mclag:
redirect: dellemc.enterprise_sonic.sonic_mclag
mfa:
redirect: dellemc.enterprise_sonic.sonic_mfa
mgmt_servers:
redirect: dellemc.enterprise_sonic.sonic_mgmt_servers
mirroring:
Expand Down
1 change: 1 addition & 0 deletions plugins/action/mfa.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ def __init__(self, **kwargs):
'fbs_policies',
'ars',
'mirroring',
'mfa',
'network_policy',
'drop_counter',
'br_l2pt',
Expand Down
84 changes: 84 additions & 0 deletions plugins/module_utils/network/sonic/argspec/mfa/mfa.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#
# -*- coding: utf-8 -*-
# Copyright 2025 Dell Inc. or its subsidiaries. All Rights Reserved
# GNU General Public License v3.0+
# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

"""
The arg spec for the sonic_mfa module
"""

from __future__ import (absolute_import, division, print_function)
__metaclass__ = type


class MfaArgs(object): # pylint: disable=R0903
"""The arg spec for the sonic_mfa module
"""

def __init__(self, **kwargs):
pass

argument_spec = {
'config': {
'options': {
'cac_piv_global': {
'options': {
'cert_username_field': {
'choices': [
'common-name',
'common-name-or-user-principal-name',
'user-principal-name'
],
'type': 'str'
},
'cert_username_match': {
'choices': [
'10digit-username',
'first-name',
'username-as-is',
'username-without-domain'
],
'type': 'str'
},
'security_profile': {'type': 'str'}
},
'type': 'dict'
},
'mfa_global': {
'options': {
'client_secret': {'no_log': True, 'type': 'str'},
'client_secret_encrypted': {'type': 'bool'},
'key_seed': {'no_log': True, 'type': 'str'},
'key_seed_encrypted': {'type': 'bool'},
'security_profile': {'type': 'str'}
},
'type': 'dict'
},
'rsa_global': {
'options': {
'security_profile': {'type': 'str'}
},
'type': 'dict'
},
'rsa_servers': {
'elements': 'dict',
'options': {
'client_id': {'type': 'str'},
'client_key': {'no_log': True, 'type': 'str'},
'client_key_encrypted': {'type': 'bool'},
'connection_timeout': {'type': 'int'},
'hostname': {'required': True, 'type': 'str'},
'read_timeout': {'type': 'int'},
'server_port': {'type': 'int'}
},
'type': 'list'
}
},
'type': 'dict'
},
'state': {
'choices': ['merged', 'deleted', 'replaced', 'overridden'],
'default': 'merged', 'type': 'str'
}
} # pylint: disable=C0301
Loading