From 836c035096889e24a7448207f0159006f0892f55 Mon Sep 17 00:00:00 2001 From: Anthony MICHON Date: Fri, 3 Jul 2015 14:27:35 +0200 Subject: [PATCH] Add attributes to handle sticks-mantis fields Change-Id: Ia7cdf6c43c173dc1fef6ae20d12aa56fbf3c8e91 --- sticks/api/__init__.py | 2 +- sticks/api/v1/datamodels/ticket.py | 8 +++++++- sticks/tracking/__init__.py | 13 +++++++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sticks/api/__init__.py b/sticks/api/__init__.py index 9c2058b..9c5489a 100644 --- a/sticks/api/__init__.py +++ b/sticks/api/__init__.py @@ -16,7 +16,7 @@ from oslo.config import cfg -from sticks.openstack.common._i18n import _ # noqa +from sticks.openstack.common.gettextutils import _ # noqa keystone_opts = [ cfg.StrOpt('auth_strategy', default='keystone', diff --git a/sticks/api/v1/datamodels/ticket.py b/sticks/api/v1/datamodels/ticket.py index 668984e..7b6280c 100644 --- a/sticks/api/v1/datamodels/ticket.py +++ b/sticks/api/v1/datamodels/ticket.py @@ -31,6 +31,9 @@ class TicketResource(base.Base): id = wtypes.text """Id of the ticket.""" + description = wtypes.text + """Description of the ticket.""" + project = wtypes.text """Associated project of the ticket.""" @@ -40,9 +43,12 @@ class TicketResource(base.Base): status = wtypes.text """Status.""" + category = wtypes.text + """Category .""" + def as_dict(self): return self.as_dict_from_keys(['title', 'id', 'project', 'start_date', - 'status']) + 'status', 'description', 'category']) @classmethod def sample(cls): diff --git a/sticks/tracking/__init__.py b/sticks/tracking/__init__.py index 0946a09..5b8bbf7 100644 --- a/sticks/tracking/__init__.py +++ b/sticks/tracking/__init__.py @@ -23,7 +23,7 @@ from oslo.config import cfg from oslo import messaging from sticks.client import keystone_client -from sticks.openstack.common._i18n import _ # noqa +from sticks.openstack.common.gettextutils import _ # noqa from sticks.openstack.common import log @@ -118,14 +118,19 @@ class TrackingBase(object): return [messaging.Target(topic=topic) for topic in cfg.CONF.notification_topics] + def get_project(self, project_id): + + if self.kc is None: + self.kc = keystone_client.Client() + + return self.kc.project_get(project_id) + def process_notification(self, ctxt, publisher_id, event_type, payload, metadata): """ Process events""" # Default action : create project if event_type == self._ROLE_ASSIGNMENT_CREATED: - if self.kc is None: - self.kc = keystone_client.Client() - project = self.kc.project_get(payload['project']) + project = self.get_project(payload['project']) if self._has_sticks_role(payload['user'], payload['role'], payload['project']):