Introduce cloudkitty.utils

This introduces a new cloudkitty.utils module. Work items:

* cloudkitty/utils.py has been moved to cloudkitty/utils/__init__.py . The
  import path does not change.

* cloudkitty.json_utils has been moved to cloudkitty.utils.json

* cloudkitty.validation_utils has been moved to cloudkitty.utils.validation

* cloudkitty.tzutils has been moved to cloudkitty.utils.tz

* Unit test layout has been adapted to the new utils layout

Story: 2006941
Task: 37614
Change-Id: I2ba1577eb64e27c1e837ba9e20dec532b46fca8a
This commit is contained in:
Luka Peschke 2019-11-25 15:14:05 +01:00
parent 3426a6648a
commit 0dbf9a64b7
39 changed files with 44 additions and 40 deletions

View File

@ -25,8 +25,8 @@ import wsmeext.pecan as wsme_pecan
from cloudkitty.api.v1.datamodels import report as report_models
from cloudkitty.common import policy
from cloudkitty import tzutils
from cloudkitty import utils as ck_utils
from cloudkitty.utils import tz as tzutils
LOG = logging.getLogger(__name__)

View File

@ -24,7 +24,7 @@ import wsmeext.pecan as wsme_pecan
from cloudkitty.api.v1.datamodels import storage as storage_models
from cloudkitty.common import policy
from cloudkitty import storage
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
CONF = cfg.CONF

View File

@ -21,7 +21,7 @@ from cloudkitty.api.v2 import base
from cloudkitty.api.v2 import utils as api_utils
from cloudkitty.common import policy
from cloudkitty import dataframe
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
CONF = cfg.CONF

View File

@ -21,8 +21,8 @@ from cloudkitty.api.v2 import utils as api_utils
from cloudkitty.common import policy
from cloudkitty import messaging
from cloudkitty import storage_state
from cloudkitty import tzutils
from cloudkitty import validation_utils as vutils
from cloudkitty.utils import tz as tzutils
from cloudkitty.utils import validation as vutils
class ScopeState(base.BaseResource):

View File

@ -18,7 +18,7 @@ import voluptuous
from cloudkitty.api.v2 import base
from cloudkitty.api.v2 import utils as api_utils
from cloudkitty.common import policy
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class Summary(base.BaseResource):

View File

@ -21,7 +21,7 @@ import voluptuous
from werkzeug import exceptions
from cloudkitty.api import v2 as v2_api
from cloudkitty import json_utils as json
from cloudkitty.utils import json
class SingleQueryParam(object):
@ -33,7 +33,7 @@ class SingleQueryParam(object):
Note that this validator uses ``voluptuous.Coerce`` internally and thus
should not be used together with
``cloudkitty.validation_utils.get_string_type`` in python2.
``cloudkitty.utils.validation.get_string_type`` in python2.
:param param_type: Type of the query parameter
"""
@ -58,7 +58,7 @@ class MultiQueryParam(object):
Note that this validator uses ``voluptuous.Coerce`` internally and thus
should not be used together with
``cloudkitty.validation_utils.get_string_type`` in python2.
``cloudkitty.utils.validation.get_string_type`` in python2.
:param param_type: Type of the query parameter
"""

View File

@ -31,8 +31,8 @@ from voluptuous import Schema
from cloudkitty import collector
from cloudkitty import dataframe
from cloudkitty import tzutils
from cloudkitty import utils as ck_utils
from cloudkitty.utils import tz as tzutils
LOG = logging.getLogger(__name__)

View File

@ -27,8 +27,8 @@ from cloudkitty.collector.exceptions import CollectError
from cloudkitty.common.prometheus_client import PrometheusClient
from cloudkitty.common.prometheus_client import PrometheusResponseError
from cloudkitty import dataframe
from cloudkitty import tzutils
from cloudkitty import utils as ck_utils
from cloudkitty.utils import tz as tzutils
LOG = log.getLogger(__name__)

View File

@ -20,9 +20,9 @@ import functools
import voluptuous
from werkzeug import datastructures
from cloudkitty import json_utils as json
from cloudkitty import tzutils
from cloudkitty import validation_utils as vutils
from cloudkitty.utils import json
from cloudkitty.utils import tz as tzutils
from cloudkitty.utils import validation as vutils
# NOTE(peschk_l): qty and price are converted to strings to avoid
# floating-point conversion issues:

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright 2014 Objectif Libre
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@ -40,8 +39,8 @@ from cloudkitty import extension_manager
from cloudkitty import messaging
from cloudkitty import storage
from cloudkitty import storage_state as state
from cloudkitty import tzutils
from cloudkitty import utils as ck_utils
from cloudkitty.utils import tz as tzutils
LOG = logging.getLogger(__name__)

View File

@ -14,7 +14,7 @@
# under the License.
#
from cloudkitty.db import api
from cloudkitty import json_utils as json
from cloudkitty.utils import json
class StateManager(object):

View File

@ -21,7 +21,7 @@ from stevedore import driver
from cloudkitty import dataframe
from cloudkitty.storage import v2 as storage_v2
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
LOG = logging.getLogger(__name__)

View File

@ -25,9 +25,9 @@ from oslo_utils import uuidutils
import six
from cloudkitty.collector import validate_conf
from cloudkitty import json_utils as json
from cloudkitty.storage.v1.hybrid.backends import BaseHybridBackend
import cloudkitty.utils as ck_utils
from cloudkitty.utils import json
LOG = logging.getLogger(__name__)

View File

