Don't assume json network config in validations

Change I5f5cec5a1622be4983b4d0db392453d1c489fa40 allowed the
net_config_override file to be yaml as well as json, but if
enable_validations is true the _validate_no_ip_change assumes the
network config is json.

This change loads this file as yaml in _validate_no_ip_change.

Change-Id: Iaeadf412865c059d252ffc7087db3853569b74ee
Related-Bug: #1927090
(cherry picked from commit f8ee246464)
This commit is contained in:
Steve Baker 2021-12-16 10:22:17 +13:00
parent a6fcdbf0df
commit bd45a745da
1 changed files with 3 additions and 3 deletions

View File

@ -12,13 +12,13 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import json
import logging import logging
import netaddr import netaddr
import netifaces import netifaces
import os import os
import subprocess import subprocess
import sys import sys
import yaml
from osc_lib.i18n import _ from osc_lib.i18n import _
@ -303,8 +303,8 @@ def _validate_no_ip_change():
os.path.expanduser(os_net_config_file)): os.path.expanduser(os_net_config_file)):
return return
try: try:
with open(os_net_config_file) as f: with open(os_net_config_file, 'r') as f:
network_config = json.loads(f.read()) network_config = yaml.safe_load(f)
ctlplane = [i for i in network_config.get('network_config', []) ctlplane = [i for i in network_config.get('network_config', [])
if i['name'] == 'br-ctlplane'][0] if i['name'] == 'br-ctlplane'][0]
except ValueError: except ValueError: