'Pick a cell (possibly ourselves) to build new instance(s) and
forward the request accordingly.'

def build_instances(self, ctxt, build_inst_kwargs):

    filter_properties = build_inst_kwargs.get('filter_properties')
    if ((filter_properties is not None) and (not isinstance(filter_properties['instance_type'], objects.Flavor))):
        flavor = objects.Flavor(**filter_properties['instance_type'])
        build_inst_kwargs['filter_properties'] = dict(filter_properties, instance_type=flavor)
    instances = build_inst_kwargs['instances']
    if (not isinstance(instances[0], objects.Instance)):
        build_inst_kwargs['instances'] = instance_obj._make_instance_list(ctxt, objects.InstanceList(), instances, ['system_metadata', 'metadata'])
    our_cell = self.state_manager.get_my_state()
    self.msg_runner.build_instances(ctxt, our_cell, build_inst_kwargs)
