本文整理汇总了Python中nova.api.ec2.ec2utils.dict_from_dotted_str函数的典型用法代码示例。如果您正苦于以下问题:Python dict_from_dotted_str函数的具体用法?Python dict_from_dotted_str怎么用?Python dict_from_dotted_str使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dict_from_dotted_str函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: invoke
def invoke(self, context):
try:
method = getattr(self.controller,
ec2utils.camelcase_to_underscore(self.action))
except AttributeError:
LOG.debug('Unsupported API request: controller = '
'%(controller)s, action = %(action)s',
{'controller': self.controller,
'action': self.action})
# TODO(gundlach): Raise custom exception, trap in apiserver,
# and reraise as 400 error.
raise exception.InvalidRequest()
args = ec2utils.dict_from_dotted_str(self.args.items())
for key in args.keys():
# NOTE(vish): Turn numeric dict keys into lists
if isinstance(args[key], dict):
if args[key] != {} and args[key].keys()[0].isdigit():
s = args[key].items()
s.sort()
args[key] = [v for k, v in s]
result = method(context, **args)
return self._render_response(result, context.request_id)
示例2: invoke
def invoke(self, context):
try:
# Raise NotImplemented exception for Admin specific request if
# admin flag is set to false in nova.conf
if (isinstance(self.controller, AdminController) and
(not FLAGS.allow_ec2_admin_api)):
## Raise InvalidRequest exception for EC2 Admin interface ##
LOG.exception("Unsupported API request")
raise exception.InvalidRequest()
method = getattr(self.controller,
ec2utils.camelcase_to_underscore(self.action))
except AttributeError:
controller = self.controller
action = self.action
_error = _('Unsupported API request: controller = %(controller)s,'
' action = %(action)s') % locals()
LOG.exception(_error)
# TODO: Raise custom exception, trap in apiserver,
# and reraise as 400 error.
raise exception.InvalidRequest()
args = ec2utils.dict_from_dotted_str(self.args.items())
for key in args.keys():
# NOTE(vish): Turn numeric dict keys into lists
if isinstance(args[key], dict):
if args[key] != {} and args[key].keys()[0].isdigit():
s = args[key].items()
s.sort()
args[key] = [v for k, v in s]
result = method(context, **args)
return self._render_response(result, context.request_id)
示例3: test_dict_from_dotted_str
def test_dict_from_dotted_str(self):
in_str = [('BlockDeviceMapping.1.DeviceName', '/dev/sda1'),
('BlockDeviceMapping.1.Ebs.SnapshotId', 'snap-0000001c'),
('BlockDeviceMapping.1.Ebs.VolumeSize', '80'),
('BlockDeviceMapping.1.Ebs.DeleteOnTermination', 'false'),
('BlockDeviceMapping.2.DeviceName', '/dev/sdc'),
('BlockDeviceMapping.2.VirtualName', 'ephemeral0')]
expected_dict = {
'block_device_mapping': {
'1': {'device_name': '/dev/sda1',
'ebs': {'snapshot_id': 'snap-0000001c',
'volume_size': 80,
'delete_on_termination': False}},
'2': {'device_name': '/dev/sdc',
'virtual_name': 'ephemeral0'}}}
out_dict = ec2utils.dict_from_dotted_str(in_str)
self.assertDictMatch(out_dict, expected_dict)
示例4: test_dict_from_dotted_str
def test_dict_from_dotted_str(self):
in_str = [
("BlockDeviceMapping.1.DeviceName", "/dev/sda1"),
("BlockDeviceMapping.1.Ebs.SnapshotId", "snap-0000001c"),
("BlockDeviceMapping.1.Ebs.VolumeSize", "80"),
("BlockDeviceMapping.1.Ebs.DeleteOnTermination", "false"),
("BlockDeviceMapping.2.DeviceName", "/dev/sdc"),
("BlockDeviceMapping.2.VirtualName", "ephemeral0"),
]
expected_dict = {
"block_device_mapping": {
"1": {
"device_name": "/dev/sda1",
"ebs": {"snapshot_id": "snap-0000001c", "volume_size": 80, "delete_on_termination": False},
},
"2": {"device_name": "/dev/sdc", "virtual_name": "ephemeral0"},
}
}
out_dict = ec2utils.dict_from_dotted_str(in_str)
self.assertDictMatch(out_dict, expected_dict)