Files
zuul/zuul/driver/nullwrap/__init__.py
Tobias Henkel 5a4db84e5a Log cpu times of ansible executions
We need to be able to compare and discover ansible performance
regressions or improvements of ansible. Currently we have no way of
detecting changes there other than observing the overall system load
of executors. One way to get some metrics is to log the cpu times used
by individual ansible runs and the sum of them over the whole job
execution. With this one could grab that data from the log and analyse
them.

Change-Id: Ib0b62299c741533f0d1615f67eced9601498f00d
2018-07-14 10:32:06 +02:00

48 lines
1.8 KiB
Python

# Copyright 2012 Hewlett-Packard Development Company, L.P.
# Copyright 2013 OpenStack Foundation
# Copyright 2016 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import logging
import psutil
from zuul.driver import (Driver, WrapperInterface)
from zuul.execution_context import BaseExecutionContext
class NullExecutionContext(BaseExecutionContext):
log = logging.getLogger("zuul.NullExecutionContext")
def getPopen(self, **kwargs):
return psutil.Popen
class NullwrapDriver(Driver, WrapperInterface):
name = 'nullwrap'
log = logging.getLogger("zuul.NullwrapDriver")
def getExecutionContext(self, ro_paths=None, rw_paths=None, secrets=None):
# The bubblewrap driver writes secrets to a tmpfs so that they
# don't hit the disk (unless the kernel swaps the memory to
# disk, which can be mitigated with encrypted swap). We
# haven't implemented similar functionality in nullwrap, so
# for safety, raise an exception in that case. If you are
# interested in implementing this functionality, please
# contact us on the mailing list.
if secrets:
raise NotImplementedError(
"The nullwrap driver does not support the use of secrets. "
"Consider using the bubblewrap driver instead.")
return NullExecutionContext()