From 43b64a1c636a4baa295e4101c9166ed3b9ad6519 Mon Sep 17 00:00:00 2001 From: gengchc2 Date: Thu, 1 Nov 2018 01:46:35 -0700 Subject: [PATCH] Correct errors about freezer-api supporting for V1 and V2 api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit At present, the codes as follows: db/elastic/driver.py: Def get_engine (self): If not self._engine: Self._engine = db_session.ElasticSearchEngineV2(self.backend) Return self._engine There is that freezer-api can't support support v1. Actually, there is enable_v1_api ,but it is not used correctly. The documents will be modified in other patches. For example: 1)freezer-api v1: /etc/freezer/freezer-api.conf: [DEFAULT] enable_v1_api = True [storage] driver = elasticsearch backend = elasticsearch [elasticsearch] hosts = http://172.16.1.200:9200 number_of_replicas = 0 index = freezer /etc/freezer/scheduler.conf: [DEFAULT] enable_v1_api = True command: freezer --os-backup-api-version 1 job-list 2)freezer-api v2: /etc/freezer/freezer-api.conf: [DEFAULT] enable_v1_api = False or # enable_v1_api = False [storage] driver = elasticsearch backend = elasticsearch [elasticsearch] hosts = http://172.16.1.200:9200 number_of_replicas = 0 index = freezer /etc/freezer/scheduler.conf: [DEFAULT] enable_v1_api = False or # enable_v1_api = False command: freezer job-list Change-Id: I9eb490c874efa0d752982f38f0971f80bcab14f3 --- etc/scheduler.conf.sample | 4 ++++ freezer/scheduler/arguments.py | 6 ++++++ freezer/scheduler/freezer_scheduler.py | 8 +++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/etc/scheduler.conf.sample b/etc/scheduler.conf.sample index d161cb4e..69101c0a 100644 --- a/etc/scheduler.conf.sample +++ b/etc/scheduler.conf.sample @@ -34,6 +34,10 @@ # Number of jobs that can be executed at the same time (integer value) #concurrent_jobs = 1 +# Use freezer-api v1 interface if enable_v1_api (boolean value). If +# enable_v1_api is set as True, otherwise use freezer-api v2 interface. +#enable_v1_api = False + # # From oslo.log # diff --git a/freezer/scheduler/arguments.py b/freezer/scheduler/arguments.py index c6f6ca49..d19c10cd 100644 --- a/freezer/scheduler/arguments.py +++ b/freezer/scheduler/arguments.py @@ -101,6 +101,12 @@ def get_common_opts(): dest='concurrent_jobs', help='Number of jobs that can be executed at the' ' same time'), + cfg.BoolOpt('enable-v1-api', + default=False, + dest='enable_v1_api', + help='Use freezer-api v1 interface if enable_v1_api' + ' is set as True, otherwise use freezer-api' + ' v2 interface'), ] return _COMMON diff --git a/freezer/scheduler/freezer_scheduler.py b/freezer/scheduler/freezer_scheduler.py index 9a1224a5..0d548f07 100644 --- a/freezer/scheduler/freezer_scheduler.py +++ b/freezer/scheduler/freezer_scheduler.py @@ -208,7 +208,13 @@ def main(): apiclient = None if CONF.no_api is False: try: - apiclient = client_utils.get_client_instance(opts=CONF) + if CONF.enable_v1_api: + apiclient = client_utils.get_client_instance(opts=CONF, + api_version='1') + else: + apiclient = client_utils.get_client_instance(opts=CONF, + api_version='2') + if CONF.client_id: apiclient.client_id = CONF.client_id except Exception as e: