def find_all(self): """ :see find_all in parent NetworkDiscovery class Parses bridge name bridge id STP enabled interfaces docker0 8000.000000000000 no virbr0 8000.52540051bad2 yes virbr0-nic vnet0 vnet1 """ try: (stdout, stderr) = processutils.execute("brctl", "show") headers = ["bridge name", "bridge id", "STP enabled", "interfaces"] stdout_parser = StdTableOutputParser(stdout, delimiter='\t', headers=headers, columns_desired=1) all_bridges = stdout_parser.get_all() ret_list = [] for bridge in all_bridges: ret_list.append(self._convert_to_net_info(bridge)) return ret_list except: # Log information raise
def run_vios_command_as_root_with_shell(self, command, check_exit_code=True): try: cmdout, cmderr = processutils.execute(command, check_exit_code=check_exit_code, shell=True) except Exception: raise exception.IBMPowerVMCommandFailed(command) if cmderr: LOG.debug("Found error stream for command \"%(command)s\":" " %(error_text)s", {'command': command, 'error_text': cmderr}) return (cmdout, cmderr)
def run_interactive(self, commands, conn=None): new_cmd = '' for item in commands: if item != 'oem_setup_env' and item != 'exit': new_cmd = item new_cmd_lst = new_cmd.split() if new_cmd_lst: cmdout, cmderr = processutils.execute(*new_cmd_lst, check_exit_code=True) if cmdout is not None: cmdout = cmdout.split('\n') cmdout.pop() return cmdout
def consume_in_thread(self): """Runs the ZmqProxy service""" ipc_dir = CONF.rpc_zmq_ipc_dir consume_in = "tcp://%s:%s" % \ (CONF.rpc_zmq_bind_address, CONF.rpc_zmq_port) consumption_proxy = InternalContext(None) if not os.path.isdir(ipc_dir): try: utils.execute('mkdir', '-p', ipc_dir, run_as_root=True) utils.execute('chown', "%s:%s" % (os.getuid(), os.getgid()), ipc_dir, run_as_root=True) utils.execute('chmod', '750', ipc_dir, run_as_root=True) except utils.ProcessExecutionError: LOG.error(_("Could not create IPC directory %s") % (ipc_dir, )) raise try: self.register(consumption_proxy, consume_in, zmq.PULL, out_bind=True) except zmq.ZMQError: LOG.error(_("Could not create ZeroMQ receiver daemon. " "Socket may already be in use.")) raise super(ZmqProxy, self).consume_in_thread()
def consume_in_thread(self): """Runs the ZmqProxy service""" ipc_dir = CONF.rpc_zmq_ipc_dir consume_in = "tcp://%s:%s" % \ (CONF.rpc_zmq_bind_address, CONF.rpc_zmq_port) consumption_proxy = InternalContext(None) if not os.path.isdir(ipc_dir): try: utils.execute('mkdir', '-p', ipc_dir, run_as_root=True) utils.execute('chown', "%s:%s" % (os.getuid(), os.getgid()), ipc_dir, run_as_root=True) utils.execute('chmod', '750', ipc_dir, run_as_root=True) except utils.ProcessExecutionError: with excutils.save_and_reraise_exception(): LOG.error( _("Could not create IPC directory %s") % (ipc_dir, )) try: self.register(consumption_proxy, consume_in, zmq.PULL, out_bind=True) except zmq.ZMQError: with excutils.save_and_reraise_exception(): LOG.error( _("Could not create ZeroMQ receiver daemon. " "Socket may already be in use.")) super(ZmqProxy, self).consume_in_thread()
def _run_local_odm_commands(host): cmdin, cmdout, cmderr = None, None, None for odm_retries in range(2): cmdout, cmderr = processutils.execute('su', '-', 'padmin', '-c', *cmd, check_exit_code=check_exit_code) # cmdout, cmderr = processutils.execute('su', '-', 'padmin', check_exit_code=check_exit_code, process_input = cmd) if cmderr: if (any('0514-516' in err for err in cmderr) or any('Please retry the command later' in err for err in cmderr)): if(odm_retries < 2): time.sleep(30) continue return cmdout, cmderr return cmdout, cmderr
def run_vios_command_as_root(self, command, check_exit_code=True): cmdout = None cmderr = None cmd = command.split() try: cmdout, cmderr = processutils.execute(*cmd, check_exit_code=check_exit_code) except Exception: LOG.exception(_('Problem while command execution ')) raise exception.IBMPowerVMCommandFailed(command) if cmderr: LOG.debug("Found error stream for command \"%(command)s\":" " %(error_text)s", {'command': command, 'error_text': cmderr}) if cmdout is not None: cmdout = cmdout.split('\n') return cmdout
def _exec_local_command(): if 'ioscli' in cmd: host = CONF.host # self._host @synchronized(host, 'pvm-odm-lock', False) def _run_local_odm_commands(host): cmdin, cmdout, cmderr = None, None, None for odm_retries in range(2): cmdout, cmderr = processutils.execute('su', '-', 'padmin', '-c', *cmd, check_exit_code=check_exit_code) # cmdout, cmderr = processutils.execute('su', '-', 'padmin', check_exit_code=check_exit_code, process_input = cmd) if cmderr: if (any('0514-516' in err for err in cmderr) or any('Please retry the command later' in err for err in cmderr)): if(odm_retries < 2): time.sleep(30) continue return cmdout, cmderr return cmdout, cmderr cmdout, cmderr = _run_local_odm_commands(host) else: cmdout, cmderr = processutils.execute('su', '-', 'padmin' , '-c', *cmd, check_exit_code=check_exit_code) # cmdout, cmderr = processutils.execute('su', '-', 'padmin', check_exit_code=check_exit_code, process_input = cmd) if cmdout is not None: cmdout = cmdout.split('\n') cmdout.pop() if len(cmdout) > 0: return_code = cmdout.pop() if return_code and int(return_code) == 0: return cmdout raise_exception = check_exit_code if raise_exception: ex_args = {'command': ' '.join(cmd), 'error': cmderr, 'stdout': cmdout, 'exit_code': int(return_code)} raise exception.IBMPowerVMCommandFailed(**ex_args) LOG.debug(_("Command: %(cmd)s") % {'cmd': ' '.join(cmd)}) LOG.debug(_("Exit Code: %(exit_code)s") % {'exit_code': int(return_code)}) LOG.debug(_("Stdout: %(out)r") % {'out': cmdout}) LOG.debug(_("Stderr: %(err)r") % {'err': cmderr}) return None
def execute(*cmd, **kwargs): """Convenience wrapper around oslo's execute() method.""" if 'run_as_root' in kwargs and not 'root_helper' in kwargs: kwargs['root_helper'] = _get_root_helper() return processutils.execute(*cmd, **kwargs)
def execute(*cmd, **kwargs): """Convenience wrapper around oslo's execute() method.""" if 'run_as_root' in kwargs and not 'root_helper' in kwargs: kwargs['root_helper'] = 'sudo nova-rootwrap %s' % CONF.rootwrap_config return processutils.execute(*cmd, **kwargs)
def execute(*cmd, **kwargs): """Convenience wrapper around oslo's execute() method.""" if 'run_as_root' in kwargs and 'root_helper' not in kwargs: kwargs['root_helper'] = _get_root_helper() return processutils.execute(*cmd, **kwargs)