'Check if the new app version is serving.
Raises:
RuntimeError: Deploy has not yet been called.
CannotStartServingError: A bad response was received from the isserving
API call.
Returns:
(serving, response) Where serving is True if the deployed app version is
serving, False otherwise.  response is a dict containing the parsed
response from the server, or an empty dict if the server\'s response was
an old style 0/1 response.'

def IsServing(self):

    assert self.started, 'StartServing()    must    be    called    before    IsServing().'
    StatusUpdate('Checking    if    updated    app    version    is    serving.', self.error_fh)
    self.params['new_serving_resp'] = '1'
    result = self.logging_context.Send('/api/appversion/isserving')
    del self.params['new_serving_resp']
    if (result in ['0', '1']):
        return ((result == '1'), {})
    result = AppVersionUpload._ValidateIsServingYaml(result)
    if (not result):
        raise CannotStartServingError('Internal    error:    Could    not    parse    IsServing    response.')
    message = result.get('message')
    fatal = result.get('fatal')
    if message:
        StatusUpdate(message, self.error_fh)
    if fatal:
        raise CannotStartServingError((message or 'Unknown    error.'))
    return (result['serving'], result)
