def __call__(self, poller): from msrest.exceptions import ClientException correlation_message = '' self.progress_controller.begin() correlation_id = None while not poller.done(): self.progress_controller.add(message='Running') try: # pylint: disable=protected-access correlation_id = json.loads( poller._response.__dict__['_content'].decode( ))['properties']['correlationId'] correlation_message = 'Correlation ID: {}'.format( correlation_id) except: # pylint: disable=bare-except pass self._template_progress(correlation_id) try: self._delay() except KeyboardInterrupt: self.progress_controller.stop() logger.error('Long running operation wait cancelled. %s', correlation_message) raise try: result = poller.result() except ClientException as client_exception: from azure.cli.core.commands.arm import handle_long_running_operation_exception self.progress_controller.stop() handle_long_running_operation_exception(client_exception) self.progress_controller.end() return result
def __call__(self, poller): import colorama from msrest.exceptions import ClientException # https://github.com/azure/azure-cli/issues/3555 colorama.init() correlation_message = '' self.cli_ctx.get_progress_controller().begin() correlation_id = None cli_logger = get_logger( ) # get CLI logger which has the level set through command lines is_verbose = any(handler.level <= logs.INFO for handler in cli_logger.handlers) while not poller.done(): self.cli_ctx.get_progress_controller().add(message='Running') try: # pylint: disable=protected-access correlation_id = json.loads( poller._response.__dict__['_content'].decode( ))['properties']['correlationId'] correlation_message = 'Correlation ID: {}'.format( correlation_id) except: # pylint: disable=bare-except pass current_time = datetime.datetime.now() if is_verbose and current_time - self.last_progress_report >= datetime.timedelta( seconds=10): self.last_progress_report = current_time try: self._generate_template_progress(correlation_id) except Exception as ex: # pylint: disable=broad-except logger.warning('%s during progress reporting: %s', getattr(type(ex), '__name__', type(ex)), ex) try: self._delay() except KeyboardInterrupt: self.cli_ctx.get_progress_controller().stop() logger.error('Long-running operation wait cancelled. %s', correlation_message) raise try: result = poller.result() except ClientException as client_exception: from azure.cli.core.commands.arm import handle_long_running_operation_exception self.cli_ctx.get_progress_controller().stop() handle_long_running_operation_exception(client_exception) self.cli_ctx.get_progress_controller().end() colorama.deinit() return result
def __call__(self, poller): import colorama from msrest.exceptions import ClientException # https://github.com/azure/azure-cli/issues/3555 colorama.init() correlation_message = '' self.cli_ctx.get_progress_controller().begin() correlation_id = None cli_logger = get_logger() # get CLI logger which has the level set through command lines is_verbose = any(handler.level <= logs.INFO for handler in cli_logger.handlers) while not poller.done(): self.cli_ctx.get_progress_controller().add(message='Running') try: # pylint: disable=protected-access correlation_id = json.loads( poller._response.__dict__['_content'].decode())['properties']['correlationId'] correlation_message = 'Correlation ID: {}'.format(correlation_id) except: # pylint: disable=bare-except pass current_time = datetime.datetime.now() if is_verbose and current_time - self.last_progress_report >= datetime.timedelta(seconds=10): self.last_progress_report = current_time try: self._generate_template_progress(correlation_id) except Exception as ex: # pylint: disable=broad-except logger.warning('%s during progress reporting: %s', getattr(type(ex), '__name__', type(ex)), ex) try: self._delay() except KeyboardInterrupt: self.cli_ctx.get_progress_controller().stop() logger.error('Long-running operation wait cancelled. %s', correlation_message) raise try: result = poller.result() except ClientException as client_exception: from azure.cli.core.commands.arm import handle_long_running_operation_exception self.cli_ctx.get_progress_controller().stop() handle_long_running_operation_exception(client_exception) self.cli_ctx.get_progress_controller().end() colorama.deinit() return result
def __call__(self, poller): from msrest.exceptions import ClientException correlation_message = '' self.progress_controller.begin() correlation_id = None az_logger = azlogging.get_az_logger() is_verbose = any(handler.level <= logs.INFO for handler in az_logger.handlers) while not poller.done(): self.progress_controller.add(message='Running') try: # pylint: disable=protected-access correlation_id = json.loads( poller._response.__dict__['_content'].decode( ))['properties']['correlationId'] correlation_message = 'Correlation ID: {}'.format( correlation_id) except: # pylint: disable=bare-except pass if is_verbose: try: self._generate_template_progress(correlation_id) except Exception as ex: # pylint: disable=broad-except logger.warning('%s during progress reporting: %s', getattr(type(ex), '__name__', type(ex)), ex) try: self._delay() except KeyboardInterrupt: self.progress_controller.stop() logger.error('Long running operation wait cancelled. %s', correlation_message) raise try: result = poller.result() except ClientException as client_exception: from azure.cli.core.commands.arm import handle_long_running_operation_exception self.progress_controller.stop() handle_long_running_operation_exception(client_exception) self.progress_controller.end() return result
def __call__(self, poller): from msrest.exceptions import ClientException correlation_message = '' self.progress_controller.begin() correlation_id = None az_logger = azlogging.get_az_logger() is_verbose = any(handler.level <= logs.INFO for handler in az_logger.handlers) while not poller.done(): self.progress_controller.add(message='Running') try: # pylint: disable=protected-access correlation_id = json.loads( poller._response.__dict__['_content'].decode())['properties']['correlationId'] correlation_message = 'Correlation ID: {}'.format(correlation_id) except: # pylint: disable=bare-except pass if is_verbose: try: self._generate_template_progress(correlation_id) except Exception as ex: # pylint: disable=broad-except logger.warning('%s during progress reporting: %s', getattr(type(ex), '__name__', type(ex)), ex) try: self._delay() except KeyboardInterrupt: self.progress_controller.stop() logger.error('Long running operation wait cancelled. %s', correlation_message) raise try: result = poller.result() except ClientException as client_exception: from azure.cli.core.commands.arm import handle_long_running_operation_exception self.progress_controller.stop() handle_long_running_operation_exception(client_exception) self.progress_controller.end() return result