ha/service-mgmt-tools/sm-tools/sm_tools/sm_patch.py

60 lines
1.7 KiB
Python

#
# Copyright (c) 2014 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import os
import sys
import argparse
import sqlite3
database_patches_dir = "/var/lib/sm/patches/"
database_master_name = "/var/lib/sm/sm.db"
database_running_name = "/var/run/sm/sm.db"
def main():
try:
parser = argparse.ArgumentParser(description='SM Patch')
subparsers = parser.add_subparsers(help='types')
db_parser = subparsers.add_parser('database', help='Database')
db_parser.set_defaults(which='database')
db_parser.add_argument('which_database', help='master or running')
db_parser.add_argument('patch_name', help='patch name')
args = parser.parse_args()
if args.which == 'database':
if args.which_database == 'master':
if not os.path.exists(database_master_name):
print("%s not available." % database_master_name)
sys.exit()
database = sqlite3.connect(database_master_name)
else:
if not os.path.exists(database_running_name):
print("%s not available." % database_running_name)
sys.exit()
database = sqlite3.connect(database_running_name)
cursor = database.cursor()
with open(database_patches_dir + args.patch_name) as patch_file:
for line in patch_file:
if not line.startswith('#'):
cursor.execute(line)
database.commit()
database.close()
sys.exit(0)
except KeyboardInterrupt:
sys.exit()
except Exception as e:
print(e)
sys.exit(-1)