summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2016-09-12 17:29:11 +0200
committerJulien Danjou <julien@danjou.info>2016-09-13 11:29:19 +0200
commit5c05c047a67f88698a83fdaa8d8f5d7a7f07b195 (patch)
treebc42d61e84ea2a8f9ad7b06e791dc9cc5c9db922
parentfe901c3d31b50d5845071192aa1ef83191581589 (diff)
downloadceilometer-5c05c047a67f88698a83fdaa8d8f5d7a7f07b195.tar.gz
Remove sql-expire-samples-only as a CLI option
This option actually changes the behaviour of the driver, so it should not be passed only as a CLI option, but should be set in the configuration file. Change-Id: I3540b2db1c039320e387d7a0484b351b082d00de
-rw-r--r--ceilometer/opts.py1
-rw-r--r--ceilometer/storage/__init__.py13
-rw-r--r--ceilometer/storage/impl_sqlalchemy.py4
-rw-r--r--ceilometer/tests/functional/storage/test_storage_scenarios.py2
4 files changed, 7 insertions, 13 deletions
diff --git a/ceilometer/opts.py b/ceilometer/opts.py
index 3c82bf14..22b18c3a 100644
--- a/ceilometer/opts.py
+++ b/ceilometer/opts.py
@@ -75,7 +75,6 @@ def list_opts():
ceilometer.pipeline.OPTS,
ceilometer.sample.OPTS,
ceilometer.service.OPTS,
- ceilometer.storage.CLI_OPTS,
ceilometer.utils.OPTS,)),
('api',
itertools.chain(ceilometer.api.OPTS,
diff --git a/ceilometer/storage/__init__.py b/ceilometer/storage/__init__.py
index 97431a53..f8281686 100644
--- a/ceilometer/storage/__init__.py
+++ b/ceilometer/storage/__init__.py
@@ -47,20 +47,15 @@ OPTS = [
secret=True,
help='The connection string used to connect to the event '
'database. (if unset, connection is used)'),
-]
-
-cfg.CONF.register_opts(OPTS, group='database')
-
-CLI_OPTS = [
cfg.BoolOpt('sql-expire-samples-only',
default=False,
help="Indicates if expirer expires only samples. If set true,"
- " expired samples will be deleted, but residual"
- " resource and meter definition data will remain.",
- ),
+ " expired samples will be deleted, but residual"
+ " resource and meter definition data will remain."),
]
-cfg.CONF.register_cli_opts(CLI_OPTS)
+cfg.CONF.register_opts(OPTS, group='database')
+
db_options.set_defaults(cfg.CONF)
diff --git a/ceilometer/storage/impl_sqlalchemy.py b/ceilometer/storage/impl_sqlalchemy.py
index 54b81389..e44f368c 100644
--- a/ceilometer/storage/impl_sqlalchemy.py
+++ b/ceilometer/storage/impl_sqlalchemy.py
@@ -384,7 +384,7 @@ class Connection(base.Connection):
rows = sample_q.delete()
LOG.info(_LI("%d samples removed from database"), rows)
- if not cfg.CONF.sql_expire_samples_only:
+ if not cfg.CONF.database.sql_expire_samples_only:
with session.begin():
# remove Meter definitions with no matching samples
(session.query(models.Meter)
@@ -456,7 +456,7 @@ class Connection(base.Connection):
# NOTE: When sql_expire_samples_only is enabled, there will be some
# resources without any sample, in such case we should use inner
# join on sample table to avoid wrong result.
- if cfg.CONF.sql_expire_samples_only or has_timestamp:
+ if cfg.CONF.database.sql_expire_samples_only or has_timestamp:
res_q = session.query(distinct(models.Resource.resource_id)).join(
models.Sample,
models.Sample.resource_id == models.Resource.internal_id)
diff --git a/ceilometer/tests/functional/storage/test_storage_scenarios.py b/ceilometer/tests/functional/storage/test_storage_scenarios.py
index d0b884d6..4797b6db 100644
--- a/ceilometer/tests/functional/storage/test_storage_scenarios.py
+++ b/ceilometer/tests/functional/storage/test_storage_scenarios.py
@@ -605,7 +605,7 @@ class RawSampleTest(DBTestBase):
@tests_db.run_with('sqlite', 'mysql', 'pgsql')
def test_clear_metering_data_expire_samples_only(self):
- cfg.CONF.set_override('sql_expire_samples_only', True)
+ cfg.CONF.set_override('sql_expire_samples_only', True, 'database')
self.mock_utcnow.return_value = datetime.datetime(2012, 7, 2, 10, 45)
self.conn.clear_expired_metering_data(4 * 60)
f = storage.SampleFilter(meter='instance')