From: Vladimir Khlyunev Date: Tue, 24 Jan 2023 08:52:37 +0000 (+0400) Subject: Cleaner py3 migration X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F22%2F42122%2F1;p=tools%2Fsustaining.git Cleaner py3 migration Change-Id: I6f0c4252e5945216e2cdf42014bd4a899dfd55e1 --- diff --git a/os_cloud_cleaner/cleaner.py b/os_cloud_cleaner/cleaner.py index 77c099d..b67d971 100644 --- a/os_cloud_cleaner/cleaner.py +++ b/os_cloud_cleaner/cleaner.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +from __future__ import absolute_import import os from collections import OrderedDict import datetime @@ -98,19 +99,19 @@ class Cleaner: "volumes": [], "subnets": []} for server in self.get_servers(): - if server.id not in self.heat_resources.keys(): + if server.id not in list(self.heat_resources.keys()): result["servers"].append(server) for net in self.get_networks(): - if net['id'] not in self.heat_resources.keys(): + if net['id'] not in list(self.heat_resources.keys()): result['networks'].append(net) for subnet in self.get_subnets(): - if subnet['id'] not in self.heat_resources.keys(): + if subnet['id'] not in list(self.heat_resources.keys()): result['subnets'].append(subnet) for router in self.get_routers(): - if router['id'] not in self.heat_resources.keys(): + if router['id'] not in list(self.heat_resources.keys()): result["routers"].append(router) for volume in self.get_volumes(): - if volume.id not in self.heat_resources.keys(): + if volume.id not in list(self.heat_resources.keys()): result['volumes'].append(volume) return result diff --git a/os_cloud_cleaner/helpers.py b/os_cloud_cleaner/helpers.py index 4caeeca..b911cc9 100644 --- a/os_cloud_cleaner/helpers.py +++ b/os_cloud_cleaner/helpers.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import import datetime import signal import time @@ -134,7 +135,7 @@ def get_lifetime_delta(lifetime): raise ValueError( 'Value should end with ' 'one of "{}", got "{}"'.format( - " ".join(multipliers.keys()), lifetime + " ".join(list(multipliers.keys())), lifetime )) num = int(lifetime[:-1]) mul = lifetime[-1] diff --git a/os_cloud_cleaner/logger.py b/os_cloud_cleaner/logger.py index bd1b466..0c9039d 100644 --- a/os_cloud_cleaner/logger.py +++ b/os_cloud_cleaner/logger.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +from __future__ import absolute_import import logging.config import os import warnings diff --git a/os_cloud_cleaner/os_connector.py b/os_cloud_cleaner/os_connector.py index 2277014..1b59ac5 100644 --- a/os_cloud_cleaner/os_connector.py +++ b/os_cloud_cleaner/os_connector.py @@ -1,8 +1,9 @@ from __future__ import unicode_literals +from __future__ import absolute_import import neutronclient.common.exceptions from cinderclient.exceptions import NotFound -from cinderclient.v2.client import Client as CinderClient +from cinderclient.v3.client import Client as CinderClient from heatclient.v1.client import Client as HeatClient from keystoneauth1.identity import V3Password from keystoneauth1.session import Session as KeystoneSession @@ -60,10 +61,10 @@ class OpenStackActions(object): endpoint_override=self._get_url_for_svc( service_type='compute')), "cinder": CinderClient( - version='2', + version='3', session=self.keystone_session, endpoint_override=self._get_url_for_svc( - service_type='volumev2')), + service_type='volumev3')), "heat": HeatClient( session=self.keystone_session, diff --git a/os_cloud_cleaner/requirements.txt b/os_cloud_cleaner/requirements.txt index 604988c..6181b46 100644 --- a/os_cloud_cleaner/requirements.txt +++ b/os_cloud_cleaner/requirements.txt @@ -1,4 +1,6 @@ -python-openstackclient==4.0.0 -openstacksdk<0.44.0 -python-heatclient==1.18.0 -python-neutronclient==7.1.0 \ No newline at end of file +python-dateutil +python-openstackclient +openstacksdk +python-heatclient +python-neutronclient +python-cinderclient \ No newline at end of file diff --git a/os_cloud_cleaner/shell.py b/os_cloud_cleaner/shell.py index 511e5f1..2329f0f 100644 --- a/os_cloud_cleaner/shell.py +++ b/os_cloud_cleaner/shell.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function import argparse from dateutil import parser as date_parser import os @@ -23,21 +25,21 @@ def do_search(name, only_uuids): for key in keys_ordered: for item in result[key]: uuids.append(item['uuid']) - print " ".join(uuids) + print(" ".join(uuids)) else: for key in keys_ordered: if not result[key]: continue - print key + print(key) table = PrettyTable() - table.field_names = result[key][0].keys() + table.field_names = list(result[key][0].keys()) table.align = 'l' # table.vertical_char = "#" # table.horizontal_char = "#" # table.left_padding_width = 0 for value in result[key]: - table.add_row(value.values()) - print table + table.add_row(list(value.values())) + print(table) def do_search_keypair(name='', fingerprint='', lifetime=''): @@ -47,7 +49,7 @@ def do_search_keypair(name='', fingerprint='', lifetime=''): table.align = 'l' for value in sorted(keypairs, reverse=True, key=lambda x: date_parser.parse(x.created_at)): table.add_row([value.name, value.created_at, value.fingerprint]) - print table + print(table) def do_calculate(name=''): @@ -55,7 +57,7 @@ def do_calculate(name=''): table.field_names = ['stack_name', 'vcpus', 'ram_gb', 'volumes_gb'] table.align = 'l' - if name is '': + if name == '': logger.info("Stack resources calculation initiated without stack name, this will take long time.") logger.info("Please standby") stacks = cleaner.get_stacks() @@ -66,7 +68,7 @@ def do_calculate(name=''): data = cleaner.calculate_resources(stack) ram_gb = data['ram'] / 1024 table.add_row([data['name'], data['vcpus'], ram_gb, data['volumes']]) - print table + print(table) parser = argparse.ArgumentParser()