def block_device_mapping_get_all_by_instance(self, context, instance, legacy=True): instance_p = jsonutils.to_primitive(instance) if self.client.can_send_version('1.51'): version = '1.51' kwargs = {'legacy': legacy} elif legacy: # If the remote side is >= 1.51, it defaults to legacy=True. # If it's older, it only understands the legacy format. version = '1.13' kwargs = {} else: # If we require new style data, but can't ask for it, then we must # fail here. raise messaging.RPCVersionCapError( vesion='1.51', version_cap=self.client.version_cap) cctxt = self.client.prepare(version=version) return cctxt.call(context, 'block_device_mapping_get_all_by_instance', instance=instance_p, **kwargs)
def _check_version_cap(self, version): client = rpc.get_client(self.target, version_cap=self.version_cap) if not client.can_send_version(version): raise messaging.RPCVersionCapError(version=version, version_cap=self.version_cap)