def do(self): usageMessage = containerizer_pb2.Usage() usageMessage.ParseFromString(ComminicationUtils.receive(self.log)) containerId = usageMessage.container_id.value resourceStatisticsMessage = mesos_pb2.ResourceStatistics() resourceStatisticsMessage.timestamp = time.time() ComminicationUtils.send(resourceStatisticsMessage.SerializeToString()) return
def do(self): containersCommand = ['lxc-ls', '--active', '-1'] containersMessage = containerizer_pb2.Containers() self.log.debug(containersCommand) output = subprocess.check_output(containersCommand) self.log.debug("Running containers: %s" % output) for line in output.splitlines(): if len(line) > 0: container = containersMessage.containers.add() container.value = line ComminicationUtils.send(containersMessage.SerializeToString())
def do(self): waitMessage = containerizer_pb2.Wait() waitMessage.ParseFromString(ComminicationUtils.receive(self.log)) containerId = waitMessage.container_id.value self.log.debug("Waiting for EOL of container with ID: %s" % containerId) pidFilePath = "%s%s.pid" % (self.config['tmp_path'], containerId) self.log.debug("EX PID file: %s" % pidFilePath) self.waitPID(int(PIDLockFile(pidFilePath).read_pid())) DestroyArgument.destroy_container(containerId) terminationMessage = containerizer_pb2.Termination() terminationMessage.killed = False terminationMessage.message = "" terminationMessage.status = 0 ComminicationUtils.send(terminationMessage.SerializeToString())