Source code for Actions.NetworkActions.Diagnostics.diagnostics_actions

'''
Copyright 2017, Fujitsu Network Communications, Inc.
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.
'''

""" Keywords related to Network Diagnostics operations """

import Framework.Utils as Utils
from Framework.ClassUtils.WNetwork.diagnostics import Diag
[docs]class DiagActions(object): """Diagnostics keyword class """ def __init__(self): """ Constructor """ self.resultfile = Utils.config_Utils.resultfile self.datafile = Utils.config_Utils.datafile self.logsdir = Utils.config_Utils.logsdir self.filename = Utils.config_Utils.filename self.logfile = Utils.config_Utils.logfile self.diag = Diag()
[docs] def ping_from_remotehost(self, system_name, session_name=None, dest_system=None, ip_type="ip", count="5"): """This keyword will use connection session available in source system (provided in system name) and will ping from source system to destination system :Datafile usuage: Tags or attributes to be used in input datafile for the system or subsystem.If both tag and attribute is provided the attribute will be used. 1. prompt = prompt of the source system 2. ip = ipv4 address or defaulted to lcn ip 3. ipv6 = ipv6 address or defaulted to lcn ipv6 4. dns = dns name 5. lmp_ip = ipv4 address of lmp port of dut 6. lmp_ipv6 = ipv6 address of lmp port of dut note: one of <ip>,<ipv6>,<dns>,<lmp_ip>,<lmp_ipv6> tags specified in ip_type argument is sufficient to be present in inputdatafile :Arguments: 1. system_name(string) = name of the Linux machine on which to \ execute 2. session_name(string) = name of the session 3. dest_system(string) = names of the destination system 4. ip_type(string) = iptype of the dest system through \ which it needs to be connected. needs to be one of \ (ip/ipv4/dns/lmp_ip/lmp_ipv6).It has to be \ present in the input data file. 5. count(string) = count argument to be supplied to the ping :Returns: 1. bool (True/False) """ wdesc = "ping to destination system" Utils.testcase_Utils.pSubStep(wdesc) Utils.testcase_Utils.pNote(system_name) Utils.testcase_Utils.pNote(self.datafile) credentials_dest = Utils.data_Utils.get_credentials(self.datafile, dest_system, [ip_type]) credentials = Utils.data_Utils.get_credentials(self.datafile, system_name, ["prompt"]) session_id = Utils.data_Utils.get_session_id(system_name, session_name) session_object = Utils.data_Utils.get_object_from_datarepository(session_id) if session_object: command_status = self.diag.ping_from_remotehost(session_object, ip_type, credentials_dest[ip_type], credentials["prompt"], count) status = command_status else: Utils.testcase_Utils.pNote(("%s-%s is not available for use" % system_name, session_name), "warning") status = False Utils.testcase_Utils.report_substep_status(status) return status
[docs] def traceroute_from_remotehost(self, system_name, session_name=None, dest_system=None, ip_type="ip"): """This keyword will use connection session available in source system (provided in system name) and will execute traceroute from source system to destination system :Datafile usuage: Tags or attributes to be used in input datafile for the system or subsystem.If both tag and attribute is provided the attribute will be used. 1. prompt = prompt of the source system 2. ip = ipv4 address or defaulted to lcn ip 3. ipv6 = ipv6 address or defaulted to lcn ipv6 4. dns = dns name 5. lmp_ip = ipv4 address of lmp port of dut 6. lmp_ipv6 = ipv6 address of lmp port of dut note: one of <ip>,<ipv6>,<dns>,<lmp_ip>,<lmp_ipv6> tags specified in ip_type argument is sufficient to be present in inputdatafile :Arguments: 1. system_name(string) = name of the Linux machine on which to \ execute 2. session_name(string) = name of the session 3. dest_system(string) = names of the destination system 4. ip_type(string) = iptype of the dest system through \ which it needs to be connected. needs to be one of \ (ip/ipv4/dns/lmp_ip/lmp_ipv6).It has to be \ present in the input data file. :Returns: 1. bool (True/False) """ wdesc = "traceroute to dest system" Utils.testcase_Utils.pSubStep(wdesc) Utils.testcase_Utils.pNote(system_name) Utils.testcase_Utils.pNote(self.datafile) credentials_dest = Utils.data_Utils.get_credentials(self.datafile, dest_system, [ip_type]) credentials = Utils.data_Utils.get_credentials(self.datafile, system_name, ["prompt"]) session_id = Utils.data_Utils.get_session_id(system_name, session_name) session_object = Utils.data_Utils.get_object_from_datarepository(session_id) if session_object: command_status = self.diag.traceroute_from_remotehost(session_object, ip_type, credentials_dest[ip_type], credentials["prompt"]) status = command_status else: Utils.testcase_Utils.pNote(("%s-%s is not available for use" % system_name, session_name), "warning") status = False Utils.testcase_Utils.report_substep_status(status) return status