From 9b4990c0b7a30d73c4d6a095fda0329d0fde5662 Mon Sep 17 00:00:00 2001 From: Simon Mazenoux Date: Tue, 12 Sep 2023 16:18:13 +0200 Subject: [PATCH] feat: implement kill, delete and remove endpoints --- f.txt | 3550 ++++++++++++++++++++ run_local.sh | 2 + setup.cfg | 1 + src/diracx/cli/internal.py | 4 +- src/diracx/core/config/schema.py | 7 +- src/diracx/core/models.py | 2 +- src/diracx/db/__init__.py | 4 +- src/diracx/db/jobs/db.py | 337 ++ src/diracx/db/jobs/schema.py | 158 +- src/diracx/db/jobs/status_utility.py | 198 +- src/diracx/db/sandbox_metadata/db.py | 17 +- src/diracx/db/utils.py | 3 + src/diracx/routers/dependencies.py | 8 + src/diracx/routers/job_manager/__init__.py | 188 +- tests/conftest.py | 2 + tests/routers/test_job_manager.py | 57 + 16 files changed, 4500 insertions(+), 38 deletions(-) create mode 100644 f.txt diff --git a/f.txt b/f.txt new file mode 100644 index 000000000..25ded20f3 --- /dev/null +++ b/f.txt @@ -0,0 +1,3550 @@ +============================= test session starts ============================== +platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 -- /home/simon/mambaforge/envs/diracx-dev/bin/python3.11 +cachedir: .pytest_cache +rootdir: /home/simon/CERN/diracx +configfile: pyproject.toml +plugins: Faker-17.0.0, anyio-3.7.0, asyncio-0.21.0, cov-4.1.0, httpx-0.22.0, sugar-0.9.7 +asyncio: mode=Mode.AUTO +collecting ... collected 25 items / 24 deselected / 1 selected + +tests/routers/test_job_manager.py::test_remove_job FAILED [100%] + +=================================== FAILURES =================================== +_______________________________ test_remove_job ________________________________ + +normal_user_client = + + def test_remove_job(normal_user_client: TestClient): + # Arrange + job_definitions = [TEST_JDL] + r = normal_user_client.post("/jobs/", json=job_definitions) + assert r.status_code == 200, r.json() + assert len(r.json()) == 1 + job_id = r.json()[0]["JobID"] + + # Act + r = normal_user_client.post(f"/jobs/{job_id}/remove") + + # Assert + assert r.status_code == 200, r.json() + r = normal_user_client.get(f"/jobs/{job_id}/status") +> assert r.status_code == 404, r.json() +E AssertionError: {'1': {'ApplicationStatus': 'Unknown', 'MinorStatus': 'Job accepted', 'Status': 'Received'}} +E assert 200 == 404 +E + where 200 = .status_code + +tests/routers/test_job_manager.py:648: AssertionError +---------------------------- Captured stdout setup ----------------------------- +2023-09-12 15:52:40,999 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,000 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("DeviceFlows") +2023-09-12 15:52:41,001 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,002 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,002 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("LoggingInfo") +2023-09-12 15:52:41,003 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,005 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,006 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("Jobs") +2023-09-12 15:52:41,007 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,007 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,008 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("sb_Owners") +2023-09-12 15:52:41,008 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,009 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,010 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TaskQueues") +2023-09-12 15:52:41,010 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,018 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("DeviceFlows") +2023-09-12 15:52:41,019 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,021 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("LoggingInfo") +2023-09-12 15:52:41,021 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,021 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("sb_Owners") +2023-09-12 15:52:41,022 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,022 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TaskQueues") +2023-09-12 15:52:41,022 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,027 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("Jobs") +2023-09-12 15:52:41,028 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,031 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("AuthorizationFlows") +2023-09-12 15:52:41,032 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,034 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_Jobs") +2023-09-12 15:52:41,034 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,038 INFO sqlalchemy.engine.Engine +CREATE TABLE "LoggingInfo" ( + "JobID" INTEGER NOT NULL, + "SeqNum" INTEGER NOT NULL, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "StatusTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "StatusTimeOrder" NUMERIC(12, 3) NOT NULL, + "StatusSource" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "SeqNum") +) + + +2023-09-12 15:52:41,038 INFO sqlalchemy.engine.Engine [no key 0.00027s] () +2023-09-12 15:52:41,039 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("sb_SandBoxes") +2023-09-12 15:52:41,039 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,040 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("JobJDLs") +2023-09-12 15:52:41,041 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,048 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_Jobs") +2023-09-12 15:52:41,049 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,049 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("AuthorizationFlows") +2023-09-12 15:52:41,049 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,051 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:41,056 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("sb_SandBoxes") +2023-09-12 15:52:41,057 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,058 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("JobJDLs") +2023-09-12 15:52:41,058 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,062 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("RefreshTokens") +2023-09-12 15:52:41,062 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,063 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToSites") +2023-09-12 15:52:41,063 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,067 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("sb_EntityMapping") +2023-09-12 15:52:41,067 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,070 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToSites") +2023-09-12 15:52:41,071 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,072 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("RefreshTokens") +2023-09-12 15:52:41,072 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,073 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("InputData") +2023-09-12 15:52:41,073 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,077 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("sb_EntityMapping") +2023-09-12 15:52:41,077 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,080 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("InputData") +2023-09-12 15:52:41,081 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,083 INFO sqlalchemy.engine.Engine +CREATE TABLE "DeviceFlows" ( + user_code VARCHAR(8) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + client_id VARCHAR(255) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + device_code VARCHAR(128) NOT NULL, + id_token JSON, + PRIMARY KEY (user_code), + UNIQUE (device_code) +) + + +2023-09-12 15:52:41,083 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,085 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToGridCEs") +2023-09-12 15:52:41,085 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,086 INFO sqlalchemy.engine.Engine +CREATE TABLE "sb_Owners" ( + "OwnerID" INTEGER NOT NULL, + "Owner" VARCHAR(32) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + PRIMARY KEY ("OwnerID") +) + + +2023-09-12 15:52:41,086 INFO sqlalchemy.engine.Engine [no key 0.00029s] () +2023-09-12 15:52:41,088 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("JobParameters") +2023-09-12 15:52:41,089 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,090 INFO sqlalchemy.engine.Engine +CREATE TABLE "AuthorizationFlows" ( + uuid CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + client_id VARCHAR(255) NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + code_challenge VARCHAR(255) NOT NULL, + code_challenge_method VARCHAR(8) NOT NULL, + redirect_uri VARCHAR(255) NOT NULL, + code VARCHAR(255), + id_token JSON, + PRIMARY KEY (uuid) +) + + +2023-09-12 15:52:41,090 INFO sqlalchemy.engine.Engine [no key 0.00018s] () +2023-09-12 15:52:41,093 INFO sqlalchemy.engine.Engine +CREATE TABLE "sb_SandBoxes" ( + "SBId" INTEGER NOT NULL, + "OwnerId" INTEGER NOT NULL, + "SEName" VARCHAR(64) NOT NULL, + "SEPFN" VARCHAR(512) NOT NULL, + "Bytes" BIGINT NOT NULL, + "RegistrationTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "LastAccessTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "Assigned" BOOLEAN NOT NULL, + PRIMARY KEY ("SBId"), + CONSTRAINT "Location" UNIQUE ("SEName", "SEPFN") +) + + +2023-09-12 15:52:41,093 INFO sqlalchemy.engine.Engine [no key 0.00019s] () +2023-09-12 15:52:41,095 INFO sqlalchemy.engine.Engine +CREATE TABLE "RefreshTokens" ( + jti CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'CREATED' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + sub VARCHAR(1024) NOT NULL, + preferred_username VARCHAR(255) NOT NULL, + PRIMARY KEY (jti) +) + + +2023-09-12 15:52:41,095 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,097 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToGridCEs") +2023-09-12 15:52:41,097 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,098 INFO sqlalchemy.engine.Engine CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId") +2023-09-12 15:52:41,099 INFO sqlalchemy.engine.Engine [no key 0.00041s] () +2023-09-12 15:52:41,099 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("JobParameters") +2023-09-12 15:52:41,100 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,102 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:41,105 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToBannedSites") +2023-09-12 15:52:41,105 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,105 INFO sqlalchemy.engine.Engine +CREATE TABLE "sb_EntityMapping" ( + "SBId" INTEGER NOT NULL, + "EntityId" VARCHAR(128) NOT NULL, + "Type" VARCHAR(64) NOT NULL, + PRIMARY KEY ("SBId", "EntityId", "Type"), + CONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type") +) + + +2023-09-12 15:52:41,105 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,106 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("OptimizerParameters") +2023-09-12 15:52:41,106 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,109 INFO sqlalchemy.engine.Engine CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId") +2023-09-12 15:52:41,109 INFO sqlalchemy.engine.Engine [no key 0.00020s] () +2023-09-12 15:52:41,110 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("OptimizerParameters") +2023-09-12 15:52:41,110 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,112 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToBannedSites") +2023-09-12 15:52:41,112 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,113 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:41,115 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToPlatforms") +2023-09-12 15:52:41,116 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,116 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("AtticJobParameters") +2023-09-12 15:52:41,117 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,118 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToPlatforms") +2023-09-12 15:52:41,118 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,120 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("AtticJobParameters") +2023-09-12 15:52:41,120 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,121 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToJobTypes") +2023-09-12 15:52:41,122 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,123 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("SiteMask") +2023-09-12 15:52:41,123 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,125 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToJobTypes") +2023-09-12 15:52:41,125 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,127 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("SiteMask") +2023-09-12 15:52:41,127 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,128 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tq_TQToTags") +2023-09-12 15:52:41,128 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,130 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("SiteMaskLogging") +2023-09-12 15:52:41,130 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,132 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("tq_TQToTags") +2023-09-12 15:52:41,132 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,133 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("SiteMaskLogging") +2023-09-12 15:52:41,133 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,135 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TaskQueues" ( + "TQId" INTEGER NOT NULL, + "Owner" VARCHAR(255) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + "VO" VARCHAR(32) NOT NULL, + "CPUTime" BIGINT NOT NULL, + "Priority" FLOAT NOT NULL, + "Enabled" BOOLEAN NOT NULL, + PRIMARY KEY ("TQId") +) + + +2023-09-12 15:52:41,135 INFO sqlalchemy.engine.Engine [no key 0.00017s] () +2023-09-12 15:52:41,138 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("HeartBeatLoggingInfo") +2023-09-12 15:52:41,138 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,139 INFO sqlalchemy.engine.Engine CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime") +2023-09-12 15:52:41,139 INFO sqlalchemy.engine.Engine [no key 0.00027s] () +2023-09-12 15:52:41,142 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_Jobs" ( + "TQId" INTEGER NOT NULL, + "JobId" INTEGER NOT NULL, + "Priority" INTEGER NOT NULL, + "RealPriority" FLOAT NOT NULL, + PRIMARY KEY ("TQId", "JobId"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,142 INFO sqlalchemy.engine.Engine [no key 0.00046s] () +2023-09-12 15:52:41,142 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("HeartBeatLoggingInfo") +2023-09-12 15:52:41,143 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,145 INFO sqlalchemy.engine.Engine CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId") +2023-09-12 15:52:41,145 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,146 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("JobCommands") +2023-09-12 15:52:41,146 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,149 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,149 INFO sqlalchemy.engine.Engine [no key 0.00018s] () +2023-09-12 15:52:41,149 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("JobCommands") +2023-09-12 15:52:41,149 INFO sqlalchemy.engine.Engine [raw sql] () +2023-09-12 15:52:41,152 INFO sqlalchemy.engine.Engine CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value") +2023-09-12 15:52:41,152 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,153 INFO sqlalchemy.engine.Engine +CREATE TABLE "JobJDLs" ( + "JobID" INTEGER NOT NULL, + "JDL" TEXT NOT NULL, + "JobRequirements" TEXT NOT NULL, + "OriginalJDL" TEXT NOT NULL, + PRIMARY KEY ("JobID") +) + + +2023-09-12 15:52:41,153 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,156 INFO sqlalchemy.engine.Engine CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId") +2023-09-12 15:52:41,156 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,157 INFO sqlalchemy.engine.Engine +CREATE TABLE "SiteMask" ( + "Site" VARCHAR(64) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "LastUpdateTime" DATETIME NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site") +) + + +2023-09-12 15:52:41,157 INFO sqlalchemy.engine.Engine [no key 0.00020s] () +2023-09-12 15:52:41,160 INFO sqlalchemy.engine.Engine +CREATE TABLE "SiteMaskLogging" ( + "Site" VARCHAR(64) NOT NULL, + "UpdateTime" DATETIME NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site", "UpdateTime") +) + + +2023-09-12 15:52:41,160 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,161 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToGridCEs" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,161 INFO sqlalchemy.engine.Engine [no key 0.00019s] () +2023-09-12 15:52:41,163 INFO sqlalchemy.engine.Engine CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value") +2023-09-12 15:52:41,163 INFO sqlalchemy.engine.Engine [no key 0.00036s] () +2023-09-12 15:52:41,167 INFO sqlalchemy.engine.Engine +CREATE TABLE "Jobs" ( + "JobID" INTEGER NOT NULL, + "JobType" VARCHAR(32) NOT NULL, + "DIRACSetup" VARCHAR(32) NOT NULL, + "JobGroup" VARCHAR(32) NOT NULL, + "JobSplitType" VARCHAR(7) NOT NULL, + "MasterJobID" INTEGER NOT NULL, + "Site" VARCHAR(100) NOT NULL, + "JobName" VARCHAR(128) NOT NULL, + "Owner" VARCHAR(64) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(128) NOT NULL, + "SubmissionTime" DATETIME, + "RescheduleTime" DATETIME, + "LastUpdateTime" DATETIME, + "StartExecTime" DATETIME, + "HeartBeatTime" DATETIME, + "EndExecTime" DATETIME, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "ApplicationNumStatus" INTEGER NOT NULL, + "UserPriority" INTEGER NOT NULL, + "SystemPriority" INTEGER NOT NULL, + "RescheduleCounter" INTEGER NOT NULL, + "VerifiedFlag" VARCHAR(5) NOT NULL, + "DeletedFlag" VARCHAR(5) NOT NULL, + "KilledFlag" VARCHAR(5) NOT NULL, + "FailedFlag" VARCHAR(5) NOT NULL, + "ISandboxReadyFlag" VARCHAR(5) NOT NULL, + "OSandboxReadyFlag" VARCHAR(5) NOT NULL, + "RetrievedFlag" VARCHAR(5) NOT NULL, + "AccountedFlag" VARCHAR(6) NOT NULL, + PRIMARY KEY ("JobID"), + FOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,167 INFO sqlalchemy.engine.Engine [no key 0.00021s] () +2023-09-12 15:52:41,169 INFO sqlalchemy.engine.Engine CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId") +2023-09-12 15:52:41,169 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,170 INFO sqlalchemy.engine.Engine CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime") +2023-09-12 15:52:41,170 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,173 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToBannedSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,173 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,173 INFO sqlalchemy.engine.Engine +CREATE TABLE "InputData" ( + "JobID" INTEGER NOT NULL, + "LFN" VARCHAR(255) NOT NULL, + "Status" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "LFN"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,173 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,176 INFO sqlalchemy.engine.Engine CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId") +2023-09-12 15:52:41,176 INFO sqlalchemy.engine.Engine [no key 0.00018s] () +2023-09-12 15:52:41,177 INFO sqlalchemy.engine.Engine +CREATE TABLE "JobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,177 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,179 INFO sqlalchemy.engine.Engine CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value") +2023-09-12 15:52:41,179 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,180 INFO sqlalchemy.engine.Engine +CREATE TABLE "OptimizerParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,180 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,182 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToPlatforms" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,182 INFO sqlalchemy.engine.Engine [no key 0.00035s] () +2023-09-12 15:52:41,184 INFO sqlalchemy.engine.Engine +CREATE TABLE "AtticJobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "RescheduleCycle" INTEGER NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,185 INFO sqlalchemy.engine.Engine [no key 0.00042s] () +2023-09-12 15:52:41,185 INFO sqlalchemy.engine.Engine CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId") +2023-09-12 15:52:41,185 INFO sqlalchemy.engine.Engine [no key 0.00015s] () +2023-09-12 15:52:41,188 INFO sqlalchemy.engine.Engine +CREATE TABLE "HeartBeatLoggingInfo" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "HeartBeatTime" DATETIME NOT NULL, + PRIMARY KEY ("JobID", "Name", "HeartBeatTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,188 INFO sqlalchemy.engine.Engine [no key 0.00017s] () +2023-09-12 15:52:41,189 INFO sqlalchemy.engine.Engine CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value") +2023-09-12 15:52:41,189 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,192 INFO sqlalchemy.engine.Engine +CREATE TABLE "JobCommands" ( + "JobID" INTEGER NOT NULL, + "Command" VARCHAR(100) NOT NULL, + "Arguments" VARCHAR(100) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "ReceptionTime" DATETIME NOT NULL, + "ExecutionTime" DATETIME, + PRIMARY KEY ("JobID", "ReceptionTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,192 INFO sqlalchemy.engine.Engine [no key 0.00020s] () +2023-09-12 15:52:41,192 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToJobTypes" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,193 INFO sqlalchemy.engine.Engine [no key 0.00015s] () +2023-09-12 15:52:41,195 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:41,196 INFO sqlalchemy.engine.Engine CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value") +2023-09-12 15:52:41,196 INFO sqlalchemy.engine.Engine [no key 0.00018s] () +2023-09-12 15:52:41,198 INFO sqlalchemy.engine.Engine CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId") +2023-09-12 15:52:41,198 INFO sqlalchemy.engine.Engine [no key 0.00015s] () +2023-09-12 15:52:41,200 INFO sqlalchemy.engine.Engine +CREATE TABLE "tq_TQToTags" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,200 INFO sqlalchemy.engine.Engine [no key 0.00016s] () +2023-09-12 15:52:41,202 INFO sqlalchemy.engine.Engine CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value") +2023-09-12 15:52:41,202 INFO sqlalchemy.engine.Engine [no key 0.00015s] () +2023-09-12 15:52:41,203 INFO sqlalchemy.engine.Engine CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId") +2023-09-12 15:52:41,203 INFO sqlalchemy.engine.Engine [no key 0.00015s] () +2023-09-12 15:52:41,205 INFO sqlalchemy.engine.Engine COMMIT +---------------------------- Captured stderr setup ----------------------------- +2023-09-12 15:52:38,366 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.address`. +2023-09-12 15:52:38,369 | faker.factory | DEBUG | Provider `faker.providers.address` has been localized to `en_US`. +2023-09-12 15:52:38,372 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.automotive`. +2023-09-12 15:52:38,373 | faker.factory | DEBUG | Provider `faker.providers.automotive` has been localized to `en_US`. +2023-09-12 15:52:38,374 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.bank`. +2023-09-12 15:52:38,376 | faker.factory | DEBUG | Specified locale `en_US` is not available for provider `faker.providers.bank`. Locale reset to `en_GB` for this provider. +2023-09-12 15:52:38,376 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.barcode`. +2023-09-12 15:52:38,377 | faker.factory | DEBUG | Provider `faker.providers.barcode` has been localized to `en_US`. +2023-09-12 15:52:38,379 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.color`. +2023-09-12 15:52:38,380 | faker.factory | DEBUG | Provider `faker.providers.color` has been localized to `en_US`. +2023-09-12 15:52:38,381 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.company`. +2023-09-12 15:52:38,383 | faker.factory | DEBUG | Provider `faker.providers.company` has been localized to `en_US`. +2023-09-12 15:52:38,383 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.credit_card`. +2023-09-12 15:52:38,384 | faker.factory | DEBUG | Provider `faker.providers.credit_card` has been localized to `en_US`. +2023-09-12 15:52:38,384 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.currency`. +2023-09-12 15:52:38,385 | faker.factory | DEBUG | Provider `faker.providers.currency` has been localized to `en_US`. +2023-09-12 15:52:38,386 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.date_time`. +2023-09-12 15:52:38,388 | faker.factory | DEBUG | Provider `faker.providers.date_time` has been localized to `en_US`. +2023-09-12 15:52:38,389 | faker.factory | DEBUG | Provider `faker.providers.emoji` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:38,389 | faker.factory | DEBUG | Provider `faker.providers.file` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:38,389 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.geo`. +2023-09-12 15:52:38,389 | faker.factory | DEBUG | Provider `faker.providers.geo` has been localized to `en_US`. +2023-09-12 15:52:38,390 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.internet`. +2023-09-12 15:52:38,392 | faker.factory | DEBUG | Provider `faker.providers.internet` has been localized to `en_US`. +2023-09-12 15:52:38,393 | faker.factory | DEBUG | Provider `faker.providers.isbn` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:38,393 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.job`. +2023-09-12 15:52:38,394 | faker.factory | DEBUG | Provider `faker.providers.job` has been localized to `en_US`. +2023-09-12 15:52:38,395 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.lorem`. +2023-09-12 15:52:38,396 | faker.factory | DEBUG | Provider `faker.providers.lorem` has been localized to `en_US`. +2023-09-12 15:52:38,400 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.misc`. +2023-09-12 15:52:38,400 | faker.factory | DEBUG | Provider `faker.providers.misc` has been localized to `en_US`. +2023-09-12 15:52:38,401 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.person`. +2023-09-12 15:52:38,403 | faker.factory | DEBUG | Provider `faker.providers.person` has been localized to `en_US`. +2023-09-12 15:52:38,408 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.phone_number`. +2023-09-12 15:52:38,410 | faker.factory | DEBUG | Provider `faker.providers.phone_number` has been localized to `en_US`. +2023-09-12 15:52:38,411 | faker.factory | DEBUG | Provider `faker.providers.profile` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:38,411 | faker.factory | DEBUG | Provider `faker.providers.python` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:38,412 | faker.factory | DEBUG | Looking for locale `en_US` in provider `faker.providers.ssn`. +2023-09-12 15:52:38,414 | faker.factory | DEBUG | Provider `faker.providers.ssn` has been localized to `en_US`. +2023-09-12 15:52:38,415 | faker.factory | DEBUG | Provider `faker.providers.user_agent` does not feature localization. Specified locale `en_US` is not utilized for this provider. +2023-09-12 15:52:40,536 | git.cmd | DEBUG | Popen(['git', 'init', '--initial-branch=master'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=None) +2023-09-12 15:52:40,544 | git.util | DEBUG | Failed checking if running in CYGWIN due to: FileNotFoundError(2, 'No such file or directory') +2023-09-12 15:52:40,548 | git.cmd | DEBUG | Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +2023-09-12 15:52:40,551 | git.cmd | DEBUG | Popen(['git', 'cat-file', '--batch'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +2023-09-12 15:52:40,905 | asyncio | DEBUG | Using selector: EpollSelector +2023-09-12 15:52:40,971 | aiosqlite | DEBUG | executing .connector at 0x7faccfdd85e0> +2023-09-12 15:52:40,971 | aiosqlite | DEBUG | operation .connector at 0x7faccfdd85e0> completed +2023-09-12 15:52:40,973 | aiosqlite | DEBUG | executing .connector at 0x7faccfdd9120> +2023-09-12 15:52:40,973 | aiosqlite | DEBUG | executing .connector at 0x7faccfdd9ee0> +2023-09-12 15:52:40,974 | aiosqlite | DEBUG | operation .connector at 0x7faccfdd9120> completed +2023-09-12 15:52:40,975 | aiosqlite | DEBUG | operation .connector at 0x7faccfdd9ee0> completed +2023-09-12 15:52:40,975 | aiosqlite | DEBUG | executing .connector at 0x7faccfdda840> +2023-09-12 15:52:40,975 | aiosqlite | DEBUG | operation .connector at 0x7faccfdda840> completed +2023-09-12 15:52:40,976 | aiosqlite | DEBUG | executing .connector at 0x7faccfddb600> +2023-09-12 15:52:40,976 | aiosqlite | DEBUG | executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdda0c0>, deterministic=True) +2023-09-12 15:52:40,977 | aiosqlite | DEBUG | operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdda0c0>, deterministic=True) completed +2023-09-12 15:52:40,977 | aiosqlite | DEBUG | executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdc3560>, deterministic=True) +2023-09-12 15:52:40,977 | aiosqlite | DEBUG | executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd89a0>, deterministic=True) +2023-09-12 15:52:40,977 | aiosqlite | DEBUG | executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd9760>, deterministic=True) +2023-09-12 15:52:40,978 | aiosqlite | DEBUG | operation .connector at 0x7faccfddb600> completed +2023-09-12 15:52:40,978 | aiosqlite | DEBUG | executing functools.partial(, 'floor', 1, , deterministic=True) +2023-09-12 15:52:40,978 | aiosqlite | DEBUG | operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdc3560>, deterministic=True) completed +2023-09-12 15:52:40,978 | aiosqlite | DEBUG | operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd89a0>, deterministic=True) completed +2023-09-12 15:52:40,979 | aiosqlite | DEBUG | operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd9760>, deterministic=True) completed +2023-09-12 15:52:40,979 | aiosqlite | DEBUG | operation functools.partial(, 'floor', 1, , deterministic=True) completed +2023-09-12 15:52:40,980 | aiosqlite | DEBUG | executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfddae80>, deterministic=True) +2023-09-12 15:52:40,981 | aiosqlite | DEBUG | operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfddae80>, deterministic=True) completed +2023-09-12 15:52:40,981 | aiosqlite | DEBUG | executing functools.partial(, 'floor', 1, , deterministic=True) +2023-09-12 15:52:40,981 | aiosqlite | DEBUG | executing functools.partial(, 'floor', 1, , deterministic=True) +2023-09-12 15:52:40,982 | aiosqlite | DEBUG | operation functools.partial(, 'floor', 1, , deterministic=True) completed +2023-09-12 15:52:40,982 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,982 | aiosqlite | DEBUG | operation functools.partial(, 'floor', 1, , deterministic=True) completed +2023-09-12 15:52:40,982 | aiosqlite | DEBUG | executing functools.partial(, 'floor', 1, , deterministic=True) +2023-09-12 15:52:40,983 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,983 | aiosqlite | DEBUG | executing functools.partial(, 'floor', 1, , deterministic=True) +2023-09-12 15:52:40,983 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,984 | aiosqlite | DEBUG | operation functools.partial(, 'floor', 1, , deterministic=True) completed +2023-09-12 15:52:40,984 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA read_uncommitted', []) +2023-09-12 15:52:40,984 | aiosqlite | DEBUG | operation functools.partial(, 'floor', 1, , deterministic=True) completed +2023-09-12 15:52:40,985 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,985 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,986 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,986 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +2023-09-12 15:52:40,987 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,987 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,987 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,988 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA read_uncommitted', []) +2023-09-12 15:52:40,988 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,988 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,990 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +2023-09-12 15:52:40,990 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA read_uncommitted', []) +2023-09-12 15:52:40,990 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA read_uncommitted', []) +2023-09-12 15:52:40,990 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,991 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +2023-09-12 15:52:40,991 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,991 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +2023-09-12 15:52:40,992 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,992 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA read_uncommitted', []) +2023-09-12 15:52:40,992 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,993 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,993 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +2023-09-12 15:52:40,994 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,994 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,994 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,994 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,995 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,995 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,996 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,996 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,996 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,996 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,997 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,997 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:40,999 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:40,999 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,999 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:40,999 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,000 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("DeviceFlows") +2023-09-12 15:52:41,000 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,000 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,001 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,001 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,002 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,002 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("LoggingInfo") +2023-09-12 15:52:41,003 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,003 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,003 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,003 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,004 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,004 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,004 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,004 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,004 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("DeviceFlows")', ()) +2023-09-12 15:52:41,005 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,005 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,005 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,005 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,006 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("Jobs") +2023-09-12 15:52:41,007 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,007 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,007 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("DeviceFlows")', ()) completed +2023-09-12 15:52:41,008 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("sb_Owners") +2023-09-12 15:52:41,008 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,008 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,009 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,009 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,009 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,009 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("LoggingInfo")', ()) +2023-09-12 15:52:41,010 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TaskQueues") +2023-09-12 15:52:41,010 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,010 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,011 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("LoggingInfo")', ()) completed +2023-09-12 15:52:41,011 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,012 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,012 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TaskQueues")', ()) +2023-09-12 15:52:41,012 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,012 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,013 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("sb_Owners")', ()) +2023-09-12 15:52:41,013 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TaskQueues")', ()) completed +2023-09-12 15:52:41,013 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("sb_Owners")', ()) completed +2023-09-12 15:52:41,013 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,014 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,014 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("Jobs")', ()) +2023-09-12 15:52:41,015 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("Jobs")', ()) completed +2023-09-12 15:52:41,015 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,015 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,015 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,015 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,016 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,016 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,016 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,016 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,017 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,017 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,018 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("DeviceFlows") +2023-09-12 15:52:41,018 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,019 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,019 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,020 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,020 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,020 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,020 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,021 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("LoggingInfo") +2023-09-12 15:52:41,021 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,021 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("sb_Owners") +2023-09-12 15:52:41,022 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,022 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TaskQueues") +2023-09-12 15:52:41,022 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,023 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,023 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,023 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("DeviceFlows")', ()) +2023-09-12 15:52:41,023 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TaskQueues")', ()) +2023-09-12 15:52:41,024 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,024 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,024 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,024 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,024 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("DeviceFlows")', ()) completed +2023-09-12 15:52:41,025 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,025 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TaskQueues")', ()) completed +2023-09-12 15:52:41,025 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,026 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,026 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("sb_Owners")', ()) +2023-09-12 15:52:41,027 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,027 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("Jobs") +2023-09-12 15:52:41,028 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("LoggingInfo")', ()) +2023-09-12 15:52:41,028 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,028 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,029 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("sb_Owners")', ()) completed +2023-09-12 15:52:41,029 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,030 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,030 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("LoggingInfo")', ()) completed +2023-09-12 15:52:41,030 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,031 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,031 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,031 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("AuthorizationFlows") +2023-09-12 15:52:41,032 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,032 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("Jobs")', ()) +2023-09-12 15:52:41,032 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,032 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,033 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,033 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,033 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,033 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,033 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("Jobs")', ()) completed +2023-09-12 15:52:41,034 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_Jobs") +2023-09-12 15:52:41,034 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,035 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,036 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,036 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,036 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,036 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,038 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "LoggingInfo" ( + "JobID" INTEGER NOT NULL, + "SeqNum" INTEGER NOT NULL, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "StatusTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "StatusTimeOrder" NUMERIC(12, 3) NOT NULL, + "StatusSource" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "SeqNum") +) + + +2023-09-12 15:52:41,038 | sqlalchemy.engine.Engine | INFO | [no key 0.00027s] () +2023-09-12 15:52:41,039 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("sb_SandBoxes") +2023-09-12 15:52:41,039 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,039 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,039 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,040 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("AuthorizationFlows")', ()) +2023-09-12 15:52:41,040 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("JobJDLs") +2023-09-12 15:52:41,040 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("AuthorizationFlows")', ()) completed +2023-09-12 15:52:41,040 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,040 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,041 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_Jobs")', ()) +2023-09-12 15:52:41,041 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,041 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,041 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,042 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_Jobs")', ()) completed +2023-09-12 15:52:41,042 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,043 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("sb_SandBoxes")', ()) +2023-09-12 15:52:41,043 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "LoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"SeqNum" INTEGER NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"StatusTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"StatusTimeOrder" NUMERIC(12, 3) NOT NULL, \n\t"StatusSource" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "SeqNum")\n)\n\n', ()) +2023-09-12 15:52:41,043 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,044 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,045 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,045 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "LoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"SeqNum" INTEGER NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"StatusTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"StatusTimeOrder" NUMERIC(12, 3) NOT NULL, \n\t"StatusSource" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "SeqNum")\n)\n\n', ()) completed +2023-09-12 15:52:41,045 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,045 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,046 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,046 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,046 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("JobJDLs")', ()) +2023-09-12 15:52:41,047 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("JobJDLs")', ()) completed +2023-09-12 15:52:41,047 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,047 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,047 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("sb_SandBoxes")', ()) completed +2023-09-12 15:52:41,048 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,048 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,048 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_Jobs") +2023-09-12 15:52:41,049 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,049 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("AuthorizationFlows") +2023-09-12 15:52:41,049 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,050 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,050 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,050 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,050 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,051 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,051 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,051 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,052 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,052 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,052 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,052 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,053 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_Jobs")', ()) +2023-09-12 15:52:41,053 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_Jobs")', ()) completed +2023-09-12 15:52:41,053 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("AuthorizationFlows")', ()) +2023-09-12 15:52:41,054 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,054 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,054 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("AuthorizationFlows")', ()) completed +2023-09-12 15:52:41,054 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,055 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,055 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,055 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,056 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,056 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("sb_SandBoxes") +2023-09-12 15:52:41,057 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,057 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,057 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,058 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,058 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("JobJDLs") +2023-09-12 15:52:41,058 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,058 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,059 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,059 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,060 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,060 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,060 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,060 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("sb_SandBoxes")', ()) +2023-09-12 15:52:41,061 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,061 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,061 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("sb_SandBoxes")', ()) completed +2023-09-12 15:52:41,062 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("RefreshTokens") +2023-09-12 15:52:41,062 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,063 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,063 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,063 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToSites") +2023-09-12 15:52:41,063 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,064 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,064 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,064 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("RefreshTokens")', ()) +2023-09-12 15:52:41,064 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,064 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,065 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("JobJDLs")', ()) +2023-09-12 15:52:41,065 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("JobJDLs")', ()) completed +2023-09-12 15:52:41,065 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,066 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,066 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToSites")', ()) +2023-09-12 15:52:41,066 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("RefreshTokens")', ()) completed +2023-09-12 15:52:41,066 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToSites")', ()) completed +2023-09-12 15:52:41,067 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("sb_EntityMapping") +2023-09-12 15:52:41,067 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,067 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,068 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,068 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,068 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,068 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,068 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,069 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,069 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,069 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,069 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,069 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,070 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("sb_EntityMapping")', ()) +2023-09-12 15:52:41,070 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,070 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,070 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToSites") +2023-09-12 15:52:41,071 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,071 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("sb_EntityMapping")', ()) completed +2023-09-12 15:52:41,071 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,072 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("RefreshTokens") +2023-09-12 15:52:41,072 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,073 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("InputData") +2023-09-12 15:52:41,073 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,073 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,073 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,074 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,074 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,074 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,074 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,075 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,075 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,075 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("RefreshTokens")', ()) +2023-09-12 15:52:41,076 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("InputData")', ()) +2023-09-12 15:52:41,076 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToSites")', ()) +2023-09-12 15:52:41,076 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,076 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,077 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("sb_EntityMapping") +2023-09-12 15:52:41,077 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,077 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("InputData")', ()) completed +2023-09-12 15:52:41,077 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToSites")', ()) completed +2023-09-12 15:52:41,077 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("RefreshTokens")', ()) completed +2023-09-12 15:52:41,078 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,078 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("sb_EntityMapping")', ()) +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("sb_EntityMapping")', ()) completed +2023-09-12 15:52:41,079 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,080 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,080 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("InputData") +2023-09-12 15:52:41,080 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,080 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,081 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,081 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,081 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,081 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,082 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,083 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "DeviceFlows" ( + user_code VARCHAR(8) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + client_id VARCHAR(255) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + device_code VARCHAR(128) NOT NULL, + id_token JSON, + PRIMARY KEY (user_code), + UNIQUE (device_code) +) + + +2023-09-12 15:52:41,083 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,083 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("InputData")', ()) +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("InputData")', ()) completed +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,084 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,085 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,085 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToGridCEs") +2023-09-12 15:52:41,085 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,086 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "sb_Owners" ( + "OwnerID" INTEGER NOT NULL, + "Owner" VARCHAR(32) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + PRIMARY KEY ("OwnerID") +) + + +2023-09-12 15:52:41,086 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "DeviceFlows" (\n\tuser_code VARCHAR(8) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tdevice_code VARCHAR(128) NOT NULL, \n\tid_token JSON, \n\tPRIMARY KEY (user_code), \n\tUNIQUE (device_code)\n)\n\n', ()) +2023-09-12 15:52:41,086 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,086 | sqlalchemy.engine.Engine | INFO | [no key 0.00029s] () +2023-09-12 15:52:41,086 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,086 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,086 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "DeviceFlows" (\n\tuser_code VARCHAR(8) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tdevice_code VARCHAR(128) NOT NULL, \n\tid_token JSON, \n\tPRIMARY KEY (user_code), \n\tUNIQUE (device_code)\n)\n\n', ()) completed +2023-09-12 15:52:41,087 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,087 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,087 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,087 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,088 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,088 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,088 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,088 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToGridCEs")', ()) +2023-09-12 15:52:41,089 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "sb_Owners" (\n\t"OwnerID" INTEGER NOT NULL, \n\t"Owner" VARCHAR(32) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("OwnerID")\n)\n\n', ()) +2023-09-12 15:52:41,088 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("JobParameters") +2023-09-12 15:52:41,089 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,090 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "AuthorizationFlows" ( + uuid CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + client_id VARCHAR(255) NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + code_challenge VARCHAR(255) NOT NULL, + code_challenge_method VARCHAR(8) NOT NULL, + redirect_uri VARCHAR(255) NOT NULL, + code VARCHAR(255), + id_token JSON, + PRIMARY KEY (uuid) +) + + +2023-09-12 15:52:41,090 | sqlalchemy.engine.Engine | INFO | [no key 0.00018s] () +2023-09-12 15:52:41,090 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToGridCEs")', ()) completed +2023-09-12 15:52:41,090 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "sb_Owners" (\n\t"OwnerID" INTEGER NOT NULL, \n\t"Owner" VARCHAR(32) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("OwnerID")\n)\n\n', ()) completed +2023-09-12 15:52:41,090 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,091 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,091 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,091 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,091 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,091 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,092 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "AuthorizationFlows" (\n\tuuid CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tcode_challenge VARCHAR(255) NOT NULL, \n\tcode_challenge_method VARCHAR(8) NOT NULL, \n\tredirect_uri VARCHAR(255) NOT NULL, \n\tcode VARCHAR(255), \n\tid_token JSON, \n\tPRIMARY KEY (uuid)\n)\n\n', ()) +2023-09-12 15:52:41,092 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,092 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,092 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "AuthorizationFlows" (\n\tuuid CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tcode_challenge VARCHAR(255) NOT NULL, \n\tcode_challenge_method VARCHAR(8) NOT NULL, \n\tredirect_uri VARCHAR(255) NOT NULL, \n\tcode VARCHAR(255), \n\tid_token JSON, \n\tPRIMARY KEY (uuid)\n)\n\n', ()) completed +2023-09-12 15:52:41,092 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("JobParameters")', ()) +2023-09-12 15:52:41,093 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "sb_SandBoxes" ( + "SBId" INTEGER NOT NULL, + "OwnerId" INTEGER NOT NULL, + "SEName" VARCHAR(64) NOT NULL, + "SEPFN" VARCHAR(512) NOT NULL, + "Bytes" BIGINT NOT NULL, + "RegistrationTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "LastAccessTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "Assigned" BOOLEAN NOT NULL, + PRIMARY KEY ("SBId"), + CONSTRAINT "Location" UNIQUE ("SEName", "SEPFN") +) + + +2023-09-12 15:52:41,093 | sqlalchemy.engine.Engine | INFO | [no key 0.00019s] () +2023-09-12 15:52:41,094 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("JobParameters")', ()) completed +2023-09-12 15:52:41,094 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,094 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,094 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,094 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,095 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "RefreshTokens" ( + jti CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'CREATED' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + sub VARCHAR(1024) NOT NULL, + preferred_username VARCHAR(255) NOT NULL, + PRIMARY KEY (jti) +) + + +2023-09-12 15:52:41,095 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,095 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "sb_SandBoxes" (\n\t"SBId" INTEGER NOT NULL, \n\t"OwnerId" INTEGER NOT NULL, \n\t"SEName" VARCHAR(64) NOT NULL, \n\t"SEPFN" VARCHAR(512) NOT NULL, \n\t"Bytes" BIGINT NOT NULL, \n\t"RegistrationTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"LastAccessTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"Assigned" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("SBId"), \n\tCONSTRAINT "Location" UNIQUE ("SEName", "SEPFN")\n)\n\n', ()) +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "sb_SandBoxes" (\n\t"SBId" INTEGER NOT NULL, \n\t"OwnerId" INTEGER NOT NULL, \n\t"SEName" VARCHAR(64) NOT NULL, \n\t"SEPFN" VARCHAR(512) NOT NULL, \n\t"Bytes" BIGINT NOT NULL, \n\t"RegistrationTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"LastAccessTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"Assigned" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("SBId"), \n\tCONSTRAINT "Location" UNIQUE ("SEName", "SEPFN")\n)\n\n', ()) completed +2023-09-12 15:52:41,096 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,097 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,097 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToGridCEs") +2023-09-12 15:52:41,097 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,097 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,097 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,098 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,098 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,098 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "RefreshTokens" (\n\tjti CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'CREATED\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\tsub VARCHAR(1024) NOT NULL, \n\tpreferred_username VARCHAR(255) NOT NULL, \n\tPRIMARY KEY (jti)\n)\n\n', ()) +2023-09-12 15:52:41,098 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,098 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId") +2023-09-12 15:52:41,098 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,099 | sqlalchemy.engine.Engine | INFO | [no key 0.00041s] () +2023-09-12 15:52:41,099 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "RefreshTokens" (\n\tjti CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'CREATED\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\tsub VARCHAR(1024) NOT NULL, \n\tpreferred_username VARCHAR(255) NOT NULL, \n\tPRIMARY KEY (jti)\n)\n\n', ()) completed +2023-09-12 15:52:41,099 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("JobParameters") +2023-09-12 15:52:41,099 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,100 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,100 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,100 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,100 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,100 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("JobParameters")', ()) +2023-09-12 15:52:41,101 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("JobParameters")', ()) completed +2023-09-12 15:52:41,101 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToGridCEs")', ()) +2023-09-12 15:52:41,101 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,101 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,101 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToGridCEs")', ()) completed +2023-09-12 15:52:41,102 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId")', ()) +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,102 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,103 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,103 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId")', ()) completed +2023-09-12 15:52:41,103 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,103 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,104 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,105 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToBannedSites") +2023-09-12 15:52:41,105 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,105 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "sb_EntityMapping" ( + "SBId" INTEGER NOT NULL, + "EntityId" VARCHAR(128) NOT NULL, + "Type" VARCHAR(64) NOT NULL, + PRIMARY KEY ("SBId", "EntityId", "Type"), + CONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type") +) + + +2023-09-12 15:52:41,105 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,106 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("OptimizerParameters") +2023-09-12 15:52:41,106 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,106 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,106 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,106 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToBannedSites")', ()) +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "sb_EntityMapping" (\n\t"SBId" INTEGER NOT NULL, \n\t"EntityId" VARCHAR(128) NOT NULL, \n\t"Type" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("SBId", "EntityId", "Type"), \n\tCONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type")\n)\n\n', ()) +2023-09-12 15:52:41,107 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("OptimizerParameters")', ()) +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("OptimizerParameters")', ()) completed +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "sb_EntityMapping" (\n\t"SBId" INTEGER NOT NULL, \n\t"EntityId" VARCHAR(128) NOT NULL, \n\t"Type" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("SBId", "EntityId", "Type"), \n\tCONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type")\n)\n\n', ()) completed +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToBannedSites")', ()) completed +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,108 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,109 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId") +2023-09-12 15:52:41,109 | sqlalchemy.engine.Engine | INFO | [no key 0.00020s] () +2023-09-12 15:52:41,109 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,109 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,110 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,110 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,110 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,110 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,110 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("OptimizerParameters") +2023-09-12 15:52:41,110 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId")', ()) +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId")', ()) completed +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,111 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,112 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToBannedSites") +2023-09-12 15:52:41,112 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,112 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,112 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,112 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,112 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,113 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,113 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,113 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,113 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToBannedSites")', ()) +2023-09-12 15:52:41,113 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToBannedSites")', ()) completed +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("OptimizerParameters")', ()) +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,114 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("OptimizerParameters")', ()) completed +2023-09-12 15:52:41,115 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,115 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,115 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,115 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,115 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToPlatforms") +2023-09-12 15:52:41,116 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,116 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,116 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,116 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,116 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,116 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("AtticJobParameters") +2023-09-12 15:52:41,117 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToPlatforms")', ()) +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToPlatforms")', ()) completed +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,117 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,118 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,118 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,118 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("AtticJobParameters")', ()) +2023-09-12 15:52:41,118 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToPlatforms") +2023-09-12 15:52:41,118 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,118 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("AtticJobParameters")', ()) completed +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToPlatforms")', ()) +2023-09-12 15:52:41,119 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToPlatforms")', ()) completed +2023-09-12 15:52:41,120 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,120 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,120 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("AtticJobParameters") +2023-09-12 15:52:41,120 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,120 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,120 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,120 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,121 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,121 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("AtticJobParameters")', ()) +2023-09-12 15:52:41,121 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,121 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,121 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("AtticJobParameters")', ()) completed +2023-09-12 15:52:41,121 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToJobTypes") +2023-09-12 15:52:41,122 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,122 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,122 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,122 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,122 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,122 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToJobTypes")', ()) +2023-09-12 15:52:41,123 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,123 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,123 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("SiteMask") +2023-09-12 15:52:41,123 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,123 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,123 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,123 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToJobTypes")', ()) completed +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("SiteMask")', ()) +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,124 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("SiteMask")', ()) completed +2023-09-12 15:52:41,125 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToJobTypes") +2023-09-12 15:52:41,125 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,125 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,125 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToJobTypes")', ()) +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToJobTypes")', ()) completed +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,126 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,127 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,127 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("SiteMask") +2023-09-12 15:52:41,127 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,127 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,127 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,127 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,128 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,128 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("tq_TQToTags") +2023-09-12 15:52:41,128 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,128 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("SiteMask")', ()) +2023-09-12 15:52:41,128 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("SiteMask")', ()) completed +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("tq_TQToTags")', ()) +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,129 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,130 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("tq_TQToTags")', ()) completed +2023-09-12 15:52:41,130 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("SiteMaskLogging") +2023-09-12 15:52:41,130 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,130 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,130 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,130 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,131 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,131 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,131 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("SiteMaskLogging")', ()) +2023-09-12 15:52:41,131 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,131 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("SiteMaskLogging")', ()) completed +2023-09-12 15:52:41,132 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("tq_TQToTags") +2023-09-12 15:52:41,132 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,132 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,132 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,132 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,132 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,133 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToTags")', ()) +2023-09-12 15:52:41,133 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,133 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,133 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToTags")', ()) completed +2023-09-12 15:52:41,133 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("SiteMaskLogging") +2023-09-12 15:52:41,133 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,134 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,135 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TaskQueues" ( + "TQId" INTEGER NOT NULL, + "Owner" VARCHAR(255) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + "VO" VARCHAR(32) NOT NULL, + "CPUTime" BIGINT NOT NULL, + "Priority" FLOAT NOT NULL, + "Enabled" BOOLEAN NOT NULL, + PRIMARY KEY ("TQId") +) + + +2023-09-12 15:52:41,135 | sqlalchemy.engine.Engine | INFO | [no key 0.00017s] () +2023-09-12 15:52:41,136 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,136 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("SiteMaskLogging")', ()) +2023-09-12 15:52:41,136 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,136 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("SiteMaskLogging")', ()) completed +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TaskQueues" (\n\t"TQId" INTEGER NOT NULL, \n\t"Owner" VARCHAR(255) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\t"VO" VARCHAR(32) NOT NULL, \n\t"CPUTime" BIGINT NOT NULL, \n\t"Priority" FLOAT NOT NULL, \n\t"Enabled" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("TQId")\n)\n\n', ()) +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TaskQueues" (\n\t"TQId" INTEGER NOT NULL, \n\t"Owner" VARCHAR(255) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\t"VO" VARCHAR(32) NOT NULL, \n\t"CPUTime" BIGINT NOT NULL, \n\t"Priority" FLOAT NOT NULL, \n\t"Enabled" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("TQId")\n)\n\n', ()) completed +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,137 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,138 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,138 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,138 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("HeartBeatLoggingInfo") +2023-09-12 15:52:41,138 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,139 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime") +2023-09-12 15:52:41,139 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,139 | sqlalchemy.engine.Engine | INFO | [no key 0.00027s] () +2023-09-12 15:52:41,139 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,139 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,139 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,140 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime")', ()) +2023-09-12 15:52:41,140 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("HeartBeatLoggingInfo")', ()) +2023-09-12 15:52:41,140 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("HeartBeatLoggingInfo")', ()) completed +2023-09-12 15:52:41,140 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime")', ()) completed +2023-09-12 15:52:41,141 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,141 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,141 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,141 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,142 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,142 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,142 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_Jobs" ( + "TQId" INTEGER NOT NULL, + "JobId" INTEGER NOT NULL, + "Priority" INTEGER NOT NULL, + "RealPriority" FLOAT NOT NULL, + PRIMARY KEY ("TQId", "JobId"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,142 | sqlalchemy.engine.Engine | INFO | [no key 0.00046s] () +2023-09-12 15:52:41,142 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("HeartBeatLoggingInfo") +2023-09-12 15:52:41,143 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,143 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,143 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,143 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,143 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,143 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_Jobs" (\n\t"TQId" INTEGER NOT NULL, \n\t"JobId" INTEGER NOT NULL, \n\t"Priority" INTEGER NOT NULL, \n\t"RealPriority" FLOAT NOT NULL, \n\tPRIMARY KEY ("TQId", "JobId"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("HeartBeatLoggingInfo")', ()) +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("HeartBeatLoggingInfo")', ()) completed +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_Jobs" (\n\t"TQId" INTEGER NOT NULL, \n\t"JobId" INTEGER NOT NULL, \n\t"Priority" INTEGER NOT NULL, \n\t"RealPriority" FLOAT NOT NULL, \n\tPRIMARY KEY ("TQId", "JobId"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,144 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,145 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId") +2023-09-12 15:52:41,145 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,145 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,145 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,146 | sqlalchemy.engine.Engine | INFO | PRAGMA main.table_info("JobCommands") +2023-09-12 15:52:41,146 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,146 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,146 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,146 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,146 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,147 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId")', ()) +2023-09-12 15:52:41,147 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA main.table_info("JobCommands")', ()) +2023-09-12 15:52:41,147 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA main.table_info("JobCommands")', ()) completed +2023-09-12 15:52:41,147 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId")', ()) completed +2023-09-12 15:52:41,147 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,148 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,148 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,148 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,148 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,148 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,149 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,149 | sqlalchemy.engine.Engine | INFO | [no key 0.00018s] () +2023-09-12 15:52:41,149 | sqlalchemy.engine.Engine | INFO | PRAGMA temp.table_info("JobCommands") +2023-09-12 15:52:41,149 | sqlalchemy.engine.Engine | INFO | [raw sql] () +2023-09-12 15:52:41,149 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | executing functools.partial(, 'PRAGMA temp.table_info("JobCommands")', ()) +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,150 | aiosqlite | DEBUG | operation functools.partial(, 'PRAGMA temp.table_info("JobCommands")', ()) completed +2023-09-12 15:52:41,151 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,151 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,151 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,151 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,151 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,152 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,152 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,152 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value") +2023-09-12 15:52:41,152 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,153 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "JobJDLs" ( + "JobID" INTEGER NOT NULL, + "JDL" TEXT NOT NULL, + "JobRequirements" TEXT NOT NULL, + "OriginalJDL" TEXT NOT NULL, + PRIMARY KEY ("JobID") +) + + +2023-09-12 15:52:41,153 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,154 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,154 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,154 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value")', ()) +2023-09-12 15:52:41,154 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,154 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,155 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value")', ()) completed +2023-09-12 15:52:41,155 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "JobJDLs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JDL" TEXT NOT NULL, \n\t"JobRequirements" TEXT NOT NULL, \n\t"OriginalJDL" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID")\n)\n\n', ()) +2023-09-12 15:52:41,155 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "JobJDLs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JDL" TEXT NOT NULL, \n\t"JobRequirements" TEXT NOT NULL, \n\t"OriginalJDL" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID")\n)\n\n', ()) completed +2023-09-12 15:52:41,155 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,156 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,156 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,156 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,156 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId") +2023-09-12 15:52:41,156 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,157 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "SiteMask" ( + "Site" VARCHAR(64) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "LastUpdateTime" DATETIME NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site") +) + + +2023-09-12 15:52:41,157 | sqlalchemy.engine.Engine | INFO | [no key 0.00020s] () +2023-09-12 15:52:41,158 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,158 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,158 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,158 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,158 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "SiteMask" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"LastUpdateTime" DATETIME NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site")\n)\n\n', ()) +2023-09-12 15:52:41,159 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId")', ()) +2023-09-12 15:52:41,159 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "SiteMask" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"LastUpdateTime" DATETIME NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site")\n)\n\n', ()) completed +2023-09-12 15:52:41,159 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId")', ()) completed +2023-09-12 15:52:41,159 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,159 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,160 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,160 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,160 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "SiteMaskLogging" ( + "Site" VARCHAR(64) NOT NULL, + "UpdateTime" DATETIME NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site", "UpdateTime") +) + + +2023-09-12 15:52:41,160 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,161 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToGridCEs" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,161 | sqlalchemy.engine.Engine | INFO | [no key 0.00019s] () +2023-09-12 15:52:41,161 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,161 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,162 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,162 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToGridCEs" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,162 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,162 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToGridCEs" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,162 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "SiteMaskLogging" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"UpdateTime" DATETIME NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site", "UpdateTime")\n)\n\n', ()) +2023-09-12 15:52:41,163 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,163 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,163 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "SiteMaskLogging" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"UpdateTime" DATETIME NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site", "UpdateTime")\n)\n\n', ()) completed +2023-09-12 15:52:41,163 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value") +2023-09-12 15:52:41,163 | sqlalchemy.engine.Engine | INFO | [no key 0.00036s] () +2023-09-12 15:52:41,164 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,164 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,164 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,164 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,167 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "Jobs" ( + "JobID" INTEGER NOT NULL, + "JobType" VARCHAR(32) NOT NULL, + "DIRACSetup" VARCHAR(32) NOT NULL, + "JobGroup" VARCHAR(32) NOT NULL, + "JobSplitType" VARCHAR(7) NOT NULL, + "MasterJobID" INTEGER NOT NULL, + "Site" VARCHAR(100) NOT NULL, + "JobName" VARCHAR(128) NOT NULL, + "Owner" VARCHAR(64) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(128) NOT NULL, + "SubmissionTime" DATETIME, + "RescheduleTime" DATETIME, + "LastUpdateTime" DATETIME, + "StartExecTime" DATETIME, + "HeartBeatTime" DATETIME, + "EndExecTime" DATETIME, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "ApplicationNumStatus" INTEGER NOT NULL, + "UserPriority" INTEGER NOT NULL, + "SystemPriority" INTEGER NOT NULL, + "RescheduleCounter" INTEGER NOT NULL, + "VerifiedFlag" VARCHAR(5) NOT NULL, + "DeletedFlag" VARCHAR(5) NOT NULL, + "KilledFlag" VARCHAR(5) NOT NULL, + "FailedFlag" VARCHAR(5) NOT NULL, + "ISandboxReadyFlag" VARCHAR(5) NOT NULL, + "OSandboxReadyFlag" VARCHAR(5) NOT NULL, + "RetrievedFlag" VARCHAR(5) NOT NULL, + "AccountedFlag" VARCHAR(6) NOT NULL, + PRIMARY KEY ("JobID"), + FOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,167 | sqlalchemy.engine.Engine | INFO | [no key 0.00021s] () +2023-09-12 15:52:41,167 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,167 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,167 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value")', ()) +2023-09-12 15:52:41,168 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "Jobs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JobType" VARCHAR(32) NOT NULL, \n\t"DIRACSetup" VARCHAR(32) NOT NULL, \n\t"JobGroup" VARCHAR(32) NOT NULL, \n\t"JobSplitType" VARCHAR(7) NOT NULL, \n\t"MasterJobID" INTEGER NOT NULL, \n\t"Site" VARCHAR(100) NOT NULL, \n\t"JobName" VARCHAR(128) NOT NULL, \n\t"Owner" VARCHAR(64) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(128) NOT NULL, \n\t"SubmissionTime" DATETIME, \n\t"RescheduleTime" DATETIME, \n\t"LastUpdateTime" DATETIME, \n\t"StartExecTime" DATETIME, \n\t"HeartBeatTime" DATETIME, \n\t"EndExecTime" DATETIME, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"ApplicationNumStatus" INTEGER NOT NULL, \n\t"UserPriority" INTEGER NOT NULL, \n\t"SystemPriority" INTEGER NOT NULL, \n\t"RescheduleCounter" INTEGER NOT NULL, \n\t"VerifiedFlag" VARCHAR(5) NOT NULL, \n\t"DeletedFlag" VARCHAR(5) NOT NULL, \n\t"KilledFlag" VARCHAR(5) NOT NULL, \n\t"FailedFlag" VARCHAR(5) NOT NULL, \n\t"ISandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"OSandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"RetrievedFlag" VARCHAR(5) NOT NULL, \n\t"AccountedFlag" VARCHAR(6) NOT NULL, \n\tPRIMARY KEY ("JobID"), \n\tFOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,168 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value")', ()) completed +2023-09-12 15:52:41,168 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "Jobs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JobType" VARCHAR(32) NOT NULL, \n\t"DIRACSetup" VARCHAR(32) NOT NULL, \n\t"JobGroup" VARCHAR(32) NOT NULL, \n\t"JobSplitType" VARCHAR(7) NOT NULL, \n\t"MasterJobID" INTEGER NOT NULL, \n\t"Site" VARCHAR(100) NOT NULL, \n\t"JobName" VARCHAR(128) NOT NULL, \n\t"Owner" VARCHAR(64) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(128) NOT NULL, \n\t"SubmissionTime" DATETIME, \n\t"RescheduleTime" DATETIME, \n\t"LastUpdateTime" DATETIME, \n\t"StartExecTime" DATETIME, \n\t"HeartBeatTime" DATETIME, \n\t"EndExecTime" DATETIME, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"ApplicationNumStatus" INTEGER NOT NULL, \n\t"UserPriority" INTEGER NOT NULL, \n\t"SystemPriority" INTEGER NOT NULL, \n\t"RescheduleCounter" INTEGER NOT NULL, \n\t"VerifiedFlag" VARCHAR(5) NOT NULL, \n\t"DeletedFlag" VARCHAR(5) NOT NULL, \n\t"KilledFlag" VARCHAR(5) NOT NULL, \n\t"FailedFlag" VARCHAR(5) NOT NULL, \n\t"ISandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"OSandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"RetrievedFlag" VARCHAR(5) NOT NULL, \n\t"AccountedFlag" VARCHAR(6) NOT NULL, \n\tPRIMARY KEY ("JobID"), \n\tFOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,168 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,169 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,169 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId") +2023-09-12 15:52:41,169 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,169 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,169 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,170 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,170 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,170 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime") +2023-09-12 15:52:41,170 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId")', ()) +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime")', ()) +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId")', ()) completed +2023-09-12 15:52:41,171 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime")', ()) completed +2023-09-12 15:52:41,172 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,172 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,172 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,172 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,173 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToBannedSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,173 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,173 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "InputData" ( + "JobID" INTEGER NOT NULL, + "LFN" VARCHAR(255) NOT NULL, + "Status" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "LFN"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,173 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToBannedSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,174 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "InputData" (\n\t"JobID" INTEGER NOT NULL, \n\t"LFN" VARCHAR(255) NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "LFN"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,175 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToBannedSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,175 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "InputData" (\n\t"JobID" INTEGER NOT NULL, \n\t"LFN" VARCHAR(255) NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "LFN"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,175 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,175 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,175 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,176 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,176 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId") +2023-09-12 15:52:41,176 | sqlalchemy.engine.Engine | INFO | [no key 0.00018s] () +2023-09-12 15:52:41,177 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "JobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,177 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,177 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,177 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,177 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,177 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,178 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId")', ()) +2023-09-12 15:52:41,178 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "JobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,178 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId")', ()) completed +2023-09-12 15:52:41,178 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "JobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,178 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,179 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,179 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value") +2023-09-12 15:52:41,179 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,179 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,179 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,180 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,180 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,180 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "OptimizerParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,180 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,181 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value")', ()) +2023-09-12 15:52:41,181 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,181 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,181 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value")', ()) completed +2023-09-12 15:52:41,181 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,182 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,182 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "OptimizerParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,182 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToPlatforms" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,182 | sqlalchemy.engine.Engine | INFO | [no key 0.00035s] () +2023-09-12 15:52:41,183 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,183 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,183 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToPlatforms" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,183 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "OptimizerParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,184 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToPlatforms" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,184 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,184 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,185 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,185 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,184 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "AtticJobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "RescheduleCycle" INTEGER NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,185 | sqlalchemy.engine.Engine | INFO | [no key 0.00042s] () +2023-09-12 15:52:41,185 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId") +2023-09-12 15:52:41,185 | sqlalchemy.engine.Engine | INFO | [no key 0.00015s] () +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "AtticJobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"RescheduleCycle" INTEGER NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,186 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId")', ()) +2023-09-12 15:52:41,187 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "AtticJobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"RescheduleCycle" INTEGER NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,187 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId")', ()) completed +2023-09-12 15:52:41,187 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,187 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,187 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,188 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,188 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "HeartBeatLoggingInfo" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "HeartBeatTime" DATETIME NOT NULL, + PRIMARY KEY ("JobID", "Name", "HeartBeatTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,188 | sqlalchemy.engine.Engine | INFO | [no key 0.00017s] () +2023-09-12 15:52:41,189 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value") +2023-09-12 15:52:41,189 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,189 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,189 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,189 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,190 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,190 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "HeartBeatLoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"HeartBeatTime" DATETIME NOT NULL, \n\tPRIMARY KEY ("JobID", "Name", "HeartBeatTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,190 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "HeartBeatLoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"HeartBeatTime" DATETIME NOT NULL, \n\tPRIMARY KEY ("JobID", "Name", "HeartBeatTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,190 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value")', ()) +2023-09-12 15:52:41,191 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value")', ()) completed +2023-09-12 15:52:41,191 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,191 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,191 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,191 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,192 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "JobCommands" ( + "JobID" INTEGER NOT NULL, + "Command" VARCHAR(100) NOT NULL, + "Arguments" VARCHAR(100) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "ReceptionTime" DATETIME NOT NULL, + "ExecutionTime" DATETIME, + PRIMARY KEY ("JobID", "ReceptionTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,192 | sqlalchemy.engine.Engine | INFO | [no key 0.00020s] () +2023-09-12 15:52:41,192 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToJobTypes" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,193 | sqlalchemy.engine.Engine | INFO | [no key 0.00015s] () +2023-09-12 15:52:41,193 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,193 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,193 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,193 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,193 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "JobCommands" (\n\t"JobID" INTEGER NOT NULL, \n\t"Command" VARCHAR(100) NOT NULL, \n\t"Arguments" VARCHAR(100) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"ReceptionTime" DATETIME NOT NULL, \n\t"ExecutionTime" DATETIME, \n\tPRIMARY KEY ("JobID", "ReceptionTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,194 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "JobCommands" (\n\t"JobID" INTEGER NOT NULL, \n\t"Command" VARCHAR(100) NOT NULL, \n\t"Arguments" VARCHAR(100) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"ReceptionTime" DATETIME NOT NULL, \n\t"ExecutionTime" DATETIME, \n\tPRIMARY KEY ("JobID", "ReceptionTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,194 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToJobTypes" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,194 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToJobTypes" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,194 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,195 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,195 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,195 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,195 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,195 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,195 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,196 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value") +2023-09-12 15:52:41,196 | sqlalchemy.engine.Engine | INFO | [no key 0.00018s] () +2023-09-12 15:52:41,196 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,197 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,197 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,197 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,197 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value")', ()) +2023-09-12 15:52:41,197 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value")', ()) completed +2023-09-12 15:52:41,198 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,198 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,198 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId") +2023-09-12 15:52:41,198 | sqlalchemy.engine.Engine | INFO | [no key 0.00015s] () +2023-09-12 15:52:41,198 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,199 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,199 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId")', ()) +2023-09-12 15:52:41,199 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId")', ()) completed +2023-09-12 15:52:41,199 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,199 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,200 | sqlalchemy.engine.Engine | INFO | +CREATE TABLE "tq_TQToTags" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +2023-09-12 15:52:41,200 | sqlalchemy.engine.Engine | INFO | [no key 0.00016s] () +2023-09-12 15:52:41,200 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,200 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,200 | aiosqlite | DEBUG | executing functools.partial(, '\nCREATE TABLE "tq_TQToTags" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +2023-09-12 15:52:41,201 | aiosqlite | DEBUG | operation functools.partial(, '\nCREATE TABLE "tq_TQToTags" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +2023-09-12 15:52:41,201 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,201 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,202 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value") +2023-09-12 15:52:41,202 | sqlalchemy.engine.Engine | INFO | [no key 0.00015s] () +2023-09-12 15:52:41,202 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,202 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,202 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value")', ()) +2023-09-12 15:52:41,203 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value")', ()) completed +2023-09-12 15:52:41,203 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,203 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,203 | sqlalchemy.engine.Engine | INFO | CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId") +2023-09-12 15:52:41,203 | sqlalchemy.engine.Engine | INFO | [no key 0.00015s] () +2023-09-12 15:52:41,204 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,204 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,204 | aiosqlite | DEBUG | executing functools.partial(, 'CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId")', ()) +2023-09-12 15:52:41,204 | aiosqlite | DEBUG | operation functools.partial(, 'CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId")', ()) completed +2023-09-12 15:52:41,205 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,205 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,205 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,205 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,205 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,206 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,206 | aiosqlite | DEBUG | operation functools.partial() completed +------------------------------ Captured log setup ------------------------------ +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.address`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.address` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.automotive`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.automotive` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.bank`. +DEBUG faker.factory:factory.py:86 Specified locale `en_US` is not available for provider `faker.providers.bank`. Locale reset to `en_GB` for this provider. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.barcode`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.barcode` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.color`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.color` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.company`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.company` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.credit_card`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.credit_card` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.currency`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.currency` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.date_time`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.date_time` has been localized to `en_US`. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.emoji` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.file` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.geo`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.geo` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.internet`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.internet` has been localized to `en_US`. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.isbn` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.job`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.job` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.lorem`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.lorem` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.misc`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.misc` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.person`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.person` has been localized to `en_US`. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.phone_number`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.phone_number` has been localized to `en_US`. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.profile` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.python` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG faker.factory:factory.py:76 Looking for locale `en_US` in provider `faker.providers.ssn`. +DEBUG faker.factory:factory.py:95 Provider `faker.providers.ssn` has been localized to `en_US`. +DEBUG faker.factory:factory.py:106 Provider `faker.providers.user_agent` does not feature localization. Specified locale `en_US` is not utilized for this provider. +DEBUG git.cmd:cmd.py:976 Popen(['git', 'init', '--initial-branch=master'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=None) +DEBUG git.util:util.py:405 Failed checking if running in CYGWIN due to: FileNotFoundError(2, 'No such file or directory') +DEBUG git.cmd:cmd.py:976 Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +DEBUG git.cmd:cmd.py:976 Popen(['git', 'cat-file', '--batch'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector +DEBUG aiosqlite:core.py:105 executing .connector at 0x7faccfdd85e0> +DEBUG aiosqlite:core.py:107 operation .connector at 0x7faccfdd85e0> completed +DEBUG aiosqlite:core.py:105 executing .connector at 0x7faccfdd9120> +DEBUG aiosqlite:core.py:105 executing .connector at 0x7faccfdd9ee0> +DEBUG aiosqlite:core.py:107 operation .connector at 0x7faccfdd9120> completed +DEBUG aiosqlite:core.py:107 operation .connector at 0x7faccfdd9ee0> completed +DEBUG aiosqlite:core.py:105 executing .connector at 0x7faccfdda840> +DEBUG aiosqlite:core.py:107 operation .connector at 0x7faccfdda840> completed +DEBUG aiosqlite:core.py:105 executing .connector at 0x7faccfddb600> +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdda0c0>, deterministic=True) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdda0c0>, deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdc3560>, deterministic=True) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd89a0>, deterministic=True) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd9760>, deterministic=True) +DEBUG aiosqlite:core.py:107 operation .connector at 0x7faccfddb600> completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'floor', 1, , deterministic=True) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdc3560>, deterministic=True) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd89a0>, deterministic=True) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfdd9760>, deterministic=True) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'floor', 1, , deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'regexp', 2, .regexp at 0x7faccfddae80>, deterministic=True) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'regexp', 2, .regexp at 0x7faccfddae80>, deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'floor', 1, , deterministic=True) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'floor', 1, , deterministic=True) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'floor', 1, , deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'floor', 1, , deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'floor', 1, , deterministic=True) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'floor', 1, , deterministic=True) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'floor', 1, , deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA read_uncommitted', []) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'floor', 1, , deterministic=True) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA read_uncommitted', []) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA read_uncommitted', []) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA read_uncommitted', []) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA read_uncommitted', []) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA read_uncommitted', []) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2685 BEGIN (implicit) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("DeviceFlows") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:2685 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("LoggingInfo") +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("DeviceFlows")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2685 BEGIN (implicit) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("Jobs") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:2685 BEGIN (implicit) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("DeviceFlows")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("sb_Owners") +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2685 BEGIN (implicit) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("LoggingInfo")', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TaskQueues") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("LoggingInfo")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TaskQueues")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("sb_Owners")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TaskQueues")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("sb_Owners")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("Jobs")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("Jobs")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("DeviceFlows") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("LoggingInfo") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("sb_Owners") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TaskQueues") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("DeviceFlows")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TaskQueues")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("DeviceFlows")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TaskQueues")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("sb_Owners")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("Jobs") +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("LoggingInfo")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("sb_Owners")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("LoggingInfo")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("AuthorizationFlows") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("Jobs")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("Jobs")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_Jobs") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "LoggingInfo" ( + "JobID" INTEGER NOT NULL, + "SeqNum" INTEGER NOT NULL, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "StatusTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "StatusTimeOrder" NUMERIC(12, 3) NOT NULL, + "StatusSource" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "SeqNum") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00027s] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("sb_SandBoxes") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("AuthorizationFlows")', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("JobJDLs") +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("AuthorizationFlows")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_Jobs")', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_Jobs")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("sb_SandBoxes")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "LoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"SeqNum" INTEGER NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"StatusTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"StatusTimeOrder" NUMERIC(12, 3) NOT NULL, \n\t"StatusSource" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "SeqNum")\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "LoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"SeqNum" INTEGER NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"StatusTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"StatusTimeOrder" NUMERIC(12, 3) NOT NULL, \n\t"StatusSource" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "SeqNum")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("JobJDLs")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("JobJDLs")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("sb_SandBoxes")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_Jobs") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("AuthorizationFlows") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2691 COMMIT +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_Jobs")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_Jobs")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("AuthorizationFlows")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("AuthorizationFlows")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("sb_SandBoxes") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("JobJDLs") +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("sb_SandBoxes")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("sb_SandBoxes")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("RefreshTokens") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToSites") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("RefreshTokens")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("JobJDLs")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("JobJDLs")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToSites")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("RefreshTokens")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToSites")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("sb_EntityMapping") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("sb_EntityMapping")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToSites") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("sb_EntityMapping")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("RefreshTokens") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("InputData") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("RefreshTokens")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("InputData")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToSites")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("sb_EntityMapping") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("InputData")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToSites")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("RefreshTokens")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("sb_EntityMapping")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("sb_EntityMapping")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("InputData") +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "DeviceFlows" ( + user_code VARCHAR(8) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + client_id VARCHAR(255) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + device_code VARCHAR(128) NOT NULL, + id_token JSON, + PRIMARY KEY (user_code), + UNIQUE (device_code) +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("InputData")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("InputData")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToGridCEs") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "sb_Owners" ( + "OwnerID" INTEGER NOT NULL, + "Owner" VARCHAR(32) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + PRIMARY KEY ("OwnerID") +) + + +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "DeviceFlows" (\n\tuser_code VARCHAR(8) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tdevice_code VARCHAR(128) NOT NULL, \n\tid_token JSON, \n\tPRIMARY KEY (user_code), \n\tUNIQUE (device_code)\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00029s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "DeviceFlows" (\n\tuser_code VARCHAR(8) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tdevice_code VARCHAR(128) NOT NULL, \n\tid_token JSON, \n\tPRIMARY KEY (user_code), \n\tUNIQUE (device_code)\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToGridCEs")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "sb_Owners" (\n\t"OwnerID" INTEGER NOT NULL, \n\t"Owner" VARCHAR(32) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("OwnerID")\n)\n\n', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("JobParameters") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "AuthorizationFlows" ( + uuid CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'PENDING' NOT NULL, + client_id VARCHAR(255) NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + audience VARCHAR(255) NOT NULL, + code_challenge VARCHAR(255) NOT NULL, + code_challenge_method VARCHAR(8) NOT NULL, + redirect_uri VARCHAR(255) NOT NULL, + code VARCHAR(255), + id_token JSON, + PRIMARY KEY (uuid) +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00018s] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToGridCEs")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "sb_Owners" (\n\t"OwnerID" INTEGER NOT NULL, \n\t"Owner" VARCHAR(32) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("OwnerID")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "AuthorizationFlows" (\n\tuuid CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tcode_challenge VARCHAR(255) NOT NULL, \n\tcode_challenge_method VARCHAR(8) NOT NULL, \n\tredirect_uri VARCHAR(255) NOT NULL, \n\tcode VARCHAR(255), \n\tid_token JSON, \n\tPRIMARY KEY (uuid)\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "AuthorizationFlows" (\n\tuuid CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'PENDING\' NOT NULL, \n\tclient_id VARCHAR(255) NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\taudience VARCHAR(255) NOT NULL, \n\tcode_challenge VARCHAR(255) NOT NULL, \n\tcode_challenge_method VARCHAR(8) NOT NULL, \n\tredirect_uri VARCHAR(255) NOT NULL, \n\tcode VARCHAR(255), \n\tid_token JSON, \n\tPRIMARY KEY (uuid)\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("JobParameters")', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "sb_SandBoxes" ( + "SBId" INTEGER NOT NULL, + "OwnerId" INTEGER NOT NULL, + "SEName" VARCHAR(64) NOT NULL, + "SEPFN" VARCHAR(512) NOT NULL, + "Bytes" BIGINT NOT NULL, + "RegistrationTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "LastAccessTime" DATETIME DEFAULT (DATETIME('now')) NOT NULL, + "Assigned" BOOLEAN NOT NULL, + PRIMARY KEY ("SBId"), + CONSTRAINT "Location" UNIQUE ("SEName", "SEPFN") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00019s] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("JobParameters")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "RefreshTokens" ( + jti CHAR(32) NOT NULL, + status VARCHAR(16) DEFAULT 'CREATED' NOT NULL, + creation_time DATETIME DEFAULT (DATETIME('now')) NOT NULL, + scope VARCHAR(1024) NOT NULL, + sub VARCHAR(1024) NOT NULL, + preferred_username VARCHAR(255) NOT NULL, + PRIMARY KEY (jti) +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "sb_SandBoxes" (\n\t"SBId" INTEGER NOT NULL, \n\t"OwnerId" INTEGER NOT NULL, \n\t"SEName" VARCHAR(64) NOT NULL, \n\t"SEPFN" VARCHAR(512) NOT NULL, \n\t"Bytes" BIGINT NOT NULL, \n\t"RegistrationTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"LastAccessTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"Assigned" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("SBId"), \n\tCONSTRAINT "Location" UNIQUE ("SEName", "SEPFN")\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "sb_SandBoxes" (\n\t"SBId" INTEGER NOT NULL, \n\t"OwnerId" INTEGER NOT NULL, \n\t"SEName" VARCHAR(64) NOT NULL, \n\t"SEPFN" VARCHAR(512) NOT NULL, \n\t"Bytes" BIGINT NOT NULL, \n\t"RegistrationTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"LastAccessTime" DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\t"Assigned" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("SBId"), \n\tCONSTRAINT "Location" UNIQUE ("SEName", "SEPFN")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToGridCEs") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "RefreshTokens" (\n\tjti CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'CREATED\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\tsub VARCHAR(1024) NOT NULL, \n\tpreferred_username VARCHAR(255) NOT NULL, \n\tPRIMARY KEY (jti)\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId") +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00041s] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "RefreshTokens" (\n\tjti CHAR(32) NOT NULL, \n\tstatus VARCHAR(16) DEFAULT \'CREATED\' NOT NULL, \n\tcreation_time DATETIME DEFAULT (DATETIME(\'now\')) NOT NULL, \n\tscope VARCHAR(1024) NOT NULL, \n\tsub VARCHAR(1024) NOT NULL, \n\tpreferred_username VARCHAR(255) NOT NULL, \n\tPRIMARY KEY (jti)\n)\n\n', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("JobParameters") +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("JobParameters")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("JobParameters")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToGridCEs")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToGridCEs")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:2691 COMMIT +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "OwnerId" ON "sb_SandBoxes" ("OwnerId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToBannedSites") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "sb_EntityMapping" ( + "SBId" INTEGER NOT NULL, + "EntityId" VARCHAR(128) NOT NULL, + "Type" VARCHAR(64) NOT NULL, + PRIMARY KEY ("SBId", "EntityId", "Type"), + CONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("OptimizerParameters") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToBannedSites")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "sb_EntityMapping" (\n\t"SBId" INTEGER NOT NULL, \n\t"EntityId" VARCHAR(128) NOT NULL, \n\t"Type" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("SBId", "EntityId", "Type"), \n\tCONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type")\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("OptimizerParameters")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("OptimizerParameters")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "sb_EntityMapping" (\n\t"SBId" INTEGER NOT NULL, \n\t"EntityId" VARCHAR(128) NOT NULL, \n\t"Type" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("SBId", "EntityId", "Type"), \n\tCONSTRAINT "Mapping" UNIQUE ("SBId", "EntityId", "Type")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToBannedSites")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00020s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("OptimizerParameters") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "SBId" ON "sb_EntityMapping" ("EntityId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToBannedSites") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2691 COMMIT +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToBannedSites")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToBannedSites")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("OptimizerParameters")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("OptimizerParameters")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToPlatforms") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("AtticJobParameters") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToPlatforms")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToPlatforms")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("AtticJobParameters")', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToPlatforms") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("AtticJobParameters")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToPlatforms")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToPlatforms")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("AtticJobParameters") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("AtticJobParameters")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("AtticJobParameters")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToJobTypes") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToJobTypes")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("SiteMask") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToJobTypes")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("SiteMask")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("SiteMask")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToJobTypes") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToJobTypes")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToJobTypes")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("SiteMask") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("tq_TQToTags") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("SiteMask")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("SiteMask")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("tq_TQToTags")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("tq_TQToTags")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("SiteMaskLogging") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("SiteMaskLogging")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("SiteMaskLogging")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("tq_TQToTags") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("tq_TQToTags")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("tq_TQToTags")', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("SiteMaskLogging") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TaskQueues" ( + "TQId" INTEGER NOT NULL, + "Owner" VARCHAR(255) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(32) NOT NULL, + "VO" VARCHAR(32) NOT NULL, + "CPUTime" BIGINT NOT NULL, + "Priority" FLOAT NOT NULL, + "Enabled" BOOLEAN NOT NULL, + PRIMARY KEY ("TQId") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00017s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("SiteMaskLogging")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("SiteMaskLogging")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TaskQueues" (\n\t"TQId" INTEGER NOT NULL, \n\t"Owner" VARCHAR(255) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\t"VO" VARCHAR(32) NOT NULL, \n\t"CPUTime" BIGINT NOT NULL, \n\t"Priority" FLOAT NOT NULL, \n\t"Enabled" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("TQId")\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TaskQueues" (\n\t"TQId" INTEGER NOT NULL, \n\t"Owner" VARCHAR(255) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(32) NOT NULL, \n\t"VO" VARCHAR(32) NOT NULL, \n\t"CPUTime" BIGINT NOT NULL, \n\t"Priority" FLOAT NOT NULL, \n\t"Enabled" BOOLEAN NOT NULL, \n\tPRIMARY KEY ("TQId")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("HeartBeatLoggingInfo") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime") +DEBUG aiosqlite:core.py:105 executing functools.partial() +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00027s] () +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("HeartBeatLoggingInfo")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("HeartBeatLoggingInfo")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "TQOwner" ON "tq_TaskQueues" ("Owner", "OwnerGroup", "CPUTime")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_Jobs" ( + "TQId" INTEGER NOT NULL, + "JobId" INTEGER NOT NULL, + "Priority" INTEGER NOT NULL, + "RealPriority" FLOAT NOT NULL, + PRIMARY KEY ("TQId", "JobId"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00046s] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("HeartBeatLoggingInfo") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_Jobs" (\n\t"TQId" INTEGER NOT NULL, \n\t"JobId" INTEGER NOT NULL, \n\t"Priority" INTEGER NOT NULL, \n\t"RealPriority" FLOAT NOT NULL, \n\tPRIMARY KEY ("TQId", "JobId"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("HeartBeatLoggingInfo")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("HeartBeatLoggingInfo")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_Jobs" (\n\t"TQId" INTEGER NOT NULL, \n\t"JobId" INTEGER NOT NULL, \n\t"Priority" INTEGER NOT NULL, \n\t"RealPriority" FLOAT NOT NULL, \n\tPRIMARY KEY ("TQId", "JobId"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA main.table_info("JobCommands") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA main.table_info("JobCommands")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA main.table_info("JobCommands")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "TaskIndex" ON "tq_Jobs" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00018s] () +INFO sqlalchemy.engine.Engine:base.py:1844 PRAGMA temp.table_info("JobCommands") +INFO sqlalchemy.engine.Engine:base.py:1844 [raw sql] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'PRAGMA temp.table_info("JobCommands")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'PRAGMA temp.table_info("JobCommands")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "JobJDLs" ( + "JobID" INTEGER NOT NULL, + "JDL" TEXT NOT NULL, + "JobRequirements" TEXT NOT NULL, + "OriginalJDL" TEXT NOT NULL, + PRIMARY KEY ("JobID") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "SitesIndex" ON "tq_TQToSites" ("Value")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "JobJDLs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JDL" TEXT NOT NULL, \n\t"JobRequirements" TEXT NOT NULL, \n\t"OriginalJDL" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID")\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "JobJDLs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JDL" TEXT NOT NULL, \n\t"JobRequirements" TEXT NOT NULL, \n\t"OriginalJDL" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "SiteMask" ( + "Site" VARCHAR(64) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "LastUpdateTime" DATETIME NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00020s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "SiteMask" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"LastUpdateTime" DATETIME NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site")\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "SiteMask" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"LastUpdateTime" DATETIME NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site")\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "SitesTaskIndex" ON "tq_TQToSites" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "SiteMaskLogging" ( + "Site" VARCHAR(64) NOT NULL, + "UpdateTime" DATETIME NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "Author" VARCHAR(255) NOT NULL, + "Comment" TEXT NOT NULL, + PRIMARY KEY ("Site", "UpdateTime") +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToGridCEs" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00019s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToGridCEs" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToGridCEs" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "SiteMaskLogging" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"UpdateTime" DATETIME NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site", "UpdateTime")\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "SiteMaskLogging" (\n\t"Site" VARCHAR(64) NOT NULL, \n\t"UpdateTime" DATETIME NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"Author" VARCHAR(255) NOT NULL, \n\t"Comment" TEXT NOT NULL, \n\tPRIMARY KEY ("Site", "UpdateTime")\n)\n\n', ()) completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00036s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "Jobs" ( + "JobID" INTEGER NOT NULL, + "JobType" VARCHAR(32) NOT NULL, + "DIRACSetup" VARCHAR(32) NOT NULL, + "JobGroup" VARCHAR(32) NOT NULL, + "JobSplitType" VARCHAR(7) NOT NULL, + "MasterJobID" INTEGER NOT NULL, + "Site" VARCHAR(100) NOT NULL, + "JobName" VARCHAR(128) NOT NULL, + "Owner" VARCHAR(64) NOT NULL, + "OwnerDN" VARCHAR(255) NOT NULL, + "OwnerGroup" VARCHAR(128) NOT NULL, + "SubmissionTime" DATETIME, + "RescheduleTime" DATETIME, + "LastUpdateTime" DATETIME, + "StartExecTime" DATETIME, + "HeartBeatTime" DATETIME, + "EndExecTime" DATETIME, + "Status" VARCHAR(32) NOT NULL, + "MinorStatus" VARCHAR(128) NOT NULL, + "ApplicationStatus" VARCHAR(255) NOT NULL, + "ApplicationNumStatus" INTEGER NOT NULL, + "UserPriority" INTEGER NOT NULL, + "SystemPriority" INTEGER NOT NULL, + "RescheduleCounter" INTEGER NOT NULL, + "VerifiedFlag" VARCHAR(5) NOT NULL, + "DeletedFlag" VARCHAR(5) NOT NULL, + "KilledFlag" VARCHAR(5) NOT NULL, + "FailedFlag" VARCHAR(5) NOT NULL, + "ISandboxReadyFlag" VARCHAR(5) NOT NULL, + "OSandboxReadyFlag" VARCHAR(5) NOT NULL, + "RetrievedFlag" VARCHAR(5) NOT NULL, + "AccountedFlag" VARCHAR(6) NOT NULL, + PRIMARY KEY ("JobID"), + FOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00021s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "Jobs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JobType" VARCHAR(32) NOT NULL, \n\t"DIRACSetup" VARCHAR(32) NOT NULL, \n\t"JobGroup" VARCHAR(32) NOT NULL, \n\t"JobSplitType" VARCHAR(7) NOT NULL, \n\t"MasterJobID" INTEGER NOT NULL, \n\t"Site" VARCHAR(100) NOT NULL, \n\t"JobName" VARCHAR(128) NOT NULL, \n\t"Owner" VARCHAR(64) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(128) NOT NULL, \n\t"SubmissionTime" DATETIME, \n\t"RescheduleTime" DATETIME, \n\t"LastUpdateTime" DATETIME, \n\t"StartExecTime" DATETIME, \n\t"HeartBeatTime" DATETIME, \n\t"EndExecTime" DATETIME, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"ApplicationNumStatus" INTEGER NOT NULL, \n\t"UserPriority" INTEGER NOT NULL, \n\t"SystemPriority" INTEGER NOT NULL, \n\t"RescheduleCounter" INTEGER NOT NULL, \n\t"VerifiedFlag" VARCHAR(5) NOT NULL, \n\t"DeletedFlag" VARCHAR(5) NOT NULL, \n\t"KilledFlag" VARCHAR(5) NOT NULL, \n\t"FailedFlag" VARCHAR(5) NOT NULL, \n\t"ISandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"OSandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"RetrievedFlag" VARCHAR(5) NOT NULL, \n\t"AccountedFlag" VARCHAR(6) NOT NULL, \n\tPRIMARY KEY ("JobID"), \n\tFOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "GridCEsValueIndex" ON "tq_TQToGridCEs" ("Value")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "Jobs" (\n\t"JobID" INTEGER NOT NULL, \n\t"JobType" VARCHAR(32) NOT NULL, \n\t"DIRACSetup" VARCHAR(32) NOT NULL, \n\t"JobGroup" VARCHAR(32) NOT NULL, \n\t"JobSplitType" VARCHAR(7) NOT NULL, \n\t"MasterJobID" INTEGER NOT NULL, \n\t"Site" VARCHAR(100) NOT NULL, \n\t"JobName" VARCHAR(128) NOT NULL, \n\t"Owner" VARCHAR(64) NOT NULL, \n\t"OwnerDN" VARCHAR(255) NOT NULL, \n\t"OwnerGroup" VARCHAR(128) NOT NULL, \n\t"SubmissionTime" DATETIME, \n\t"RescheduleTime" DATETIME, \n\t"LastUpdateTime" DATETIME, \n\t"StartExecTime" DATETIME, \n\t"HeartBeatTime" DATETIME, \n\t"EndExecTime" DATETIME, \n\t"Status" VARCHAR(32) NOT NULL, \n\t"MinorStatus" VARCHAR(128) NOT NULL, \n\t"ApplicationStatus" VARCHAR(255) NOT NULL, \n\t"ApplicationNumStatus" INTEGER NOT NULL, \n\t"UserPriority" INTEGER NOT NULL, \n\t"SystemPriority" INTEGER NOT NULL, \n\t"RescheduleCounter" INTEGER NOT NULL, \n\t"VerifiedFlag" VARCHAR(5) NOT NULL, \n\t"DeletedFlag" VARCHAR(5) NOT NULL, \n\t"KilledFlag" VARCHAR(5) NOT NULL, \n\t"FailedFlag" VARCHAR(5) NOT NULL, \n\t"ISandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"OSandboxReadyFlag" VARCHAR(5) NOT NULL, \n\t"RetrievedFlag" VARCHAR(5) NOT NULL, \n\t"AccountedFlag" VARCHAR(6) NOT NULL, \n\tPRIMARY KEY ("JobID"), \n\tFOREIGN KEY("JobID") REFERENCES "JobJDLs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "GridCEsTaskIndex" ON "tq_TQToGridCEs" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "JobType" ON "Jobs" ("DIRACSetup", "JobGroup", "JobSplitType", "Site", "Owner", "OwnerDN", "OwnerGroup", "Status", "MinorStatus", "ApplicationStatus", "LastUpdateTime")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToBannedSites" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "InputData" ( + "JobID" INTEGER NOT NULL, + "LFN" VARCHAR(255) NOT NULL, + "Status" VARCHAR(32) NOT NULL, + PRIMARY KEY ("JobID", "LFN"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToBannedSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "InputData" (\n\t"JobID" INTEGER NOT NULL, \n\t"LFN" VARCHAR(255) NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "LFN"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToBannedSites" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "InputData" (\n\t"JobID" INTEGER NOT NULL, \n\t"LFN" VARCHAR(255) NOT NULL, \n\t"Status" VARCHAR(32) NOT NULL, \n\tPRIMARY KEY ("JobID", "LFN"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00018s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "JobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "JobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "BannedSitesTaskIndex" ON "tq_TQToBannedSites" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "JobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "OptimizerParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value")', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "BannedSitesValueIndex" ON "tq_TQToBannedSites" ("Value")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "OptimizerParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToPlatforms" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00035s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToPlatforms" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "OptimizerParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToPlatforms" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "AtticJobParameters" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "RescheduleCycle" INTEGER NOT NULL, + PRIMARY KEY ("JobID", "Name"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00042s] () +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00015s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "AtticJobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"RescheduleCycle" INTEGER NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "AtticJobParameters" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"RescheduleCycle" INTEGER NOT NULL, \n\tPRIMARY KEY ("JobID", "Name"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "PlatformsTaskIndex" ON "tq_TQToPlatforms" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "HeartBeatLoggingInfo" ( + "JobID" INTEGER NOT NULL, + "Name" VARCHAR(100) NOT NULL, + "Value" TEXT NOT NULL, + "HeartBeatTime" DATETIME NOT NULL, + PRIMARY KEY ("JobID", "Name", "HeartBeatTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00017s] () +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "HeartBeatLoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"HeartBeatTime" DATETIME NOT NULL, \n\tPRIMARY KEY ("JobID", "Name", "HeartBeatTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "HeartBeatLoggingInfo" (\n\t"JobID" INTEGER NOT NULL, \n\t"Name" VARCHAR(100) NOT NULL, \n\t"Value" TEXT NOT NULL, \n\t"HeartBeatTime" DATETIME NOT NULL, \n\tPRIMARY KEY ("JobID", "Name", "HeartBeatTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "PlatformsValueIndex" ON "tq_TQToPlatforms" ("Value")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "JobCommands" ( + "JobID" INTEGER NOT NULL, + "Command" VARCHAR(100) NOT NULL, + "Arguments" VARCHAR(100) NOT NULL, + "Status" VARCHAR(64) NOT NULL, + "ReceptionTime" DATETIME NOT NULL, + "ExecutionTime" DATETIME, + PRIMARY KEY ("JobID", "ReceptionTime"), + FOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00020s] () +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToJobTypes" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00015s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "JobCommands" (\n\t"JobID" INTEGER NOT NULL, \n\t"Command" VARCHAR(100) NOT NULL, \n\t"Arguments" VARCHAR(100) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"ReceptionTime" DATETIME NOT NULL, \n\t"ExecutionTime" DATETIME, \n\tPRIMARY KEY ("JobID", "ReceptionTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "JobCommands" (\n\t"JobID" INTEGER NOT NULL, \n\t"Command" VARCHAR(100) NOT NULL, \n\t"Arguments" VARCHAR(100) NOT NULL, \n\t"Status" VARCHAR(64) NOT NULL, \n\t"ReceptionTime" DATETIME NOT NULL, \n\t"ExecutionTime" DATETIME, \n\tPRIMARY KEY ("JobID", "ReceptionTime"), \n\tFOREIGN KEY("JobID") REFERENCES "Jobs" ("JobID") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToJobTypes" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToJobTypes" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2691 COMMIT +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00018s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "JobTypesValueIndex" ON "tq_TQToJobTypes" ("Value")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00015s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "JobTypesTaskIndex" ON "tq_TQToJobTypes" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 +CREATE TABLE "tq_TQToTags" ( + "TQId" INTEGER NOT NULL, + "Value" VARCHAR(64) NOT NULL, + PRIMARY KEY ("TQId", "Value"), + FOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE +) + + +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00016s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, '\nCREATE TABLE "tq_TQToTags" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, '\nCREATE TABLE "tq_TQToTags" (\n\t"TQId" INTEGER NOT NULL, \n\t"Value" VARCHAR(64) NOT NULL, \n\tPRIMARY KEY ("TQId", "Value"), \n\tFOREIGN KEY("TQId") REFERENCES "tq_TaskQueues" ("TQId") ON DELETE CASCADE\n)\n\n', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00015s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "TagsValueIndex" ON "tq_TQToTags" ("Value")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:1844 CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId") +INFO sqlalchemy.engine.Engine:base.py:1844 [no key 0.00015s] () +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial(, 'CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId")', ()) +DEBUG aiosqlite:core.py:107 operation functools.partial(, 'CREATE INDEX "TagsTaskIndex" ON "tq_TQToTags" ("TQId")', ()) completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:base.py:2691 COMMIT +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +DEBUG aiosqlite:core.py:105 executing functools.partial() +DEBUG aiosqlite:core.py:107 operation functools.partial() completed +----------------------------- Captured stdout call ----------------------------- +2023-09-12 15:52:41,863 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,863 INFO sqlalchemy.engine.Engine INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?) +2023-09-12 15:52:41,863 INFO sqlalchemy.engine.Engine [generated in 0.00048s] ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG') +2023-09-12 15:52:41,867 INFO sqlalchemy.engine.Engine UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:41,867 INFO sqlalchemy.engine.Engine [generated in 0.00023s] ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K ... (142 characters truncated) ... 2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1) +2023-09-12 15:52:41,872 INFO sqlalchemy.engine.Engine INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2023-09-12 15:52:41,872 INFO sqlalchemy.engine.Engine [generated in 0.00054s] (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False') +2023-09-12 15:52:41,880 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:41,880 INFO sqlalchemy.engine.Engine INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 +FROM "LoggingInfo" +WHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum" +2023-09-12 15:52:41,880 INFO sqlalchemy.engine.Engine [generated in 0.00042s] (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager') +2023-09-12 15:52:41,882 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:41,883 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:42,591 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:42,591 INFO sqlalchemy.engine.Engine SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +2023-09-12 15:52:42,591 INFO sqlalchemy.engine.Engine [generated in 0.00040s] (1,) +2023-09-12 15:52:42,607 INFO sqlalchemy.engine.Engine SELECT "JobJDLs"."JDL" +FROM "JobJDLs" +WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:42,607 INFO sqlalchemy.engine.Engine [generated in 0.00039s] (1,) +2023-09-12 15:52:42,610 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:42,611 INFO sqlalchemy.engine.Engine DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ? +2023-09-12 15:52:42,611 INFO sqlalchemy.engine.Engine [generated in 0.00033s] ('Job:1',) +2023-09-12 15:52:42,616 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:42,616 INFO sqlalchemy.engine.Engine SELECT "tq_TaskQueues"."TQId" +FROM "tq_TaskQueues", "tq_Jobs" +WHERE "tq_Jobs"."JobId" = ? +2023-09-12 15:52:42,616 INFO sqlalchemy.engine.Engine [generated in 0.00033s] (1,) +2023-09-12 15:52:42,618 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:42,618 INFO sqlalchemy.engine.Engine DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ? +2023-09-12 15:52:42,619 INFO sqlalchemy.engine.Engine [generated in 0.00031s] (1,) +2023-09-12 15:52:42,620 INFO sqlalchemy.engine.Engine DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:42,621 INFO sqlalchemy.engine.Engine [generated in 0.00019s] (1,) +2023-09-12 15:52:42,622 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:42,623 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:42,624 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:42,625 INFO sqlalchemy.engine.Engine COMMIT +2023-09-12 15:52:42,632 INFO sqlalchemy.engine.Engine BEGIN (implicit) +2023-09-12 15:52:42,633 INFO sqlalchemy.engine.Engine SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +2023-09-12 15:52:42,633 INFO sqlalchemy.engine.Engine [generated in 0.00036s] (1,) +2023-09-12 15:52:42,635 INFO sqlalchemy.engine.Engine COMMIT +----------------------------- Captured stderr call ----------------------------- +2023-09-12 15:52:41,863 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,863 | sqlalchemy.engine.Engine | INFO | INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?) +2023-09-12 15:52:41,863 | sqlalchemy.engine.Engine | INFO | [generated in 0.00048s] ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG') +2023-09-12 15:52:41,863 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,864 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,864 | aiosqlite | DEBUG | executing functools.partial(, 'INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?)', ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG')) +2023-09-12 15:52:41,864 | aiosqlite | DEBUG | operation functools.partial(, 'INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?)', ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG')) completed +2023-09-12 15:52:41,864 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,864 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,867 | sqlalchemy.engine.Engine | INFO | UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:41,867 | sqlalchemy.engine.Engine | INFO | [generated in 0.00023s] ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K ... (142 characters truncated) ... 2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1) +2023-09-12 15:52:41,867 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,867 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,867 | aiosqlite | DEBUG | executing functools.partial(, 'UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ?', ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K3C6h1gSizKNuwlHFvfUSFBw3XYnolsUsqiXmbwtzSYKHzRPn5kFmqjTlncPr5IjWNkG1rFu0z812gjec0A9vUB4AkRItrIEzNtFR8xGNUFJ27Sj28ZKdS+QC+R0aM+w8cCRJMsCTFnOP5i2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1)) +2023-09-12 15:52:41,868 | aiosqlite | DEBUG | operation functools.partial(, 'UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ?', ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K3C6h1gSizKNuwlHFvfUSFBw3XYnolsUsqiXmbwtzSYKHzRPn5kFmqjTlncPr5IjWNkG1rFu0z812gjec0A9vUB4AkRItrIEzNtFR8xGNUFJ27Sj28ZKdS+QC+R0aM+w8cCRJMsCTFnOP5i2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1)) completed +2023-09-12 15:52:41,868 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,868 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,872 | sqlalchemy.engine.Engine | INFO | INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2023-09-12 15:52:41,872 | sqlalchemy.engine.Engine | INFO | [generated in 0.00054s] (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False') +2023-09-12 15:52:41,872 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,873 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,873 | aiosqlite | DEBUG | executing functools.partial(, 'INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False')) +2023-09-12 15:52:41,873 | aiosqlite | DEBUG | operation functools.partial(, 'INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False')) completed +2023-09-12 15:52:41,873 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,874 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,874 | root | DEBUG | Job added to the JobDB", "1 for preferred_username/test_group +2023-09-12 15:52:41,880 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:41,880 | sqlalchemy.engine.Engine | INFO | INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 +FROM "LoggingInfo" +WHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum" +2023-09-12 15:52:41,880 | sqlalchemy.engine.Engine | INFO | [generated in 0.00042s] (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager') +2023-09-12 15:52:41,880 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,880 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,880 | aiosqlite | DEBUG | executing functools.partial(, 'INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 \nFROM "LoggingInfo" \nWHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum"', (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager')) +2023-09-12 15:52:41,881 | aiosqlite | DEBUG | operation functools.partial(, 'INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 \nFROM "LoggingInfo" \nWHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum"', (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager')) completed +2023-09-12 15:52:41,881 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,881 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,881 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,882 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,882 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,882 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,883 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,883 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,883 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,883 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:41,884 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,884 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,884 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:41,884 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:41,885 | httpx._client | DEBUG | HTTP Request: POST http://testserver/jobs/ "HTTP/1.1 200 OK" +2023-09-12 15:52:41,890 | git.cmd | DEBUG | Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +2023-09-12 15:52:41,892 | git.cmd | DEBUG | Popen(['git', 'cat-file', '--batch'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +2023-09-12 15:52:41,894 | diracx.core.config | DEBUG | Latest revision for is 8358f1036f0aeffb63ea08c47d2294e219da810e with mtime 2023-09-12 13:52:40+00:00 +2023-09-12 15:52:41,895 | diracx.core.config | DEBUG | Reading for 8358f1036f0aeffb63ea08c47d2294e219da810e with mtime 2023-09-12 13:52:40+00:00 +2023-09-12 15:52:42,591 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:42,591 | sqlalchemy.engine.Engine | INFO | SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +2023-09-12 15:52:42,591 | sqlalchemy.engine.Engine | INFO | [generated in 0.00040s] (1,) +2023-09-12 15:52:42,592 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,592 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,592 | aiosqlite | DEBUG | executing functools.partial(, 'SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) +2023-09-12 15:52:42,592 | aiosqlite | DEBUG | operation functools.partial(, 'SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) completed +2023-09-12 15:52:42,593 | aiosqlite | DEBUG | executing functools.partial(, 1) +2023-09-12 15:52:42,593 | aiosqlite | DEBUG | operation functools.partial(, 1) completed +2023-09-12 15:52:42,593 | aiosqlite | DEBUG | executing functools.partial(, 5) +2023-09-12 15:52:42,594 | aiosqlite | DEBUG | operation functools.partial(, 5) completed +2023-09-12 15:52:42,594 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,594 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,607 | sqlalchemy.engine.Engine | INFO | SELECT "JobJDLs"."JDL" +FROM "JobJDLs" +WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:42,607 | sqlalchemy.engine.Engine | INFO | [generated in 0.00039s] (1,) +2023-09-12 15:52:42,608 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,608 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,608 | aiosqlite | DEBUG | executing functools.partial(, 'SELECT "JobJDLs"."JDL" \nFROM "JobJDLs" \nWHERE "JobJDLs"."JobID" = ?', (1,)) +2023-09-12 15:52:42,608 | aiosqlite | DEBUG | operation functools.partial(, 'SELECT "JobJDLs"."JDL" \nFROM "JobJDLs" \nWHERE "JobJDLs"."JobID" = ?', (1,)) completed +2023-09-12 15:52:42,608 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,609 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,609 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,609 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,610 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:42,611 | sqlalchemy.engine.Engine | INFO | DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ? +2023-09-12 15:52:42,611 | sqlalchemy.engine.Engine | INFO | [generated in 0.00033s] ('Job:1',) +2023-09-12 15:52:42,611 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,611 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,611 | aiosqlite | DEBUG | executing functools.partial(, 'DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ?', ('Job:1',)) +2023-09-12 15:52:42,611 | aiosqlite | DEBUG | operation functools.partial(, 'DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ?', ('Job:1',)) completed +2023-09-12 15:52:42,612 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,612 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,616 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:42,616 | sqlalchemy.engine.Engine | INFO | SELECT "tq_TaskQueues"."TQId" +FROM "tq_TaskQueues", "tq_Jobs" +WHERE "tq_Jobs"."JobId" = ? +2023-09-12 15:52:42,616 | sqlalchemy.engine.Engine | INFO | [generated in 0.00033s] (1,) +2023-09-12 15:52:42,616 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,616 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,617 | aiosqlite | DEBUG | executing functools.partial(, 'SELECT "tq_TaskQueues"."TQId" \nFROM "tq_TaskQueues", "tq_Jobs" \nWHERE "tq_Jobs"."JobId" = ?', (1,)) +2023-09-12 15:52:42,617 | aiosqlite | DEBUG | operation functools.partial(, 'SELECT "tq_TaskQueues"."TQId" \nFROM "tq_TaskQueues", "tq_Jobs" \nWHERE "tq_Jobs"."JobId" = ?', (1,)) completed +2023-09-12 15:52:42,617 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,617 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,617 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,618 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,618 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:42,618 | sqlalchemy.engine.Engine | INFO | DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ? +2023-09-12 15:52:42,619 | sqlalchemy.engine.Engine | INFO | [generated in 0.00031s] (1,) +2023-09-12 15:52:42,619 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,619 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,619 | aiosqlite | DEBUG | executing functools.partial(, 'DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ?', (1,)) +2023-09-12 15:52:42,619 | aiosqlite | DEBUG | operation functools.partial(, 'DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ?', (1,)) completed +2023-09-12 15:52:42,620 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,620 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,620 | sqlalchemy.engine.Engine | INFO | DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ? +2023-09-12 15:52:42,621 | sqlalchemy.engine.Engine | INFO | [generated in 0.00019s] (1,) +2023-09-12 15:52:42,621 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,621 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,621 | aiosqlite | DEBUG | executing functools.partial(, 'DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ?', (1,)) +2023-09-12 15:52:42,621 | aiosqlite | DEBUG | operation functools.partial(, 'DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ?', (1,)) completed +2023-09-12 15:52:42,622 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,622 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,622 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:42,622 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,623 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,623 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,623 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,623 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:42,623 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,624 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,624 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,624 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,624 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:42,625 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,625 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,625 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,625 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,625 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:42,626 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,626 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,626 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,626 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,627 | httpx._client | DEBUG | HTTP Request: POST http://testserver/jobs/1/remove "HTTP/1.1 200 OK" +2023-09-12 15:52:42,632 | sqlalchemy.engine.Engine | INFO | BEGIN (implicit) +2023-09-12 15:52:42,633 | sqlalchemy.engine.Engine | INFO | SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +2023-09-12 15:52:42,633 | sqlalchemy.engine.Engine | INFO | [generated in 0.00036s] (1,) +2023-09-12 15:52:42,633 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,633 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,633 | aiosqlite | DEBUG | executing functools.partial(, 'SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) +2023-09-12 15:52:42,633 | aiosqlite | DEBUG | operation functools.partial(, 'SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) completed +2023-09-12 15:52:42,634 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,634 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,634 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,634 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,635 | sqlalchemy.engine.Engine | INFO | COMMIT +2023-09-12 15:52:42,635 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,635 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,636 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,636 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,636 | httpx._client | DEBUG | HTTP Request: GET http://testserver/jobs/1/status "HTTP/1.1 200 OK" +------------------------------ Captured log call ------------------------------- +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?) +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00048s] ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG') +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?)', ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG')) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'INSERT INTO "JobJDLs" ("JDL", "JobRequirements", "OriginalJDL") VALUES (?, ?, ?)', ('', '', 'eJxlj0urwjAQhff+iuBaC65LF3J9oEgVqouLiLTNUCJtp0wnUrn4329iYkCc1cl35nFynlOlG2i5F4kY37BYQF+S6lhhGw1NLaYodljt4A51sklX+3E8EqaWA5Sa86IGOycV5eXUTIPBvmOLxZpQd8a/eRmMNG/AcasCPj46i089kGPvywba2w7uNXeas7yVBQ4ieTFbf0HZyl6/mF1/UIKbiGqsJh89PcsIiL4hag7s6a4eSCEpfpgoM0cyxTbtPP31b5ZLIiTD/OLAXQBvmOXx5R+BdGpG')) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00023s] ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K ... (142 characters truncated) ... 2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ?', ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K3C6h1gSizKNuwlHFvfUSFBw3XYnolsUsqiXmbwtzSYKHzRPn5kFmqjTlncPr5IjWNkG1rFu0z812gjec0A9vUB4AkRItrIEzNtFR8xGNUFJ27Sj28ZKdS+QC+R0aM+w8cCRJMsCTFnOP5i2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'UPDATE "JobJDLs" SET "JDL"=? WHERE "JobJDLs"."JobID" = ?', ('eJyFUU1Lw0AQvfsrQs42tCAiSA+lrVIpSTGtIKWUTTLGlTQbJ7PaKv53dzfZJMWPzmn2zZuZN2/XzpmjYoSp3EFOpTN03BcRTaCMkRfERe7td5nTE85cpHN4g2w4828C99q0jRerJd+Barq6vOj3K3C6h1gSizKNuwlHFvfUSFBw3XYnolsUsqiXmbwtzSYKHzRPn5kFmqjTlncPr5IjWNkG1rFu0z812gjec0A9vUB4AkRItrIEzNtFR8xGNUFJ27Sj28ZKdS+QC+R0aM+w8cCRJMsCTFnOP5i2V0/LnuOoM2fTnLg8FOZ2PbUm2G/QcOcnAkmFpJDlSST2XTc+jwS4ofnWwXYsEqh6vEyk7vkxq6TEU278BgtJboN+1ctPunjCvZ+OhZzM5SP/seaElEwRhdlj9TWV6hRb0hqr0v+Gb74BXrfP/A==', 1)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00054s] (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False') +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False')) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'INSERT INTO "Jobs" ("JobID", "JobType", "DIRACSetup", "JobGroup", "JobSplitType", "MasterJobID", "Site", "JobName", "Owner", "OwnerDN", "OwnerGroup", "SubmissionTime", "LastUpdateTime", "Status", "MinorStatus", "ApplicationStatus", "ApplicationNumStatus", "UserPriority", "SystemPriority", "RescheduleCounter", "VerifiedFlag", "DeletedFlag", "KilledFlag", "FailedFlag", "ISandboxReadyFlag", "OSandboxReadyFlag", "RetrievedFlag", "AccountedFlag") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (1, 'User', 'test', 'jobGroup', 'Single', 0, 'ANY', 'jobName', 'preferred_username', 'Unknown', 'test_group', '2023-09-12 13:52:41.859819', '2023-09-12 13:52:41.859816', , 'Job accepted', 'Unknown', 0, 1, 0, 0, 'True', 'False', 'False', 'False', 'False', 'False', 'False', 'False')) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG root:(unknown file):0 Job added to the JobDB", "1 for preferred_username/test_group +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 +FROM "LoggingInfo" +WHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum" +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00042s] (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager') +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 \nFROM "LoggingInfo" \nWHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum"', (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager')) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'INSERT INTO "LoggingInfo" ("JobID", "SeqNum", "Status", "MinorStatus", "ApplicationStatus", "StatusTime", "StatusTimeOrder", "StatusSource") VALUES (?, (SELECT coalesce(max("LoggingInfo"."SeqNum") + ?, ?) AS coalesce_1 \nFROM "LoggingInfo" \nWHERE "LoggingInfo"."JobID" = ?), ?, ?, ?, ?, ?, ?) RETURNING "SeqNum"', (1, 1, 1, 1, , 'Job accepted', 'Unknown', '2023-09-12 13:52:41.874390', 424519561.8743899, 'JobManager')) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG httpx._client:(unknown file):0 HTTP Request: POST http://testserver/jobs/ "HTTP/1.1 200 OK" +DEBUG git.cmd:(unknown file):0 Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +DEBUG git.cmd:(unknown file):0 Popen(['git', 'cat-file', '--batch'], cwd=/tmp/pytest-of-simon/pytest-27/test_remove_job0, universal_newlines=False, shell=None, istream=) +DEBUG diracx.core.config:(unknown file):0 Latest revision for is 8358f1036f0aeffb63ea08c47d2294e219da810e with mtime 2023-09-12 13:52:40+00:00 +DEBUG diracx.core.config:(unknown file):0 Reading for 8358f1036f0aeffb63ea08c47d2294e219da810e with mtime 2023-09-12 13:52:40+00:00 +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00040s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'SELECT "Jobs"."Owner", "Jobs"."OwnerGroup", "Jobs"."Status" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 1) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 1) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 5) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 5) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 SELECT "JobJDLs"."JDL" +FROM "JobJDLs" +WHERE "JobJDLs"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00039s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'SELECT "JobJDLs"."JDL" \nFROM "JobJDLs" \nWHERE "JobJDLs"."JobID" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'SELECT "JobJDLs"."JDL" \nFROM "JobJDLs" \nWHERE "JobJDLs"."JobID" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00033s] ('Job:1',) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ?', ('Job:1',)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'DELETE FROM "sb_EntityMapping" WHERE "sb_EntityMapping"."EntityId" = ?', ('Job:1',)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 SELECT "tq_TaskQueues"."TQId" +FROM "tq_TaskQueues", "tq_Jobs" +WHERE "tq_Jobs"."JobId" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00033s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'SELECT "tq_TaskQueues"."TQId" \nFROM "tq_TaskQueues", "tq_Jobs" \nWHERE "tq_Jobs"."JobId" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'SELECT "tq_TaskQueues"."TQId" \nFROM "tq_TaskQueues", "tq_Jobs" \nWHERE "tq_Jobs"."JobId" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00031s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'DELETE FROM "LoggingInfo" WHERE "LoggingInfo"."JobID" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00019s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'DELETE FROM "JobJDLs" WHERE "JobJDLs"."JobID" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG httpx._client:(unknown file):0 HTTP Request: POST http://testserver/jobs/1/remove "HTTP/1.1 200 OK" +INFO sqlalchemy.engine.Engine:(unknown file):0 BEGIN (implicit) +INFO sqlalchemy.engine.Engine:(unknown file):0 SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" +FROM "Jobs" +WHERE "Jobs"."JobID" = ? +INFO sqlalchemy.engine.Engine:(unknown file):0 [generated in 0.00036s] (1,) +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial(, 'SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) +DEBUG aiosqlite:(unknown file):0 operation functools.partial(, 'SELECT "Jobs"."Status", "Jobs"."MinorStatus", "Jobs"."ApplicationStatus" \nFROM "Jobs" \nWHERE "Jobs"."JobID" = ?', (1,)) completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +INFO sqlalchemy.engine.Engine:(unknown file):0 COMMIT +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG httpx._client:(unknown file):0 HTTP Request: GET http://testserver/jobs/1/status "HTTP/1.1 200 OK" +--------------------------- Captured stderr teardown --------------------------- +2023-09-12 15:52:42,763 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,764 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,764 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,764 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,765 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,765 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,765 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,766 | aiosqlite | DEBUG | operation functools.partial() completed +2023-09-12 15:52:42,766 | aiosqlite | DEBUG | executing functools.partial() +2023-09-12 15:52:42,766 | aiosqlite | DEBUG | operation functools.partial() completed +---------------------------- Captured log teardown ----------------------------- +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +DEBUG aiosqlite:(unknown file):0 executing functools.partial() +DEBUG aiosqlite:(unknown file):0 operation functools.partial() completed +=============================== warnings summary =============================== +tests/routers/test_job_manager.py::test_remove_job +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/typing.py:877: DeprecationWarning: `example` has been depreacated, please use `examples` instead + eval(self.__forward_code__, globalns, localns), + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/CERN/DIRAC/src/DIRAC/__init__.py:63: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html + from pkg_resources import get_distribution, DistributionNotFound + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/pkg_resources/__init__.py:2871: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('paste')`. + Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages + declare_namespace(pkg) + +tests/routers/test_job_manager.py::test_remove_job +tests/routers/test_job_manager.py::test_remove_job +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/pkg_resources/__init__.py:2871: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`. + Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages + declare_namespace(pkg) + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/pkg_resources/__init__.py:2871: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google.logging')`. + Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages + declare_namespace(pkg) + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/pkg_resources/__init__.py:2350: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`. + Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages + declare_namespace(parent) + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/pkg_resources/__init__.py:2871: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('mpl_toolkits')`. + Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages + declare_namespace(pkg) + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/M2Crypto/__init__.py:24: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead. + version_info = StrictVersion(__version__).version + +tests/routers/test_job_manager.py::test_remove_job + /home/simon/mambaforge/envs/diracx-dev/lib/python3.11/site-packages/M2Crypto/SSL/ssl_dispatcher.py:8: DeprecationWarning: The asyncore module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncio + import asyncore + +tests/routers/test_job_manager.py::test_remove_job + sys:1: SAWarning: SELECT statement has a cartesian product between FROM element(s) "tq_Jobs" and FROM element "tq_TaskQueues". Apply join condition(s) between each element to resolve. + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html + +---------- coverage: platform linux, python 3.11.4-final-0 ----------- +Name Stmts Miss Cover Missing +-------------------------------------------------------------------------- +src/diracx/__init__.py 7 2 71% 10-12 +src/diracx/__main__.py 3 3 0% 1-4 +src/diracx/api/__init__.py 0 0 100% +src/diracx/cli/__init__.py 55 55 0% 1-96 +src/diracx/cli/internal.py 48 48 0% 1-109 +src/diracx/cli/jobs.py 51 51 0% 4-111 +src/diracx/cli/utils.py 21 21 0% 1-33 +src/diracx/core/__init__.py 0 0 100% +src/diracx/core/config/__init__.py 87 13 85% 39, 53, 57, 61, 65, 70, 86, 94, 105, 108-109, 115-116 +src/diracx/core/config/schema.py 103 8 92% 23-33, 67 +src/diracx/core/exceptions.py 16 3 81% 6-7, 14 +src/diracx/core/extensions.py 22 1 95% 16 +src/diracx/core/models.py 47 0 100% +src/diracx/core/preferences.py 30 30 0% 1-45 +src/diracx/core/properties.py 84 18 79% 27, 32-34, 46-48, 51, 59, 62, 68, 74, 77, 86-93, 96 +src/diracx/core/settings.py 31 5 84% 39-40, 52-54 +src/diracx/core/utils.py 26 5 81% 28-32 +src/diracx/db/__init__.py 4 0 100% +src/diracx/db/auth/__init__.py 0 0 100% +src/diracx/db/auth/db.py 104 78 25% 45-51, 60-89, 97-106, 118-138, 152-166, 176-194, 200-221, 234-251, 260-269, 274-289, 293, 301 +src/diracx/db/auth/schema.py 45 0 100% +src/diracx/db/dummy/__init__.py 0 0 100% +src/diracx/db/dummy/db.py 22 22 0% 1-52 +src/diracx/db/dummy/schema.py 14 14 0% 1-22 +src/diracx/db/jobs/__init__.py 0 0 100% +src/diracx/db/jobs/db.py 254 166 35% 46-53, 68, 78-84, 101, 108-109, 115-118, 151-154, 194-259, 276-282, 294-296, 362-424, 437-449, 466-469, 475-476, 492-506, 527-580, 593-677, 683-744 +src/diracx/db/jobs/schema.py 171 4 98% 43-46 +src/diracx/db/jobs/status_utility.py 110 93 15% 32-152, 167-175, 198-206, 228-273, 305-345 +src/diracx/db/sandbox_metadata/__init__.py 0 0 100% +src/diracx/db/sandbox_metadata/db.py 37 22 41% 27-36, 51-73, 76-81 +src/diracx/db/sandbox_metadata/schema.py 27 0 100% +src/diracx/db/utils.py 110 32 71% 37, 42, 47, 56, 87-101, 129, 140, 150, 160-171 +src/diracx/routers/__init__.py 97 20 79% 126-149, 158, 164 +src/diracx/routers/auth.py 333 212 36% 87, 113-122, 126-140, 144-160, 193, 209-210, 233-249, 270-322, 357-376, 389-420, 426-465, 489-504, 508-512, 533-547, 552-555, 584-634, 725-743, 757-786, 797-835, 842-882, 890-895, 904-917, 935-974, 986-1003 +src/diracx/routers/configuration.py 22 12 45% 38-63 +src/diracx/routers/dependencies.py 22 0 100% +src/diracx/routers/fastapi_classes.py 29 8 72% 44-53 +src/diracx/routers/job_manager/__init__.py 209 92 56% 50, 61, 134, 148-149, 154-158, 165-178, 182, 190-191, 210-226, 248-265, 277-294, 316-334, 341-347, 358-372, 379-382, 457-469, 483-491, 496, 513-525, 543-550, 582-585, 594-598, 610-623, 631-637 +src/diracx/routers/well_known.py 14 6 57% 19-25 +-------------------------------------------------------------------------- +TOTAL 2255 1044 54% + +=========================== short test summary info ============================ +FAILED tests/routers/test_job_manager.py::test_remove_job - AssertionError: {... +================ 1 failed, 24 deselected, 13 warnings in 4.58s ================= diff --git a/run_local.sh b/run_local.sh index 5fe2f2e56..f921bba08 100755 --- a/run_local.sh +++ b/run_local.sh @@ -17,6 +17,8 @@ export DIRACX_CONFIG_BACKEND_URL="git+file://${tmp_dir}/cs_store/initialRepo" export DIRACX_DB_URL_AUTHDB="sqlite+aiosqlite:///:memory:" export DIRACX_DB_URL_JOBDB="sqlite+aiosqlite:///:memory:" export DIRACX_DB_URL_JOBLOGGINGDB="sqlite+aiosqlite:///:memory:" +export DIRACX_DB_URL_SANDBOXMETADATADB="sqlite+aiosqlite:///:memory:" +export DIRACX_DB_URL_TASKQUEUEDB="sqlite+aiosqlite:///:memory:" export DIRACX_SERVICE_AUTH_TOKEN_KEY="file://${tmp_dir}/signing-key/rs256.key" export DIRACX_SERVICE_AUTH_ALLOWED_REDIRECTS='["http://'$(hostname| tr -s '[:upper:]' '[:lower:]')':8000/docs/oauth2-redirect"]' diff --git a/setup.cfg b/setup.cfg index f70bd5d1d..45e432ba2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -78,6 +78,7 @@ diracx.dbs = JobDB = diracx.db:JobDB JobLoggingDB = diracx.db:JobLoggingDB SandboxMetadataDB = diracx.db:SandboxMetadataDB + TaskQueueDB = diracx.db:TaskQueueDB #DummyDB = diracx.db:DummyDB diracx.services = jobs = diracx.routers.job_manager:router diff --git a/src/diracx/cli/internal.py b/src/diracx/cli/internal.py index 75b9ab0c8..855a3b7dd 100644 --- a/src/diracx/cli/internal.py +++ b/src/diracx/cli/internal.py @@ -48,9 +48,7 @@ def generate_cs( DefaultGroup=user_group, Users={}, Groups={ - user_group: GroupConfig( - JobShare=None, Properties=["NormalUser"], Quota=None, Users=[] - ) + user_group: GroupConfig(Properties=["NormalUser"], Quota=None, Users=[]) }, ) config = Config( diff --git a/src/diracx/core/config/schema.py b/src/diracx/core/config/schema.py index 8f3470e05..1ee61f6d5 100644 --- a/src/diracx/core/config/schema.py +++ b/src/diracx/core/config/schema.py @@ -49,7 +49,7 @@ class GroupConfig(BaseModel): AutoAddVOMS: bool = False AutoUploadPilotProxy: bool = False AutoUploadProxy: bool = False - JobShare: Optional[int] + JobShare: int = 1000 Properties: list[SecurityProperty] Quota: Optional[int] Users: list[str] @@ -86,9 +86,14 @@ class JobMonitoringConfig(BaseModel): useESForJobParametersFlag: bool = False +class JobSchedulingConfig(BaseModel): + EnableSharesCorrection: bool = False + + class ServicesConfig(BaseModel): Catalogs: dict[str, Any] | None JobMonitoring: JobMonitoringConfig = JobMonitoringConfig() + JobScheduling: JobSchedulingConfig = JobSchedulingConfig() class OperationsConfig(BaseModel): diff --git a/src/diracx/core/models.py b/src/diracx/core/models.py index fa6048011..81753f34e 100644 --- a/src/diracx/core/models.py +++ b/src/diracx/core/models.py @@ -31,7 +31,7 @@ class SortSpec(TypedDict): class ScalarSearchSpec(TypedDict): parameter: str operator: ScalarSearchOperator - value: str + value: str | int class VectorSearchSpec(TypedDict): diff --git a/src/diracx/db/__init__.py b/src/diracx/db/__init__.py index 3dd13c3c9..e80409d69 100644 --- a/src/diracx/db/__init__.py +++ b/src/diracx/db/__init__.py @@ -1,7 +1,7 @@ -__all__ = ("AuthDB", "JobDB", "JobLoggingDB", "SandboxMetadataDB") +__all__ = ("AuthDB", "JobDB", "JobLoggingDB", "SandboxMetadataDB", "TaskQueueDB") from .auth.db import AuthDB -from .jobs.db import JobDB, JobLoggingDB +from .jobs.db import JobDB, JobLoggingDB, TaskQueueDB from .sandbox_metadata.db import SandboxMetadataDB # from .dummy.db import DummyDB diff --git a/src/diracx/db/jobs/db.py b/src/diracx/db/jobs/db.py index 573bbcc3c..0b0a581d7 100644 --- a/src/diracx/db/jobs/db.py +++ b/src/diracx/db/jobs/db.py @@ -9,16 +9,27 @@ from diracx.core.exceptions import InvalidQueryError from diracx.core.models import JobStatusReturn, LimitedJobStatusReturn +from diracx.core.properties import JOB_SHARING, SecurityProperty from diracx.core.utils import JobStatus from ..utils import BaseDB, apply_search_filters from .schema import ( + BannedSitesQueue, + GridCEsQueue, InputData, + JobCommands, JobDBBase, JobJDLs, JobLoggingDBBase, Jobs, + JobsQueue, + JobTypesQueue, LoggingInfo, + PlatformsQueue, + SitesQueue, + TagsQueue, + TaskQueueDBBase, + TaskQueues, ) @@ -260,6 +271,37 @@ async def get_job_status(self, job_id: int) -> LimitedJobStatusReturn: **dict((await self.conn.execute(stmt)).one()._mapping) ) + async def set_job_command(self, job_id: int, command: str, arguments: str = ""): + """Store a command to be passed to the job together with the next heart beat""" + stmt = insert(JobCommands).values( + JobID=job_id, + Command=command, + Arguments=arguments, + ReceptionTime=datetime.now(tz=timezone.utc), + ) + await self.conn.execute(stmt) + + async def get_vo(self, job_id: int) -> str: + """ + Get the VO of the owner of the job + """ + # TODO: Consider having a VO column in the Jobs table + from DIRAC.Core.Utilities.ClassAd.ClassAdLight import ClassAd + + # TODO: this is going to be problematic + stmt = select(JobJDLs.JDL).where(JobJDLs.JobID == job_id) + jdl = (await self.conn.execute(stmt)).scalar_one() + if not jdl.startswith("["): + jdl = f"[{jdl}]" + return ClassAd(jdl).getAttributeString("VirtualOrganisation") + + async def delete_job(self, job_id: int): + """ + Delete a job from the database + """ + stmt = delete(JobJDLs).where(JobJDLs.JobID == job_id) + await self.conn.execute(stmt) + MAGIC_EPOC_NUMBER = 1270000000 @@ -405,3 +447,298 @@ async def get_wms_time_stamps(self, job_id): result[event] = str(etime + MAGIC_EPOC_NUMBER) return result + + +class TaskQueueDB(BaseDB): + metadata = TaskQueueDBBase.metadata + + async def get_tq_id_for_job(self, job_id: int) -> int: + """ + Get the task queue info for a given job + """ + stmt = select(TaskQueues.TQId).where(JobsQueue.JobId == job_id) + return (await self.conn.execute(stmt)).scalar_one() + + async def get_owner_for_task_queue(self, tq_id: int) -> dict[str, str]: + """ + Get the owner and owner group for a task queue + """ + stmt = select(TaskQueues.Owner, TaskQueues.OwnerGroup, TaskQueues.VO).where( + TaskQueues.TQId == tq_id + ) + return dict((await self.conn.execute(stmt)).one()._mapping) + + async def remove_job(self, job_id: int): + """ + Remove a job from the task queues + """ + stmt = delete(JobsQueue).where(JobsQueue.JobId == job_id) + await self.conn.execute(stmt) + + async def delete_task_queue_if_empty( + self, + tq_id: int, + tq_owner: str, + tq_group: str, + job_share: int, + group_properties: list[SecurityProperty], + enable_shares_correction: bool, + allow_background_tqs: bool, + ): + """ + Try to delete a task queue if it's empty + """ + # Check if the task queue is empty + stmt = ( + select(TaskQueues.TQId) + .where(TaskQueues.Enabled >= 1) + .where(TaskQueues.TQId == tq_id) + .where(~TaskQueues.TQId.in_(select(JobsQueue.TQId))) + ) + rows = await self.conn.execute(stmt) + if not rows.rowcount: + return + + # Deleting the task queue (the other tables will be deleted in cascade) + stmt = delete(TaskQueues).where(TaskQueues.TQId == tq_id) + await self.conn.execute(stmt) + + await self.recalculate_tq_shares_for_entity( + tq_owner, + tq_group, + job_share, + group_properties, + enable_shares_correction, + allow_background_tqs, + ) + + async def recalculate_tq_shares_for_entity( + self, + owner: str, + group: str, + job_share: int, + group_properties: list[SecurityProperty], + enable_shares_correction: bool, + allow_background_tqs: bool, + ): + """ + Recalculate the shares for a user/userGroup combo + """ + if JOB_SHARING in group_properties: + # If group has JobSharing just set prio for that entry, user is irrelevant + return await self.__set_priorities_for_entity( + owner, group, job_share, group_properties, allow_background_tqs + ) + + stmt = ( + select(TaskQueues.Owner, func.count(TaskQueues.Owner)) + .where(TaskQueues.OwnerGroup == group) + .group_by(TaskQueues.Owner) + ) + rows = await self.conn.execute(stmt) + # make the rows a list of tuples + # Get owners in this group and the amount of times they appear + # TODO: I guess the rows are already a list of tupes + # maybe refactor + data = [(r[0], r[1]) for r in rows if r] + numOwners = len(data) + # If there are no owners do now + if numOwners == 0: + return + # Split the share amongst the number of owners + entities_shares = {row[0]: job_share / numOwners for row in data} + + # TODO: implement the following + # If corrector is enabled let it work it's magic + # if enable_shares_correction: + # entities_shares = await self.__shares_corrector.correct_shares( + # entitiesShares, group=group + # ) + + # Keep updating + owners = dict(data) + # IF the user is already known and has more than 1 tq, the rest of the users don't need to be modified + # (The number of owners didn't change) + if owner in owners and owners[owner] > 1: + await self.__set_priorities_for_entity( + owner, + group, + entities_shares[owner], + group_properties, + allow_background_tqs, + ) + return + # Oops the number of owners may have changed so we recalculate the prio for all owners in the group + for owner in owners: + await self.__set_priorities_for_entity( + owner, + group, + entities_shares[owner], + group_properties, + allow_background_tqs, + ) + pass + + async def __set_priorities_for_entity( + self, + owner: str, + group: str, + share, + properties: list[SecurityProperty], + allow_background_tqs: bool, + ): + """ + Set the priority for a user/userGroup combo given a splitted share + """ + from DIRAC.WorkloadManagementSystem.DB.TaskQueueDB import ( + TQ_MIN_SHARE, + priorityIgnoredFields, + ) + + stmt = ( + select( + TaskQueues.TQId, + func.sum(JobsQueue.RealPriority) / func.count(JobsQueue.RealPriority), + ) + # TODO: uncomment me and understand why mypy is unhappy with join here and not elsewhere + # .select_from(TaskQueues.join(JobsQueue, TaskQueues.TQId == JobsQueue.TQId)) + .where(TaskQueues.OwnerGroup == group).group_by(TaskQueues.TQId) + ) + if JOB_SHARING not in properties: + stmt = stmt.where(TaskQueues.Owner == owner) + rows = await self.conn.execute(stmt) + # Make a dict of TQId:priority + tqDict: dict[int, float] = {row[0]: row[1] for row in rows} + + if not tqDict: + return + + allowBgTQs = allow_background_tqs + + # TODO: one of the only place the logic could actually be encapsulated + # so refactor + + # Calculate Sum of priorities + totalPrio = 0.0 + for k in tqDict: + if tqDict[k] > 0.1 or not allowBgTQs: + totalPrio += tqDict[k] + # Update prio for each TQ + for tqId in tqDict: + if tqDict[tqId] > 0.1 or not allowBgTQs: + prio = (share / totalPrio) * tqDict[tqId] + else: + prio = TQ_MIN_SHARE + prio = max(prio, TQ_MIN_SHARE) + tqDict[tqId] = prio + + # Generate groups of TQs that will have the same prio=sum(prios) maomenos + rows = await self.retrieve_task_queues(list(tqDict)) + # TODO: check the following asumption is correct + allTQsData = rows + tqGroups: dict[str, list] = {} + for tqid in allTQsData: + tqData = allTQsData[tqid] + for field in ("Jobs", "Priority") + priorityIgnoredFields: + if field in tqData: + tqData.pop(field) + tqHash = [] + for f in sorted(tqData): + tqHash.append(f"{f}:{tqData[f]}") + tqHash = "|".join(tqHash) + if tqHash not in tqGroups: + tqGroups[tqHash] = [] + tqGroups[tqHash].append(tqid) + groups = [tqGroups[td] for td in tqGroups] + + # Do the grouping + for tqGroup in groups: + totalPrio = 0 + if len(tqGroup) < 2: + continue + for tqid in tqGroup: + totalPrio += tqDict[tqid] + for tqid in tqGroup: + tqDict[tqid] = totalPrio + + # Group by priorities + prioDict: dict[int, list] = {} + for tqId in tqDict: + prio = tqDict[tqId] + if prio not in prioDict: + prioDict[prio] = [] + prioDict[prio].append(tqId) + + # Execute updates + for prio, tqs in prioDict.items(): + update_stmt = ( + update(TaskQueues).where(TaskQueues.TQId.in_(tqs)).values(Priority=prio) + ) + await self.conn.execute(update_stmt) + + async def retrieve_task_queues(self, tqIdList=None): + """ + Get all the task queues + """ + if tqIdList is not None and not tqIdList: + # Empty list => Fast-track no matches + return {} + + stmt = ( + select( + TaskQueues.TQId, + TaskQueues.Priority, + func.count(JobsQueue.TQId).label("Jobs"), + TaskQueues.Owner, + TaskQueues.OwnerGroup, + TaskQueues.VO, + TaskQueues.CPUTime, + ) + .select_from(TaskQueues.join(JobsQueue, TaskQueues.TQId == JobsQueue.TQId)) + .select_from( + TaskQueues.join(SitesQueue, TaskQueues.TQId == SitesQueue.TQId) + ) + .select_from( + TaskQueues.join(GridCEsQueue, TaskQueues.TQId == GridCEsQueue.TQId) + ) + .group_by( + TaskQueues.TQId, + TaskQueues.Priority, + TaskQueues.Owner, + TaskQueues.OwnerGroup, + TaskQueues.VO, + TaskQueues.CPUTime, + ) + ) + if tqIdList is not None: + stmt = stmt.where(TaskQueues.TQId.in_(tqIdList)) + + tqData = dict(row._mapping for row in await self.conn.execute(stmt)) + # TODO: the line above should be equivalent to the following commented code, check this is the case + # for record in rows: + # tqId = record[0] + # tqData[tqId] = { + # "Priority": record[1], + # "Jobs": record[2], + # "Owner": record[3], + # "OwnerGroup": record[4], + # "VO": record[5], + # "CPUTime": record[6], + # } + + for tqId in tqData: + # TODO: maybe factorize this handy tuple list + for table, field in { + (SitesQueue, "Sites"), + (GridCEsQueue, "GridCEs"), + (BannedSitesQueue, "BannedSites"), + (PlatformsQueue, "Platforms"), + (JobTypesQueue, "JobTypes"), + (TagsQueue, "Tags"), + }: + stmt = select(table.Value).where(table.TQId == tqId) + tqData[tqId][field] = list( + row[0] for row in await self.conn.execute(stmt) + ) + + return tqData diff --git a/src/diracx/db/jobs/schema.py b/src/diracx/db/jobs/schema.py index fe76eedd2..e1b6625bc 100644 --- a/src/diracx/db/jobs/schema.py +++ b/src/diracx/db/jobs/schema.py @@ -1,9 +1,11 @@ import sqlalchemy.types as types from sqlalchemy import ( + BigInteger, + Boolean, DateTime, Enum, + Float, ForeignKey, - ForeignKeyConstraint, Index, Integer, Numeric, @@ -17,6 +19,7 @@ JobDBBase = declarative_base() JobLoggingDBBase = declarative_base() +TaskQueueDBBase = declarative_base() class EnumBackedBool(types.TypeDecorator): @@ -45,19 +48,16 @@ def process_result_value(self, value, dialect) -> bool: raise NotImplementedError(f"Unknown {value=}") -class JobJDLs(JobDBBase): - __tablename__ = "JobJDLs" - JobID = Column(Integer, autoincrement=True) - JDL = Column(Text) - JobRequirements = Column(Text) - OriginalJDL = Column(Text) - __table_args__ = (PrimaryKeyConstraint("JobID"),) - - class Jobs(JobDBBase): __tablename__ = "Jobs" - JobID = Column("JobID", Integer, primary_key=True, default=0) + JobID = Column( + "JobID", + Integer, + ForeignKey("JobJDLs.JobID", ondelete="CASCADE"), + primary_key=True, + default=0, + ) JobType = Column("JobType", String(32), default="user") DIRACSetup = Column("DIRACSetup", String(32), default="test") JobGroup = Column("JobGroup", String(32), default="00000000") @@ -96,7 +96,6 @@ class Jobs(JobDBBase): ) __table_args__ = ( - ForeignKeyConstraint(["JobID"], ["JobJDLs.JobID"]), Index("JobType", "JobType"), Index("JobGroup", "JobGroup"), Index("JobSplitType", "JobSplitType"), @@ -111,33 +110,46 @@ class Jobs(JobDBBase): ) +class JobJDLs(JobDBBase): + __tablename__ = "JobJDLs" + JobID = Column(Integer, autoincrement=True, primary_key=True) + JDL = Column(Text) + JobRequirements = Column(Text) + OriginalJDL = Column(Text) + + class InputData(JobDBBase): __tablename__ = "InputData" - JobID = Column(Integer, primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) LFN = Column(String(255), default="", primary_key=True) Status = Column(String(32), default="AprioriGood") - __table_args__ = (ForeignKeyConstraint(["JobID"], ["Jobs.JobID"]),) class JobParameters(JobDBBase): __tablename__ = "JobParameters" - JobID = Column(Integer, primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) Name = Column(String(100), primary_key=True) Value = Column(Text) - __table_args__ = (ForeignKeyConstraint(["JobID"], ["Jobs.JobID"]),) class OptimizerParameters(JobDBBase): __tablename__ = "OptimizerParameters" - JobID = Column(Integer, primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) Name = Column(String(100), primary_key=True) Value = Column(Text) - __table_args__ = (ForeignKeyConstraint(["JobID"], ["Jobs.JobID"]),) class AtticJobParameters(JobDBBase): __tablename__ = "AtticJobParameters" - JobID = Column(Integer, ForeignKey("Jobs.JobID"), primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) Name = Column(String(100), primary_key=True) Value = Column(Text) RescheduleCycle = Column(Integer) @@ -163,25 +175,25 @@ class SiteMaskLogging(JobDBBase): class HeartBeatLoggingInfo(JobDBBase): __tablename__ = "HeartBeatLoggingInfo" - JobID = Column(Integer, primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) Name = Column(String(100), primary_key=True) Value = Column(Text) HeartBeatTime = Column(DateTime, primary_key=True) - __table_args__ = (ForeignKeyConstraint(["JobID"], ["Jobs.JobID"]),) - class JobCommands(JobDBBase): __tablename__ = "JobCommands" - JobID = Column(Integer, primary_key=True) + JobID = Column( + Integer, ForeignKey("Jobs.JobID", ondelete="CASCADE"), primary_key=True + ) Command = Column(String(100)) Arguments = Column(String(100)) Status = Column(String(64), default="Received") ReceptionTime = Column(DateTime, primary_key=True) ExecutionTime = NullColumn(DateTime) - __table_args__ = (ForeignKeyConstraint(["JobID"], ["Jobs.JobID"]),) - class LoggingInfo(JobLoggingDBBase): __tablename__ = "LoggingInfo" @@ -195,3 +207,99 @@ class LoggingInfo(JobLoggingDBBase): StatusTimeOrder = Column(Numeric(precision=12, scale=3), default=0) StatusSource = Column(String(32), default="Unknown") __table_args__ = (PrimaryKeyConstraint("JobID", "SeqNum"),) + + +class TaskQueues(TaskQueueDBBase): + __tablename__ = "tq_TaskQueues" + TQId = Column(Integer, primary_key=True) + Owner = Column(String(255), nullable=False) + OwnerDN = Column(String(255)) + OwnerGroup = Column(String(32), nullable=False) + VO = Column(String(32), nullable=False) + CPUTime = Column(BigInteger, nullable=False) + Priority = Column(Float, nullable=False) + Enabled = Column(Boolean, nullable=False, default=0) + __table_args__ = (Index("TQOwner", "Owner", "OwnerGroup", "CPUTime"),) + + +class JobsQueue(TaskQueueDBBase): + __tablename__ = "tq_Jobs" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + JobId = Column(Integer, primary_key=True) + Priority = Column(Integer, nullable=False) + RealPriority = Column(Float, nullable=False) + __table_args__ = (Index("TaskIndex", "TQId"),) + + +class SitesQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToSites" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("SitesTaskIndex", "TQId"), + Index("SitesIndex", "Value"), + ) + + +class GridCEsQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToGridCEs" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("GridCEsTaskIndex", "TQId"), + Index("GridCEsValueIndex", "Value"), + ) + + +class BannedSitesQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToBannedSites" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("BannedSitesTaskIndex", "TQId"), + Index("BannedSitesValueIndex", "Value"), + ) + + +class PlatformsQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToPlatforms" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("PlatformsTaskIndex", "TQId"), + Index("PlatformsValueIndex", "Value"), + ) + + +class JobTypesQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToJobTypes" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("JobTypesTaskIndex", "TQId"), + Index("JobTypesValueIndex", "Value"), + ) + + +class TagsQueue(TaskQueueDBBase): + __tablename__ = "tq_TQToTags" + TQId = Column( + Integer, ForeignKey("tq_TaskQueues.TQId", ondelete="CASCADE"), primary_key=True + ) + Value = Column(String(64), primary_key=True) + __table_args__ = ( + Index("TagsTaskIndex", "TQId"), + Index("TagsValueIndex", "Value"), + ) diff --git a/src/diracx/db/jobs/status_utility.py b/src/diracx/db/jobs/status_utility.py index c83c05e04..4116981d6 100644 --- a/src/diracx/db/jobs/status_utility.py +++ b/src/diracx/db/jobs/status_utility.py @@ -1,15 +1,19 @@ from datetime import datetime, timezone from unittest.mock import MagicMock +from fastapi import BackgroundTasks from sqlalchemy.exc import NoResultFound +from diracx.core.config.schema import Config from diracx.core.models import ( JobStatusUpdate, ScalarSearchOperator, + ScalarSearchSpec, SetJobStatusReturn, ) from diracx.core.utils import JobStatus -from diracx.db.jobs.db import JobDB, JobLoggingDB +from diracx.db.jobs.db import JobDB, JobLoggingDB, TaskQueueDB +from diracx.routers.dependencies import SandboxMetadataDB async def set_job_status( @@ -146,3 +150,195 @@ async def set_job_status( ) return SetJobStatusReturn(**job_data) + + +async def delete_job( + job_id: int, + config: Config, + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Delete a job by killing and setting the job status to DELETED. + """ + + await __kill_delete_job( + job_id, + config, + job_db, + task_queue_db, + background_task, + ) + + await set_job_status( + job_id, + { + datetime.now(timezone.utc): JobStatusUpdate( + Status=JobStatus.DELETED, + MinorStatus="Checking accounting", + StatusSource="job_manager", + ) + }, + job_db, + job_logging_db, + force=True, + ) + + +async def kill_job( + job_id: int, + config: Config, + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + await __kill_delete_job( + job_id, + config, + job_db, + task_queue_db, + background_task, + ) + + await set_job_status( + job_id, + { + datetime.now(timezone.utc): JobStatusUpdate( + Status=JobStatus.KILLED, + MinorStatus="Marked for termination", + StatusSource="job_manager", + ) + }, + job_db, + job_logging_db, + force=True, + ) + + +async def __kill_delete_job( + job_id: int, + config: Config, + job_db: JobDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + from DIRAC.Core.Utilities.ReturnValues import returnValueOrRaise + from DIRAC.StorageManagementSystem.Client.StorageManagerClient import ( + StorageManagerClient, + ) + + res = await job_db.search( + parameters=["Status", "Owner", "OwnerGroup"], + search=[ + ScalarSearchSpec( + parameter="JobID", + operator=ScalarSearchOperator.EQUAL, + value=job_id, + ), + ], + sorts=[], + ) + if not res: + raise NoResultFound(f"Job {job_id} not found") + + status = res[0]["Status"] + owner = res[0]["Owner"] + owner_group = res[0]["OwnerGroup"] + vo = await job_db.get_vo(job_id) + + if status == JobStatus.STAGING: + returnValueOrRaise(StorageManagerClient().killTasksBySourceTaskID([job_id])) + + if status in (JobStatus.RUNNING, JobStatus.MATCHED, JobStatus.STALLED): + await job_db.set_job_command(job_id, "Kill") + + # Delete the job from the task queue + try: + tq_id = await task_queue_db.get_tq_id_for_job(job_id) + await task_queue_db.remove_job(job_id) + background_task.add_task( + task_queue_db.delete_task_queue_if_empty, + tq_id, + owner, + owner_group, + config.Registry[vo].Groups[owner_group].JobShare, + config.Registry[vo].Groups[owner_group].Properties, + config.Operations[vo].Services.JobScheduling.EnableSharesCorrection, + config.Registry[vo].Groups[owner_group].AllowBackgroundTQs, + ) + except NoResultFound: + pass + + +async def remove_job( + job_id: int, + config: Config, + job_db: JobDB, + job_logging_db: JobLoggingDB, + sandbox_metadata_db: SandboxMetadataDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Fully remove a job from the WMS databases. + """ + from DIRAC.Core.Utilities.ReturnValues import returnValueOrRaise + from DIRAC.StorageManagementSystem.Client.StorageManagerClient import ( + StorageManagerClient, + ) + + res = await job_db.search( + parameters=["Status", "Owner", "OwnerGroup"], + search=[ + ScalarSearchSpec( + parameter="JobID", + operator=ScalarSearchOperator.EQUAL, + value=job_id, + ), + ], + sorts=[], + ) + if not res: + raise NoResultFound(f"Job {job_id} not found") + + status = res[0]["Status"] + owner = res[0]["Owner"] + owner_group = res[0]["OwnerGroup"] + vo = await job_db.get_vo(job_id) + + # Remove the staging task from the StorageManager + # TODO: this was not done in the JobManagerHandler, but it was done in the kill method + # I think it should be done here too + if status == JobStatus.STAGING: + returnValueOrRaise(StorageManagerClient().killTasksBySourceTaskID([job_id])) + + # Remove the job from SandboxMetadataDB + # TODO: this was also not done in the JobManagerHandler, but it was done in the JobCleaningAgent + # I think it should be done here as well + await sandbox_metadata_db.unassign_sandbox_from_job(job_id) + + # Remove the job from TaskQueueDB + try: + tq_id = await task_queue_db.get_tq_id_for_job(job_id) + await task_queue_db.remove_job(job_id) + background_task.add_task( + task_queue_db.delete_task_queue_if_empty, + tq_id, + owner, + owner_group, + config.Registry[vo].Groups[owner_group].JobShare, + config.Registry[vo].Groups[owner_group].Properties, + config.Operations[vo].Services.JobScheduling.EnableSharesCorrection, + config.Registry[vo].Groups[owner_group].AllowBackgroundTQs, + ) + except NoResultFound: + pass + + # Remove the job from JobLoggingDB + await job_logging_db.delete_records(job_id) + + # Remove the job from JobDB + await job_db.delete_job(job_id) diff --git a/src/diracx/db/sandbox_metadata/db.py b/src/diracx/db/sandbox_metadata/db.py index 384b9a142..425aa4ec4 100644 --- a/src/diracx/db/sandbox_metadata/db.py +++ b/src/diracx/db/sandbox_metadata/db.py @@ -6,10 +6,11 @@ import datetime import sqlalchemy +from sqlalchemy import delete from ..utils import BaseDB from .schema import Base as SandboxMetadataDBBase -from .schema import sb_Owners, sb_SandBoxes +from .schema import sb_EntityMapping, sb_Owners, sb_SandBoxes class SandboxMetadataDB(BaseDB): @@ -36,7 +37,7 @@ async def _get_put_owner(self, owner: str, owner_group: str) -> int: async def insert( self, owner: str, owner_group: str, sb_SE: str, se_PFN: str, size: int = 0 - ) -> tuple[int, bool]: + ) -> int: """inserts a new sandbox in SandboxMetadataDB this is "equivalent" of DIRAC registerAndGetSandbox @@ -78,3 +79,15 @@ async def delete(self, sandbox_ids: list[int]) -> bool: await self.conn.execute(stmt) return True + + async def unassign_sandbox_from_job( + self, + job_id: int, + ): + """ + Unassign sandbox from job + """ + stmt = delete(sb_EntityMapping).where( + sb_EntityMapping.EntityId == f"Job:{job_id}" + ) + await self.conn.execute(stmt) diff --git a/src/diracx/db/utils.py b/src/diracx/db/utils.py index 93258eb4e..01466c978 100644 --- a/src/diracx/db/utils.py +++ b/src/diracx/db/utils.py @@ -126,6 +126,9 @@ async def engine_context(self) -> AsyncIterator[None]: echo=True, ) async with engine.begin() as conn: + # set PRAGMA foreign_keys=ON if sqlite + if self._db_url.startswith("sqlite"): + await conn.exec_driver_sql("PRAGMA foreign_keys=ON") await conn.run_sync(self.metadata.create_all) self._engine = engine diff --git a/src/diracx/routers/dependencies.py b/src/diracx/routers/dependencies.py index 17d4cf830..e42e7fa6c 100644 --- a/src/diracx/routers/dependencies.py +++ b/src/diracx/routers/dependencies.py @@ -5,6 +5,8 @@ "AuthDB", "JobDB", "JobLoggingDB", + "SandboxMetadataDB", + "TaskQueueDB", "add_settings_annotation", "AvailableSecurityProperties", ) @@ -19,6 +21,8 @@ from diracx.db import AuthDB as _AuthDB from diracx.db import JobDB as _JobDB from diracx.db import JobLoggingDB as _JobLoggingDB +from diracx.db import SandboxMetadataDB as _SandboxMetadataDB +from diracx.db import TaskQueueDB as _TaskQueueDB T = TypeVar("T") @@ -32,6 +36,10 @@ def add_settings_annotation(cls: T) -> T: AuthDB = Annotated[_AuthDB, Depends(_AuthDB.transaction)] JobDB = Annotated[_JobDB, Depends(_JobDB.transaction)] JobLoggingDB = Annotated[_JobLoggingDB, Depends(_JobLoggingDB.transaction)] +SandboxMetadataDB = Annotated[ + _SandboxMetadataDB, Depends(_SandboxMetadataDB.transaction) +] +TaskQueueDB = Annotated[_TaskQueueDB, Depends(_TaskQueueDB.transaction)] # Miscellaneous Config = Annotated[_Config, Depends(ConfigSource.create)] diff --git a/src/diracx/routers/job_manager/__init__.py b/src/diracx/routers/job_manager/__init__.py index 2f06a4756..f52b904ff 100644 --- a/src/diracx/routers/job_manager/__init__.py +++ b/src/diracx/routers/job_manager/__init__.py @@ -6,7 +6,7 @@ from http import HTTPStatus from typing import Annotated, Any, TypedDict -from fastapi import Body, Depends, HTTPException, Query +from fastapi import BackgroundTasks, Body, Depends, HTTPException, Query from pydantic import BaseModel, root_validator from sqlalchemy.exc import NoResultFound @@ -23,11 +23,14 @@ from diracx.core.properties import JOB_ADMINISTRATOR, NORMAL_USER from diracx.core.utils import JobStatus from diracx.db.jobs.status_utility import ( + delete_job, + kill_job, + remove_job, set_job_status, ) from ..auth import UserInfo, has_properties, verify_dirac_access_token -from ..dependencies import JobDB, JobLoggingDB +from ..dependencies import JobDB, JobLoggingDB, SandboxMetadataDB, TaskQueueDB from ..fastapi_classes import DiracxRouter MAX_PARAMETRIC_JOBS = 20 @@ -233,14 +236,101 @@ def __init__(self, user_info: UserInfo, allInfo: bool = True): @router.delete("/") -async def delete_bulk_jobs(job_ids: Annotated[list[int], Query()]): +async def delete_bulk_jobs( + job_ids: Annotated[list[int], Query()], + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + # TODO: implement job policy + try: + await asyncio.gather( + *( + delete_job( + job_id, + config, + job_db, + job_logging_db, + task_queue_db, + background_task, + ) + for job_id in job_ids + ) + ) + except NoResultFound as e: + raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail=str(e)) from e + return job_ids @router.post("/kill") async def kill_bulk_jobs( job_ids: Annotated[list[int], Query()], + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, ): + try: + await asyncio.gather( + *( + kill_job( + job_id, + config, + job_db, + job_logging_db, + task_queue_db, + background_task, + ) + for job_id in job_ids + ) + ) + except NoResultFound as e: + raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail=str(e)) from e + + return job_ids + + +@router.post("/remove") +async def remove_bulk_jobs( + job_ids: Annotated[list[int], Query()], + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + sandbox_metadata_db: SandboxMetadataDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Fully remove a list of jobs from the WMS databases. + + WARNING: This endpoint has been implemented for the compatibility with the legacy DIRAC WMS + and the JobCleaningAgent. However, once this agent is ported to diracx, this endpoint should + be removed, and the delete endpoint should be used instead for any other purpose. + """ + # TODO: implement job policy + + try: + await asyncio.gather( + *( + remove_job( + job_id, + config, + job_db, + job_logging_db, + sandbox_metadata_db, + task_queue_db, + background_task, + ) + for job_id in job_ids + ) + ) + except NoResultFound as e: + raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail=str(e)) from e + return job_ids @@ -406,6 +496,98 @@ async def get_single_job(job_id: int): return f"This job {job_id}" +@router.delete("/{job_id}") +async def delete_single_job( + job_id: int, + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Delete a job by killing and setting the job status to DELETED. + """ + + # TODO: implement job policy + try: + await delete_job( + job_id, + config, + job_db, + job_logging_db, + task_queue_db, + background_task, + ) + except NoResultFound as e: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND.value, detail=str(e) + ) from e + + return f"Job {job_id} has been successfully deleted" + + +@router.post("/{job_id}/kill") +async def kill_single_job( + job_id: int, + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Kill a job. + """ + + # TODO: implement job policy + + try: + await kill_job( + job_id, config, job_db, job_logging_db, task_queue_db, background_task + ) + except NoResultFound as e: + raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail=str(e)) from e + + return f"Job {job_id} has been successfully killed" + + +@router.post("/{job_id}/remove") +async def remove_single_job( + job_id: int, + config: Annotated[Config, Depends(ConfigSource.create)], + job_db: JobDB, + job_logging_db: JobLoggingDB, + sandbox_metadata_db: SandboxMetadataDB, + task_queue_db: TaskQueueDB, + background_task: BackgroundTasks, +): + """ + Fully remove a job from the WMS databases. + + WARNING: This endpoint has been implemented for the compatibility with the legacy DIRAC WMS + and the JobCleaningAgent. However, once this agent is ported to diracx, this endpoint should + be removed, and the delete endpoint should be used instead. + """ + + # TODO: implement job policy + + try: + await remove_job( + job_id, + config, + job_db, + job_logging_db, + sandbox_metadata_db, + task_queue_db, + background_task, + ) + except NoResultFound as e: + raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail=str(e)) from e + + return f"Job {job_id} has been successfully removed" + + @router.get("/{job_id}/status") async def get_single_job_status( job_id: int, job_db: JobDB diff --git a/tests/conftest.py b/tests/conftest.py index 24eacb6b9..000c03add 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -37,6 +37,7 @@ def pytest_collection_modifyitems(config, items): # --regenerate-client given in cli: allow client re-generation return skip_regen = pytest.mark.skip(reason="need --regenerate-client option to run") + found = False for item in items: if item.name == "test_regenerate_client": item.add_marker(skip_regen) @@ -74,6 +75,7 @@ def with_app(test_auth_settings, with_config_repo): database_urls={ "JobDB": "sqlite+aiosqlite:///:memory:", "JobLoggingDB": "sqlite+aiosqlite:///:memory:", + "TaskQueueDB": "sqlite+aiosqlite:///:memory:", "AuthDB": "sqlite+aiosqlite:///:memory:", "SandboxMetadataDB": "sqlite+aiosqlite:///:memory:", }, diff --git a/tests/routers/test_job_manager.py b/tests/routers/test_job_manager.py index f42a1f1d9..51660d52a 100644 --- a/tests/routers/test_job_manager.py +++ b/tests/routers/test_job_manager.py @@ -589,3 +589,60 @@ def test_set_job_status_with_invalid_job_id(normal_user_client: TestClient): # Assert assert r.status_code == 404, r.json() assert r.json() == {"detail": "Job 999999999 not found"} + + +def test_delete_job(normal_user_client: TestClient): + # Arrange + job_definitions = [TEST_JDL] + r = normal_user_client.post("/jobs/", json=job_definitions) + assert r.status_code == 200, r.json() + assert len(r.json()) == 1 + job_id = r.json()[0]["JobID"] + + # Act + r = normal_user_client.delete(f"/jobs/{job_id}") + + # Assert + assert r.status_code == 200, r.json() + r = normal_user_client.get(f"/jobs/{job_id}/status") + assert r.status_code == 200, r.json() + assert r.json()[str(job_id)]["Status"] == JobStatus.DELETED + assert r.json()[str(job_id)]["MinorStatus"] == "Checking accounting" + assert r.json()[str(job_id)]["ApplicationStatus"] == "Unknown" + + +def test_kill_job(normal_user_client: TestClient): + # Arrange + job_definitions = [TEST_JDL] + r = normal_user_client.post("/jobs/", json=job_definitions) + assert r.status_code == 200, r.json() + assert len(r.json()) == 1 + job_id = r.json()[0]["JobID"] + + # Act + r = normal_user_client.post(f"/jobs/{job_id}/kill") + + # Assert + assert r.status_code == 200, r.json() + r = normal_user_client.get(f"/jobs/{job_id}/status") + assert r.status_code == 200, r.json() + assert r.json()[str(job_id)]["Status"] == JobStatus.KILLED + assert r.json()[str(job_id)]["MinorStatus"] == "Marked for termination" + assert r.json()[str(job_id)]["ApplicationStatus"] == "Unknown" + + +def test_remove_job(normal_user_client: TestClient): + # Arrange + job_definitions = [TEST_JDL] + r = normal_user_client.post("/jobs/", json=job_definitions) + assert r.status_code == 200, r.json() + assert len(r.json()) == 1 + job_id = r.json()[0]["JobID"] + + # Act + r = normal_user_client.post(f"/jobs/{job_id}/remove") + + # Assert + assert r.status_code == 200, r.json() + r = normal_user_client.get(f"/jobs/{job_id}/status") + assert r.status_code == 404, r.json()