trying to fix logging
This commit is contained in:
parent
3bd9d24a97
commit
26340f118f
@ -1,3 +1,5 @@
|
|||||||
|
import logging
|
||||||
|
from logging.config import dictConfig as logging_dict_config
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@ -13,9 +15,12 @@ from capsulflask.btcpay import client as btcpay
|
|||||||
load_dotenv(find_dotenv())
|
load_dotenv(find_dotenv())
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
app.config.from_mapping(
|
app.config.from_mapping(
|
||||||
BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"),
|
BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"),
|
||||||
SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"),
|
SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"),
|
||||||
|
LOG_LEVEL=os.environ.get("LOG_LEVEL", default="INFO"),
|
||||||
|
|
||||||
DATABASE_URL=os.environ.get("DATABASE_URL", default="sql://postgres:dev@localhost:5432/postgres"),
|
DATABASE_URL=os.environ.get("DATABASE_URL", default="sql://postgres:dev@localhost:5432/postgres"),
|
||||||
DATABASE_SCHEMA=os.environ.get("DATABASE_SCHEMA", default="public"),
|
DATABASE_SCHEMA=os.environ.get("DATABASE_SCHEMA", default="public"),
|
||||||
|
|
||||||
@ -37,6 +42,28 @@ app.config.from_mapping(
|
|||||||
BTCPAY_URL=os.environ.get("BTCPAY_URL", default="https://btcpay.cyberia.club")
|
BTCPAY_URL=os.environ.get("BTCPAY_URL", default="https://btcpay.cyberia.club")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logging_dict_config({
|
||||||
|
'version': 1,
|
||||||
|
'formatters': {'default': {
|
||||||
|
'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
|
||||||
|
}},
|
||||||
|
'handlers': {'wsgi': {
|
||||||
|
'class': 'logging.StreamHandler',
|
||||||
|
'stream': 'ext://flask.logging.wsgi_errors_stream',
|
||||||
|
'formatter': 'default'
|
||||||
|
}},
|
||||||
|
'root': {
|
||||||
|
'level': app.config['LOG_LEVEL'],
|
||||||
|
'handlers': ['wsgi']
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
# app.logger.critical("critical")
|
||||||
|
# app.logger.error("error")
|
||||||
|
# app.logger.warning("warning")
|
||||||
|
# app.logger.info("info")
|
||||||
|
# app.logger.debug("debug")
|
||||||
|
|
||||||
stripe.api_key = app.config['STRIPE_SECRET_KEY']
|
stripe.api_key = app.config['STRIPE_SECRET_KEY']
|
||||||
stripe.api_version = app.config['STRIPE_API_VERSION']
|
stripe.api_version = app.config['STRIPE_API_VERSION']
|
||||||
|
|
||||||
@ -59,5 +86,3 @@ app.register_blueprint(cli.bp)
|
|||||||
|
|
||||||
app.add_url_rule("/", endpoint="index")
|
app.add_url_rule("/", endpoint="index")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
app.run(host='127.0.0.1')
|
|
||||||
|
@ -66,19 +66,19 @@ def sql_script(f, c):
|
|||||||
def cron_task():
|
def cron_task():
|
||||||
|
|
||||||
# make sure btcpay payments get completed (in case we miss a webhook), otherwise invalidate the payment
|
# make sure btcpay payments get completed (in case we miss a webhook), otherwise invalidate the payment
|
||||||
print("cron_task: starting clean_up_unresolved_btcpay_invoices")
|
current_app.logger.info("cron_task: starting clean_up_unresolved_btcpay_invoices")
|
||||||
clean_up_unresolved_btcpay_invoices()
|
clean_up_unresolved_btcpay_invoices()
|
||||||
print("cron_task: finished clean_up_unresolved_btcpay_invoices")
|
current_app.logger.info("cron_task: finished clean_up_unresolved_btcpay_invoices")
|
||||||
|
|
||||||
# notify when funds run out
|
# notify when funds run out
|
||||||
print("cron_task: starting notify_users_about_account_balance")
|
current_app.logger.info("cron_task: starting notify_users_about_account_balance")
|
||||||
notify_users_about_account_balance()
|
notify_users_about_account_balance()
|
||||||
print("cron_task: finished notify_users_about_account_balance")
|
current_app.logger.info("cron_task: finished notify_users_about_account_balance")
|
||||||
|
|
||||||
# make sure vm system and DB are synced
|
# make sure vm system and DB are synced
|
||||||
print("cron_task: starting ensure_vms_and_db_are_synced")
|
current_app.logger.info("cron_task: starting ensure_vms_and_db_are_synced")
|
||||||
ensure_vms_and_db_are_synced()
|
ensure_vms_and_db_are_synced()
|
||||||
print("cron_task: finished ensure_vms_and_db_are_synced")
|
current_app.logger.info("cron_task: finished ensure_vms_and_db_are_synced")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -90,13 +90,13 @@ def clean_up_unresolved_btcpay_invoices():
|
|||||||
days = float((datetime.now() - unresolved_invoice['created']).total_seconds())/float(60*60*24)
|
days = float((datetime.now() - unresolved_invoice['created']).total_seconds())/float(60*60*24)
|
||||||
|
|
||||||
if btcpay_invoice['status'] == "complete":
|
if btcpay_invoice['status'] == "complete":
|
||||||
print(
|
current_app.logger.info(
|
||||||
f"resolving btcpay invoice {invoice_id} "
|
f"resolving btcpay invoice {invoice_id} "
|
||||||
f"({unresolved_invoice['email']}, ${unresolved_invoice['dollars']}) as completed "
|
f"({unresolved_invoice['email']}, ${unresolved_invoice['dollars']}) as completed "
|
||||||
)
|
)
|
||||||
get_model().btcpay_invoice_resolved(invoice_id, True)
|
get_model().btcpay_invoice_resolved(invoice_id, True)
|
||||||
elif days >= 1:
|
elif days >= 1:
|
||||||
print(
|
current_app.logger.info(
|
||||||
f"resolving btcpay invoice {invoice_id} "
|
f"resolving btcpay invoice {invoice_id} "
|
||||||
f"({unresolved_invoice['email']}, ${unresolved_invoice['dollars']}) as invalidated, "
|
f"({unresolved_invoice['email']}, ${unresolved_invoice['dollars']}) as invalidated, "
|
||||||
f"btcpay server invoice status: {btcpay_invoice['status']}"
|
f"btcpay server invoice status: {btcpay_invoice['status']}"
|
||||||
@ -224,7 +224,7 @@ def notify_users_about_account_balance():
|
|||||||
index_to_send = i
|
index_to_send = i
|
||||||
|
|
||||||
if index_to_send > -1:
|
if index_to_send > -1:
|
||||||
print(f"cron_task: sending {warnings[index_to_send]['id']} warning email to {account['email']}.")
|
current_app.logger.info(f"cron_task: sending {warnings[index_to_send]['id']} warning email to {account['email']}.")
|
||||||
get_body = warnings[index_to_send]['get_body']
|
get_body = warnings[index_to_send]['get_body']
|
||||||
get_subject = warnings[index_to_send]['get_subject']
|
get_subject = warnings[index_to_send]['get_subject']
|
||||||
current_app.config["FLASK_MAIL_INSTANCE"].send(
|
current_app.config["FLASK_MAIL_INSTANCE"].send(
|
||||||
@ -237,7 +237,7 @@ def notify_users_about_account_balance():
|
|||||||
get_model().set_account_balance_warning(account['email'], warnings[index_to_send]['id'])
|
get_model().set_account_balance_warning(account['email'], warnings[index_to_send]['id'])
|
||||||
if index_to_send == len(warnings)-1:
|
if index_to_send == len(warnings)-1:
|
||||||
for vm in vms:
|
for vm in vms:
|
||||||
print(f"cron_task: deleting {vm['id']} ( {account['email']} ) due to negative account balance.")
|
current_app.logger.warning(f"cron_task: deleting {vm['id']} ( {account['email']} ) due to negative account balance.")
|
||||||
current_app.config["VIRTUALIZATION_MODEL"].destroy(email=account["email"], id=vm['id'])
|
current_app.config["VIRTUALIZATION_MODEL"].destroy(email=account["email"], id=vm['id'])
|
||||||
get_model().delete_vm(email=account["email"], id=vm['id'])
|
get_model().delete_vm(email=account["email"], id=vm['id'])
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ def double_check_capsul_address(id, ipv4):
|
|||||||
ipv4 = result.ipv4
|
ipv4 = result.ipv4
|
||||||
get_model().update_vm_ip(email=session["account"], id=id, ipv4=result.ipv4)
|
get_model().update_vm_ip(email=session["account"], id=id, ipv4=result.ipv4)
|
||||||
except:
|
except:
|
||||||
print(f"""
|
current_app.logger.error(f"""
|
||||||
the virtualization model threw an error in double_check_capsul_address of {id}:
|
the virtualization model threw an error in double_check_capsul_address of {id}:
|
||||||
{my_exec_info_message(sys.exc_info())}"""
|
{my_exec_info_message(sys.exc_info())}"""
|
||||||
)
|
)
|
||||||
@ -82,7 +82,7 @@ def detail(id):
|
|||||||
|
|
||||||
return render_template("capsul-detail.html", vm=vm, delete=True, deleted=False)
|
return render_template("capsul-detail.html", vm=vm, delete=True, deleted=False)
|
||||||
else:
|
else:
|
||||||
print(f"deleting {vm['id']} per user request ({session['account']})")
|
current_app.logger.info(f"deleting {vm['id']} per user request ({session['account']})")
|
||||||
current_app.config["VIRTUALIZATION_MODEL"].destroy(email=session['account'], id=id)
|
current_app.config["VIRTUALIZATION_MODEL"].destroy(email=session['account'], id=id)
|
||||||
get_model().delete_vm(email=session['account'], id=id)
|
get_model().delete_vm(email=session['account'], id=id)
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ def create():
|
|||||||
flash(error)
|
flash(error)
|
||||||
|
|
||||||
if not capacity_avaliable:
|
if not capacity_avaliable:
|
||||||
print(f"when capsul capacity is restored, send an email to {session['account']}")
|
current_app.logger.warning(f"when capsul capacity is restored, send an email to {session['account']}")
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"create-capsul.html",
|
"create-capsul.html",
|
||||||
@ -299,8 +299,7 @@ def account_balance():
|
|||||||
|
|
||||||
for vm in get_vms():
|
for vm in get_vms():
|
||||||
end_datetime = vm["deleted"] if vm["deleted"] else datetime.utcnow()
|
end_datetime = vm["deleted"] if vm["deleted"] else datetime.utcnow()
|
||||||
# print(end_datetime)
|
|
||||||
# print(vm["created"])
|
|
||||||
vm_months = (end_datetime - vm["created"]).days / average_number_of_days_in_a_month
|
vm_months = (end_datetime - vm["created"]).days / average_number_of_days_in_a_month
|
||||||
vms_billed.append(dict(
|
vms_billed.append(dict(
|
||||||
id=vm["id"],
|
id=vm["id"],
|
||||||
|
@ -25,11 +25,11 @@ def init_app(app):
|
|||||||
|
|
||||||
schemaMigrations = {}
|
schemaMigrations = {}
|
||||||
schemaMigrationsPath = join(app.root_path, 'schema_migrations')
|
schemaMigrationsPath = join(app.root_path, 'schema_migrations')
|
||||||
print("loading schema migration scripts from {}".format(schemaMigrationsPath))
|
app.logger.info("loading schema migration scripts from {}".format(schemaMigrationsPath))
|
||||||
for filename in listdir(schemaMigrationsPath):
|
for filename in listdir(schemaMigrationsPath):
|
||||||
result = re.search(r"^\d+_(up|down)", filename)
|
result = re.search(r"^\d+_(up|down)", filename)
|
||||||
if not result:
|
if not result:
|
||||||
print(f"schemaVersion {filename} must match ^\d+_(up|down). exiting.")
|
app.logger.error(f"schemaVersion {filename} must match ^\\d+_(up|down). exiting.")
|
||||||
exit(1)
|
exit(1)
|
||||||
key = result.group()
|
key = result.group()
|
||||||
with open(join(schemaMigrationsPath, filename), 'rb') as file:
|
with open(join(schemaMigrationsPath, filename), 'rb') as file:
|
||||||
@ -54,12 +54,12 @@ def init_app(app):
|
|||||||
hasSchemaVersionTable = True
|
hasSchemaVersionTable = True
|
||||||
|
|
||||||
if hasSchemaVersionTable == False:
|
if hasSchemaVersionTable == False:
|
||||||
print("no table named schemaversion found in the {} schema. running migration 01_up".format(app.config['DATABASE_SCHEMA']))
|
app.logger.info("no table named schemaversion found in the {} schema. running migration 01_up".format(app.config['DATABASE_SCHEMA']))
|
||||||
try:
|
try:
|
||||||
cursor.execute(schemaMigrations["01_up"])
|
cursor.execute(schemaMigrations["01_up"])
|
||||||
connection.commit()
|
connection.commit()
|
||||||
except:
|
except:
|
||||||
print("unable to create the schemaversion table because: {}".format(my_exec_info_message(sys.exc_info())))
|
app.logger.error("unable to create the schemaversion table because: {}".format(my_exec_info_message(sys.exc_info())))
|
||||||
exit(1)
|
exit(1)
|
||||||
actionWasTaken = True
|
actionWasTaken = True
|
||||||
|
|
||||||
@ -67,24 +67,24 @@ def init_app(app):
|
|||||||
schemaVersion = cursor.fetchall()[0][0]
|
schemaVersion = cursor.fetchall()[0][0]
|
||||||
|
|
||||||
if schemaVersion > desiredSchemaVersion:
|
if schemaVersion > desiredSchemaVersion:
|
||||||
print("schemaVersion ({}) > desiredSchemaVersion ({}). schema downgrades are not supported yet. exiting.".format(
|
app.logger.critical("schemaVersion ({}) > desiredSchemaVersion ({}). schema downgrades are not supported yet. exiting.".format(
|
||||||
schemaVersion, desiredSchemaVersion
|
schemaVersion, desiredSchemaVersion
|
||||||
))
|
))
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
while schemaVersion < desiredSchemaVersion:
|
while schemaVersion < desiredSchemaVersion:
|
||||||
migrationKey = "%02d_up" % (schemaVersion+1)
|
migrationKey = "%02d_up" % (schemaVersion+1)
|
||||||
print("schemaVersion ({}) < desiredSchemaVersion ({}). running migration {}".format(
|
app.logger.info("schemaVersion ({}) < desiredSchemaVersion ({}). running migration {}".format(
|
||||||
schemaVersion, desiredSchemaVersion, migrationKey
|
schemaVersion, desiredSchemaVersion, migrationKey
|
||||||
))
|
))
|
||||||
try:
|
try:
|
||||||
cursor.execute(schemaMigrations[migrationKey])
|
cursor.execute(schemaMigrations[migrationKey])
|
||||||
connection.commit()
|
connection.commit()
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print("missing schema migration script: {}_xyz.sql".format(migrationKey))
|
app.logger.critical("missing schema migration script: {}_xyz.sql".format(migrationKey))
|
||||||
exit(1)
|
exit(1)
|
||||||
except:
|
except:
|
||||||
print("unable to execute the schema migration {} because: {}".format(migrationKey, my_exec_info_message(sys.exc_info())))
|
app.logger.critical("unable to execute the schema migration {} because: {}".format(migrationKey, my_exec_info_message(sys.exc_info())))
|
||||||
exit(1)
|
exit(1)
|
||||||
actionWasTaken = True
|
actionWasTaken = True
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ def init_app(app):
|
|||||||
versionFromDatabase = cursor.fetchall()[0][0]
|
versionFromDatabase = cursor.fetchall()[0][0]
|
||||||
|
|
||||||
if schemaVersion != versionFromDatabase:
|
if schemaVersion != versionFromDatabase:
|
||||||
print("incorrect schema version value \"{}\" after running migration {}, expected \"{}\". exiting.".format(
|
app.logger.critical("incorrect schema version value \"{}\" after running migration {}, expected \"{}\". exiting.".format(
|
||||||
versionFromDatabase,
|
versionFromDatabase,
|
||||||
migrationKey,
|
migrationKey,
|
||||||
schemaVersion
|
schemaVersion
|
||||||
@ -104,7 +104,7 @@ def init_app(app):
|
|||||||
|
|
||||||
app.config['PSYCOPG2_CONNECTION_POOL'].putconn(connection)
|
app.config['PSYCOPG2_CONNECTION_POOL'].putconn(connection)
|
||||||
|
|
||||||
print("{} current schemaVersion: \"{}\"".format(
|
app.logger.info("{} current schemaVersion: \"{}\"".format(
|
||||||
("schema migration completed." if actionWasTaken else "schema is already up to date. "), schemaVersion
|
("schema migration completed." if actionWasTaken else "schema is already up to date. "), schemaVersion
|
||||||
))
|
))
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
from nanoid import generate
|
from nanoid import generate
|
||||||
|
from flask import current_app
|
||||||
|
|
||||||
|
|
||||||
class DBModel:
|
class DBModel:
|
||||||
@ -168,7 +169,7 @@ class DBModel:
|
|||||||
row = self.cursor.fetchone()
|
row = self.cursor.fetchone()
|
||||||
if row:
|
if row:
|
||||||
if int(row[1]) != int(dollars):
|
if int(row[1]) != int(dollars):
|
||||||
print(f"""
|
current_app.logger.warning(f"""
|
||||||
{payment_type} gave us a completed payment session with a different dollar amount than what we had recorded!!
|
{payment_type} gave us a completed payment session with a different dollar amount than what we had recorded!!
|
||||||
id: {id}
|
id: {id}
|
||||||
account: {row[0]}
|
account: {row[0]}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from flask import Blueprint
|
from flask import Blueprint
|
||||||
from flask import render_template
|
from flask import render_template
|
||||||
|
from flask import current_app
|
||||||
|
|
||||||
bp = Blueprint("landing", __name__, url_prefix="/")
|
bp = Blueprint("landing", __name__, url_prefix="/")
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ def btcpay_payment():
|
|||||||
# print(invoice)
|
# print(invoice)
|
||||||
invoice_id = invoice["id"]
|
invoice_id = invoice["id"]
|
||||||
|
|
||||||
print(f"created btcpay invoice_id={invoice_id} ( {session['account']}, ${dollars} )")
|
current_app.logger.info(f"created btcpay invoice_id={invoice_id} ( {session['account']}, ${dollars} )")
|
||||||
|
|
||||||
get_model().create_payment_session("btcpay", invoice_id, session["account"], dollars)
|
get_model().create_payment_session("btcpay", invoice_id, session["account"], dollars)
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ def btcpay_webhook():
|
|||||||
success_account = get_model().consume_payment_session("btcpay", invoice_id, dollars)
|
success_account = get_model().consume_payment_session("btcpay", invoice_id, dollars)
|
||||||
|
|
||||||
if success_account:
|
if success_account:
|
||||||
print(f"{success_account} paid ${dollars} successfully (btcpay_invoice_id={invoice_id})")
|
current_app.logger.info(f"{success_account} paid ${dollars} successfully (btcpay_invoice_id={invoice_id})")
|
||||||
|
|
||||||
if invoice['status'] == "complete":
|
if invoice['status'] == "complete":
|
||||||
get_model().btcpay_invoice_resolved(invoice_id, True)
|
get_model().btcpay_invoice_resolved(invoice_id, True)
|
||||||
@ -119,7 +119,7 @@ def stripe_payment():
|
|||||||
|
|
||||||
if len(errors) == 0:
|
if len(errors) == 0:
|
||||||
|
|
||||||
print(f"creating stripe checkout session for {session['account']}, ${dollars}")
|
current_app.logger.info(f"creating stripe checkout session for {session['account']}, ${dollars}")
|
||||||
|
|
||||||
checkout_session = stripe.checkout.Session.create(
|
checkout_session = stripe.checkout.Session.create(
|
||||||
success_url=current_app.config['BASE_URL'] + "/payment/stripe/success?session_id={CHECKOUT_SESSION_ID}",
|
success_url=current_app.config['BASE_URL'] + "/payment/stripe/success?session_id={CHECKOUT_SESSION_ID}",
|
||||||
@ -138,7 +138,7 @@ def stripe_payment():
|
|||||||
)
|
)
|
||||||
stripe_checkout_session_id = checkout_session['id']
|
stripe_checkout_session_id = checkout_session['id']
|
||||||
|
|
||||||
print(f"stripe_checkout_session_id={stripe_checkout_session_id} ( {session['account']}, ${dollars} )")
|
current_app.logger.info(f"stripe_checkout_session_id={stripe_checkout_session_id} ( {session['account']}, ${dollars} )")
|
||||||
|
|
||||||
get_model().create_payment_session("stripe", stripe_checkout_session_id, session["account"], dollars)
|
get_model().create_payment_session("stripe", stripe_checkout_session_id, session["account"], dollars)
|
||||||
|
|
||||||
@ -191,13 +191,13 @@ def validate_stripe_checkout_session(stripe_checkout_session_id):
|
|||||||
def success():
|
def success():
|
||||||
stripe_checkout_session_id = request.args.get('session_id')
|
stripe_checkout_session_id = request.args.get('session_id')
|
||||||
if not stripe_checkout_session_id:
|
if not stripe_checkout_session_id:
|
||||||
print("/payment/stripe/success returned 400: missing required URL parameter session_id")
|
current_app.logger.info("/payment/stripe/success returned 400: missing required URL parameter session_id")
|
||||||
abort(400, "missing required URL parameter session_id")
|
abort(400, "missing required URL parameter session_id")
|
||||||
else:
|
else:
|
||||||
for _ in range(0, 5):
|
for _ in range(0, 5):
|
||||||
paid = validate_stripe_checkout_session(stripe_checkout_session_id)
|
paid = validate_stripe_checkout_session(stripe_checkout_session_id)
|
||||||
if paid:
|
if paid:
|
||||||
print(f"{paid['email']} paid ${paid['dollars']} successfully (stripe_checkout_session_id={stripe_checkout_session_id})")
|
current_app.logger.info(f"{paid['email']} paid ${paid['dollars']} successfully (stripe_checkout_session_id={stripe_checkout_session_id})")
|
||||||
return redirect(url_for("console.account_balance"))
|
return redirect(url_for("console.account_balance"))
|
||||||
else:
|
else:
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
@ -47,11 +47,11 @@ class MockVirtualization(VirtualizationInterface):
|
|||||||
|
|
||||||
def create(self, email: str, id: str, template_image_file_name: str, vcpus: int, memory_mb: int, ssh_public_keys: list):
|
def create(self, email: str, id: str, template_image_file_name: str, vcpus: int, memory_mb: int, ssh_public_keys: list):
|
||||||
validate_capsul_id(id)
|
validate_capsul_id(id)
|
||||||
print(f"mock create: {id} for {email}")
|
current_app.logger.info(f"mock create: {id} for {email}")
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
def destroy(self, email: str, id: str):
|
def destroy(self, email: str, id: str):
|
||||||
print(f"mock destroy: {id} for {email}")
|
current_app.logger.info(f"mock destroy: {id} for {email}")
|
||||||
|
|
||||||
|
|
||||||
class ShellScriptVirtualization(VirtualizationInterface):
|
class ShellScriptVirtualization(VirtualizationInterface):
|
||||||
@ -74,7 +74,7 @@ class ShellScriptVirtualization(VirtualizationInterface):
|
|||||||
completedProcess = run(my_args, capture_output=True)
|
completedProcess = run(my_args, capture_output=True)
|
||||||
|
|
||||||
if completedProcess.returncode != 0:
|
if completedProcess.returncode != 0:
|
||||||
print(f"""
|
current_app.logger.error(f"""
|
||||||
capacity-avaliable.sh exited {completedProcess.returncode} with
|
capacity-avaliable.sh exited {completedProcess.returncode} with
|
||||||
stdout:
|
stdout:
|
||||||
{completedProcess.stdout}
|
{completedProcess.stdout}
|
||||||
@ -85,7 +85,7 @@ class ShellScriptVirtualization(VirtualizationInterface):
|
|||||||
|
|
||||||
lines = completedProcess.stdout.splitlines()
|
lines = completedProcess.stdout.splitlines()
|
||||||
if not lines[len(lines)-1] == "yes":
|
if not lines[len(lines)-1] == "yes":
|
||||||
print("capacity-avaliable.sh exited 0 but did not return \"yes\" ")
|
current_app.logger.error("capacity-avaliable.sh exited 0 but did not return \"yes\" ")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
Loading…
Reference in New Issue
Block a user