コード例 #1
0
ファイル: clsRecoverSegment.py プロジェクト: pf-qiu/gpdb
    def outputToFile(self, mirrorBuilder, gpArray, fileName):
        lines = []

        # one entry for each failure
        for mirror in mirrorBuilder.getMirrorsToBuild():
            output_str = ""
            seg = mirror.getFailedSegment()
            addr = canonicalize_address(seg.getSegmentAddress())
            output_str += ('%s:%d:%s' % (addr, seg.getSegmentPort(), seg.getSegmentDataDirectory()))

            seg = mirror.getFailoverSegment()
            if seg is not None:

                output_str += ' '
                addr = canonicalize_address(seg.getSegmentAddress())
                output_str += ('%s:%d:%s' % (
                    addr, seg.getSegmentPort(), seg.getSegmentDataDirectory()))

            lines.append(output_str)
        writeLinesToFile(fileName, lines)
コード例 #2
0
    def __outputToFile(self, mirrorBuilder, file, gpArray):
        """
        """
        lines = []

        #
        # first line is always the filespace order
        #
        filespaceArr = [fs for fs in gpArray.getFilespaces(False)]
        lines.append("filespaceOrder=" + (":".join([fs.getName() for fs in filespaceArr])))

        #
        # now a line for each mirror 
        #
        for i, toBuild in enumerate(mirrorBuilder.getMirrorsToBuild()):
            mirror = toBuild.getFailoverSegment()
            primary = toBuild.getLiveSegment()

            #
            # build up   :path1:path2   for the mirror segment's filespace paths
            #
            mirrorFilespaces = mirror.getSegmentFilespaces()
            filespaceValues = []
            for fs in filespaceArr :
                path = mirrorFilespaces.get(fs.getOid())
                assert path is not None   # checking consistency should have been done earlier, but doublecheck here
                filespaceValues.append(":" + canonicalize_address(path))

            line = 'mirror%d=%d:%s:%d:%d:%d:%s%s' % \
                    (i, \
                    mirror.getSegmentContentId(), \
                    canonicalize_address( mirror.getSegmentAddress() ), \
                    mirror.getSegmentPort(), \
                    mirror.getSegmentReplicationPort(), \
                    primary.getSegmentReplicationPort(), \
                    mirror.getSegmentDataDirectory(),
                    "".join(filespaceValues))

            lines.append(line)
        writeLinesToFile(self.__options.outputSampleConfigFile, lines)
コード例 #3
0
    def __outputToFile(self, mirrorBuilder, file, gpArray):
        """
        """
        lines = []

        #
        # now a line for each mirror
        #
        for i, toBuild in enumerate(mirrorBuilder.getMirrorsToBuild()):
            mirror = toBuild.getFailoverSegment()

            line = '%d|%s|%d|%s' % \
                   (mirror.getSegmentContentId(), \
                    canonicalize_address(mirror.getSegmentAddress()), \
                    mirror.getSegmentPort(), \
                    mirror.getSegmentDataDirectory())

            lines.append(line)
        writeLinesToFile(self.__options.outputSampleConfigFile, lines)
コード例 #4
0
    def __outputToFile(self, mirrorBuilder, file, gpArray):
        """
        """
        lines = []

        #
        # first line is always the filespace order
        #
        filespaceArr = [fs for fs in gpArray.getFilespaces(False)]
        lines.append("filespaceOrder=" +
                     (":".join([fs.getName() for fs in filespaceArr])))

        #
        # now a line for each mirror
        #
        for i, toBuild in enumerate(mirrorBuilder.getMirrorsToBuild()):
            mirror = toBuild.getFailoverSegment()
            primary = toBuild.getLiveSegment()

            #
            # build up   :path1:path2   for the mirror segment's filespace paths
            #
            mirrorFilespaces = mirror.getSegmentFilespaces()
            filespaceValues = []
            for fs in filespaceArr:
                path = mirrorFilespaces.get(fs.getOid())
                assert path is not None  # checking consistency should have been done earlier, but doublecheck here
                filespaceValues.append(":" + path)

            line = 'mirror%d=%d:%s:%d:%d:%d:%s%s' % \
                    (i, \
                    mirror.getSegmentContentId(), \
                    canonicalize_address( mirror.getSegmentAddress() ), \
                    mirror.getSegmentPort(), \
                    mirror.getSegmentReplicationPort(), \
                    primary.getSegmentReplicationPort(), \
                    mirror.getSegmentDataDirectory(),
                    "".join(filespaceValues))

            lines.append(line)
        writeLinesToFile(self.__options.outputSampleConfigFile, lines)
コード例 #5
0
ファイル: clsAddMirrors.py プロジェクト: adam8157/gpdb
    def __outputToFile(self, mirrorBuilder, file, gpArray):
        """
        """
        lines = []

        #
        # now a line for each mirror
        #
        for i, toBuild in enumerate(mirrorBuilder.getMirrorsToBuild()):
            mirror = toBuild.getFailoverSegment()
            primary = toBuild.getLiveSegment()

            line = 'mirror%d=%d:%s:%d:%s' % \
                   (i, \
                    mirror.getSegmentContentId(), \
                    canonicalize_address(mirror.getSegmentAddress()), \
                    mirror.getSegmentPort(), \
                    mirror.getSegmentDataDirectory())

            lines.append(line)
        writeLinesToFile(self.__options.outputSampleConfigFile, lines)
コード例 #6
0
 def __getSimpleSegmentLabel(self, seg):
     addr = canonicalize_address(seg.getSegmentAddress())
     return "%s:%s" % (addr, seg.getSegmentDataDirectory())
コード例 #7
0
ファイル: clsRecoverSegment.py プロジェクト: pf-qiu/gpdb
 def __getSimpleSegmentLabel(self, seg):
     addr = canonicalize_address(seg.getSegmentAddress())
     return "%s:%s" % (addr, seg.getSegmentDataDirectory())