Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/DIRAC/AccountingSystem/Agent/NetworkAgent.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from DIRAC.AccountingSystem.Client.Types.Network import Network
from DIRAC.ConfigurationSystem.Client.Config import gConfig
from DIRAC.ConfigurationSystem.Client.CSAPI import CSAPI
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.Resources.MessageQueue.MQCommunication import createConsumer


Expand Down Expand Up @@ -165,7 +166,7 @@ def processMessage(self, headers, body):
timestamps = sorted(body["datapoints"])
for timestamp in timestamps:
try:
date = datetime.utcfromtimestamp(float(timestamp))
date = DiracTime.utcfromtimestamp(float(timestamp))

# create a key that allows to join packet-loss-rate and one-way-delay
# metrics in one network accounting record
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
""" Within this module is defined the class from which all other accounting types are defined
"""

from DIRAC.Core.Utilities.TimeUtilities import DiracTime
import datetime

from DIRAC import S_OK, S_ERROR
Expand Down Expand Up @@ -55,7 +56,7 @@ def setStartTime(self, startTime=False):
By default use now
"""
if not startTime:
self.startTime = datetime.datetime.utcnow()
self.startTime = DiracTime.utcnow()
else:
self.startTime = startTime

Expand All @@ -65,15 +66,15 @@ def setEndTime(self, endTime=False):
By default use now
"""
if not endTime:
self.endTime = datetime.datetime.utcnow()
self.endTime = DiracTime.utcnow()
else:
self.endTime = endTime

def setNowAsStartAndEndTime(self):
"""
Set current time as start and end time of the report
"""
self.startTime = datetime.datetime.utcnow()
self.startTime = DiracTime.utcnow()
self.endTime = self.startTime

def setValueByKey(self, key, value):
Expand Down
5 changes: 3 additions & 2 deletions src/DIRAC/AccountingSystem/DB/AccountingDB.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from DIRAC.Core.Utilities import DEncode, List, ThreadSafe, TimeUtilities
from DIRAC.Core.Utilities.Plotting.TypeLoader import TypeLoader
from DIRAC.Core.Utilities.ThreadPool import ThreadPool
from DIRAC.Core.Utilities.TimeUtilities import DiracTime

gSynchro = ThreadSafe.Synchronizer()

Expand Down Expand Up @@ -50,7 +51,7 @@ def __init__(self, name="Accounting/AccountingDB", readOnly=False, parentLogger=
minute=random.randint(0, 59), # nosec B311
second=random.randint(0, 59), # nosec B311
)
lcd = datetime.datetime.utcnow()
lcd = DiracTime.utcnow()
lcd.replace(hour=self.__compactTime.hour + 1, minute=0, second=0)
self.__lastCompactionEpoch = TimeUtilities.toEpoch(lcd)
self.__registerTypes()
Expand All @@ -69,7 +70,7 @@ def autoCompactDB(self):

