コード例 #1
0
ファイル: config.py プロジェクト: flyapen/UgFlu
def buildVirtualFeeds(feedPairs, feeders):
    """Build a virtual feeds dict suitable for forming part of a
    component config.

    @param feedPairs: List of virtual feeds, as name-feederName pairs. For
                      example, [('bar:baz', 'qux')] defines one
                      virtual feed 'bar:baz', which is provided by
                      the component's 'qux' feed.
    @type  feedPairs: List of (feedId, feedName) -- both strings.
    @param feeders: The feeders exported by this component, from the
                    registry.
    @type  feeders: List of str.
    """
    ret = {}
    for virtual, real in feedPairs:
        if real not in feeders:
            raise errors.ConfigError('virtual feed maps to unknown feeder: '
                              '%s -> %s' % (virtual, real))
        try:
            common.parseFeedId(virtual)
        except:
            raise errors.ConfigError('virtual feed name not a valid feedId: %s'
                              % (virtual, ))
        ret[virtual] = real
    return ret
コード例 #2
0
ファイル: config.py プロジェクト: sharky93/flumotion
def buildVirtualFeeds(feedPairs, feeders):
    """Build a virtual feeds dict suitable for forming part of a
    component config.

    @param feedPairs: List of virtual feeds, as name-feederName pairs. For
                      example, [('bar:baz', 'qux')] defines one
                      virtual feed 'bar:baz', which is provided by
                      the component's 'qux' feed.
    @type  feedPairs: List of (feedId, feedName) -- both strings.
    @param feeders: The feeders exported by this component, from the
                    registry.
    @type  feeders: List of str.
    """
    ret = {}
    for virtual, real in feedPairs:
        if real not in feeders:
            raise errors.ConfigError('virtual feed maps to unknown feeder: '
                                     '%s -> %s' % (virtual, real))
        try:
            common.parseFeedId(virtual)
        except:
            raise errors.ConfigError(
                'virtual feed name not a valid feedId: %s' % (virtual, ))
        ret[virtual] = real
    return ret
コード例 #3
0
ファイル: component.py プロジェクト: offlinehacker/flumotion
 def _getFeederAvatar(self, eater, feedId):
     # FIXME: 'get' part is confusing - this methods _modifies_ structures!
     flowName = eater.getParentName()
     compName, feedName = common.parseFeedId(feedId)
     ffid = common.fullFeedId(flowName, compName, feedName)
     feeder = None
     if ffid in self.feeds:
         feeder, feedName = self.feeds[ffid][0]
         self.feedDeps.add(feeder, (eater, ffid))
         if feeder.getFeedId(feedName) != feedId:
             self.debug('chose %s for feed %s',
                        feeder.getFeedId(feedName), feedId)
     return feeder, feedName
コード例 #4
0
ファイル: component.py プロジェクト: offlinehacker/flumotion
    def getVirtualFeeds(self):
        """
        Get the set of virtual feeds provided by this component.

        @rtype: dict of fullFeedId -> (ComponentAvatar, feederName)
        """
        conf = self.componentState.get('config')
        ret = {}
        for feedId, feederName in conf.get('virtual-feeds', {}).items():
            vComp, vFeed = common.parseFeedId(feedId)
            ffid = common.fullFeedId(self.getParentName(), vComp, vFeed)
            ret[ffid] = (self, feederName)
        return ret
コード例 #5
0
 def _getFeederAvatar(self, eater, feedId):
     # FIXME: 'get' part is confusing - this methods _modifies_ structures!
     flowName = eater.getParentName()
     compName, feedName = common.parseFeedId(feedId)
     ffid = common.fullFeedId(flowName, compName, feedName)
     feeder = None
     if ffid in self.feeds:
         feeder, feedName = self.feeds[ffid][0]
         self.feedDeps.add(feeder, (eater, ffid))
         if feeder.getFeedId(feedName) != feedId:
             self.debug('chose %s for feed %s', feeder.getFeedId(feedName),
                        feedId)
     return feeder, feedName
コード例 #6
0
    def getVirtualFeeds(self):
        """
        Get the set of virtual feeds provided by this component.

        @rtype: dict of fullFeedId -> (ComponentAvatar, feederName)
        """
        conf = self.componentState.get('config')
        ret = {}
        for feedId, feederName in conf.get('virtual-feeds', {}).items():
            vComp, vFeed = common.parseFeedId(feedId)
            ffid = common.fullFeedId(self.getParentName(), vComp, vFeed)
            ret[ffid] = (self, feederName)
        return ret
コード例 #7
0
ファイル: main.py プロジェクト: sergiomb2/flumotion
def make_pipes(wrappers):
    fds = {}  # feedcompname:feeder => (fd, start())
    wrappersByName = dict([(wrapper.name, wrapper) for wrapper in wrappers])

    def starter(wrapper, feedName, write):
        return lambda: wrapper.feedToFD(feedName, write)

    for wrapper in wrappers:
        eaters = wrapper.config.get("eater", {})
        for eaterName in eaters:
            for feedId, eaterAlias in eaters[eaterName]:
                compName, feederName = common.parseFeedId(feedId)
                read, write = os.pipe()
                log.debug("launch", "%s: read from fd %d, write to fd %d", feedId, read, write)
                start = starter(wrappersByName[compName], feederName, write)
                fds[feedId] = (read, start)
    return fds
コード例 #8
0
def make_pipes(wrappers):
    fds = {} # feedcompname:feeder => (fd, start())
    wrappersByName = dict([(wrapper.name, wrapper)
                           for wrapper in wrappers])

    def starter(wrapper, feedName, write):
        return lambda: wrapper.feedToFD(feedName, write)
    for wrapper in wrappers:
        eaters = wrapper.config.get('eater', {})
        for eaterName in eaters:
            for feedId, eaterAlias in eaters[eaterName]:
                compName, feederName = common.parseFeedId(feedId)
                read, write = os.pipe()
                log.debug('launch', '%s: read from fd %d, write to fd %d',
                          feedId, read, write)
                start = starter(wrappersByName[compName], feederName, write)
                fds[feedId] = (read, start)
    return fds