🔀 Merge branch '2-logger'
This commit is contained in:
commit
22388cb913
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,2 @@
|
||||||
client.py
|
client.py
|
||||||
__pycache__/
|
__pycache__/
|
||||||
issues.csv
|
|
||||||
|
|
17
Makefile
17
Makefile
|
@ -1,25 +1,26 @@
|
||||||
|
VBIN=${VIRTUAL_ENV}/bin/
|
||||||
|
|
||||||
help: # Print help on Makefile
|
help: # Print help on Makefile
|
||||||
@grep '^[^.#]\+:\s\+.*#' Makefile | \
|
@grep '^[^.#]\+:\s\+.*#' Makefile | \
|
||||||
sed "s/\(.\+\):\s*\(.*\) #\s*\(.*\)/`printf "\033[93m"`\1`printf "\033[0m"` \3/" | \
|
sed "s/\(.\+\):\s*\(.*\) #\s*\(.*\)/`printf "\033[93m"`\1`printf "\033[0m"` \3/" | \
|
||||||
expand -t20
|
expand -t20
|
||||||
|
|
||||||
open_all: # Open all projects files
|
open_all: # Open all projects files
|
||||||
${EDITOR} ${VIRTUAL_ENV}/bin/activate
|
${EDITOR} ${VBIN}/activate
|
||||||
${EDITOR} .gitignore client* main.py Makefile pyproject.toml README.md requirements-dev.txt requirements.txt
|
${EDITOR} .gitignore .gitlab-ci.yaml client* main.py Makefile pyproject.toml README.md requirements-dev.txt requirements.txt
|
||||||
${EDITOR} .git/hooks/p*-commit
|
${EDITOR} .git/hooks/p*-commit
|
||||||
|
|
||||||
pre_commit: # Run the pre-commit hook
|
pre_commit: # Run the pre-commit hook
|
||||||
.git/hooks/pre-commit
|
.git/hooks/pre-commit
|
||||||
|
|
||||||
clean: # Remove files not tracked in source control
|
clean: # Remove files not tracked in source control
|
||||||
rm -rf .pytest_cache
|
rm -rf __pycache__
|
||||||
find . -type f -name "*.orig" -delete
|
find . -type f -name "*.orig" -delete
|
||||||
find . -type f -name "*.pyc" -delete
|
find . -type f -name "*.pyc" -delete
|
||||||
find . -type d -name "__pycache__" -delete
|
|
||||||
find . -type d -empty -delete
|
find . -type d -empty -delete
|
||||||
|
|
||||||
lint: # Lint code
|
lint: # Lint code
|
||||||
${VIRTUAL_ENV}/bin/black --check --quiet *.py
|
${VBIN}/black --quiet --check *.py && echo "✅ black" || echo "🚨 black"
|
||||||
${VIRTUAL_ENV}/bin/pflake8 --config=pyproject.toml
|
${VBIN}/pflake8 --config=pyproject.toml && echo "✅ pflake8" || echo "🚨 pflake8"
|
||||||
${VIRTUAL_ENV}/bin/pydocstyle
|
${VBIN}/pydocstyle && echo "✅ pydocstyle" || echo "🚨 pydocstyle"
|
||||||
${VIRTUAL_ENV}/bin/pylint --rcfile=pyproject.toml *.py
|
${VBIN}/pylint --rcfile=pyproject.toml *.py && echo "✅ pylint" || echo "🚨 pylint"
|
||||||
|
|
|
@ -51,7 +51,7 @@ python main.py -h
|
||||||
* `pip install -r requirements-dev.txt`
|
* `pip install -r requirements-dev.txt`
|
||||||
- A `Makefile` with tools : run `make help` to have a look
|
- A `Makefile` with tools : run `make help` to have a look
|
||||||
- Use the `pre-commit` git hook
|
- Use the `pre-commit` git hook
|
||||||
* `echo "make --no-print-directory lint" > .git/hooks/pre-commit`
|
* `echo "make --no-print-directory --quiet lint" > .git/hooks/pre-commit`
|
||||||
* `chmod u+x .git/hooks/pre-commit`
|
* `chmod u+x .git/hooks/pre-commit`
|
||||||
|
|
||||||
|
|
||||||
|
|
61
main.py
61
main.py
|
@ -11,11 +11,36 @@ Licenses: GNU AGPL v3: http://www.gnu.org/licenses/
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from pprint import pprint as pp
|
import client # pylint: disable=import-error
|
||||||
|
|
||||||
from client import LDP_ALIAS, opnsrch_clt # pylint: disable=import-error
|
logger = logging.getLogger(os.path.splitext(os.path.basename(sys.argv[0]))[0])
|
||||||
|
|
||||||
|
|
||||||
|
def setup_logging(options):
|
||||||
|
"""Configure logging."""
|
||||||
|
root = logging.getLogger("")
|
||||||
|
logger.setLevel(options.debug and logging.DEBUG or logging.INFO)
|
||||||
|
|
||||||
|
if options.debug:
|
||||||
|
# Logging with --debug option
|
||||||
|
# Logging on terminal standard output
|
||||||
|
|
||||||
|
handler_tty = logging.StreamHandler()
|
||||||
|
handler_tty.setFormatter(
|
||||||
|
logging.Formatter("%(name)s::%(levelname)s::%(message)s")
|
||||||
|
)
|
||||||
|
root.addHandler(handler_tty)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# Logging default setings
|
||||||
|
|
||||||
|
handler_tty = logging.StreamHandler()
|
||||||
|
handler_tty.setFormatter(logging.Formatter("%(levelname)s\t%(message)s"))
|
||||||
|
root.addHandler(handler_tty)
|
||||||
|
|
||||||
|
|
||||||
class CustomFormatter(
|
class CustomFormatter(
|
||||||
|
@ -36,6 +61,14 @@ def parse_args(args=sys.argv[1:]):
|
||||||
description=sys.modules[__name__].__doc__, formatter_class=CustomFormatter
|
description=sys.modules[__name__].__doc__, formatter_class=CustomFormatter
|
||||||
)
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"-d",
|
||||||
|
"--debug",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
help="Log activity in console",
|
||||||
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-m",
|
"-m",
|
||||||
"--mapping",
|
"--mapping",
|
||||||
|
@ -52,17 +85,29 @@ def get_map_props():
|
||||||
LDP indices are rolling and LDP do not implement the call
|
LDP indices are rolling and LDP do not implement the call
|
||||||
to get indices related to an alias.
|
to get indices related to an alias.
|
||||||
"""
|
"""
|
||||||
indices = list(opnsrch_clt.indices.get_alias("*"))
|
map_props = []
|
||||||
mapping = opnsrch_clt.indices.get_mapping(LDP_ALIAS)[indices[0]]["mappings"]
|
|
||||||
map_props = sorted(list(mapping["properties"]))
|
if client.LDP_CRED_TYPE == "token":
|
||||||
|
indices = list(client.opnsrch_clt.indices.get_alias("*"))
|
||||||
|
mapping = client.opnsrch_clt.indices.get_mapping(client.LDP_ALIAS)[indices[0]][
|
||||||
|
"mappings"
|
||||||
|
]
|
||||||
|
map_props = sorted(list(mapping["properties"]))
|
||||||
|
logger.debug("Found mapping!")
|
||||||
|
else:
|
||||||
|
logger.critical(
|
||||||
|
"Stream mapping unavailable with credential type: '%s'",
|
||||||
|
client.LDP_CRED_TYPE,
|
||||||
|
)
|
||||||
|
|
||||||
return map_props
|
return map_props
|
||||||
|
|
||||||
|
|
||||||
def main(options):
|
def main(options):
|
||||||
"""Execute as a script. Functions related to the arguments passed."""
|
"""Execute as script. Functions related to the arguments passed."""
|
||||||
if options.mapping:
|
if options.mapping:
|
||||||
response = get_map_props()
|
response = get_map_props()
|
||||||
|
logger.debug("Mapping for '%s' stream: %s", client.LDP_STREAM_NAME, response)
|
||||||
else:
|
else:
|
||||||
raise RuntimeError
|
raise RuntimeError
|
||||||
|
|
||||||
|
@ -71,6 +116,8 @@ def main(options):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
pargs = parse_args()
|
pargs = parse_args()
|
||||||
|
setup_logging(pargs)
|
||||||
result = main(pargs)
|
result = main(pargs)
|
||||||
|
|
||||||
pp(result)
|
if not pargs.debug:
|
||||||
|
print(result)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user