Merge "Update yardstick framework architecture in userguide"
[yardstick.git] / yardstick / dispatcher / base.py
index 28c4c1a..a1c8582 100644 (file)
@@ -1,12 +1,22 @@
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
+# Copyright 2013 IBM Corp
+# All Rights Reserved.
 #
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+# yardstick comment: this is a modified copy of
+# ceilometer/ceilometer/dispatcher/__init__.py
 
+from __future__ import absolute_import
 import abc
 import six
 
@@ -21,18 +31,22 @@ class Base(object):
 
     @staticmethod
     def get_cls(dispatcher_type):
-        '''Return class of specified type.'''
+        """Return class of specified type."""
         for dispatcher in utils.itersubclasses(Base):
             if dispatcher_type == dispatcher.__dispatcher_type__:
                 return dispatcher
         raise RuntimeError("No such dispatcher_type %s" % dispatcher_type)
 
     @staticmethod
-    def get(config):
+    def get(conf, config):
         """Returns instance of a dispatcher for dispatcher type.
         """
-        return Base.get_cls(config["type"])(config)
+        return Base.get_cls(conf["type"])(conf, config)
 
     @abc.abstractmethod
     def record_result_data(self, data):
         """Recording result data interface."""
+
+    @abc.abstractmethod
+    def flush_result_data(self):
+        """Flush result data into permanent storage media interface."""