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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion augur/application/cli/_cli_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import psutil
import signal
from urllib.parse import urlparse
import sqlalchemy as s

from augur.tasks.init.redis_connection import get_redis_connection

Expand Down Expand Up @@ -69,4 +70,21 @@ def raise_open_file_limit(num_files):

resource.setrlimit(resource.RLIMIT_NOFILE, (num_files, current_hard))

return
return

def get_db_version(engine):
""" a helper function to return the database version
used in print_db_version and upgrade_db_version in the db cli module
"""

db_version_sql = s.sql.text(
"""
SELECT * FROM augur_operations.augur_settings WHERE setting = 'augur_data_version'
"""
)

with engine.connect() as connection:
result = int(connection.execute(db_version_sql).fetchone()[2])

engine.dispose()
return result
17 changes: 2 additions & 15 deletions augur/application/cli/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
process_repo_group_csv,
)

from ._cli_util import get_db_version
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0611: Unused get_db_version imported from _cli_util (unused-import)


logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -258,21 +260,6 @@ def add_github_org(ctx, organization_name):
controller.add_cli_org(organization_name)


# get_db_version is a helper function to print_db_version and upgrade_db_version
def get_db_version(engine):
db_version_sql = s.sql.text(
"""
SELECT * FROM augur_operations.augur_settings WHERE setting = 'augur_data_version'
"""
)

with engine.connect() as connection:
result = int(connection.execute(db_version_sql).fetchone()[2])

engine.dispose()
return result


@cli.command("print-db-version")
@test_connection
@test_db_connection
Expand Down
51 changes: 51 additions & 0 deletions augur/application/cli/selftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: MIT
import logging
import click
import sqlalchemy as s
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0611: Unused sqlalchemy imported as s (unused-import)

from sqlalchemy import select, func

from augur.application.cli import (
test_connection,
test_db_connection,
with_database,
DatabaseContext,
)
from augur.application.db.models.augur_data import Commit

# from augur.application.db.session import DatabaseSession
from datetime import datetime
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0611: Unused datetime imported from datetime (unused-import)

from augur.application.db.models import Repo
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0611: Unused Repo imported from augur.application.db.models (unused-import)


from ._cli_util import get_db_version
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0611: Unused get_db_version imported from _cli_util (unused-import)



logger = logging.getLogger(__name__)


@click.group("selftest", short_help="Augur self-testing utilities")
@click.pass_context
def cli(ctx):
ctx.obj = DatabaseContext()


@cli.command("report")
@test_connection
@test_db_connection
@with_database
@click.pass_context
def run_selftest_report(ctx):
"""
Run queries to evaluate various aspects of the augur system's functioning and produce a report
"""
click.echo('Generating Augur selftest report....')

cmt_author_name_issue_3740_query = (
select(func.count())
.select_from(Commit)
.where(Commit.cmt_author_name == '')
)
cmt_author_name_issue_3740_count = None

with ctx.obj.engine.begin() as connection:
cmt_author_name_issue_3740_count = connection.execute(cmt_author_name_issue_3740_query).scalar_one()
click.echo(f'Issue 3740 count: {cmt_author_name_issue_3740_count} commit files in the `commits` table contain authors with an empty string as their name')
Loading