Commit ae4ce9c6 authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_cloud: Handle capacity scope for all open allocation the same

   There is no reason to handle capacity in a different way for personal or friend. This comply with the future design, so keep all consistent by only differentiating Open and Close allocation scope whenever update capacity.
parent d84c2d18
portal = context.getPortalObject()
category_list = [portal.restrictedTraverse("portal_categories/allocation_scope/open/public", None),
portal.restrictedTraverse("portal_categories/allocation_scope/open/subscription", None)]
portal.restrictedTraverse("portal_categories/allocation_scope/open/subscription", None),
portal.restrictedTraverse("portal_categories/allocation_scope/open/friend", None),
portal.restrictedTraverse("portal_categories/allocation_scope/open/personal", None)]
category_uid_list = [ i.getUid() for i in category_list if i is not None]
......
......@@ -4,8 +4,8 @@ from zExceptions import Unauthorized
if REQUEST is not None:
raise Unauthorized
if compute_node.getAllocationScope() not in ['open/public', 'open/subscription']:
# Don't update non public compute_node
if compute_node.getAllocationScope() not in ['open/public', 'open/subscription', 'open/personal', 'open/friend']:
# Don't update non closed computers
return
can_allocate = True
......
......@@ -147,8 +147,7 @@ class DefaultScenarioMixin(TestSlapOSSecurityMixin):
server.edit(
allocation_scope='open/public')
self.assertEqual('open/public', server.getAllocationScope())
self.assertEqual('close', server.getCapacityScope())
server.edit(capacity_scope='open')
self.assertEqual('open', server.getCapacityScope())
self.tic()
@changeSkin('RJS')
......@@ -156,8 +155,7 @@ class DefaultScenarioMixin(TestSlapOSSecurityMixin):
server.edit(
allocation_scope='open/subscription')
self.assertEqual('open/subscription', server.getAllocationScope())
self.assertEqual('close', server.getCapacityScope())
server.edit(capacity_scope='open')
self.assertEqual('open', server.getCapacityScope())
self.tic()
@changeSkin('RJS')
......
......@@ -429,14 +429,15 @@ portal_workflow.doActionFor(context, action='edit_action', comment='Visited by S
'Visited by SoftwareInstance_tryToGarbageCollect',
self.software_instance.workflow_history['edit_workflow'][-1]['comment'])
class TestSlapOSUpdateComputeNodeCapacityScopeAlarm(SlapOSTestCaseMixin):
class TestSlapOSComputeNode_checkAndUpdateCapacityScope(SlapOSTestCaseMixin):
allocation_scope_to_test = 'open/public'
def afterSetUp(self):
SlapOSTestCaseMixin.afterSetUp(self)
self.compute_node = self.portal.compute_node_module.template_compute_node\
.Base_createCloneDocument(batch_mode=1)
self.compute_node.edit(
allocation_scope='open/public',
allocation_scope=self.allocation_scope_to_test,
reference='TESTC-%s' % self.generateNewId(),
)
self.compute_node.edit(capacity_scope='open')
......@@ -548,11 +549,29 @@ class TestSlapOSUpdateComputeNodeCapacityScopeAlarm(SlapOSTestCaseMixin):
self.assertEqual("Compute Node reported an error",
self.compute_node.workflow_history['edit_workflow'][-1]['comment'])
def test_ComputeNode_checkAndUpdateCapacityScope_with_error_non_public(self):
self.compute_node.setAccessStatus('#error not ok')
self.compute_node.edit(allocation_scope='open/personal')
self.compute_node.ComputeNode_checkAndUpdateCapacityScope()
self.assertEqual('open', self.compute_node.getCapacityScope())
class TestSlapOSComputeNode_checkAndUpdateCapacityScopeSubscription(TestSlapOSComputeNode_checkAndUpdateCapacityScope):
allocation_scope_to_test = 'open/subscription'
class TestSlapOSComputeNode_checkAndUpdateCapacityScopePersonal(TestSlapOSComputeNode_checkAndUpdateCapacityScope):
allocation_scope_to_test = 'open/personal'
class TestSlapOSComputeNode_checkAndUpdateCapacityScopeFriend(TestSlapOSComputeNode_checkAndUpdateCapacityScope):
allocation_scope_to_test = 'open/friend'
class TestSlapOSUpdateComputeNodeCapacityScopeAlarm(SlapOSTestCaseMixin):
def afterSetUp(self):
SlapOSTestCaseMixin.afterSetUp(self)
self.compute_node = self.portal.compute_node_module.template_compute_node\
.Base_createCloneDocument(batch_mode=1)
self.compute_node.edit(
allocation_scope='open/public',
reference='TESTC-%s' % self.generateNewId(),
)
self.compute_node.edit(capacity_scope='open')
self.compute_node.validate()
self.compute_node.setAccessStatus("#access ok")
transaction.commit()
def _simulateComputeNode_checkAndUpdateCapacityScope(self):
script_name = 'ComputeNode_checkAndUpdateCapacityScope'
......@@ -584,8 +603,20 @@ portal_workflow.doActionFor(context, action='edit_action', comment='Visited by C
'Visited by ComputeNode_checkAndUpdateCapacityScope',
self.compute_node.workflow_history['edit_workflow'][-1]['comment'])
def test_alarm_non_public(self):
def test_alarm_subscription(self):
self.compute_node.edit(allocation_scope='open/subscription')
self.test_alarm()
def test_alarm_personal(self):
self.compute_node.edit(allocation_scope='open/personal')
self.test_alarm()
def test_alarm_friend(self):
self.compute_node.edit(allocation_scope='open/friend')
self.test_alarm()
def test_alarm_closed(self):
self.compute_node.edit(allocation_scope='close/outdated')
self.tic()
self._simulateComputeNode_checkAndUpdateCapacityScope()
try:
......
......@@ -6,12 +6,6 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testSlapOSCloudAlarm</string> </value>
......@@ -55,28 +49,13 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -89,7 +68,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -98,7 +77,7 @@
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
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