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
Esempio n. 2
0
 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)
Esempio n. 3
0
 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
Esempio n. 4
0
    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()
Esempio n. 5
0
    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()
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
        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
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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)
Esempio n. 12
0
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)