Beispiel #1
0
 def run(self):
     '''
     Execute the salt call logic
     '''
     profiling_enabled = self.opts.get('profiling_enabled', False)
     try:
         pr = activate_profile(profiling_enabled)
         try:
             ret = self.call()
         finally:
             output_profile(pr,
                            stats_path=self.opts.get(
                                'profiling_path', '/tmp/stats'),
                            stop=True)
         out = ret.get('out', 'nested')
         if self.opts['print_metadata']:
             print_ret = ret
             out = 'nested'
         else:
             print_ret = ret.get('return', {})
         salt.output.display_output({'local': print_ret}, out, self.opts)
         if self.opts.get('retcode_passthrough', False):
             sys.exit(ret['retcode'])
     except SaltInvocationError as err:
         raise SystemExit(err)
Beispiel #2
0
 def run(self):
     '''
     Execute the salt call logic
     '''
     profiling_enabled = self.opts.get('profiling_enabled', False)
     try:
         pr = activate_profile(profiling_enabled)
         try:
             ret = self.call()
         finally:
             output_profile(pr,
                            stats_path=self.opts.get('profiling_path',
                                                     '/tmp/stats'),
                            stop=True)
         out = ret.get('out', 'nested')
         if self.opts['metadata']:
             print_ret = ret
             out = 'nested'
         else:
             print_ret = ret.get('return', {})
         salt.output.display_output(
                 {'local': print_ret},
                 out,
                 self.opts)
         if self.opts.get('retcode_passthrough', False):
             sys.exit(ret['retcode'])
     except SaltInvocationError as err:
         raise SystemExit(err)
Beispiel #3
0
    def run(self):
        '''
        Execute salt-run
        '''
        import salt.runner
        self.parse_args()

        # Setup file logging!
        self.setup_logfile_logger()
        profiling_enabled = self.options.profiling_enabled

        runner = salt.runner.Runner(self.config)
        if self.options.doc:
            runner.print_docs()
            self.exit(salt.defaults.exitcodes.EX_OK)

        # Run this here so SystemExit isn't raised anywhere else when
        # someone tries to use the runners via the python API
        try:
            if check_user(self.config['user']):
                pr = activate_profile(profiling_enabled)
                try:
                    runner.run()
                finally:
                    output_profile(pr,
                                   stats_path=self.options.profiling_path,
                                   stop=True)
        except SaltClientError as exc:
            raise SystemExit(str(exc))
Beispiel #4
0
    def run(self):
        '''
        Execute salt-run
        '''
        import salt.runner
        self.parse_args()

        # Setup file logging!
        self.setup_logfile_logger()
        verify_log(self.config)
        profiling_enabled = self.options.profiling_enabled

        runner = salt.runner.Runner(self.config)
        if self.options.doc:
            runner.print_docs()
            self.exit(salt.defaults.exitcodes.EX_OK)

        # Run this here so SystemExit isn't raised anywhere else when
        # someone tries to use the runners via the python API
        try:
            if check_user(self.config['user']):
                pr = activate_profile(profiling_enabled)
                try:
                    ret = runner.run()
                    if isinstance(ret, dict) and 'retcode' in ret:
                        self.exit(ret['retcode'])
                finally:
                    output_profile(
                        pr,
                        stats_path=self.options.profiling_path,
                        stop=True)

        except SaltClientError as exc:
            raise SystemExit(str(exc))
Beispiel #5
0
    def run(self):
        '''
        Execute salt-run
        '''
        import salt.runner
        self.parse_args()

        # Setup file logging!
        self.setup_logfile_logger()
        verify_log(self.config)
        profiling_enabled = self.options.profiling_enabled

        runner = salt.runner.Runner(self.config)
        if self.options.doc:
            runner.print_docs()
            self.exit(salt.defaults.exitcodes.EX_OK)

        # Run this here so SystemExit isn't raised anywhere else when
        # someone tries to use the runners via the python API
        try:
            if check_user(self.config['user']):
                pr = activate_profile(profiling_enabled)
                try:
                    ret = runner.run()
                    # In older versions ret['data']['retcode'] was used
                    # for signaling the return code. This has been
                    # changed for the orchestrate runner, but external
                    # runners might still use it. For this reason, we
                    # also check ret['data']['retcode'] if
                    # ret['retcode'] is not available.
                    if isinstance(ret, dict) and 'retcode' in ret:
                        self.exit(ret['retcode'])
                    elif isinstance(ret, dict) and 'retcode' in ret.get(
                            'data', {}):
                        self.exit(ret['data']['retcode'])
                finally:
                    output_profile(pr,
                                   stats_path=self.options.profiling_path,
                                   stop=True)

        except SaltClientError as exc:
            raise SystemExit(str(exc))