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