mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Fix salt-cloud get_cloud_config_value for list objects
This commit is contained in:
parent
857c840762
commit
f01483ff92
3 changed files with 52 additions and 2 deletions
1
changelog/65789.fixed.md
Normal file
1
changelog/65789.fixed.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix salt-cloud get_cloud_config_value for list objects
|
|
@ -3248,7 +3248,9 @@ def get_cloud_config_value(name, vm_, opts, default=None, search_global=True):
|
||||||
# Let's get the value from the profile, if present
|
# Let's get the value from the profile, if present
|
||||||
if "profile" in vm_ and vm_["profile"] is not None:
|
if "profile" in vm_ and vm_["profile"] is not None:
|
||||||
if name in opts["profiles"][vm_["profile"]]:
|
if name in opts["profiles"][vm_["profile"]]:
|
||||||
if isinstance(value, dict):
|
if isinstance(value, dict) and isinstance(
|
||||||
|
opts["profiles"][vm_["profile"]][name], dict
|
||||||
|
):
|
||||||
value.update(opts["profiles"][vm_["profile"]][name].copy())
|
value.update(opts["profiles"][vm_["profile"]][name].copy())
|
||||||
else:
|
else:
|
||||||
value = deepcopy(opts["profiles"][vm_["profile"]][name])
|
value = deepcopy(opts["profiles"][vm_["profile"]][name])
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from salt.cloud import Cloud
|
from salt.cloud import Cloud
|
||||||
|
from salt.config import get_cloud_config_value
|
||||||
from salt.exceptions import SaltCloudSystemExit
|
from salt.exceptions import SaltCloudSystemExit
|
||||||
from tests.support.mock import MagicMock, patch
|
from tests.support.mock import MagicMock, patch
|
||||||
|
|
||||||
|
@ -194,7 +195,6 @@ def test_vm_config_merger_nooverridevalue():
|
||||||
|
|
||||||
@pytest.mark.skip_on_fips_enabled_platform
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_cloud_run_profile_create_returns_boolean(master_config):
|
def test_cloud_run_profile_create_returns_boolean(master_config):
|
||||||
|
|
||||||
master_config["profiles"] = {"test_profile": {"provider": "test_provider:saltify"}}
|
master_config["profiles"] = {"test_profile": {"provider": "test_provider:saltify"}}
|
||||||
master_config["providers"] = {
|
master_config["providers"] = {
|
||||||
"test_provider": {
|
"test_provider": {
|
||||||
|
@ -213,3 +213,50 @@ def test_cloud_run_profile_create_returns_boolean(master_config):
|
||||||
with pytest.raises(SaltCloudSystemExit):
|
with pytest.raises(SaltCloudSystemExit):
|
||||||
ret = cloud.run_profile("test_profile", ["test_vm"])
|
ret = cloud.run_profile("test_profile", ["test_vm"])
|
||||||
assert ret == {"test_vm": False}
|
assert ret == {"test_vm": False}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"value",
|
||||||
|
[
|
||||||
|
[{"key1": "value1"}, {"key1": "value1", "key2": "value2"}],
|
||||||
|
["a", "b"],
|
||||||
|
[1, 2, 4],
|
||||||
|
{"key1": "value1", "key2": 123},
|
||||||
|
"some text",
|
||||||
|
1234,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_get_cloud_config_value(value):
|
||||||
|
value_name = "test_value_name"
|
||||||
|
opts = {
|
||||||
|
"providers": {
|
||||||
|
"my-cool-cloud-provider": {
|
||||||
|
"cool-cloud": {
|
||||||
|
"driver": "cool-cloud",
|
||||||
|
"profiles": {
|
||||||
|
"my-cool-cloud-profile": {
|
||||||
|
"provider": "my-cool-cloud-provider:cool-cloud",
|
||||||
|
value_name: value,
|
||||||
|
"profile": "my-cool-cloud-profile",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"my-cool-cloud-profile": {
|
||||||
|
"provider": "my-cool-cloud-provider:cool-cloud",
|
||||||
|
value_name: value,
|
||||||
|
"profile": "my-cool-cloud-profile",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profile": "my-cool-cloud-profile",
|
||||||
|
}
|
||||||
|
vm_ = {
|
||||||
|
value_name: value,
|
||||||
|
"profile": "my-cool-cloud-profile",
|
||||||
|
"driver": "cool-cloud",
|
||||||
|
}
|
||||||
|
|
||||||
|
result = get_cloud_config_value(value_name, vm_, opts)
|
||||||
|
assert result == value
|
||||||
|
|
Loading…
Add table
Reference in a new issue