From b62c18debfdcdf52e6d1c1ae28f5b39250c1f76b Mon Sep 17 00:00:00 2001 From: Bin Qian Date: Tue, 10 Apr 2018 16:08:45 -0400 Subject: [PATCH] Fix slow VM recovery after unlocking AIO-SX host Delay starting compute services until controller services are up. Add new sm-query service-group support for the compute_config to determine all controller service groups are enabled. Change-Id: Ie5a5c941076d1295aabde40361bdaca9bcf3bfe1 Signed-off-by: Kristine Bujold --- .../sm-tools/sm_tools/sm_query.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/service-mgmt-tools/sm-tools/sm_tools/sm_query.py b/service-mgmt-tools/sm-tools/sm_tools/sm_query.py index 5f8c67f8..dde8dd7d 100644 --- a/service-mgmt-tools/sm-tools/sm_tools/sm_query.py +++ b/service-mgmt-tools/sm-tools/sm_tools/sm_query.py @@ -24,6 +24,10 @@ def main(): s_parser = subparsers.add_parser('service', help='Query Service') s_parser.set_defaults(which='service') s_parser.add_argument('service_name', help='service name') + s_parser = subparsers.add_parser('service-group', help='Query Service Group') + s_parser.set_defaults(which='service-group') + s_parser.add_argument('service_group_name', nargs='+', help='service group name') + s_parser.add_argument("--desired-state", help="display desired state", action="store_true") args = parser.parse_args() @@ -53,6 +57,43 @@ def main(): database.close() + elif args.which == 'service-group': + database = sqlite3.connect(database_name) + + cursor = database.cursor() + + cursor.execute("SELECT NAME, DESIRED_STATE, STATE FROM " + "SERVICE_GROUPS WHERE NAME IN (%s) AND PROVISIONED='yes';" + % ','.join("'%s'"%i for i in args.service_group_name)) + + rows = cursor.fetchall() + + if args.desired_state: + fmt = "{0} {2} {1}" + else: + fmt = "{0} {1}" + + found_list = [] + for row in rows: + service_group_name = row[0] + found_list.append(service_group_name) + desired_state = row[1] + state = row[2] + + print fmt.format(service_group_name, state, desired_state) + + database.close() + + not_found_list = [] + for g in args.service_group_name: + if g not in found_list: + not_found_list.append(g) + + if len(not_found_list) > 1: + print "%s are not provisioned"%','.join( (g for g in not_found_list)) + elif len(not_found_list) == 1: + print "%s is not provisioned" % ','.join((g for g in not_found_list)) + except KeyboardInterrupt: sys.exit()