This file is indexed.

/usr/share/pyshared/debpartial_mirror/Controller.py is in debpartial-mirror 0.3.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
from debpartial_mirror import Backend


class Controller:
	def __init__(self, configuration, mirrorNames):
		self._mirrors = []
		self._merges = []
		cnf_mirrors, cnf_merges = configuration.get_backends()

		def useBackend(backend):
			if not mirrorNames:
				return True
			return backend.section in mirrorNames

		for b in cnf_mirrors:
			if useBackend(b):
				self._mirrors.append(Backend.MirrorBackend(b.section, configuration))

		for b in cnf_merges:
			if useBackend(b):
				self._merges.append(Backend.MergeBackend(b.section, configuration))

		self._commands = {
			"all" : self.doAll,
			"update" : self.doUpdate,
			"upgrade" : self.doUpgrade,
			"merge" : self.doMerge,
			"clean" : self.doClean,
		}
	def isValidCommand(self, commandName):
		return commandName in self._commands

	def executeCommand(self, commandName):
		self._commands.get(commandName)()

	def doAll(self):
		self._update()
		if self._load():
			self._process()
			self._upgrade()
			self._merge()
			self._clean()

	def doUpdate(self):
		self._update()

	def doUpgrade(self):
		if self._load():
			self._process()
			self._upgrade()

	def doMerge(self):
		if self._load():
			self._process()
			self._merge()

	def doClean(self):
		if self._load():
			self._clean()

	def _update(self):
		for b in self._mirrors:
			if b.has_key('lock') and b['lock']:
				print "Skipping backend", b._name
			else:
				print "Updating backend", b._name
				b.update()

	def _load(self):
		for b in self._mirrors:
			print "Loading backend", b._name
			if not b.load():
				return False
		return True

	def _process(self):
		for b in self._mirrors:
			print "Processing backend", b._name
			b.process()

	def _upgrade(self):
		for b in self._mirrors:
			if b.has_key('lock') and b['lock']:
				print "Skipping backend", b._name
			else:
				print "Upgrading backend", b._name
				b.upgrade()

	def _clean(self):
		for b in self._mirrors + self._merges:
			if b.has_key('lock') and b['lock']:
				print "Skipping backend", b._name
			else:
				print "Clean backend", b._name
				b.clean()

	def _merge(self):
		for b in self._merges:
			print "Merging backend", b._name
			b.merge()