
from monascaclient.openstack.common.apiclient import base


class MonascaManager(base.BaseManager):

    def __init__(self, client, **kwargs):
        super(MonascaManager, self).__init__(client)

    def get_headers(self):
        headers = self.client.credentials_headers()
        return headers

    def get_dimensions_url_string(self, dimdict):
        dim_list = list()
        for k, v in dimdict.items():
            # In case user specifies a dimension multiple times
            if isinstance(v, (list, tuple)):
                v = v[-1]
            dim_str = k + ':' + v
            dim_list.append(dim_str)
        return ','.join(dim_list)


from monascaclient.openstack.common.apiclient import base


class MonascaManager(base.BaseManager):

    def __init__(self, client, **kwargs):
        super(MonascaManager, self).__init__(client)

    def get_headers(self):
        headers = self.client.credentials_headers()
        return headers

    def get_dimensions_url_string(self, dimdict):
        dim_list = list()
        for k, v in dimdict.items():
            # In case user specifies a dimension multiple times
            if isinstance(v, (list, tuple)):
                v = v[-1]
            if v:
                dim_str = k + ':' + v
            else:
                dim_str = k
            dim_list.append(dim_str)
        return ','.join(dim_list)

Fix metric dimensions having only key
Fix metric dimensions having only key

When metric dimensions have only key, query parameter will be ending with
':' delimiter. But api can not handle this query parameter.
So change to eliminate ':' delimiter when metric dimensions have only key.

Change-Id: I1327f8fe641fe98cf16c28911ef19908468d1bc0

  
  from monascaclient.openstack.common.apiclient import base
  
  
  class MonascaManager(base.BaseManager):
  
      def __init__(self, client, **kwargs):
          super(MonascaManager, self).__init__(client)
  
      def get_headers(self):
          headers = self.client.credentials_headers()
          return headers
  
      def get_dimensions_url_string(self, dimdict):
          dim_list = list()
          for k, v in dimdict.items():
              # In case user specifies a dimension multiple times
              if isinstance(v, (list, tuple)):
                  v = v[-1]
+             if v:
-             dim_str = k + ':' + v
+                 dim_str = k + ':' + v
+             else:
+                 dim_str = k
              dim_list.append(dim_str)
          return ','.join(dim_list)
  
Fix metric dimensions having only key
## Code Before:

from monascaclient.openstack.common.apiclient import base


class MonascaManager(base.BaseManager):

    def __init__(self, client, **kwargs):
        super(MonascaManager, self).__init__(client)

    def get_headers(self):
        headers = self.client.credentials_headers()
        return headers

    def get_dimensions_url_string(self, dimdict):
        dim_list = list()
        for k, v in dimdict.items():
            # In case user specifies a dimension multiple times
            if isinstance(v, (list, tuple)):
                v = v[-1]
            dim_str = k + ':' + v
            dim_list.append(dim_str)
        return ','.join(dim_list)

## Instruction:
Fix metric dimensions having only key
## Code After:

from monascaclient.openstack.common.apiclient import base


class MonascaManager(base.BaseManager):

    def __init__(self, client, **kwargs):
        super(MonascaManager, self).__init__(client)

    def get_headers(self):
        headers = self.client.credentials_headers()
        return headers

    def get_dimensions_url_string(self, dimdict):
        dim_list = list()
        for k, v in dimdict.items():
            # In case user specifies a dimension multiple times
            if isinstance(v, (list, tuple)):
                v = v[-1]
            if v:
                dim_str = k + ':' + v
            else:
                dim_str = k
            dim_list.append(dim_str)
        return ','.join(dim_list)
