data-syncmaster 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/PKG-INFO +3 -3
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/README.rst +2 -2
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/pyproject.toml +3 -1
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/__init__.py +1 -1
- data_syncmaster-0.1.1/syncmaster/backend/main.py → data_syncmaster-0.1.2/syncmaster/backend/__init__.py +1 -8
- data_syncmaster-0.1.2/syncmaster/backend/__main__.py +35 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/export_openapi_schema.py +2 -2
- data_syncmaster-0.1.2/syncmaster/db/migrations/__main__.py +38 -0
- {data_syncmaster-0.1.1/syncmaster/db → data_syncmaster-0.1.2/syncmaster/db/migrations}/alembic.ini +2 -2
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/migrations/env.py +3 -1
- data_syncmaster-0.1.1/syncmaster/backend/logger.py +0 -2
- data_syncmaster-0.1.1/syncmaster/backend/pre_start.py +0 -94
- data_syncmaster-0.1.1/syncmaster/worker/handlers/__init__.py +0 -2
- data_syncmaster-0.1.1/syncmaster/worker/handlers/file/__init__.py +0 -2
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/LICENSE.txt +0 -0
- {data_syncmaster-0.1.1/syncmaster/backend → data_syncmaster-0.1.2/syncmaster/backend/api}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/deps.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/monitoring.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/router.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/backend/api → data_syncmaster-0.1.2/syncmaster/backend/api/v1}/__init__.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/backend/api/v1 → data_syncmaster-0.1.2/syncmaster/backend/api/v1/auth}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/auth/router.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/auth/utils.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/connections.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/groups.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/queue.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/router.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/backend/api/v1/auth → data_syncmaster-0.1.2/syncmaster/backend/api/v1/transfers}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/transfers/router.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/transfers/utils.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/users.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/handler.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/services/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/services/auth.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/services/unit_of_work.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/config.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/backend/api/v1/transfers → data_syncmaster-0.1.2/syncmaster/db}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/factory.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/migrations/README +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/migrations/script.py.mako +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/migrations/versions/2023-11-23_478240cdad4b_init.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/db → data_syncmaster-0.1.2/syncmaster/db/migrations/versions}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/mixins.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/models.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/connection.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/credentials_repository.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/group.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/queue.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/repository_with_owner.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/run.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/transfer.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/user.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/utils.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/utils.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/db/migrations → data_syncmaster-0.1.2/syncmaster/dto}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/dto/connections.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/dto/transfers.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/connection.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/credentials.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/group.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/queue.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/run.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/transfer.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/exceptions/user.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/db/migrations/versions → data_syncmaster-0.1.2/syncmaster/schemas}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/auth.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connection_types.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/dto → data_syncmaster-0.1.2/syncmaster/schemas/v1/connections}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/connection.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/hdfs.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/hive.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/oracle.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/postgres.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/s3.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/file_formats.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/groups.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/page.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/queue.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/status.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfer_types.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/db.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/schemas → data_syncmaster-0.1.2/syncmaster/schemas/v1/transfers/file}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file/hdfs.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file/s3.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file_format.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/run.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/strategy.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/types.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/users.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/schemas/v1/connections → data_syncmaster-0.1.2/syncmaster/worker}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/config.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/controller.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/schemas/v1/transfers/file → data_syncmaster-0.1.2/syncmaster/worker/handlers}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/base.py +0 -0
- {data_syncmaster-0.1.1/syncmaster/worker → data_syncmaster-0.1.2/syncmaster/worker/handlers/file}/__init__.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/file/base.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/file/hdfs.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/file/s3.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/hive.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/oracle.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/handlers/postgres.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/spark.py +0 -0
- {data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/worker/transfer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: data-syncmaster
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Syncmaster REST API + Worker
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: Syncmaster,REST,API,Worker,Replication
|
|
@@ -66,9 +66,9 @@ SyncMaster
|
|
|
66
66
|
:target: https://badge.fury.io/py/data-syncmaster
|
|
67
67
|
.. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-backend?sort=semver&label=docker
|
|
68
68
|
:target: https://hub.docker.com/r/mtsrus/syncmaster-backend
|
|
69
|
-
.. |Documentation| image:: https://readthedocs.org/projects/
|
|
69
|
+
.. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
|
|
70
70
|
:target: https://syncmaster.readthedocs.io
|
|
71
|
-
.. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/
|
|
71
|
+
.. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/Run%20All%20Tests/badge.svg
|
|
72
72
|
:target: https://github.com/MobileTeleSystems/syncmaster/actions
|
|
73
73
|
.. |Coverage| image:: https://codecov.io/gh/MobileTeleSystems/syncmaster/graph/badge.svg?token=ky7UyUxolB
|
|
74
74
|
:target: https://codecov.io/gh/MobileTeleSystems/syncmaster
|
|
@@ -17,9 +17,9 @@ SyncMaster
|
|
|
17
17
|
:target: https://badge.fury.io/py/data-syncmaster
|
|
18
18
|
.. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-backend?sort=semver&label=docker
|
|
19
19
|
:target: https://hub.docker.com/r/mtsrus/syncmaster-backend
|
|
20
|
-
.. |Documentation| image:: https://readthedocs.org/projects/
|
|
20
|
+
.. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
|
|
21
21
|
:target: https://syncmaster.readthedocs.io
|
|
22
|
-
.. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/
|
|
22
|
+
.. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/Run%20All%20Tests/badge.svg
|
|
23
23
|
:target: https://github.com/MobileTeleSystems/syncmaster/actions
|
|
24
24
|
.. |Coverage| image:: https://codecov.io/gh/MobileTeleSystems/syncmaster/graph/badge.svg?token=ky7UyUxolB
|
|
25
25
|
:target: https://codecov.io/gh/MobileTeleSystems/syncmaster
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "data-syncmaster"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.2"
|
|
4
4
|
license = "Apache-2.0"
|
|
5
5
|
description = "Syncmaster REST API + Worker"
|
|
6
6
|
authors = ["DataOps.ETL <onetools@mts.ru>"]
|
|
@@ -197,6 +197,8 @@ exclude_lines = [
|
|
|
197
197
|
"def downgrade\\(\\)",
|
|
198
198
|
]
|
|
199
199
|
|
|
200
|
+
|
|
201
|
+
|
|
200
202
|
[tool.poetry.group.docs.dependencies]
|
|
201
203
|
autodoc-pydantic = {version = "^2.0.1", python = ">=3.8"}
|
|
202
204
|
numpydoc = {version = "^1.6.0", python = ">=3.8"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SPDX-FileCopyrightText: 2023-2024 MTS (Mobile Telesystems)
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
_raw_version = "0.1.
|
|
4
|
+
_raw_version = "0.1.2"
|
|
5
5
|
# version always contain only release number like 0.0.1
|
|
6
6
|
__version__ = ".".join(_raw_version.split(".")[:3]) # noqa: WPS410
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# SPDX-FileCopyrightText: 2023-2024 MTS (Mobile Telesystems)
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import uvicorn
|
|
4
3
|
from fastapi import FastAPI, HTTPException
|
|
5
4
|
from starlette.middleware.cors import CORSMiddleware
|
|
6
5
|
|
|
@@ -22,7 +21,7 @@ from syncmaster.db.factory import create_engine, create_session_factory, get_uow
|
|
|
22
21
|
from syncmaster.exceptions import SyncmasterError
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
def
|
|
24
|
+
def application_factory(settings: Settings) -> FastAPI:
|
|
26
25
|
application = FastAPI(
|
|
27
26
|
title=settings.PROJECT_NAME,
|
|
28
27
|
debug=settings.DEBUG,
|
|
@@ -55,9 +54,3 @@ def get_application(settings: Settings) -> FastAPI:
|
|
|
55
54
|
)
|
|
56
55
|
|
|
57
56
|
return application
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if __name__ == "__main__":
|
|
61
|
-
settings = Settings()
|
|
62
|
-
app = get_application(settings=settings)
|
|
63
|
-
uvicorn.run(app, host="0.0.0.0", port=8000)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/env python3
|
|
2
|
+
# SPDX-FileCopyrightText: 2023-2024 MTS (Mobile Telesystems)
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
import uvicorn
|
|
12
|
+
|
|
13
|
+
here = Path(__file__).resolve()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def main(prog_name: str | None = None, args: list[str] | None = None):
|
|
17
|
+
"""Run uvicorn and pass the command line arguments to it."""
|
|
18
|
+
if args is None:
|
|
19
|
+
args = sys.argv.copy()
|
|
20
|
+
prog_name = args.pop(0)
|
|
21
|
+
|
|
22
|
+
if not prog_name:
|
|
23
|
+
prog_name = os.fspath(here)
|
|
24
|
+
|
|
25
|
+
args = args.copy()
|
|
26
|
+
# prepend config path before command line arguments
|
|
27
|
+
args.insert(0, "--factory")
|
|
28
|
+
args.insert(1, "syncmaster.backend:get_application")
|
|
29
|
+
|
|
30
|
+
# call uvicorn
|
|
31
|
+
uvicorn.main.main(args=args, prog_name=prog_name)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
if __name__ == "__main__":
|
|
35
|
+
main()
|
|
@@ -7,7 +7,7 @@ import sys
|
|
|
7
7
|
|
|
8
8
|
from fastapi import FastAPI
|
|
9
9
|
|
|
10
|
-
from syncmaster.backend
|
|
10
|
+
from syncmaster.backend import application_factory
|
|
11
11
|
from syncmaster.config import Settings
|
|
12
12
|
|
|
13
13
|
|
|
@@ -17,7 +17,7 @@ def get_openapi_schema(app: FastAPI) -> dict:
|
|
|
17
17
|
|
|
18
18
|
if __name__ == "__main__":
|
|
19
19
|
settings = Settings()
|
|
20
|
-
app =
|
|
20
|
+
app = application_factory(settings)
|
|
21
21
|
schema = get_openapi_schema(app)
|
|
22
22
|
file_path = sys.argv[1]
|
|
23
23
|
if not file_path:
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/bin/env python3
|
|
2
|
+
|
|
3
|
+
# SPDX-FileCopyrightText: 2023-2024 MTS (Mobile Telesystems)
|
|
4
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
import sys
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
from alembic.config import CommandLine
|
|
13
|
+
|
|
14
|
+
here = Path(__file__).resolve()
|
|
15
|
+
config_path = here.parent / "alembic.ini"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def main(prog_name: str | None = None, args: list[str] | None = None):
|
|
19
|
+
"""Run alembic and pass the command line arguments to it."""
|
|
20
|
+
if args is None:
|
|
21
|
+
args = sys.argv.copy()
|
|
22
|
+
prog_name = args.pop(0)
|
|
23
|
+
|
|
24
|
+
if not prog_name:
|
|
25
|
+
prog_name = os.fspath(here)
|
|
26
|
+
|
|
27
|
+
# prepend config path before command line arguments
|
|
28
|
+
args = args.copy()
|
|
29
|
+
args.insert(0, "-c")
|
|
30
|
+
args.insert(1, os.fspath(config_path))
|
|
31
|
+
|
|
32
|
+
# call alembic
|
|
33
|
+
cmd = CommandLine(prog=prog_name)
|
|
34
|
+
cmd.main(argv=args)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
if __name__ == "__main__":
|
|
38
|
+
main()
|
{data_syncmaster-0.1.1/syncmaster/db → data_syncmaster-0.1.2/syncmaster/db/migrations}/alembic.ini
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[alembic]
|
|
2
|
-
script_location = %(here)s
|
|
2
|
+
script_location = %(here)s
|
|
3
3
|
file_template = %%(year)d-%%(month).2d-%%(day).2d_%%(rev)s_%%(slug)s
|
|
4
|
-
prepend_sys_path =
|
|
4
|
+
prepend_sys_path = %(here)s/../../../
|
|
5
5
|
version_path_separator = os
|
|
6
6
|
|
|
7
7
|
[post_write_hooks]
|
|
@@ -18,7 +18,9 @@ config = context.config
|
|
|
18
18
|
if config.config_file_name is not None:
|
|
19
19
|
fileConfig(config.config_file_name)
|
|
20
20
|
|
|
21
|
-
config.
|
|
21
|
+
if not config.get_main_option("sqlalchemy.url"):
|
|
22
|
+
# read application settings only if sqlalchemy.url is not being passed via cli arguments
|
|
23
|
+
config.set_main_option("sqlalchemy.url", Settings().build_db_connection_uri())
|
|
22
24
|
|
|
23
25
|
target_metadata = (
|
|
24
26
|
Base.metadata,
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2023-2024 MTS (Mobile Telesystems)
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import logging
|
|
4
|
-
from time import sleep
|
|
5
|
-
|
|
6
|
-
from syncmaster.config import Settings, TestSettings
|
|
7
|
-
from tests.test_integration.test_run_transfer.conftest import get_spark_session
|
|
8
|
-
|
|
9
|
-
TIMEOUT = 5
|
|
10
|
-
COUNT = 12
|
|
11
|
-
|
|
12
|
-
logger = logging.getLogger(__name__)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def check_test_postgres(settings: Settings, test_settings: TestSettings) -> None:
|
|
16
|
-
from onetl.connection import Postgres
|
|
17
|
-
|
|
18
|
-
spark_session = get_spark_session(settings)
|
|
19
|
-
|
|
20
|
-
count = COUNT
|
|
21
|
-
connection = Postgres(
|
|
22
|
-
host=test_settings.TEST_POSTGRES_HOST,
|
|
23
|
-
port=test_settings.TEST_POSTGRES_PORT,
|
|
24
|
-
user=test_settings.TEST_POSTGRES_USER,
|
|
25
|
-
password=test_settings.TEST_POSTGRES_PASSWORD,
|
|
26
|
-
database=test_settings.TEST_POSTGRES_DB,
|
|
27
|
-
spark=spark_session,
|
|
28
|
-
)
|
|
29
|
-
exception = None
|
|
30
|
-
while count > 0:
|
|
31
|
-
try:
|
|
32
|
-
connection.check()
|
|
33
|
-
return
|
|
34
|
-
except Exception:
|
|
35
|
-
count -= 1
|
|
36
|
-
logger.info("Got exception on postgres. Will try after %d sec", TIMEOUT)
|
|
37
|
-
sleep(TIMEOUT)
|
|
38
|
-
if exception:
|
|
39
|
-
raise exception
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def check_test_oracle(settings: Settings, test_settings: TestSettings) -> None:
|
|
43
|
-
from onetl.connection import Oracle
|
|
44
|
-
|
|
45
|
-
spark_session = get_spark_session(settings)
|
|
46
|
-
|
|
47
|
-
count = COUNT
|
|
48
|
-
connection = Oracle(
|
|
49
|
-
host=test_settings.TEST_ORACLE_HOST,
|
|
50
|
-
port=test_settings.TEST_ORACLE_PORT,
|
|
51
|
-
user=test_settings.TEST_ORACLE_USER,
|
|
52
|
-
password=test_settings.TEST_ORACLE_PASSWORD,
|
|
53
|
-
service_name=test_settings.TEST_ORACLE_SERVICE_NAME,
|
|
54
|
-
sid=test_settings.TEST_ORACLE_SID,
|
|
55
|
-
spark=spark_session,
|
|
56
|
-
)
|
|
57
|
-
exception = None
|
|
58
|
-
while count > 0:
|
|
59
|
-
try:
|
|
60
|
-
connection.check()
|
|
61
|
-
return
|
|
62
|
-
except Exception:
|
|
63
|
-
count -= 1
|
|
64
|
-
logger.info("Got exception on oracle. Will try after %d sec", TIMEOUT)
|
|
65
|
-
sleep(TIMEOUT)
|
|
66
|
-
if exception:
|
|
67
|
-
raise exception
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def check_test_hive(settings: Settings, test_settings: TestSettings) -> None:
|
|
71
|
-
from onetl.connection import Hive
|
|
72
|
-
|
|
73
|
-
spark_session = get_spark_session(settings)
|
|
74
|
-
|
|
75
|
-
count = COUNT
|
|
76
|
-
connection = Hive(
|
|
77
|
-
cluster=test_settings.TEST_HIVE_CLUSTER,
|
|
78
|
-
spark=spark_session,
|
|
79
|
-
)
|
|
80
|
-
exception = None
|
|
81
|
-
while count > 0:
|
|
82
|
-
try:
|
|
83
|
-
connection.check()
|
|
84
|
-
connection.execute("SHOW DATABASES")
|
|
85
|
-
return
|
|
86
|
-
except Exception:
|
|
87
|
-
count -= 1
|
|
88
|
-
logger.info("Got exception on hive. will try after %d sec", TIMEOUT)
|
|
89
|
-
sleep(TIMEOUT)
|
|
90
|
-
if exception:
|
|
91
|
-
raise exception
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
settings = Settings()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/transfers/router.py
RENAMED
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/backend/api/v1/transfers/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/credentials_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/db/repositories/repository_with_owner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1/syncmaster/db/migrations → data_syncmaster-0.1.2/syncmaster/dto}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/connections/postgres.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file/base.py
RENAMED
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file/hdfs.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_syncmaster-0.1.1 → data_syncmaster-0.1.2}/syncmaster/schemas/v1/transfers/file_format.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|