161 lines
5.7 KiB
Python
Executable File
161 lines
5.7 KiB
Python
Executable File
#
|
|
# Copyright (c) 2015 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
import os
|
|
import sys
|
|
import argparse
|
|
import sqlite3
|
|
|
|
database_name = "/var/lib/sm/sm.db"
|
|
|
|
|
|
def main():
|
|
file_name = os.path.basename(sys.argv[0])
|
|
if "sm-provision" == file_name:
|
|
provision_str = "yes"
|
|
else:
|
|
provision_str = "no"
|
|
|
|
try:
|
|
parser = argparse.ArgumentParser(description='SM Provision ')
|
|
subparsers = parser.add_subparsers(help='types')
|
|
|
|
# Domain
|
|
sd = subparsers.add_parser('service-domain',
|
|
help='Provision Service Domain')
|
|
sd.set_defaults(which='service_domain')
|
|
sd.add_argument('service_domain', help='service domain name')
|
|
|
|
# Domain Member
|
|
sd_member_parser = subparsers.add_parser('service-domain-member',
|
|
help='Provision Service '
|
|
'Domain Member')
|
|
sd_member_parser.set_defaults(which='service_domain_member')
|
|
sd_member_parser.add_argument('service_domain',
|
|
help='service domain name')
|
|
sd_member_parser.add_argument('service_group',
|
|
help='service group name')
|
|
|
|
# Domain Interface
|
|
sd_member_parser = subparsers.add_parser('service-domain-interface',
|
|
help='Provision Service '
|
|
'Domain Interface')
|
|
sd_member_parser.set_defaults(which='service_domain_interface')
|
|
sd_member_parser.add_argument('service_domain',
|
|
help='service domain name')
|
|
sd_member_parser.add_argument('service_domain_interface',
|
|
help='service domain interface name')
|
|
|
|
# Service-Group
|
|
sg = subparsers.add_parser('service-group',
|
|
help='Provision Service Group')
|
|
sg.set_defaults(which='service_group')
|
|
sg.add_argument('service_group', help='service group name')
|
|
|
|
# Service-Group-Member
|
|
sg_member_parser = subparsers.add_parser('service-group-member',
|
|
help='Provision Service Group '
|
|
'Member')
|
|
sg_member_parser.set_defaults(which='service_group_member')
|
|
sg_member_parser.add_argument('service_group',
|
|
help='service group name')
|
|
sg_member_parser.add_argument('service_group_member',
|
|
help='service group member name')
|
|
|
|
# Service
|
|
service_parser = subparsers.add_parser('service',
|
|
help='Provision Service')
|
|
service_parser.set_defaults(which='service')
|
|
service_parser.add_argument('service', help='service name')
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.which == 'service_domain':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICE_DOMAINS SET "
|
|
"PROVISIONED = '%s' WHERE NAME = '%s';"
|
|
% (provision_str, args.service_domain))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
elif args.which == 'service_domain_member':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICE_DOMAIN_MEMBERS SET "
|
|
"PROVISIONED = '%s' WHERE NAME = '%s' and "
|
|
"SERVICE_GROUP_NAME = '%s';"
|
|
% (provision_str, args.service_domain,
|
|
args.service_group))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
elif args.which == 'service_domain_interface':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICE_DOMAIN_INTERFACES SET "
|
|
"PROVISIONED = '%s' WHERE SERVICE_DOMAIN = '%s' and "
|
|
"SERVICE_DOMAIN_INTERFACE = '%s';"
|
|
% (provision_str, args.service_domain,
|
|
args.service_domain_interface))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
elif args.which == 'service_group':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICE_GROUPS SET "
|
|
"PROVISIONED = '%s' WHERE NAME = '%s';"
|
|
% (provision_str, args.service_group))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
elif args.which == 'service_group_member':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICE_GROUP_MEMBERS SET "
|
|
"PROVISIONED = '%s' WHERE NAME = '%s' and "
|
|
"SERVICE_NAME = '%s';"
|
|
% (provision_str, args.service_group,
|
|
args.service_group_member))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
elif args.which == 'service':
|
|
database = sqlite3.connect(database_name)
|
|
|
|
cursor = database.cursor()
|
|
|
|
cursor.execute("UPDATE SERVICES SET "
|
|
"PROVISIONED = '%s' WHERE NAME = '%s';"
|
|
% (provision_str, args.service))
|
|
|
|
database.commit()
|
|
database.close()
|
|
|
|
sys.exit(0)
|
|
|
|
except KeyboardInterrupt:
|
|
sys.exit()
|
|
|
|
except Exception as e:
|
|
print(e)
|
|
sys.exit(-1)
|