Merge "Extract common update functions"

This commit is contained in:
Jenkins 2017-01-05 09:22:37 +00:00 committed by Gerrit Code Review
commit c07d0ec854
3 changed files with 32 additions and 30 deletions

View File

@ -40,6 +40,7 @@
"""Monasca-Statsd is a Python client for Statsd that adds dimensions.
"""
from monascastatsd import common
from monascastatsd.connection import Connection
from monascastatsd.counter import Counter
from monascastatsd.gauge import Gauge
@ -106,24 +107,11 @@ class Client(object):
name that was passed in on instantiation.
"""
if self._name:
metric = self._name
if name:
metric = metric + "." + name
else:
metric = name
return metric
return common.update_name(self._name, name)
def _update_dimensions(self, dimensions):
"""Update the dimensions list with the default
dimensions that were passed in on instantiation.
"""
if self._dimensions:
new_dimensions = self._dimensions.copy()
else:
new_dimensions = {}
if dimensions:
new_dimensions.update(dimensions)
return new_dimensions
return common.update_dimensions(self._dimensions, dimensions)

25
monascastatsd/common.py Normal file
View File

@ -0,0 +1,25 @@
# 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.
def update_dimensions(dimensions_base=None, dimensions=None):
new_dimensions = (dimensions_base or {}).copy()
new_dimensions.update(dimensions or {})
return new_dimensions
def update_name(name_base=None, postfix=None):
if name_base and postfix:
return "{}.{}".format(name_base, postfix)
else:
return name_base or postfix

View File

@ -38,6 +38,8 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from monascastatsd import common
class MetricBase(object):
"""Base class for all metric types.
@ -54,24 +56,11 @@ class MetricBase(object):
dimensions that were passed in on instantiation.
"""
if self._dimensions:
new_dimensions = self._dimensions.copy()
else:
new_dimensions = {}
if dimensions:
new_dimensions.update(dimensions)
return new_dimensions
return common.update_dimensions(self._dimensions, dimensions)
def update_name(self, name):
"""Update the metric name with the metric
base name that was passed in on instantiation.
"""
if self._name:
metric = self._name
if name:
metric = metric + "." + name
else:
metric = name
return metric
return common.update_name(self._name, name)