Alphabetize QoS specs
setup.cfg and the implementation had some functions that were not in alphabetical order. Since the rest of OSC is alphabetized, let's stick to that. Change-Id: Ief5d4694c7b6bc20a0898437b96305885104d45c
This commit is contained in:
parent
4c3f2ed73e
commit
1d51eb82d0
@ -26,6 +26,38 @@ from openstackclient.common import parseractions
|
|||||||
from openstackclient.common import utils
|
from openstackclient.common import utils
|
||||||
|
|
||||||
|
|
||||||
|
class AssociateQos(command.Command):
|
||||||
|
"""Associate a QoS specification to a volume type"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.AssociateQos')
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(AssociateQos, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'qos_specs',
|
||||||
|
metavar='<qos-specs>',
|
||||||
|
help='QoS specification to modify (name or ID)',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'volume_type',
|
||||||
|
metavar='<volume-type>',
|
||||||
|
help='Volume type to associate the QoS (name or ID)',
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
|
volume_client = self.app.client_manager.volume
|
||||||
|
qos_specs = utils.find_resource(volume_client.qos_specs,
|
||||||
|
parsed_args.qos_specs)
|
||||||
|
volume_type = utils.find_resource(volume_client.volume_types,
|
||||||
|
parsed_args.volume_type)
|
||||||
|
|
||||||
|
volume_client.qos_specs.associate(qos_specs.id, volume_type.id)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
class CreateQos(show.ShowOne):
|
class CreateQos(show.ShowOne):
|
||||||
"""Create new QoS specification"""
|
"""Create new QoS specification"""
|
||||||
|
|
||||||
@ -95,175 +127,6 @@ class DeleteQos(command.Command):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class ListQos(lister.Lister):
|
|
||||||
"""List QoS specifications"""
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.ListQos')
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(ListQos, self).get_parser(prog_name)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
|
||||||
volume_client = self.app.client_manager.volume
|
|
||||||
qos_specs_list = volume_client.qos_specs.list()
|
|
||||||
|
|
||||||
for qos in qos_specs_list:
|
|
||||||
qos_associations = volume_client.qos_specs.get_associations(qos)
|
|
||||||
if qos_associations:
|
|
||||||
associations = [association.name
|
|
||||||
for association in qos_associations]
|
|
||||||
qos._info.update({'associations': associations})
|
|
||||||
|
|
||||||
columns = ('ID', 'Name', 'Consumer', 'Associations', 'Specs')
|
|
||||||
return (columns,
|
|
||||||
(utils.get_dict_properties(
|
|
||||||
s._info, columns,
|
|
||||||
formatters={
|
|
||||||
'Specs': utils.format_dict,
|
|
||||||
'Associations': utils.format_list
|
|
||||||
},
|
|
||||||
) for s in qos_specs_list))
|
|
||||||
|
|
||||||
|
|
||||||
class ShowQos(show.ShowOne):
|
|
||||||
"""Display QoS specification details"""
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.ShowQos')
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(ShowQos, self).get_parser(prog_name)
|
|
||||||
parser.add_argument(
|
|
||||||
'qos_specs',
|
|
||||||
metavar='<qos-specs>',
|
|
||||||
help='QoS specification to display (name or ID)',
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
|
||||||
volume_client = self.app.client_manager.volume
|
|
||||||
qos_specs = utils.find_resource(volume_client.qos_specs,
|
|
||||||
parsed_args.qos_specs)
|
|
||||||
|
|
||||||
qos_associations = volume_client.qos_specs.get_associations(qos_specs)
|
|
||||||
if qos_associations:
|
|
||||||
associations = [association.name
|
|
||||||
for association in qos_associations]
|
|
||||||
qos_specs._info.update({
|
|
||||||
'associations': utils.format_list(associations)
|
|
||||||
})
|
|
||||||
qos_specs._info.update({'specs': utils.format_dict(qos_specs.specs)})
|
|
||||||
|
|
||||||
return zip(*sorted(six.iteritems(qos_specs._info)))
|
|
||||||
|
|
||||||
|
|
||||||
class SetQos(command.Command):
|
|
||||||
"""Set QoS specification properties"""
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.SetQos')
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(SetQos, self).get_parser(prog_name)
|
|
||||||
parser.add_argument(
|
|
||||||
'qos_specs',
|
|
||||||
metavar='<qos-specs>',
|
|
||||||
help='QoS specification to modify (name or ID)',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--property',
|
|
||||||
metavar='<key=value>',
|
|
||||||
action=parseractions.KeyValueAction,
|
|
||||||
help='Property to add or modify for this QoS specification '
|
|
||||||
'(repeat option to set multiple properties)',
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
|
||||||
volume_client = self.app.client_manager.volume
|
|
||||||
qos_specs = utils.find_resource(volume_client.qos_specs,
|
|
||||||
parsed_args.qos_specs)
|
|
||||||
|
|
||||||
if parsed_args.property:
|
|
||||||
volume_client.qos_specs.set_keys(qos_specs.id,
|
|
||||||
parsed_args.property)
|
|
||||||
else:
|
|
||||||
self.app.log.error("No changes requested\n")
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
class UnsetQos(command.Command):
|
|
||||||
"""Unset QoS specification properties"""
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.SetQos')
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(UnsetQos, self).get_parser(prog_name)
|
|
||||||
parser.add_argument(
|
|
||||||
'qos_specs',
|
|
||||||
metavar='<qos-specs>',
|
|
||||||
help='QoS specification to modify (name or ID)',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--property',
|
|
||||||
metavar='<key>',
|
|
||||||
action='append',
|
|
||||||
default=[],
|
|
||||||
help='Property to remove from the QoS specification. '
|
|
||||||
'(repeat option to unset multiple properties)',
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
|
||||||
volume_client = self.app.client_manager.volume
|
|
||||||
qos_specs = utils.find_resource(volume_client.qos_specs,
|
|
||||||
parsed_args.qos_specs)
|
|
||||||
|
|
||||||
if parsed_args.property:
|
|
||||||
volume_client.qos_specs.unset_keys(qos_specs.id,
|
|
||||||
parsed_args.property)
|
|
||||||
else:
|
|
||||||
self.app.log.error("No changes requested\n")
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
class AssociateQos(command.Command):
|
|
||||||
"""Associate a QoS specification to a volume type"""
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.AssociateQos')
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(AssociateQos, self).get_parser(prog_name)
|
|
||||||
parser.add_argument(
|
|
||||||
'qos_specs',
|
|
||||||
metavar='<qos-specs>',
|
|
||||||
help='QoS specification to modify (name or ID)',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'volume_type',
|
|
||||||
metavar='<volume-type>',
|
|
||||||
help='Volume type to associate the QoS (name or ID)',
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
|
||||||
volume_client = self.app.client_manager.volume
|
|
||||||
qos_specs = utils.find_resource(volume_client.qos_specs,
|
|
||||||
parsed_args.qos_specs)
|
|
||||||
volume_type = utils.find_resource(volume_client.volume_types,
|
|
||||||
parsed_args.volume_type)
|
|
||||||
|
|
||||||
volume_client.qos_specs.associate(qos_specs.id, volume_type.id)
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
class DisassociateQos(command.Command):
|
class DisassociateQos(command.Command):
|
||||||
"""Disassociate a QoS specification from a volume type"""
|
"""Disassociate a QoS specification from a volume type"""
|
||||||
|
|
||||||
@ -305,3 +168,140 @@ class DisassociateQos(command.Command):
|
|||||||
volume_client.qos_specs.disassociate_all(qos_specs.id)
|
volume_client.qos_specs.disassociate_all(qos_specs.id)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
class ListQos(lister.Lister):
|
||||||
|
"""List QoS specifications"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.ListQos')
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(ListQos, self).get_parser(prog_name)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
|
volume_client = self.app.client_manager.volume
|
||||||
|
qos_specs_list = volume_client.qos_specs.list()
|
||||||
|
|
||||||
|
for qos in qos_specs_list:
|
||||||
|
qos_associations = volume_client.qos_specs.get_associations(qos)
|
||||||
|
if qos_associations:
|
||||||
|
associations = [association.name
|
||||||
|
for association in qos_associations]
|
||||||
|
qos._info.update({'associations': associations})
|
||||||
|
|
||||||
|
columns = ('ID', 'Name', 'Consumer', 'Associations', 'Specs')
|
||||||
|
return (columns,
|
||||||
|
(utils.get_dict_properties(
|
||||||
|
s._info, columns,
|
||||||
|
formatters={
|
||||||
|
'Specs': utils.format_dict,
|
||||||
|
'Associations': utils.format_list
|
||||||
|
},
|
||||||
|
) for s in qos_specs_list))
|
||||||
|
|
||||||
|
|
||||||
|
class SetQos(command.Command):
|
||||||
|
"""Set QoS specification properties"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.SetQos')
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(SetQos, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'qos_specs',
|
||||||
|
metavar='<qos-specs>',
|
||||||
|
help='QoS specification to modify (name or ID)',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--property',
|
||||||
|
metavar='<key=value>',
|
||||||
|
action=parseractions.KeyValueAction,
|
||||||
|
help='Property to add or modify for this QoS specification '
|
||||||
|
'(repeat option to set multiple properties)',
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
|
volume_client = self.app.client_manager.volume
|
||||||
|
qos_specs = utils.find_resource(volume_client.qos_specs,
|
||||||
|
parsed_args.qos_specs)
|
||||||
|
|
||||||
|
if parsed_args.property:
|
||||||
|
volume_client.qos_specs.set_keys(qos_specs.id,
|
||||||
|
parsed_args.property)
|
||||||
|
else:
|
||||||
|
self.app.log.error("No changes requested\n")
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
class ShowQos(show.ShowOne):
|
||||||
|
"""Display QoS specification details"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.ShowQos')
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(ShowQos, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'qos_specs',
|
||||||
|
metavar='<qos-specs>',
|
||||||
|
help='QoS specification to display (name or ID)',
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
|
volume_client = self.app.client_manager.volume
|
||||||
|
qos_specs = utils.find_resource(volume_client.qos_specs,
|
||||||
|
parsed_args.qos_specs)
|
||||||
|
|
||||||
|
qos_associations = volume_client.qos_specs.get_associations(qos_specs)
|
||||||
|
if qos_associations:
|
||||||
|
associations = [association.name
|
||||||
|
for association in qos_associations]
|
||||||
|
qos_specs._info.update({
|
||||||
|
'associations': utils.format_list(associations)
|
||||||
|
})
|
||||||
|
qos_specs._info.update({'specs': utils.format_dict(qos_specs.specs)})
|
||||||
|
|
||||||
|
return zip(*sorted(six.iteritems(qos_specs._info)))
|
||||||
|
|
||||||
|
|
||||||
|
class UnsetQos(command.Command):
|
||||||
|
"""Unset QoS specification properties"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.SetQos')
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(UnsetQos, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'qos_specs',
|
||||||
|
metavar='<qos-specs>',
|
||||||
|
help='QoS specification to modify (name or ID)',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--property',
|
||||||
|
metavar='<key>',
|
||||||
|
action='append',
|
||||||
|
default=[],
|
||||||
|
help='Property to remove from the QoS specification. '
|
||||||
|
'(repeat option to unset multiple properties)',
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
|
volume_client = self.app.client_manager.volume
|
||||||
|
qos_specs = utils.find_resource(volume_client.qos_specs,
|
||||||
|
parsed_args.qos_specs)
|
||||||
|
|
||||||
|
if parsed_args.property:
|
||||||
|
volume_client.qos_specs.unset_keys(qos_specs.id,
|
||||||
|
parsed_args.property)
|
||||||
|
else:
|
||||||
|
self.app.log.error("No changes requested\n")
|
||||||
|
|
||||||
|
return
|
||||||
|
10
setup.cfg
10
setup.cfg
@ -366,14 +366,14 @@ openstack.volume.v1 =
|
|||||||
volume_type_set = openstackclient.volume.v1.type:SetVolumeType
|
volume_type_set = openstackclient.volume.v1.type:SetVolumeType
|
||||||
volume_type_unset = openstackclient.volume.v1.type:UnsetVolumeType
|
volume_type_unset = openstackclient.volume.v1.type:UnsetVolumeType
|
||||||
|
|
||||||
|
volume_qos_associate = openstackclient.volume.v1.qos_specs:AssociateQos
|
||||||
volume_qos_create = openstackclient.volume.v1.qos_specs:CreateQos
|
volume_qos_create = openstackclient.volume.v1.qos_specs:CreateQos
|
||||||
volume_qos_delete = openstackclient.volume.v1.qos_specs:DeleteQos
|
volume_qos_delete = openstackclient.volume.v1.qos_specs:DeleteQos
|
||||||
volume_qos_list = openstackclient.volume.v1.qos_specs:ListQos
|
|
||||||
volume_qos_show = openstackclient.volume.v1.qos_specs:ShowQos
|
|
||||||
volume_qos_set = openstackclient.volume.v1.qos_specs:SetQos
|
|
||||||
volume_qos_unset = openstackclient.volume.v1.qos_specs:UnsetQos
|
|
||||||
volume_qos_associate = openstackclient.volume.v1.qos_specs:AssociateQos
|
|
||||||
volume_qos_disassociate = openstackclient.volume.v1.qos_specs:DisassociateQos
|
volume_qos_disassociate = openstackclient.volume.v1.qos_specs:DisassociateQos
|
||||||
|
volume_qos_list = openstackclient.volume.v1.qos_specs:ListQos
|
||||||
|
volume_qos_set = openstackclient.volume.v1.qos_specs:SetQos
|
||||||
|
volume_qos_show = openstackclient.volume.v1.qos_specs:ShowQos
|
||||||
|
volume_qos_unset = openstackclient.volume.v1.qos_specs:UnsetQos
|
||||||
|
|
||||||
openstack.volume.v2 =
|
openstack.volume.v2 =
|
||||||
backup_create = openstackclient.volume.v2.backup:CreateBackup
|
backup_create = openstackclient.volume.v2.backup:CreateBackup
|
||||||
|
Loading…
x
Reference in New Issue
Block a user