Skip to content

Commit

Permalink
Update profit center in service subscriber handler (#3314)
Browse files Browse the repository at this point in the history
  • Loading branch information
mkurek committed Sep 26, 2018
1 parent e073c5c commit 12262f6
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
15 changes: 15 additions & 0 deletions src/ralph/assets/subscribers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from ralph.assets.models.assets import (
BusinessSegment,
Environment,
ProfitCenter,
Service,
ServiceEnvironment
)
Expand Down Expand Up @@ -93,6 +94,16 @@ def _update_area(service, area_name):
)[0]


def _update_profit_center(service, profit_center_name):
if (
not service.profit_center or
service.profit_center.name != profit_center_name
):
service.profit_center = ProfitCenter.objects.get_or_create(
name=profit_center_name
)[0]


@pyhermes.subscriber(topic=settings.HERMES_SERVICE_TOPICS['CREATE'])
@pyhermes.subscriber(topic=settings.HERMES_SERVICE_TOPICS['UPDATE'])
@pyhermes.subscriber(topic=settings.HERMES_SERVICE_TOPICS['REFRESH'])
Expand Down Expand Up @@ -145,6 +156,10 @@ def update_service_handler(service_data):
)
if service_data.get('area'):
_update_area(service, service_data['area']['name'])
if service_data['area'].get('profit_center'):
_update_profit_center(
service, service_data['area']['profit_center']
)
update_envs = _update_service_environments(
service=service,
environments=service_data['environments']
Expand Down
1 change: 1 addition & 0 deletions src/ralph/assets/tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ class ServiceFactory(DjangoModelFactory):
name = factory.Iterator(['Backup systems', 'load_balancing', 'databases'])
uid = factory.Sequence(lambda n: 'sc-{}'.format(n))
business_segment = factory.SubFactory(BusinessSegmentFactory)
profit_center = factory.SubFactory(ProfitCenterFactory)

class Meta:
model = Service
Expand Down
11 changes: 8 additions & 3 deletions src/ralph/assets/tests/test_subscribers.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def test_update_service_when_service_does_not_exist(self):
'environments': ['prod', 'dev'],
'businessOwners': [{'username': 'business_user1'}],
'technicalOwners': [{'username': 'technical_user2'}],
'area': {'name': 'new area'},
'area': {'name': 'new area', 'profit_center': 'test-PC'},
}
response = self._make_request(
data, settings.HERMES_SERVICE_TOPICS['CREATE']
Expand All @@ -57,6 +57,7 @@ def test_update_service_when_service_does_not_exist(self):
self.assertTrue(service.active)
self.assertEqual(service.name, 'TestName')
self.assertEqual(service.business_segment.name, 'new area')
self.assertEqual(service.profit_center.name, 'test-PC')
self.assertCountEqual(
['prod', 'dev'],
[env.name for env in service.environments.all()]
Expand All @@ -71,7 +72,10 @@ def test_update_service_when_service_does_not_exist(self):
)

def test_update_service_when_service_exist(self):
service = ServiceFactory(business_segment__name='existing area')
service = ServiceFactory(
business_segment__name='existing area',
profit_center__name='existing PC',
)
service.business_owners.add(UserFactory(username='business_user1'))
service.technical_owners.add(UserFactory(username='technical_user2'))
ServiceEnvironmentFactory(
Expand All @@ -85,7 +89,7 @@ def test_update_service_when_service_exist(self):
'environments': ['dev'],
'businessOwners': [{'username': 'business_user3'}],
'technicalOwners': [{'username': 'technical_user3'}],
'area': {'name': 'new area'},
'area': {'name': 'new area', 'profit_center': 'new-PC'},
}
response = self._make_request(
data, settings.HERMES_SERVICE_TOPICS['UPDATE']
Expand All @@ -94,6 +98,7 @@ def test_update_service_when_service_exist(self):
service.refresh_from_db()
self.assertEqual(service.name, 'New name')
self.assertEqual(service.business_segment.name, 'new area')
self.assertEqual(service.profit_center.name, 'new-PC')
self.assertCountEqual(
['dev'],
[env.name for env in service.environments.all()]
Expand Down

0 comments on commit 12262f6

Please sign in to comment.