Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
193 changes: 111 additions & 82 deletions plugins/modules/dcnm_bootflash.py

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions tests/unit/modules/dcnm/dcnm_bootflash/fixture.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -14,7 +14,10 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import json
import os
Expand Down
15 changes: 7 additions & 8 deletions tests/unit/modules/dcnm/dcnm_bootflash/test_bootflash_common.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,19 +20,17 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024 Cisco and/or its affiliates."
__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import copy
import inspect

import pytest
from ansible_collections.cisco.dcnm.plugins.modules.dcnm_bootflash import \
Common
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import (
configs_query, does_not_raise, params_deleted, params_query)
from ansible_collections.cisco.dcnm.plugins.modules.dcnm_bootflash import Common
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import configs_query, does_not_raise, params_deleted, params_query


def test_bootflash_common_00000() -> None:
Expand All @@ -56,7 +54,8 @@ def test_bootflash_common_00000() -> None:
assert instance.check_mode is False
assert instance.config == params_deleted.get("config")
assert instance.convert_target_to_params.class_name == "ConvertTargetToParams"
assert instance._rest_send is None
assert instance._rest_send.params == {}
assert instance._rest_send.class_name == "RestSend"
assert instance.results.class_name == "Results"
assert instance.results.check_mode is False
assert instance.results.state == "deleted"
Expand Down
52 changes: 23 additions & 29 deletions tests/unit/modules/dcnm/dcnm_bootflash/test_bootflash_deleted.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,34 +20,33 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024 Cisco and/or its affiliates."
__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import copy
import inspect
import json

import pytest
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import \
ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import \
RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import \
Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import \
Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import \
SwitchDetails
from ansible_collections.cisco.dcnm.plugins.modules.dcnm_bootflash import \
Deleted
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import \
ResponseGenerator
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import SwitchDetails
from ansible_collections.cisco.dcnm.plugins.modules.dcnm_bootflash import Deleted
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import ResponseGenerator
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import (
MockAnsibleModule, configs_deleted, does_not_raise, params_deleted,
responses_ep_all_switches, responses_ep_bootflash_discovery,
responses_ep_bootflash_files, responses_ep_bootflash_info)
MockAnsibleModule,
configs_deleted,
does_not_raise,
params_deleted,
responses_ep_all_switches,
responses_ep_bootflash_discovery,
responses_ep_bootflash_files,
responses_ep_bootflash_info,
)


def test_bootflash_deleted_00000() -> None:
Expand All @@ -72,7 +71,8 @@ def test_bootflash_deleted_00000() -> None:
assert instance.check_mode is False
assert instance.config == params_deleted.get("config")
assert instance.convert_target_to_params.class_name == "ConvertTargetToParams"
assert instance._rest_send is None
assert instance._rest_send.params == {}
assert instance._rest_send.class_name == "RestSend"
assert instance.results.class_name == "Results"
assert instance.results.check_mode is False
assert instance.results.state == "deleted"
Expand Down Expand Up @@ -162,14 +162,8 @@ def responses():
instance.commit()

assert "File(s) Deleted Successfully." in instance.results.response[0]["DATA"]
assert (
instance.results.diff[0]["172.22.150.112"][0]["filepath"]
== "bootflash:/air.txt"
)
assert (
instance.results.diff[0]["172.22.150.113"][0]["filepath"]
== "bootflash:/black.txt"
)
assert instance.results.diff[0]["172.22.150.112"][0]["filepath"] == "bootflash:/air.txt"
assert instance.results.diff[0]["172.22.150.113"][0]["filepath"] == "bootflash:/black.txt"
assert instance.results.response[0]["MESSAGE"] == "OK"
assert instance.results.response[0]["RETURN_CODE"] == 200
assert instance.results.result[0]["success"] is True
Expand Down
54 changes: 23 additions & 31 deletions tests/unit/modules/dcnm/dcnm_bootflash/test_bootflash_files.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,35 +20,33 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024 Cisco and/or its affiliates."
__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import copy
import inspect

import pytest
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.bootflash_files import \
BootflashFiles
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.convert_target_to_params import \
ConvertTargetToParams
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import \
ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import \
RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import \
Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import \
Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import \
SwitchDetails
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import \
ResponseGenerator
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.bootflash_files import BootflashFiles
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.convert_target_to_params import ConvertTargetToParams
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import SwitchDetails
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import ResponseGenerator
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import (
MockAnsibleModule, configs_deleted, does_not_raise, params_deleted,
payloads_bootflash_files, responses_ep_all_switches,
responses_ep_bootflash_files, targets)
MockAnsibleModule,
configs_deleted,
does_not_raise,
params_deleted,
payloads_bootflash_files,
responses_ep_all_switches,
responses_ep_bootflash_files,
targets,
)


def test_bootflash_files_00000() -> None:
Expand Down Expand Up @@ -173,9 +171,7 @@ def responses():

assert instance.payload == payloads_bootflash_files(f"{key}a")
assert instance.results.response_current["RETURN_CODE"] == 200
assert instance.results.result == [
{"success": True, "changed": True, "sequence_number": 1}
]
assert instance.results.result == [{"success": True, "changed": True, "sequence_number": 1}]


