Beispiel #1
0
    def signalProcess(self, name, signal):
        """ Send an arbitrary UNIX signal to the process named by name

        @param string name    Name of the process to signal (or 'group:name')
        @param string signal  Signal to send, as name ('HUP') or number ('1')
        @return boolean
        """

        self._update('signalProcess')

        group, process = self._getGroupAndProcess(name)

        if process is None:
            group_name, process_name = split_namespec(name)
            return self.signalProcessGroup(group_name, signal=signal)

        try:
            sig = signal_number(signal)
        except ValueError:
            raise RPCError(Faults.BAD_SIGNAL, signal)

        if process.get_state() not in SIGNALLABLE_STATES:
            raise RPCError(Faults.NOT_RUNNING, name)

        msg = process.signal(sig)

        if not msg is None:
            raise RPCError(Faults.FAILED, msg)

        return True
Beispiel #2
0
    def signalProcess(self, name, signal):
        """ Send an arbitrary UNIX signal to the process named by name

        @param string name    Name of the process to signal (or 'group:name')
        @param string signal  Signal to send, as name ('HUP') or number ('1')
        @return boolean
        """

        self._update('signalProcess')

        group, process = self._getGroupAndProcess(name)

        if process is None:
            group_name, process_name = split_namespec(name)
            return self.signalProcessGroup(group_name, signal=signal)

        try:
            sig = signal_number(signal)
        except ValueError:
            raise RPCError(Faults.BAD_SIGNAL, signal)

        if process.get_state() not in RUNNING_STATES:
            raise RPCError(Faults.NOT_RUNNING)

        msg = process.signal(sig)

        if not msg is None:
            raise RPCError(Faults.FAILED, msg)

        return True
Beispiel #3
0
def signalProcessProperly(self, name, signal):
    """ Send an arbitrary UNIX signal to the process named by name
    Monkeypatched by supercast so that it will send signals to
    STOPPING processes - enjoy"""

    self._update('signalProcess')

    group, process = self._getGroupAndProcess(name)

    if process is None:
        group_name, process_name = split_namespec(name)
        return self.signalProcessGroup(group_name, signal=signal)

    try:
        sig = signal_number(signal)
    except ValueError:
        raise RPCError(Faults.BAD_SIGNAL, signal)

    if process.get_state() not in (states.ProcessStates.RUNNING,
                                   states.ProcessStates.STARTING,
                                   states.ProcessStates.STOPPING):
        raise RPCError(Faults.NOT_RUNNING, name)

    msg = process.signal(sig)

    if not msg is None:
        raise RPCError(Faults.FAILED, msg)

    return True
Beispiel #4
0
 def _callFUT(self, arg):
     return datatypes.signal_number(arg)
Beispiel #5
0
 def _callFUT(self, arg):
     return datatypes.signal_number(arg)