committed by
GitHub
1 changed files with 89 additions and 0 deletions
@ -0,0 +1,89 @@ |
|||||
|
#!/usr/bin/python |
||||
|
# -*- coding: utf-8 -*- |
||||
|
# |
||||
|
# listallcasservercachestatus.py |
||||
|
# February 2020 |
||||
|
# |
||||
|
# Usage: |
||||
|
# listallcasservercachestatus.py [--noheader] [-d] |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
# 1. Return list of CAS_DISK_CACHE usage on all CAS servers |
||||
|
# ./listallcasservercachestatus.py |
||||
|
# |
||||
|
# Copyright © 2020, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. |
||||
|
# |
||||
|
# Licensed under the Apache License, Version 2.0 (the License); |
||||
|
# you may not use this file except in compliance with the License. |
||||
|
# You may obtain a copy of the License at |
||||
|
# |
||||
|
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
# |
||||
|
# Unless required by applicable law or agreed to in writing, software |
||||
|
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
|
# See the License for the specific language governing permissions and |
||||
|
# limitations under the License. |
||||
|
# |
||||
|
|
||||
|
debug=False |
||||
|
|
||||
|
# Import Python modules |
||||
|
from tabulate import tabulate # pip install tabulate |
||||
|
import argparse |
||||
|
import swat # pip install swat |
||||
|
import sys |
||||
|
from sharedfunctions import callrestapi |
||||
|
|
||||
|
# Define exception handler so that we only output trace info from errors when in debug mode |
||||
|
def exception_handler(exception_type, exception, traceback, debug_hook=sys.excepthook): |
||||
|
if debug: |
||||
|
debug_hook(exception_type, exception, traceback) |
||||
|
else: |
||||
|
print "%s: %s" % (exception_type.__name__, exception) |
||||
|
|
||||
|
sys.excepthook = exception_handler |
||||
|
|
||||
|
parser = argparse.ArgumentParser() |
||||
|
parser.add_argument("--noheader", action='store_true', help="Do not print the header row") |
||||
|
parser.add_argument("-d","--debug", action='store_true', help="Debug") |
||||
|
args = parser.parse_args() |
||||
|
noheader=args.noheader |
||||
|
debug=args.debug |
||||
|
|
||||
|
# Print header row unless noheader argument was specified |
||||
|
if not noheader: |
||||
|
print('server,host-or-ip,port,restPort, [table]') |
||||
|
|
||||
|
endpoint='/casManagement/servers' |
||||
|
method='get' |
||||
|
|
||||
|
#make the rest call |
||||
|
serverlist_result_json=callrestapi(endpoint,method) |
||||
|
|
||||
|
if debug: |
||||
|
print(serverlist_result_json) |
||||
|
print('serverlist_result_json is a '+type(serverlist_result_json).__name__+' object') #serverlist_result_json is a dictionary |
||||
|
|
||||
|
servers = serverlist_result_json['items'] |
||||
|
|
||||
|
for server in servers: |
||||
|
servername=server['name'] |
||||
|
serverhost=server['host'] |
||||
|
serverport=server['port'] |
||||
|
serverrest=server['restPort'] |
||||
|
|
||||
|
print(servername+','+serverhost+','+str(serverport)+','+str(serverrest)) |
||||
|
|
||||
|
# connect to each CAS server |
||||
|
s = swat.CAS(serverhost, serverport) |
||||
|
# TLS relies on env var $CAS_CLIENT_SSL_CA_LIST=/opt/sas/viya/config/etc/SASSecurityCertificateFramework/cacerts/vault-ca.crt (or local location) |
||||
|
# else "ERROR: SSL Error: Missing CA trust list" |
||||
|
|
||||
|
# get CAS_DISK_CACHE usage |
||||
|
s.accessControl.assumeRole(adminRole="superuser") # superuser role reqd |
||||
|
results = s.builtins.getCacheInfo # returns dictionary and table |
||||
|
|
||||
|
# display table with CAS_DISK_CACHE usage stats |
||||
|
print(tabulate(results,headers='firstrow')) |
||||
Loading…
Reference in new issue