def test_bootflash_files_00110() -> None:
Expand Down Expand Up @@ -823,9 +819,7 @@ def test_bootflash_files_00500() -> None:

assert instance.results.response_current["RETURN_CODE"] == 200
assert instance.results.response_current["MESSAGE"] == "No files to delete."
assert instance.results.result == [
{"success": True, "changed": False, "sequence_number": 1}
]
assert instance.results.result == [{"success": True, "changed": False, "sequence_number": 1}]


def test_bootflash_files_00600() -> None:
Expand Down Expand Up @@ -1001,9 +995,7 @@ def test_bootflash_files_00800() -> None:
instance.target = "foo"


@pytest.mark.parametrize(
"parameter", ["filepath", "ip_address", "serial_number", "supervisor"]
)
@pytest.mark.parametrize("parameter", ["filepath", "ip_address", "serial_number", "supervisor"])
def test_bootflash_files_00810(parameter) -> None:
"""
### Classes and Methods
Expand Down
38 changes: 18 additions & 20 deletions tests/unit/modules/dcnm/dcnm_bootflash/test_bootflash_info.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,34 +20,32 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024 Cisco and/or its affiliates."
__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import copy
import inspect
import json

import pytest
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.bootflash_info import \
BootflashInfo
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import \
ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import \
RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import \
Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import \
Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import \
SwitchDetails
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import \
ResponseGenerator
from ansible_collections.cisco.dcnm.plugins.module_utils.bootflash.bootflash_info import BootflashInfo
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.results import Results
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.switch_details import SwitchDetails
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import ResponseGenerator
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import (
MockAnsibleModule, configs_query, does_not_raise, params_query,
responses_ep_all_switches, responses_ep_bootflash_discovery,
responses_ep_bootflash_info)
MockAnsibleModule,
configs_query,
does_not_raise,
params_query,
responses_ep_all_switches,
responses_ep_bootflash_discovery,
responses_ep_bootflash_info,
)


def test_bootflash_info_00000() -> None:
Expand Down
42 changes: 19 additions & 23 deletions tests/unit/modules/dcnm/dcnm_bootflash/test_bootflash_query.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2024-2025 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,28 +20,29 @@

from __future__ import absolute_import, division, print_function

__metaclass__ = type
__metaclass__ = type # pylint: disable=invalid-name

__copyright__ = "Copyright (c) 2024 Cisco and/or its affiliates."
__copyright__ = "Copyright (c) 2024-2025 Cisco and/or its affiliates."
__author__ = "Allen Robel"

import copy
import inspect

import pytest
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import \
ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import \
RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import \
Sender
from ansible_collections.cisco.dcnm.plugins.module_utils.common.response_handler import ResponseHandler
from ansible_collections.cisco.dcnm.plugins.module_utils.common.rest_send_v2 import RestSend
from ansible_collections.cisco.dcnm.plugins.module_utils.common.sender_file import Sender
from ansible_collections.cisco.dcnm.plugins.modules.dcnm_bootflash import Query
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import \
ResponseGenerator
from ansible_collections.cisco.dcnm.tests.unit.module_utils.common.common_utils import ResponseGenerator
from ansible_collections.cisco.dcnm.tests.unit.modules.dcnm.dcnm_bootflash.utils import (
MockAnsibleModule, configs_query, does_not_raise, params_query,
responses_ep_all_switches, responses_ep_bootflash_discovery,
responses_ep_bootflash_info)
MockAnsibleModule,
configs_query,
does_not_raise,
params_query,
responses_ep_all_switches,
responses_ep_bootflash_discovery,
responses_ep_bootflash_info,
)


def test_bootflash_query_00000() -> None:
Expand All @@ -66,7 +67,8 @@ def test_bootflash_query_00000() -> None:
assert instance.check_mode is False
assert instance.config == params_query.get("config")
assert instance.convert_target_to_params.class_name == "ConvertTargetToParams"
assert instance._rest_send is None
assert instance._rest_send.params == {}
assert instance._rest_send.class_name == "RestSend"
assert instance.results.class_name == "Results"
assert instance.results.check_mode is False
assert instance.results.state == "query"
Expand Down Expand Up @@ -154,14 +156,8 @@ def responses():
instance.rest_send = rest_send
instance.commit()

assert (
instance.results.diff[0]["172.22.150.112"][0]["filepath"]
== "bootflash:/air.txt"
)
assert (
instance.results.diff[0]["172.22.150.113"][0]["filepath"]
== "bootflash:/black.txt"
)
assert instance.results.diff[0]["172.22.150.112"][0]["filepath"] == "bootflash:/air.txt"
assert instance.results.diff[0]["172.22.150.113"][0]["filepath"] == "bootflash:/black.txt"
assert instance.results.metadata[0]["action"] == "bootflash_info"
assert instance.results.metadata[0]["check_mode"] is False
assert instance.results.metadata[0]["sequence_number"] == 1
Expand Down
Loading
Loading