Exemple #1
0
    def _get_running_postgres_segments(self, segments):
        running_segments = []
        for seg in segments:
            datadir = self.dereference_remote_symlink(
                seg.getSegmentDataDirectory(), seg.getSegmentHostName())
            pid = get_pid_from_remotehost(seg.getSegmentHostName(), datadir)
            if pid is not None:
                if check_pid_on_remotehost(pid, seg.getSegmentHostName()):
                    if is_pid_postmaster(datadir, pid,
                                         seg.getSegmentHostName()):
                        running_segments.append(seg)
                    else:
                        logger.info(
                            "Skipping to stop segment %s on host %s since it is not a postgres process"
                            % (seg.getSegmentDataDirectory(),
                               seg.getSegmentHostName()))
                else:
                    logger.debug(
                        "Skipping to stop segment %s on host %s since process with pid %s is not running"
                        % (seg.getSegmentDataDirectory(),
                           seg.getSegmentHostName(), pid))
            else:
                logger.debug(
                    "Skipping to stop segment %s on host %s since pid could not be found"
                    %
                    (seg.getSegmentDataDirectory(), seg.getSegmentHostName()))

        return running_segments
Exemple #2
0
    def _get_running_postgres_segments(self, segments):
        running_segments = []
        for seg in segments:
            datadir = self.dereference_remote_symlink(seg.getSegmentDataDirectory(), seg.getSegmentHostName())
            pid = get_pid_from_remotehost(seg.getSegmentHostName(), datadir)
            if pid is not None:
                if check_pid_on_remotehost(pid, seg.getSegmentHostName()):
                    if is_pid_postmaster(datadir, pid, seg.getSegmentHostName()):
                        running_segments.append(seg)
                    else:
                        logger.info("Skipping to stop segment %s on host %s since it is not a postgres process" % (seg.getSegmentDataDirectory(), seg.getSegmentHostName()))
                else:
                    logger.debug("Skipping to stop segment %s on host %s since process with pid %s is not running" % (seg.getSegmentDataDirectory(), seg.getSegmentHostName(), pid))
            else:
                logger.debug("Skipping to stop segment %s on host %s since pid could not be found" % (seg.getSegmentDataDirectory(), seg.getSegmentHostName()))

        return running_segments