Exemple #1
0
    def __addReplicateActions(self, menu, link):
        c = Connector()
        try:
            allVolumes = set(c.lookupRev(self.rev()))
            if isinstance(link, connector.DocLink):
                lookup = c.lookupDoc(link.doc())
                curVolumes = set(lookup.stores())
                try:
                    for rev in lookup.revs():
                        curVolumes = curVolumes & set(
                            c.lookupRev(rev, curVolumes))
                except IOError:
                    curVolumes = set()
            else:
                curVolumes = set(c.lookupRev(link.rev()))
        except IOError:
            return

        if not curVolumes:
            return

        srcVol = list(curVolumes)[0]
        repVolumes = allVolumes - curVolumes
        for store in repVolumes:
            name = struct.readTitle(connector.DocLink(store, store),
                                    "Unknown store")
            action = menu.addAction("Replicate item to '%s'" % name)
            action.triggered.connect(
                lambda x, l=link, s=store: self.__doReplicate(srcVol, l, s))
Exemple #2
0
	def __addReplicateActions(self, menu, link):
		c = Connector()
		try:
			allVolumes = set(c.lookupRev(self.rev()))
			if isinstance(link, connector.DocLink):
				lookup = c.lookupDoc(link.doc())
				curVolumes = set(lookup.stores())
				try:
					for rev in lookup.revs():
						curVolumes = curVolumes & set(c.lookupRev(rev, curVolumes))
				except IOError:
					curVolumes = set()
			else:
				curVolumes = set(c.lookupRev(link.rev()))
		except IOError:
			return

		if not curVolumes:
			return

		srcVol = list(curVolumes)[0]
		repVolumes = allVolumes - curVolumes
		for store in repVolumes:
			name = struct.readTitle(connector.DocLink(store, store), "Unknown store")
			action = menu.addAction("Replicate item to '%s'" % name)
			action.triggered.connect(
				lambda x,l=link,s=store: self.__doReplicate(srcVol, l, s))
Exemple #3
0
	def __addReplicateActions(self, menu, link):
		c = Connector()
		try:
			allVolumes = set(c.lookupRev(self.rev()))
			if isinstance(link, struct.DocLink):
				lookup = c.lookupDoc(link.doc())
				curVolumes = set(lookup.stores())
				try:
					for rev in lookup.revs():
						curVolumes = curVolumes & set(c.lookupRev(rev, curVolumes))
				except IOError:
					curVolumes = set()
			else:
				curVolumes = set(c.lookupRev(link.rev()))
		except IOError:
			return

		if not curVolumes:
			return

		srcVol = list(curVolumes)[0]
		repVolumes = allVolumes - curVolumes
		for store in repVolumes:
			try:
				rev = c.lookupDoc(store).rev(store)
				with c.peek(rev) as r:
					metaData = struct.loads(r.readAll('META'))
					try:
						name = metaData["org.peerdrive.annotation"]["title"]
					except:
						name = "Unknown store"
					action = menu.addAction("Replicate item to '%s'" % name)
					action.triggered.connect(
						lambda x,l=link,s=store: self.__doReplicate(srcVol, l, s))
			except:
				pass