def __periodicAutoCompactDB(self):
while self.autoCompact:
nct = datetime.datetime.utcnow()
nct = DiracTime.utcnow()
if nct.hour >= self.__compactTime.hour:
nct = nct + datetime.timedelta(days=1)
nct = nct.replace(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from DIRAC.AccountingSystem.private.Policies import gPoliciesList
from DIRAC.Core.Utilities.Plotting.Plots import generateErrorMessagePlot
from DIRAC.Core.Utilities.Plotting.FileCoding import extractRequestFromFileId
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.ConfigurationSystem.Client import PathFinder
from DIRAC.Core.DISET.RequestHandler import RequestHandler

Expand Down Expand Up @@ -76,13 +77,13 @@ def __checkPlotRequest(self, reportRequest):
return S_ERROR("Value Error")
if lastSeconds < 3600:
return S_ERROR("lastSeconds must be more than 3600")
now = datetime.datetime.utcnow()
now = DiracTime.utcnow()
reportRequest["endTime"] = now
reportRequest["startTime"] = now - datetime.timedelta(seconds=lastSeconds)
else:
# if enddate is not there, just set it to now
if not reportRequest.get("endTime", False):
reportRequest["endTime"] = datetime.datetime.utcnow()
reportRequest["endTime"] = DiracTime.utcnow()
# Check keys
for key, keyType in self.__reportRequestDict.items():
if key not in reportRequest:
Expand Down
4 changes: 2 additions & 2 deletions src/DIRAC/ConfigurationSystem/Client/CSAPI.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from DIRAC.Core.Security import Locations
from DIRAC.Core.Security.X509Chain import X509Chain # pylint: disable=import-error
from DIRAC.Core.Utilities import List
from DIRAC.Core.Utilities.TimeUtilities import DiracTime


class CSAPI:
Expand Down Expand Up @@ -103,8 +104,7 @@ def initialize(self):
self.__rpcClient = ConfigurationClient(url=gConfig.getValue("/DIRAC/Configuration/MasterServer", ""))
self.__csMod = Modificator(
self.__rpcClient,
"%s - %s - %s"
% (self.__userGroup, self.__userDN, datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")),
f"{self.__userGroup} - {self.__userDN} - {DiracTime.utcnow().strftime('%Y-%m-%d %H:%M:%S')}",
)
retVal = self.downloadCSData()
if not retVal["OK"]:
Expand Down
5 changes: 3 additions & 2 deletions src/DIRAC/ConfigurationSystem/private/ConfigurationData.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from DIRAC.Core.Utilities import List
from DIRAC.Core.Utilities.ReturnValues import S_OK, S_ERROR
from DIRAC.Core.Utilities.LockRing import LockRing
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.FrameworkSystem.Client.Logger import gLogger


Expand Down Expand Up @@ -201,7 +202,7 @@ def deleteOptionInCFG(self, path, cfg=False):
self.sync()

def generateNewVersion(self):
self.setVersion(str(datetime.datetime.utcnow()))
self.setVersion(str(DiracTime.utcnow()))
self.sync()
gLogger.info(f"Generated new version {self.getVersion()}")

Expand Down Expand Up @@ -326,7 +327,7 @@ def dumpRemoteCFGToFile(self, fileName):
def __backupCurrentConfiguration(self, backupName):
configurationFilename = f"{self.getName()}.cfg"
configurationFile = os.path.join(DIRAC.rootPath, "etc", configurationFilename)
today = datetime.datetime.utcnow().date()
today = DiracTime.utcnow().date()
backupPath = os.path.join(self.getBackupDir(), str(today.year), "%02d" % today.month)
mkDir(backupPath)
backupFile = os.path.join(backupPath, configurationFilename.replace(".cfg", f".{backupName}.zip"))
Expand Down
3 changes: 2 additions & 1 deletion src/DIRAC/ConfigurationSystem/private/Modificator.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from DIRAC.ConfigurationSystem.Client.ConfigurationData import gConfigurationData
from DIRAC.Core.Security.ProxyInfo import getProxyInfo
from DIRAC.Core.Utilities import List
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.FrameworkSystem.Utilities.diracx import diracxVerifyConfig


Expand All @@ -29,7 +30,7 @@ def loadCredentials(self):
self.commiterId = "{}@{} - {}".format(
credDict["username"],
credDict["group"],
datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"),
DiracTime.utcnow().strftime("%Y-%m-%d %H:%M:%S"),
)
return retVal
return retVal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from DIRAC import gLogger, exit as DIRACExit
from DIRAC.Core.Base.Script import Script
from DIRAC.Core.Security.ProxyInfo import getProxyInfo
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.ConfigurationSystem.Client.Helpers.Registry import getPropertiesForGroup
from DIRAC.ConfigurationSystem.Client.CSAPI import CSAPI

Expand Down Expand Up @@ -112,7 +113,7 @@ def main():
gLogger.notice("Nothing to do, site names are already sorted")
DIRACExit(0)

timestamp = str(datetime.utcnow())
timestamp = str(DiracTime.utcnow())
stamp = f"Site names are sorted by {Script.scriptName} script at {timestamp}"
cs.setOptionComment("/Resources/Sites", stamp)

Expand Down
3 changes: 2 additions & 1 deletion src/DIRAC/Core/Base/AgentModule.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from DIRAC.Core.Utilities.ReturnValues import isReturnStructure
from DIRAC.Core.Utilities.Shifter import setupShifterProxyInEnv
from DIRAC.Core.Utilities.ThreadScheduler import gThreadScheduler
from DIRAC.Core.Utilities.TimeUtilities import DiracTime


class AgentModule:
Expand Down Expand Up @@ -233,7 +234,7 @@ def am_checkStopAgentFile(self):
def am_createStopAgentFile(self):
try:
with open(self.am_getStopAgentFile(), "w") as fd:
fd.write(f"Dirac site agent Stopped at {str(datetime.datetime.utcnow())}")
fd.write(f"Dirac site agent Stopped at {str(DiracTime.utcnow())}")
except Exception as err:
self.log.info(f"Failed to write stop file: {str(err)}")

Expand Down
3 changes: 2 additions & 1 deletion src/DIRAC/Core/DISET/MessageClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from DIRAC.Core.DISET.private.BaseClient import BaseClient
from DIRAC.Core.DISET.private.MessageBroker import getGlobalMessageBroker
from DIRAC.Core.Utilities.ReturnValues import S_OK, S_ERROR, isReturnStructure
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.Core.Utilities import Network
from DIRAC.FrameworkSystem.Client.Logger import gLogger

Expand All @@ -29,7 +30,7 @@ def _initialize(self):

def __generateUniqueClientName(self):
hashStr = ":".join(
(str(datetime.datetime.utcnow()), str(random.random()), Network.getFQDN(), gLogger.getName()) # nosec B311
(str(DiracTime.utcnow()), str(random.random()), Network.getFQDN(), gLogger.getName()) # nosec B311
)
hexHash = md5(hashStr.encode(), usedforsecurity=False).hexdigest()
return hexHash
Expand Down
5 changes: 3 additions & 2 deletions src/DIRAC/Core/DISET/RequestHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from DIRAC.Core.DISET.private.FileHelper import FileHelper
from DIRAC.Core.Utilities.ReturnValues import S_OK, S_ERROR, isReturnStructure
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.ConfigurationSystem.Client.Config import gConfig
from DIRAC.FrameworkSystem.Client.Logger import gLogger
from DIRAC.Core.Security.Properties import CS_ADMINISTRATOR
Expand Down Expand Up @@ -494,12 +495,12 @@ def __logRemoteQueryResponse(self, retVal, elapsedTime):
def export_ping(self):
dInfo = {}
dInfo["version"] = DIRAC.version
dInfo["time"] = datetime.datetime.utcnow()
dInfo["time"] = DiracTime.utcnow()
# Uptime
dInfo["host uptime"] = int(time.time() - psutil.boot_time())
startTime = self.serviceInfoDict["serviceStartTime"]
dInfo["service start time"] = self.serviceInfoDict["serviceStartTime"]
serviceUptime = datetime.datetime.utcnow() - startTime
serviceUptime = DiracTime.utcnow() - startTime
dInfo["service uptime"] = int(serviceUptime.total_seconds())
# Load average
dInfo["load"] = " ".join([str(lx) for lx in os.getloadavg()])
Expand Down
3 changes: 2 additions & 1 deletion src/DIRAC/Core/DISET/ServiceReactor.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from DIRAC.Core.DISET.private.GatewayService import GatewayService
from DIRAC.Core.Base.private.ModuleLoader import ModuleLoader
from DIRAC.Core.DISET.private.Protocols import gProtocolDict
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.ConfigurationSystem.Client.Helpers import Registry
from DIRAC.ConfigurationSystem.Client import PathFinder

Expand Down Expand Up @@ -260,7 +261,7 @@ class ReactorStats:
def __init__(self):
self.__connections = 0
self.__established = 0
self.__startTime = datetime.datetime.utcnow()
self.__startTime = DiracTime.utcnow()

def connectionStablished(self):
self.__connections += 1
3 changes: 2 additions & 1 deletion src/DIRAC/Core/DISET/private/Service.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
from DIRAC.Core.Utilities.DErrno import ENOAUTH
from DIRAC.Core.Utilities.ReturnValues import isReturnStructure
from DIRAC.Core.Utilities.ThreadScheduler import gThreadScheduler
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.FrameworkSystem.Client.SecurityLogClient import SecurityLogClient


Expand All @@ -50,7 +51,7 @@ def __init__(self, serviceData):
"""
self._svcData = serviceData
self._name = serviceData["modName"]
self._startTime = datetime.datetime.utcnow()
self._startTime = DiracTime.utcnow()
self._validNames = [serviceData["modName"]]
if serviceData["loadName"] not in self._validNames:
self._validNames.append(serviceData["loadName"])
Expand Down
3 changes: 2 additions & 1 deletion src/DIRAC/Core/LCG/GOCDBClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

from DIRAC import S_ERROR, S_OK, gLogger
from DIRAC.Core.Security.Locations import getCAsLocation
from DIRAC.Core.Utilities.TimeUtilities import DiracTime


def _parseSingleElement(element, attributes=None):
Expand Down Expand Up @@ -109,7 +110,7 @@ def getStatus(self, granularity, name=None, startDate=None, startingInHours=None
startDateMax = None

if startingInHours is not None:
startDate = datetime.utcnow()
startDate = DiracTime.utcnow()
startDateMax = startDate + timedelta(hours=startingInHours)

if startDate is not None:
Expand Down
7 changes: 4 additions & 3 deletions src/DIRAC/Core/Security/VOMS.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from DIRAC.Core.Security.ProxyFile import multiProxyArgument, deleteMultiProxy
from DIRAC.Core.Security.X509Chain import X509Chain # pylint: disable=import-error
from DIRAC.Core.Utilities.Subprocess import systemCall
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.Core.Utilities import List

# This is a variable so it can be monkeypatched in tests
Expand Down Expand Up @@ -167,11 +168,11 @@ def getVOMSProxyInfo(self, proxy, option=False):
data = res["Value"]

if option == "actimeleft":
now = datetime.utcnow()
now = DiracTime.utcnow()
left = data["notAfter"] - now
return S_OK("%d\n" % left.total_seconds())
if option == "timeleft":
now = datetime.utcnow()
now = DiracTime.utcnow()
left = proxyDict["chain"].getNotAfterDate()["Value"] - now
return S_OK("%d\n" % left.total_seconds())
if option == "identity":
Expand Down Expand Up @@ -206,7 +207,7 @@ def getVOMSProxyInfo(self, proxy, option=False):
lines.append(f"attribute : {fqan}")
if "attribute" in data:
lines.append(f"attribute : {data['attribute']}")
now = datetime.utcnow()
now = DiracTime.utcnow()
left = (data["notAfter"] - now).total_seconds()
h = int(left / 3600)
m = int(left / 60) - h * 60
Expand Down
5 changes: 3 additions & 2 deletions src/DIRAC/Core/Security/m2crypto/X509Certificate.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from DIRAC.ConfigurationSystem.Client.Helpers import Registry
from DIRAC.Core.Security.m2crypto import asn1_utils, DEFAULT_PROXY_STRENGTH
from DIRAC.Core.Utilities.Decorators import executeOnlyIf
from DIRAC.Core.Utilities.TimeUtilities import DiracTime

# Decorator to execute the method only of the certificate has been loaded
executeOnlyIfCertLoaded = executeOnlyIf("_certLoaded", S_ERROR(DErrno.ENOCERT))
Expand Down Expand Up @@ -201,7 +202,7 @@ def hasExpired(self):
return res

notAfter = res["Value"]
now = datetime.datetime.utcnow()
now = DiracTime.utcnow()

return S_OK(notAfter < now)

Expand Down Expand Up @@ -440,7 +441,7 @@ def getRemainingSecs(self):
:returns: S_OK(remaining seconds)
"""
notAfter = self.getNotAfterDate()["Value"]
now = datetime.datetime.utcnow()
now = DiracTime.utcnow()
remainingSeconds = max(0, int((notAfter - now).total_seconds()))

return S_OK(remainingSeconds)
Expand Down
5 changes: 3 additions & 2 deletions src/DIRAC/Core/Tornado/Server/TornadoService.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

from DIRAC import gLogger, S_OK
from DIRAC.Core.Tornado.Server.private.BaseRequestHandler import BaseRequestHandler
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.ConfigurationSystem.Client import PathFinder


Expand Down Expand Up @@ -182,7 +183,7 @@ def export_ping(self):
# COPY FROM DIRAC.Core.DISET.RequestHandler
dInfo = {}
dInfo["version"] = DIRAC.version
dInfo["time"] = datetime.utcnow()
dInfo["time"] = DiracTime.utcnow()
# Uptime
try:
with open("/proc/uptime") as oFD:
Expand All @@ -192,7 +193,7 @@ def export_ping(self):
pass # nosec B110
startTime = self._startTime
dInfo["service start time"] = self._startTime
serviceUptime = datetime.utcnow() - startTime
serviceUptime = DiracTime.utcnow() - startTime
dInfo["service uptime"] = int(serviceUptime.total_seconds())
# Load average
try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from DIRAC.Core.Utilities.JEncode import decode, encode
from DIRAC.Core.Utilities import Network, TimeUtilities
from DIRAC.Core.Utilities.ReturnValues import isReturnStructure
from DIRAC.Core.Utilities.TimeUtilities import DiracTime
from DIRAC.Core.Security.X509Chain import X509Chain # pylint: disable=import-error
from DIRAC.Resources.IdProvider.Utilities import getIdProviderIdentifiers
from DIRAC.Resources.IdProvider.IdProviderFactory import IdProviderFactory
Expand Down Expand Up @@ -441,7 +442,7 @@ def __initialize(cls, request):
absoluteUrl = request.full_url()

# The time at which the handler was initialized
cls._startTime = datetime.utcnow()
cls._startTime = DiracTime.utcnow()
cls.log.info("Initializing method for first use", f"{cls._fullComponentName}, initializing..")

# component monitoring initialization
Expand Down
Loading
Loading