Add module priority management
This patch binds the python client to the module priority REST api. It also adds a CLI setter command and updates the module list CLI output to show current priority value. Change-Id: I06ab6611452cdc6e875b5534cd955a0a3092ed0d Implements: blueprint module-priority-cli-command
This commit is contained in:

committed by
Pierre-Alexandre Bardina

parent
70cef21224
commit
b6f7a7831f
@@ -26,10 +26,12 @@ fixtures = {
|
|||||||
{
|
{
|
||||||
'module_id': 'hashmap',
|
'module_id': 'hashmap',
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
|
'priority': 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'module_id': 'noop',
|
'module_id': 'noop',
|
||||||
'enabled': False,
|
'enabled': False,
|
||||||
|
'priority': 1,
|
||||||
},
|
},
|
||||||
]},
|
]},
|
||||||
),
|
),
|
||||||
@@ -40,6 +42,7 @@ fixtures = {
|
|||||||
{
|
{
|
||||||
'module_id': 'hashmap',
|
'module_id': 'hashmap',
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
|
'priority': 1,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
'PUT': (
|
'PUT': (
|
||||||
@@ -47,6 +50,7 @@ fixtures = {
|
|||||||
{
|
{
|
||||||
'module_id': 'hashmap',
|
'module_id': 'hashmap',
|
||||||
'enabled': False,
|
'enabled': False,
|
||||||
|
'priority': 1,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
@@ -56,6 +60,7 @@ fixtures = {
|
|||||||
{
|
{
|
||||||
'module_id': 'noop',
|
'module_id': 'noop',
|
||||||
'enabled': False,
|
'enabled': False,
|
||||||
|
'priority': 1,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
'PUT': (
|
'PUT': (
|
||||||
@@ -63,6 +68,7 @@ fixtures = {
|
|||||||
{
|
{
|
||||||
'module_id': 'noop',
|
'module_id': 'noop',
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
|
'priority': 1,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
@@ -123,7 +129,8 @@ class CloudkittyModuleTest(utils.BaseTestCase):
|
|||||||
# body : {'enabled': True}
|
# body : {'enabled': True}
|
||||||
expect = [
|
expect = [
|
||||||
'PUT', '/v1/rating/modules/noop', {'module_id': 'noop',
|
'PUT', '/v1/rating/modules/noop', {'module_id': 'noop',
|
||||||
'enabled': True},
|
'enabled': True,
|
||||||
|
'priority': 1},
|
||||||
]
|
]
|
||||||
self.http_client.assert_called(*expect)
|
self.http_client.assert_called(*expect)
|
||||||
|
|
||||||
@@ -134,6 +141,19 @@ class CloudkittyModuleTest(utils.BaseTestCase):
|
|||||||
# body : {'enabled': False}
|
# body : {'enabled': False}
|
||||||
expect = [
|
expect = [
|
||||||
'PUT', '/v1/rating/modules/hashmap', {'module_id': 'hashmap',
|
'PUT', '/v1/rating/modules/hashmap', {'module_id': 'hashmap',
|
||||||
'enabled': False},
|
'enabled': False,
|
||||||
|
'priority': 1},
|
||||||
|
]
|
||||||
|
self.http_client.assert_called(*expect)
|
||||||
|
|
||||||
|
def test_set_priority(self):
|
||||||
|
self.ck_module = self.mgr.get(module_id='hashmap')
|
||||||
|
self.ck_module.set_priority(100)
|
||||||
|
# PUT /v1/rating/modules/hashmap
|
||||||
|
# body : {'priority': 100}
|
||||||
|
expect = [
|
||||||
|
'PUT', '/v1/rating/modules/hashmap', {'module_id': 'hashmap',
|
||||||
|
'enabled': True,
|
||||||
|
'priority': 100},
|
||||||
]
|
]
|
||||||
self.http_client.assert_called(*expect)
|
self.http_client.assert_called(*expect)
|
||||||
|
@@ -30,6 +30,10 @@ class CloudkittyModule(base.Resource):
|
|||||||
self.enabled = False
|
self.enabled = False
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
|
def set_priority(self, value):
|
||||||
|
self.priority = value
|
||||||
|
self.update()
|
||||||
|
|
||||||
|
|
||||||
class CloudkittyModuleManager(base.CrudManager):
|
class CloudkittyModuleManager(base.CrudManager):
|
||||||
resource_class = CloudkittyModule
|
resource_class = CloudkittyModule
|
||||||
|
@@ -25,8 +25,8 @@ def do_module_list(cc, args):
|
|||||||
except exceptions.NotFound:
|
except exceptions.NotFound:
|
||||||
raise exc.CommandError('Modules not found')
|
raise exc.CommandError('Modules not found')
|
||||||
else:
|
else:
|
||||||
field_labels = ['Module', 'Enabled']
|
field_labels = ['Module', 'Enabled', 'Priority']
|
||||||
fields = ['module_id', 'enabled']
|
fields = ['module_id', 'enabled', 'priority']
|
||||||
utils.print_list(modules, fields, field_labels,
|
utils.print_list(modules, fields, field_labels,
|
||||||
sortby=0)
|
sortby=0)
|
||||||
|
|
||||||
@@ -42,8 +42,8 @@ def do_module_enable(cc, args):
|
|||||||
except exceptions.NotFound:
|
except exceptions.NotFound:
|
||||||
raise exc.CommandError('Module not found: %s' % args.name)
|
raise exc.CommandError('Module not found: %s' % args.name)
|
||||||
else:
|
else:
|
||||||
field_labels = ['Module', 'Enabled']
|
field_labels = ['Module', 'Enabled', 'Priority']
|
||||||
fields = ['module_id', 'enabled']
|
fields = ['module_id', 'enabled', 'priority']
|
||||||
modules = [cc.modules.get(module_id=args.name)]
|
modules = [cc.modules.get(module_id=args.name)]
|
||||||
utils.print_list(modules, fields, field_labels,
|
utils.print_list(modules, fields, field_labels,
|
||||||
sortby=0)
|
sortby=0)
|
||||||
@@ -60,8 +60,29 @@ def do_module_disable(cc, args):
|
|||||||
except exceptions.NotFound:
|
except exceptions.NotFound:
|
||||||
raise exc.CommandError('Module not found: %s' % args.name)
|
raise exc.CommandError('Module not found: %s' % args.name)
|
||||||
else:
|
else:
|
||||||
field_labels = ['Module', 'Enabled']
|
field_labels = ['Module', 'Enabled', 'Priority']
|
||||||
fields = ['module_id', 'enabled']
|
fields = ['module_id', 'enabled', 'priority']
|
||||||
|
modules = [cc.modules.get(module_id=args.name)]
|
||||||
|
utils.print_list(modules, fields, field_labels,
|
||||||
|
sortby=0)
|
||||||
|
|
||||||
|
|
||||||
|
@utils.arg('-n', '--name',
|
||||||
|
help='Module name',
|
||||||
|
required=True)
|
||||||
|
@utils.arg('-p', '--priority',
|
||||||
|
help='Module priority',
|
||||||
|
required=True)
|
||||||
|
def do_module_set_priority(cc, args):
|
||||||
|
'''Set module priority.'''
|
||||||
|
try:
|
||||||
|
module = cc.modules.get(module_id=args.name)
|
||||||
|
module.set_priority(args.priority)
|
||||||
|
except exceptions.NotFound:
|
||||||
|
raise exc.CommandError('Module not found: %s' % args.name)
|
||||||
|
else:
|
||||||
|
field_labels = ['Module', 'Enabled', 'Priority']
|
||||||
|
fields = ['module_id', 'enabled', 'priority']
|
||||||
modules = [cc.modules.get(module_id=args.name)]
|
modules = [cc.modules.get(module_id=args.name)]
|
||||||
utils.print_list(modules, fields, field_labels,
|
utils.print_list(modules, fields, field_labels,
|
||||||
sortby=0)
|
sortby=0)
|
||||||
|
Reference in New Issue
Block a user