本文整理汇总了Python中NaServer.set_server_type方法的典型用法代码示例。如果您正苦于以下问题:Python NaServer.set_server_type方法的具体用法?Python NaServer.set_server_type怎么用?Python NaServer.set_server_type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NaServer
的用法示例。
在下文中一共展示了NaServer.set_server_type方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
def main():
s = NaServer("10.128.153.60", 1 , 21)
s.set_server_type("FILER")
s.set_transport_type("HTTPS")
s.set_port(443)
s.set_style("LOGIN")
s.set_admin_user("BNELAB\\duanes", "D3m0open")
cs = statsd.StatsClient('localhost',8125)
for v in get_volumes(s):
try:
v_cn = v['cluster-name']
v_svm = v['owning-vserver-name']
v_vol = v['name']
c = get_counters(s, v['instance-uuid'])
c_ts = c['timestamp']
c_read_ops = c['read_ops']
c_write_ops = c['write_ops']
c_total_ops = c['total_ops']
metric_string = "brisvegas.%s.%s.read_ops" % (v_svm, v_vol)
print metric_string, c_read_ops, c_write_ops
cs.gauge(metric_string, c_read_ops)
metric_string = "brisvegas.%s.%s.write_ops" % (v_svm, v_vol)
cs.gauge(metric_string, c_write_ops)
#print c
except KeyError:
continue
示例2: connect
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
def connect(hostname, user, password, minor_version=1, major_version=21):
global conn
conn = NaServer(hostname, minor_version, major_version)
conn.set_server_type('filer')
conn.set_transport_type('HTTPS')
conn.set_port(443)
conn.set_style('LOGIN')
conn.set_admin_user(user, password)
return conn
示例3: cdotconnect
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
def cdotconnect(filer, username, password) :
""" return a filer connection handle """
s = NaServer(filer, 1 , 31)
s.set_server_type("FILER")
s.set_transport_type("HTTP") # would like to use HTTPS but I get ssl cert errors on Ubuntu 15.x
s.set_port(80)
s.set_style("LOGIN")
s.set_admin_user(username, password)
return s
示例4: connect_filer
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
def connect_filer(host,user,passwd):
plog.print_debug("Host: %s, User: %s" %(host,user))
s = NaServer(host, 1, 1)
s.set_server_type("Filer")
s.set_admin_user(user,passwd)
response = s.set_transport_type('HTTP')
if(response and response.results_errno() != 0 ):
r = response.results_reason()
plog.print_error("Unable to set HTTP transport " + r + "\n")
sys.exit (1)
response = s.set_style('LOGIN')
if(response and response.results_errno() != 0 ):
r = response.results_reason()
plog.print_error("Unable to set authentication style " + r + "\n")
sys.exit (1)
return s
示例5: raw_input
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
#!/usr/bin/python
import sys
sys.path.append("../lib/NetappSDK/")
from NaServer import *
filerIP = raw_input("filer IP: ")
myPass = raw_input("filer password: ")
dir = raw_input("dir path: ")
s = NaServer(filerIP, 1 , 15)
s.set_server_type("FILER")
s.set_transport_type("HTTPS")
s.set_port(443)
s.set_style("LOGIN")
s.set_admin_user("root", myPass)
# Obtain the Data ONTAP version.
api = NaElement("system-get-version")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
print ("Error:\n")
print (xo.sprintf())
sys.exit (1)
print ("Received:\n")
print (xo.sprintf())
# Delete a directory.
print "Deleting....\n"
api = NaElement('file-delete-directory')
# Path of the directory to delete. The value is expected to begin with /vol/<volumename>. The directory must be empty in order for this API to succeed.
示例6: len
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
sys.exit (1)
args = len(sys.argv) - 1
if(args < 3):
print_usage()
filer = sys.argv[1]
user = sys.argv[2]
password = sys.argv[3]
aggr_name = "cinder_aggr"
vol_name = "cinder"
s = NaServer(filer, 1, 1)
s.set_server_type("Filer")
s.set_admin_user(user, password)
s.set_transport_type("HTTP")
# Get the sysid of "this" controller
system = s.invoke("system-get-info")
sysinfo = system.child_get("system-info")
sysid = sysinfo.child_get_string("system-id")
# get the disks that this controller owns
output = s.invoke("disk-sanown-list-info")
if(output.results_errno() != 0):
r = output.results_reason()
print("Failed: \n" + str(r))
示例7: print
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
s.set_admin_user(user, password)
# Set the name of the vfiler on which the API
# commands need to be invoked.
#
if (dovfiler):
s.set_vfiler(vfiler_name)
if (send_oid):
s.set_originator_id(originator_id)
# Set the Type of API Server.
#
response = s.set_server_type(server_type)
if (response and response.results_errno() != 0) :
r = response.results_reason()
print ("Unable to set server transport" + r + "\n")
sys.exit (2)
if(set_timeout == 1) :
if(timeout > 0) :
s.set_timeout(timeout)
else :
print ("Invalid value for connection timeout." + " Connection timeout value should be greater than 0.\n")
sys.exit (2)
示例8: get_option_parser
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
if __name__ == '__main__':
options, argsleft = get_option_parser().parse_args()
# Set the working dir prefix
set_script_path(options.work_dir)
# Credentials db must be initialized using the cred_mgmt.py file
cdb = script_db.CredDB(options.work_dir + r'\cred_db')
# Initialize the script database
sdb = script_db.ScriptDB(options.work_dir + r'\script_db')
sdb.setup()
# Connect to Netapp server
conn = NaServer(options.storage_array, 1 , 7)
conn.set_server_type("FILER")
conn.set_transport_type("HTTPS")
conn.set_port(443)
conn.set_style("LOGIN")
user, pwd = cdb.get_enc_info(options.storage_array)
conn.set_admin_user(user, pwd)
if options.operation == 'HELLO':
check_lun(conn, options.serial)
elif options.operation == 'CREATE_SNAP':
create_snap(cdb, sdb, conn, options.serial, options.snap_name,
options.access_group, options.proxy_host,
options.category, options.protect_category)
elif options.operation == 'REMOVE_SNAP':
remove_snap(cdb, sdb, conn, options.serial,
options.snap_name, options.proxy_host)
示例9: __init__
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
class CdotPerf:
def __init__(self, cluster_name, cluster_ip, username, password, sdk_ver, server_type="FILER", transport_type="HTTPS", port="443", style="LOGIN"):
major, minor = string.split(sdk_ver, '.')
self.CLUSTER_NAME = cluster_name
self.MAX_VOLUMES = 20000
self.s = NaServer(cluster_ip, major, minor)
self.s.set_server_type(server_type)
self.s.set_transport_type(transport_type)
self.s.set_port(port)
self.s.set_style(style)
self.s.set_admin_user(username, password)
self.sd = statsd.StatsClient('localhost',8125)
self.fp = open("/var/tmp/tellme.log", "a")
try:
self.debug = open("/var/tmp/debugenabled")
self.debug.close()
self.debug = True
except IOError:
self.debug = False
pass
self.targ_vol_counters = "avg_latency,cifs_other_latency,cifs_other_ops,cifs_read_data,cifs_read_latency,cifs_read_ops,cifs_write_data,cifs_write_latency,cifs_write_ops,fcp_other_latency,fcp_other_ops,fcp_read_data,fcp_read_latency,fcp_read_ops,fcp_write_data,fcp_write_latency,fcp_write_ops,flexcache_other_ops,flexcache_read_data,flexcache_read_ops,flexcache_receive_data,flexcache_send_data,flexcache_write_data,flexcache_write_ops,iscsi_other_latency,iscsi_other_ops,iscsi_read_data,iscsi_read_latency,iscsi_read_ops,iscsi_write_data,iscsi_write_latency,iscsi_write_ops,nfs_other_latency,nfs_other_ops,nfs_read_data,nfs_read_latency,nfs_read_ops,nfs_write_data,nfs_write_latency,nfs_write_ops,other_latency,other_ops,read_blocks,read_data,read_latency,read_ops,san_other_latency,san_other_ops,san_read_data,san_read_latency,san_read_ops,san_write_data,san_write_latency,san_write_ops,total_ops,write_blocks,write_data,write_latency,write_ops"
def tellme(self, message):
if (self.debug):
self.fp.write("%s\n" % message)
def get_aggregates(self):
"""
Get list of volumes from cluster
"""
api = NaElement("aggr-get-iter")
#xi = NaElement("desired-attributes")
#api.child_add(xi)
## This specifies max number of volume records to pull from sdk api
## Default is 20. 20000 is enough for most clusters
api.child_add_string("max-records",self.MAX_VOLUMES)
#xi1 = NaElement("aggr-attributes")
#xi.child_add(xi1)
#xi41 = NaElement("volume-id-attributes")
#xi41.child_add_string("instance-uuid","<instance-uuid>")
#xi41.child_add_string("name","<name>")
#xi41.child_add_string("owning-vserver-name","<owning-vserver-name>")
#xi41.child_add_string("uuid","<uuid>")
#xi1.child_add(xi41)
xo = self.s.invoke_elem(api)
self.sd.incr("api.invoke")
#print xo.sprintf()
f = xmltodict.parse(xo.sprintf())
#print xo.sprintf()
aggrs = f['results']['attributes-list']['aggr-attributes']
aggr_list = []
for aggr in aggrs:
for z in aggr.keys():
try:
if (z == 'aggregate-name'):
aggr_name = aggr[z]
#print "aggr_name: %s" % aggr_name
elif (z == 'aggregate-uuid'):
aggr_uuid = aggr[z]
#print "aggr_uuid: %s" % aggr_uuid
elif (z == 'aggr-ownership-attributes'):
aggr_ownr = aggr[z]['owner-name']
#print "aggr_ownr: %s" % aggr_ownr
#print "z: %s" % z
#print "kggr[z].keys: %s" % aggr[z].keys()
except AttributeError:
#print "In Exception - aggr[z]: %s" % aggr[z]
pass
aggr_list.append({
'cluster-name':self.CLUSTER_NAME,
'aggr-name':aggr_name,
'aggr-uuid':aggr_uuid,
'owner-name':aggr_ownr
})
return aggr_list
def get_volumes(self):
"""
Get list of volumes from cluster
"""
api = NaElement("volume-get-iter")
xi = NaElement("desired-attributes")
api.child_add(xi)
## This specifies max number of volume records to pull from sdk api
## Default is 20. 20000 is enough for most clusters
api.child_add_string("max-records",self.MAX_VOLUMES)
xi1 = NaElement("volume-attributes")
xi.child_add(xi1)
xi41 = NaElement("volume-id-attributes")
xi41.child_add_string("instance-uuid","<instance-uuid>")
xi41.child_add_string("name","<name>")
xi41.child_add_string("owning-vserver-name","<owning-vserver-name>")
xi41.child_add_string("uuid","<uuid>")
xi1.child_add(xi41)
xo = self.s.invoke_elem(api)
self.sd.incr("api.invoke")
f = xmltodict.parse(xo.sprintf())
volumes = f['results']['attributes-list']['volume-attributes']
#.........这里部分代码省略.........
示例10: __init__
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
class QoS_info:
def __init__(self, cluster_name, cluster_ip, username, password, sdk_ver, server_type="FILER", transport_type="HTTPS", port="443", style="LOGIN"):
major, minor = string.split(sdk_ver, '.')
self.CLUSTER_NAME = cluster_name
self.MAX_VOLUMES = 2000
self.s = NaServer(cluster_ip, major, minor)
self.s.set_server_type(server_type)
self.s.set_transport_type(transport_type)
self.s.set_port(port)
self.s.set_style(style)
self.s.set_admin_user(username, password)
def get_qos_stats(self):
self.policy_groups = self.get_qos_pgs()
self.workloads = self.get_qos_workloads()
self.pgs = {}
for pg in self.policy_groups['results']['attributes-list']['qos-policy-group-info']:
max_iops = int(string.split(pg['max-throughput'], 'IOPS')[0])
curr_pg = pg['policy-group']
self.pgs[curr_pg] = {}
self.pgs[curr_pg]['policy-group'] = pg['policy-group']
self.pgs[curr_pg]['max-throughput'] = max_iops
self.pgs[curr_pg]['pgid'] = pg['pgid']
self.pgs[curr_pg]['policy-group-class'] = pg['policy-group-class']
self.pgs[curr_pg]['uuid'] = pg['uuid']
self.pgs[curr_pg]['timestamp'] = string.split(str(time.time()),'.')[0]
for wl in self.workloads['results']['attributes-list']['qos-workload-info']:
targ_pg = wl['policy-group']
try:
self.pgs[targ_pg]['vserver'] = wl['vserver']
self.pgs[targ_pg]['volume'] = wl['volume']
except:
pass
lines = []
for line in self.pgs.values():
try:
metric_string = "%s.%s.qos_max_iops" % (line['vserver'], line['volume'])
data = {}
data[metric_string] = float(line['max-throughput'])
lines.append(data)
except KeyError:
pass
return lines
def get_vol_stats(self):
ret = []
for v in self.get_volumes():
try:
v_cn = v['cluster-name']
v_svm = v['owning-vserver-name']
v_vol = v['name']
c = self.get_vol_counters(v['instance-uuid'])
c_ts = c['timestamp']
c_read_ops = c['read_ops']
c_write_ops = c['write_ops']
c_total_ops = c['total_ops']
metric_string = "%s.%s.total_ops" % (v_svm, v_vol)
data = {}
read_ops_key_u = "%s.%s.%s.read_ops" % (self.CLUSTER_NAME, v_svm, v_vol)
read_ops_key = read_ops_key_u.encode('ascii','ignore')
data[read_ops_key] = float(c['read_ops'])
write_ops_key_u = "%s.%s.%s.write_ops" % (self.CLUSTER_NAME, v_svm, v_vol)
write_ops_key = write_ops_key_u.encode('ascii','ignore')
data[write_ops_key] = float(c['write_ops'])
total_ops_key_u = "%s.%s.%s.total_ops" % (self.CLUSTER_NAME, v_svm, v_vol)
total_ops_key = total_ops_key_u.encode('ascii','ignore')
data[total_ops_key] = float(c['total_ops'])
ret.append(data)
except KeyError:
continue
return ret
def get_volumes(self):
api = NaElement("volume-get-iter")
xi = NaElement("desired-attributes")
api.child_add(xi)
## This specifies max number of volume records to pull from sdk api
## Default is 20. 20000 is enough for most clusters
api.child_add_string("max-records",self.MAX_VOLUMES)
xi1 = NaElement("volume-attributes")
xi.child_add(xi1)
xi41 = NaElement("volume-id-attributes")
xi41.child_add_string("instance-uuid","<instance-uuid>")
xi41.child_add_string("name","<name>")
xi41.child_add_string("owning-vserver-name","<owning-vserver-name>")
xi41.child_add_string("uuid","<uuid>")
xi1.child_add(xi41)
xo = self.s.invoke_elem(api)
f = xmltodict.parse(xo.sprintf())
volumes = f['results']['attributes-list']['volume-attributes']
vol_list = []
for volume in volumes:
vol_list.append({
'cluster-name':self.CLUSTER_NAME,
'owning-vserver-name':volume['volume-id-attributes']['owning-vserver-name'],
'name':volume['volume-id-attributes']['name'],
'instance-uuid':volume['volume-id-attributes']['instance-uuid']
#.........这里部分代码省略.........
示例11: netapp_info
# 需要导入模块: import NaServer [as 别名]
# 或者: from NaServer import set_server_type [as 别名]
def netapp_info(module) :
results = {}
#This module is not built to make changes, so we are returning false here.
results['changed'] = False
results['rc'] = 0
results['ansible_facts'] = {}
s = NaServer(module.params['host'], 1 , 21)
s.set_server_type(module.params['na_server_type'])
s.set_transport_type(module.params['na_transport_type'])
s.set_port(module.params['na_port'])
s.set_style(module.params['na_style'])
s.set_admin_user(module.params['nauser'], module.params['napass'])
# first we get base cluster OnTap version information
cluster_version_info = {}
api = NaElement("system-get-version")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
errmsg = "errno: ", xo.results_errno(), "reason: ", xo.results_reason()
module.fail_json(msg=errmsg)
cluster_version = {}
cluster_version['build_timestamp'] = xo.child_get_string('build-timestamp')
cluster_version['is_clustered'] = xo.child_get_string('is-clustered')
cluster_version['version'] = xo.child_get_string('version')
cluster_version['version_tuple'] = xmltodict.parse(xo.child_get('version-tuple').sprintf())
cluster_version_info['cluster_version_info'] = cluster_version
#o = xmltodict.parse(xo.sprintf())
results['ansible_facts'].update(cluster_version_info)
# cluster identity info
cluster_identity_info = {}
api = NaElement("cluster-identity-get")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
errmsg = "errno: ", xo.results_errno(), "reason: ", xo.results_reason()
module.fail_json(msg=errmsg)
cluster_identity = {}
attr = xo.child_get('attributes')
id_info = attr.child_get('cluster-identity-info')
for cid in id_info.children_get() :
cluster_name = id_info.child_get_string('cluster-name')
cluster_identity[cluster_name] = xmltodict.parse(id_info.sprintf())
cluster_identity_info['cluster_identity'] = cluster_identity
results['ansible_facts'].update(cluster_identity_info)
# get node specific info
system_node_info = {}
system_info = {}
api = NaElement("system-get-node-info-iter")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
errmsg = "errno: ", xo.results_errno(), "reason: ", xo.results_reason()
module.fail_json(msg=errmsg)
system_nodes = xo.child_get('attributes-list')
for node in system_nodes.children_get() :
system_name = node.child_get_string('system-name')
system_info[system_name] = xmltodict.parse(node.sprintf())
system_node_info['system_node_info'] = system_info
results['ansible_facts'].update(system_node_info)
# get svm info
svm_info = {}
vserver_info = {}
api = NaElement("vserver-get-iter")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
errmsg = "errno: ", xo.results_errno(), "reason: ", xo.results_reason()
module.fail_json(msg=errmsg)
vservers = xo.child_get('attributes-list')
for vserver in vservers.children_get() :
svm_name = vserver.child_get_string('vserver-name')
vserver_info[svm_name] = xmltodict.parse(vserver.sprintf())
svm_info['svm_info'] = vserver_info
results['ansible_facts'].update(svm_info)
# get aggr info
aggr_info = {}
aggregate_info = {}
api = NaElement("aggr-get-iter")
xo = s.invoke_elem(api)
if (xo.results_status() == "failed") :
errmsg = "errno: ", xo.results_errno(), "reason: ", xo.results_reason()
module.fail_json(msg=errmsg)
aggr_list = xo.child_get('attributes-list')
for aggrs in aggr_list.children_get() :
aggr_attrs = aggr_list.child_get('aggr-attributes')
for aggr in aggr_attrs.children_get() :
aggregate_name = aggrs.child_get_string('aggregate-name')
#.........这里部分代码省略.........