'Creates a GCE instance that will be destroyed at the end of the test.
Blocks until the creation has concluded.
:param unicode instance_name: The name of the new instance.
:returns GCEInstance: The instance to use in the tests.'

def create_instance(self, instance_name):

    instance = self._get_instance_builder().create_instance(instance_name, machine_type=u'f1-micro')
    def destroy_best_effort(inst):
        try:
            inst.destroy()
        except HttpError as e:
            if (e.resp.status == 404):
                pass
            else:
                raise
    self.addCleanup((lambda : destroy_best_effort(instance)))
    return instance