@ -19,12 +19,12 @@ from oslo_db.sqlalchemy import utils
import sqlalchemy
from cloudkitty import db
from cloudkitty import json_utils as json
from cloudkitty.storage import NoTimeFrame
from cloudkitty.storage import v1 as storage
from cloudkitty.storage.v1.sqlalchemy import migration
from cloudkitty.storage.v1.sqlalchemy import models
from cloudkitty import utils as ck_utils
from cloudkitty.utils import json
class SQLAlchemyStorage(storage.BaseStorage):

View File

@ -17,7 +17,7 @@ from oslo_db.sqlalchemy import models
import sqlalchemy
from sqlalchemy.ext import declarative
from cloudkitty import json_utils as json
from cloudkitty.utils import json
Base = declarative.declarative_base()

View File

@ -21,7 +21,7 @@ from cloudkitty import dataframe
from cloudkitty.storage import v2 as v2_storage
from cloudkitty.storage.v2.elasticsearch import client as es_client
from cloudkitty.storage.v2.elasticsearch import exceptions
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
LOG = log.getLogger(__name__)

View File

@ -17,8 +17,8 @@ import itertools
from oslo_log import log
import requests
from cloudkitty import json_utils as json
from cloudkitty.storage.v2.elasticsearch import exceptions
from cloudkitty.utils import json
LOG = log.getLogger(__name__)

View File

@ -21,7 +21,7 @@ import six
from cloudkitty import dataframe
from cloudkitty.storage import v2 as v2_storage
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
LOG = log.getLogger(__name__)

View File

@ -20,7 +20,7 @@ from oslo_log import log
from cloudkitty import db
from cloudkitty.storage_state import migration
from cloudkitty.storage_state import models
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
LOG = log.getLogger(__name__)

View File

@ -17,7 +17,7 @@ import unittest
import mock
from cloudkitty.api.v2.dataframes import dataframes
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class TestDataframeListEndpoint(unittest.TestCase):

View File

@ -17,7 +17,7 @@ import unittest
import mock
from cloudkitty.api.v2.summary import summary
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class TestSummaryEndpoint(unittest.TestCase):

View File

@ -16,9 +16,9 @@
import mock
from cloudkitty.collector import prometheus
from cloudkitty import json_utils as json
from cloudkitty import tests
from cloudkitty.tests import samples
from cloudkitty.utils import json
class PrometheusClientTest(tests.TestCase):

View File

@ -50,8 +50,8 @@ from cloudkitty import storage_state
from cloudkitty import tests
from cloudkitty.tests.storage.v2 import influx_utils
from cloudkitty.tests import utils as test_utils
from cloudkitty import tzutils
from cloudkitty import utils as ck_utils
from cloudkitty.utils import tz as tzutils
INITIAL_DT = datetime.datetime(2015, 1, 1, tzinfo=tz.UTC)
@ -501,7 +501,7 @@ class InfluxStorageDataFixture(StorageDataFixture):
class UTCFixture(fixture.GabbiFixture):
"""Set the local timezone to UTC"""
def start_fixture(self):
self._tzmock = mock.patch('cloudkitty.tzutils._LOCAL_TZ', tz.UTC)
self._tzmock = mock.patch('cloudkitty.utils.tz._LOCAL_TZ', tz.UTC)
self._tzmock.start()
def stop_fixture(self):

View File

@ -23,7 +23,7 @@ from cloudkitty import storage
from cloudkitty import tests
from cloudkitty.tests import samples
from cloudkitty.tests import utils as test_utils
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class StorageTest(tests.TestCase):

View File

@ -24,7 +24,7 @@ import mock
from cloudkitty import dataframe
from cloudkitty.storage.v2 import influx
from cloudkitty.tests import TestCase
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class TestInfluxDBStorage(TestCase):

View File

@ -23,7 +23,7 @@ from cloudkitty.tests.storage.v2 import es_utils
from cloudkitty.tests.storage.v2 import influx_utils
from cloudkitty.tests import TestCase
from cloudkitty.tests import utils as test_utils
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
_ES_CLIENT_PATH = ('cloudkitty.storage.v2.elasticsearch'

View File

@ -21,7 +21,7 @@ from dateutil import tz
from werkzeug import datastructures
from cloudkitty import dataframe
from cloudkitty import json_utils as json
from cloudkitty.utils import json
class TestDataPoint(unittest.TestCase):

View File

@ -26,7 +26,7 @@ from cloudkitty import orchestrator
from cloudkitty.storage.v2 import influx
from cloudkitty import storage_state
from cloudkitty import tests
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
class FakeKeystoneClient(object):

View File

View File

@ -17,8 +17,8 @@ import decimal
from dateutil import tz
from cloudkitty import json_utils as json
from cloudkitty import tests
from cloudkitty.utils import json
class JSONEncoderTest(tests.TestCase):

View File

@ -19,8 +19,8 @@ from dateutil import tz
import mock
from oslo_utils import timeutils
from cloudkitty import tzutils
from cloudkitty import utils
from cloudkitty.utils import tz as tzutils
class TestTZUtils(unittest.TestCase):

View File

@ -16,7 +16,7 @@ import unittest
import voluptuous.error
from cloudkitty import validation_utils
from cloudkitty.utils import validation as validation_utils
class DictTypeValidatorTest(unittest.TestCase):

View File

@ -31,7 +31,7 @@ from oslo_utils import timeutils
from six import moves
from stevedore import extension
from cloudkitty import tzutils
from cloudkitty.utils import tz as tzutils
_ISO8601_TIME_FORMAT_SUBSECOND = '%Y-%m-%dT%H:%M:%S.%f'

View File

@ -15,7 +15,7 @@
#
import os
from cloudkitty import json_utils as json
from cloudkitty.utils import json
from cloudkitty import writer

View File

@ -0,0 +1,5 @@
---
other:
- |
Cloudkitty's ``*_utils`` modules have been grouped into the
new ``cloudkitty.utils`` module.