Commit cfb5e7f2 authored by Rafael Monnerat's avatar Rafael Monnerat 👻

slapos_crm: use portal_template.compareVersions

   rely on portal_template API to compareVersions
parent 06977132
Pipeline #39516 failed with stage
in 0 seconds
......@@ -62,7 +62,8 @@ minimal_slapos_version = portal.portal_preferences.getPreferredMinimalSlaposVers
# If version isn't uploaded yet dont fail too early
compute_node_version = context.getSlaposVersion("10000")
if compute_node_version < minimal_slapos_version:
# If found version is smaller them minimal version
if portal.portal_templates.compareVersions(compute_node_version, minimal_slapos_version) < 0:
error_dict['last_contact'] = last_contact
error_dict['should_notify'] = True
error_dict['notification_message_reference'] = "slapos-crm-compute_node_check_outdated_os.notification"
......
......@@ -1054,6 +1054,58 @@ class TestSlapOSCrmMonitoringCheckComputeNodeState(TestSlapOSCrmMonitoringMixin)
self.assertIn(compute_node.getReference(), event.getTextContent())
self.assertEventTicket(event, ticket, compute_node)
@simulate('Project_isSupportRequestCreationClosed', '*args, **kwargs', 'return 0')
@simulate('NotificationTool_getDocumentValue',
'reference=None, **kw',
'assert reference == "slapos-crm-compute_node_check_outdated_os.notification", reference\n' \
'return context.restrictedTraverse(' \
'context.REQUEST["test_ComputeNode_checkMonitoringState_notify"])')
def test_ComputeNode_checkMonitoringState_outdatedVersion_1dot2(self):
with PinnedDateTime(self, DateTime() - 1.1):
project = self.addProject()
self._makeComputeNode(project)
self._makeComplexComputeNode(project)
compute_node = self.compute_node
compute_node.setSlaposVersion('1.2')
# Computer and instances are accessed fine.
compute_node.setAccessStatus("")
self.start_requested_software_instance.setAccessStatus("")
self.start_requested_software_installation.setAccessStatus("")
self.tic()
self.portal.REQUEST['test_ComputeNode_checkMonitoringState_notify'] = \
self._makeNotificationMessage(compute_node.getReference())
error_dict = compute_node.ComputeNode_getReportedErrorDict()
compute_node.ComputeNode_checkMonitoringState()
self.tic()
ticket_title = 'Compute Node %s uses an outdated version.' % (
compute_node.getReference()
)
ticket = self._getGeneratedSupportRequest(compute_node.getUid())
self.assertNotEqual(ticket, None)
self.assertEqual(ticket_title, error_dict['ticket_title'])
self.assertEqual(ticket_title, ticket.getTitle())
message = ticket.SupportRequest_recheckMonitoring()
self.assertEqual(error_dict['message'], message)
self.assertIn("It is should be newer than 1.10 (found 1.2)", message)
event_list = ticket.getFollowUpRelatedValueList()
self.assertEqual(len(event_list), 1)
event = event_list[0]
self.assertEqual(
event.getTitle(),
self.portal.restrictedTraverse(
self.portal.REQUEST['test_ComputeNode_checkMonitoringState_notify']
).getTitle()
)
self.assertIn(compute_node.getReference(), event.getTextContent())
self.assertEventTicket(event, ticket, compute_node)
@simulate('Project_isSupportRequestCreationClosed', '*args, **kwargs', 'return 0')
@simulate('NotificationTool_getDocumentValue',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment