Я извлекаю информацию из K8 и создаю файл json. Из этого файла я извлекаю три свойства и создаю список Сервисов.
Службы могут иметь несколько записей в зависимости от версии. Моя цель - удалить старую версию и сохранить только последнюю версию.
class Service:
def __init__(self, app, version, port):
self.app = app
self.version = version
self.port = port
def __str__(self):
return 'service: {} version: {} port: {}'.format(
self.app, self.version, self.port)
Эта функция обрабатывает файл:
def process_file(file):
services = []
with open(file, 'r') as handle:
data = json.load(handle)
for _, item in enumerate(data['items']):
app = item['spec']['selector']['app'].lower()
version = item['spec']['selector']['version']
for protocol in item['spec']['ports']:
if protocol['name'] == 'https':
port = protocol['nodePort']
services.append(Service(app, version, port))
return services
и вернуть следующую информацию:
service: accessoryservice version: 1.2.12 port: 31751
service: aktivateuserinterface version: 1.2.198 port: 30265
service: approvalservices version: 1.1.0 port: 30230
service: approvalservices version: 1.2.11 port: 31380
service: cachemanagement version: 1.0.0 port: 31805
service: cachemanagement version: 1.1.0 port: 32678
service: cachemanagement version: 1.2.8 port: 31799
service: cashdrawermgmt version: 1.1.0 port: 32576
service: cashdrawermgmt version: 1.2.4 port: 31905
service: clovertradeupservices version: 1.2.9 port: 30562
service: collateralservice version: 1.0.0 port: 32037
service: collateralservice version: 1.1.0 port: 32244
service: collateralservice version: 1.2.8 port: 31445
service: compatibilityservice version: 1.0.0 port: 31335
service: compatibilityservice version: 1.1.0 port: 32739
service: compatibilityservice version: 1.2.13 port: 32472
service: customerdetails version: 1.0.0 port: 31007
service: customerdetails version: 1.1.2 port: 30209
service: customerdetails version: 1.2.57 port: 30546
Как я могу обработать эту информацию и удалить cachemanagement 1.0.0 и 1.1.0? Цель состоит в том, чтобы в списке была одна версия каждого сервиса, например, cachemanagement 1.2.8.