Move change_env_settings function from octane to nailgun extension
This function was removed because this logic
moved to cluster upgrade extension.
Depends-On: I6d1e27b8b0c01f3251067bc88931cd2354feb5ce
Partial-bug: #1602587
Change-Id: If4fa37d31d81a5f9a05a2dcac25d5e0c8dc5ec53
(cherry picked from commit cdb33305c9
)
This commit is contained in:
parent
1f0a47c558
commit
5c443f2d3c
|
@ -59,9 +59,6 @@ def upgrade_env(env_id, network_template=None):
|
|||
target_release = find_deployable_release("Ubuntu")
|
||||
seed_id = env_util.clone_env(env_id, target_release)
|
||||
env_util.copy_fuel_keys(env_id, seed_id)
|
||||
master_ip = env_util.get_astute_yaml(env)['master_ip']
|
||||
env_util.change_env_settings(seed_id, master_ip)
|
||||
|
||||
if network_template:
|
||||
network_template_data = load_network_template(network_template)
|
||||
env.set_network_template_data(network_template_data)
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import json
|
||||
import mock
|
||||
import pytest
|
||||
|
||||
|
@ -139,81 +138,6 @@ def test_copy_vips(mock_subprocess):
|
|||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("env_id,master_ip", [(1, '10.0.0.1')])
|
||||
@pytest.mark.parametrize("format_tuples", [
|
||||
[
|
||||
# (path, release_template, expected_result)
|
||||
('/boot', "{settings.MASTER_IP}_{cluster.id}", "10.0.0.1_1"),
|
||||
(
|
||||
'/',
|
||||
"{cluster.id}_{settings.MASTER_IP}_blabal.tar.gz",
|
||||
"1_10.0.0.1_blabal.tar.gz"
|
||||
),
|
||||
]
|
||||
])
|
||||
def test_change_env_settings(mocker, env_id, master_ip, format_tuples):
|
||||
env = mocker.patch("fuelclient.objects.environment.Environment")
|
||||
env_dict = {
|
||||
'provision': {
|
||||
'image_data': {f[0]: {'uri': 'bad_value'} for f in format_tuples}}
|
||||
}
|
||||
expected_dict = {
|
||||
'provision': {
|
||||
'image_data': {f[0]: {'uri': f[2]} for f in format_tuples}}
|
||||
}
|
||||
release_dict = {
|
||||
'generated': {
|
||||
'provision': {
|
||||
'image_data': {f[0]: {'uri': f[1]} for f in format_tuples}}
|
||||
}
|
||||
}
|
||||
sql_call_mock = mocker.patch(
|
||||
"octane.util.sql.run_psql",
|
||||
side_effect=[
|
||||
[json.dumps(env_dict)], [json.dumps(release_dict)], 1
|
||||
]
|
||||
)
|
||||
mock_json_dumps = mocker.patch("json.dumps", return_value="generated_json")
|
||||
mock_env = env.return_value = mock.Mock()
|
||||
mock_env.data = {"release_id": 1}
|
||||
mock_env.get_attributes.return_value = ENV_SETTINGS
|
||||
env_util.change_env_settings(env_id, master_ip)
|
||||
mock_env.update_attributes.assert_called_once_with({
|
||||
'editable': {
|
||||
'public_ssl': {
|
||||
'horizon': {
|
||||
'value': False
|
||||
},
|
||||
'services': {
|
||||
'value': False
|
||||
}
|
||||
},
|
||||
'external_ntp': {
|
||||
'ntp_list': {
|
||||
'value': master_ip
|
||||
}
|
||||
},
|
||||
'external_dns': {
|
||||
'dns_list': {
|
||||
'value': master_ip
|
||||
}
|
||||
},
|
||||
'provision': {
|
||||
'method': {
|
||||
'value': 'image'
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
mock_json_dumps.assert_called_once_with(expected_dict)
|
||||
sql_call_mock.assert_called_with(
|
||||
"update attributes set generated='{0}' where cluster_id={1}".format(
|
||||
mock_json_dumps.return_value, env_id
|
||||
),
|
||||
'nailgun'
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("mock_method,version,expected_result",
|
||||
[("cobbler", "5.1.1", True),
|
||||
("image", "6.0", False),
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
import fuelclient
|
||||
|
||||
import collections
|
||||
import json
|
||||
import logging
|
||||
import os.path
|
||||
|
@ -23,7 +22,6 @@ import yaml
|
|||
|
||||
from distutils import version
|
||||
|
||||
from fuelclient.objects import environment as environment_obj
|
||||
from fuelclient.objects import node as node_obj
|
||||
from fuelclient.objects import task as task_obj
|
||||
|
||||
|
@ -31,7 +29,6 @@ from octane.helpers import tasks as tasks_helpers
|
|||
from octane.helpers import transformations
|
||||
from octane import magic_consts
|
||||
from octane.util import disk
|
||||
from octane.util import sql
|
||||
from octane.util import ssh
|
||||
from octane.util import subprocess
|
||||
|
||||
|
@ -75,42 +72,6 @@ def get_env_provision_method(env):
|
|||
return 'cobbler'
|
||||
|
||||
|
||||
def change_env_settings(env_id, master_ip=''):
|
||||
# workaround for bugs related to DNS, NTP and TLS
|
||||
env = environment_obj.Environment(env_id)
|
||||
|
||||
attrs = env.get_attributes()
|
||||
attrs['editable']['public_ssl']['horizon']['value'] = False
|
||||
attrs['editable']['public_ssl']['services']['value'] = False
|
||||
attrs['editable']['external_ntp']['ntp_list']['value'] = master_ip
|
||||
attrs['editable']['external_dns']['dns_list']['value'] = master_ip
|
||||
if get_env_provision_method(env) != 'image':
|
||||
attrs['editable']['provision']['method']['value'] = 'image'
|
||||
env.update_attributes(attrs)
|
||||
generated_data = sql.run_psql(
|
||||
"select generated from attributes where cluster_id={0}".format(env_id),
|
||||
"nailgun"
|
||||
)[0]
|
||||
generated_json = json.loads(generated_data)
|
||||
release_data = sql.run_psql(
|
||||
"select attributes_metadata from releases where id={0}".format(
|
||||
env.data['release_id']),
|
||||
"nailgun"
|
||||
)[0]
|
||||
release_json = json.loads(release_data)
|
||||
release_image_dict = release_json['generated']['provision']['image_data']
|
||||
settings_cls = collections.namedtuple("settings", ["MASTER_IP", "id"])
|
||||
settings = settings_cls(master_ip, env_id)
|
||||
for key, value in generated_json['provision']['image_data'].iteritems():
|
||||
value['uri'] = release_image_dict[key]['uri'].format(settings=settings,
|
||||
cluster=settings)
|
||||
sql.run_psql(
|
||||
"update attributes set generated='{0}' where cluster_id={1}".format(
|
||||
json.dumps(generated_json), env_id),
|
||||
"nailgun"
|
||||
)
|
||||
|
||||
|
||||
def clone_env(env_id, release):
|
||||
LOG.info("Cloning env %s for release %s", env_id, release.data['name'])
|
||||
res = fuel2_env_call(["clone", "-f", "json", str(env_id),
|
||||
|
|
Loading…
Reference in New Issue