Есть 3 проверки на: имя, ос, новое имя.
Данные приходят из json файла.
В конце идет проверка по циклу, но он опирается только на один true из певой функции, и на один false из второй. Почему у меня не сработали проверки в функциях по всем переменным?
И главный вопрос...как из
if check_language(vm['name']) == True and check_os_version(vm['distribution']['description']) == True:
передать потом все прошедшие проверку в новый словарь? Хельп:(
import requests
import json
import re
def check_language(current_hostname):
for vm in asl_vms:
current_hostname = vm['name']
if ['-java-' in current_hostname or '-go-' in current_hostname]:
return True
def check_os_version(current_os):
for vm in asl_vms:
current_os = vm['distribution']['description']
if re.match(r"Debian 11", vm['distribution']['description']):
return False
def get_next_hostname(current_hostname):
for vm in asl_vms:
current_hostname = vm['name']
parts = current_hostname.split('-')
index = int(parts[2].split('.')[0])
new_name = '{}-{}-{}.node.eu.consul'.format(parts[0], parts[1], index + 6)
return new_name
response = requests.get('http://127.0.0.1/asl_real.json')
asl_vms = json.loads(response.text)
for vm in asl_vms:
print(vm['name'])
print('\n', check_language('current_hostname'), '\n')
for vm in asl_vms:
print(vm['distribution']['description'])
print('\n', check_os_version('current_os'), '\n')
print('\n', get_next_hostname('hostname'),'\n')
for vm in asl_vms:
if check_language(vm['name']) == True and check_os_version(vm['distribution']['description']) == True:
print('ok, its True')
else:
print('ok, its not True')
welcome-php-2.node.eu.consul
tgbot-go-1.node.eu.consul
aff-java-1337.node.eu.consul
True
Debian 11.3 x64
Debian 10.1 x64
Debian 11.1 x64
False
aff-java-1343.node.eu.consul
ok, its not True
ok, its not True
ok, its not True