def setUp(self): """INIT""" self.tool = flow_common_tool() self.ins = l3_ha() self.ins.default[ "regression_image_folder"] = "/var/home/regress/Regression_image" self.ins.default[ "higher_image_folder"] = "/var/home/regress/HIGHER_image" self.r0 = mock.Mock(spec=SrxSystem) self.r0.log = mock.Mock() self.r0.get_host_name.return_value = "vsrx_device_0" self.r1 = mock.Mock(spec=SrxSystem) self.r1.log = mock.Mock() self.r1.get_host_name.return_value = "vsrx_device_1" self.response = {} self.regression_image_filename = "junos-install-vsrx3-x86-64-19.4I-20190918_dev_common.0.0857.tgz" self.higher_image_filename = "junos-install-vsrx3-x86-64-19.4I-20190919_dev_common.0.1213.tgz" self.response["IMAGES"] = { "higher_image": os.path.join(self.ins.default["higher_image_folder"], self.higher_image_filename), "higher_image_filename": self.higher_image_filename, "regression_image": os.path.join(self.ins.default["regression_image_folder"], self.regression_image_filename), "regression_image_filename": self.regression_image_filename, }
def __init__(self): """Init processing""" self.tool = flow_common_tool() self.chassis = chassis() self.default = { "CLI_SHOW_TIMEOUT": 300, "CLI_COMMIT_TIMEOUT": 300, } self.hidden_info = {}
def __init__(self): """Init""" super().__init__() self.tool = flow_common_tool() self.default = { "CLI_SHOW_TIMEOUT": 300, "CLI_COMMIT_TIMEOUT": 300, } self.hidden_info = {} self.hidden_info["license"] = {}
def __init__(self): """Init processing""" super().__init__() self.tool = flow_common_tool() self.default = { "cli_show_timeout": 120, } self.info = { "chassis_hardware_info": {}, "chassis_fpc_pic_info": {}, }
def __init__(self): """Init processing""" self.tool = flow_common_tool() self.xml = xml_tool() self.debug_to_stdout = False self.default = { "cli_show_timeout": 300, "conf_commit_timeout": 300, } self.runtime = {} # MTS behavior compatible support self.get_route_instance_entry = self.fetch_route_instance_entry self.search_route_instance_entry = self.verify_route_instance_entry
def __init__(self): """INIT""" self.tool = flow_common_tool() self.issu = issu() self.chassis = chassis() self.default = { "reboot_timeout": 1800, "regression_image_folder": "/var/home/regress/Regression_image", "higher_image_folder": "/var/home/regress/HIGHER_image", } self.runtime = { "get_image": {}, }
def __init__(self): """Initialization""" self.tool = flow_common_tool() self.default = { "username": credentials.Junos["USERNAME"], "password": credentials.Junos["PASSWORD"], "cli_cmd_timeout": 300, "issu_finish_timeout": 43200, # 12 hours } self.prompt = { "shell": re.compile(r'\%\s+'), "cli": re.compile(r'\w+@\S+\>\s+'), "conf": re.compile(r'\w+@\S+\#\s+'), } self.hdl = None
def __init__(self): """Init processing""" super().__init__() self.xml = xml_tool() self.tool = flow_common_tool() self.license = system_license() self.default = { "cli_commit_timeout": 120, "cli_show_timeout": 300, "cli_reboot_timeout": 600, "regress_username": credentials.Junos["USERNAME"], "regress_password": credentials.Junos["PASSWORD"], "root_username": credentials.Junos["SU"], "root_password": credentials.Junos["SUPASSWORD"], } self.info = { "version_info": {}, # for get_version_info method "tnpdump_info": {}, # for send_vty_cmd_and_get_response "root_permission": {}, # indicate device whehter work in root }
def setUp(self): """setup before all cases""" self.tool = flow_common_tool() self.xml = xml_tool() self.ins = lsys() self.response = {} self.response["SA_LSYS_MULTITENANCY"] = """ <show-mtenancy xmlns="http://xml.juniper.net/junos/18.2I0/junos-lsys-lic"> <mtenancy-mode-config>logical-domain</mtenancy-mode-config> <mtenancy-mode-running>logical-domain</mtenancy-mode-running> </show-mtenancy> """ self.response["SA_LSYS_MULTITENANCY_IN_LSYS"] = """ <show-mtenancy xmlns="http://xml.juniper.net/junos/18.2I0/junos-lsys-lic"> <mtenancy-mode-config>logical-system</mtenancy-mode-config> <mtenancy-mode-running>logical-system</mtenancy-mode-running> </show-mtenancy> """ self.response["HA_LSYS_MULTITENANCY"] = """ <multi-routing-engine-results> <multi-routing-engine-item> <re-name>node1</re-name> <show-mtenancy xmlns="http://xml.juniper.net/junos/18.2I0/junos-lsys-lic"> <mtenancy-mode-config>logical-domain</mtenancy-mode-config> <mtenancy-mode-running>logical-domain</mtenancy-mode-running> </show-mtenancy> </multi-routing-engine-item> </multi-routing-engine-results> """ self.response["SA_LSYS_MULTITENANCY_NEED_REBOOT"] = """
def setUp(self): """setup before all cases""" self.tool = flow_common_tool() self.xml = xml_tool() self.ins = services_offload() self.response = {} self.response["SA_HE_FPC_PIC_STATUS_WITH_SOF"] = """ Slot 1 Online SRX5k IOC II PIC 0 Online 10x 10GE SFP+- np-cache/services-offload Slot 3 Online SPC3 PIC 0 Online SPU Cp-Flow PIC 1 Online SPU Flow """ self.response["SA_HE_FPC_PIC_STATUS_WITHOUT_SOF"] = """ Slot 1 Online SRX5k IOC II PIC 0 Online 10x 10GE SFP+- Slot 3 Online SPC3 PIC 0 Online SPU Cp-Flow PIC 1 Online SPU Flow """ self.response["SA_HE_SHOW_INTERFACE"] = """
def setUp(self): """setup before all case""" self.tool = flow_common_tool() self.ins = FTPClient()
def __init__(self): """INIT""" self.tool = flow_common_tool() self.xml = xml_tool() self.default = { "CLI_SHOW_TIMEOUT": 300, "CLI_COMMIT_TIMEOUT": 300, } self.debug_to_stdout = False self.runtime = {} # MTS compatible keywords self.get_address_book = self.fetch_address_book self.get_appfw_profile = self.fetch_appfw_profile self.get_appfw_rule = self.fetch_appfw_rule self.get_appfw_rule_set = self.fetch_appfw_rule_set self.get_auth_entry = self.fetch_auth_entry self.get_flow_gate = self.fetch_flow_gate self.get_flow_session = self.fetch_flow_session self.get_dslite_softwire_initiator = self.fetch_dslite_softwire_initiator self.get_nat_cone_binding = self.fetch_nat_cone_binding self.get_nat_destination_pool = self.fetch_nat_destination_pool self.get_nat_destination_rule = self.fetch_nat_destination_rule self.get_nat_interface_port_ol = self.fetch_nat_interface_port_ol self.get_nat_nopat_address = self.fetch_nat_nopat_address self.get_nat_pat_address = self.fetch_nat_pat_address self.get_nat_pat_portnum = self.fetch_nat_pat_portnum self.get_nat_port_ol_ipnumber = self.fetch_nat_port_ol_ipnumber self.get_nat_rule_referenced_prefix = self.fetch_nat_rule_referenced_prefix self.get_nat_source_pool = self.fetch_nat_source_pool self.get_nat_source_rule = self.fetch_nat_source_rule self.get_nat_static_rule = self.fetch_nat_static_rule self.get_policy = self.fetch_policy self.get_policy_with_count = self.fetch_policy_with_count self.get_scheduler = self.fetch_scheduler self.get_security_log_stream_number = self.fetch_security_log_stream_number self.get_zone = self.fetch_zone self.search_address_book = self.verify_address_book self.search_appfw_profile = self.verify_appfw_profile self.search_appfw_rule = self.verify_appfw_rule self.search_appfw_rule_set = self.verify_appfw_rule_set self.search_auth_entry = self.verify_auth_entry self.search_dslite_softwire_initiator = self.verify_dslite_softwire_initiator self.search_flow_gate = self.verify_flow_gate self.search_flow_session = self.verify_flow_session self.search_nat_cone_binding = self.verify_nat_cone_binding self.search_nat_destination_pool = self.verify_nat_destination_pool self.search_nat_destination_rule = self.verify_nat_destination_rule self.search_nat_interface_port_ol = self.verify_nat_interface_port_ol self.search_nat_nopat_address = self.verify_nat_nopat_address self.search_nat_pat_address = self.verify_nat_pat_address self.search_nat_pat_portnum = self.verify_nat_pat_portnum self.search_nat_port_ol_ipnumber = self.verify_nat_port_ol_ipnumber self.search_nat_rule_referenced_prefix = self.verify_nat_rule_referenced_prefix self.search_nat_source_pool = self.verify_nat_source_pool self.search_nat_source_rule = self.verify_nat_source_rule self.search_nat_static_rule = self.verify_nat_static_rule self.search_policy = self.verify_policy self.search_policy_with_count = self.verify_policy_with_count self.search_scheduler = self.verify_scheduler self.search_security_log_stream_number = self.verify_security_log_stream_number self.search_zone = self.verify_zone
def setUp(self): """setup before all cases""" self.tool = flow_common_tool() self.xml = xml_tool() self.ins = system_license() self.response = {} self.response["MULTI_LICENSE"] = """ <license-usage-summary xmlns="http://xml.juniper.net/junos/15.1I0/junos-license"> <features-used/> <feature-summary> <name>idp-sig</name> <description>IDP Signature</description> <licensed>1</licensed> <used-licensed>0</used-licensed> <needed>0</needed> <end-date junos:seconds="1545696000">2018-12-25</end-date> </feature-summary> <feature-summary> <name>appid-sig</name> <description>APPID Signature</description> <licensed>1</licensed> <used-licensed>0</used-licensed> <needed>0</needed> <end-date junos:seconds="1545696000">2018-12-25</end-date> </feature-summary> <feature-summary> <name>logical-system</name> <description>Logical System Capacity</description> <licensed>1</licensed> <used-licensed>1</used-licensed> <used-given>0</used-given> <needed>0</needed> <validity-type>permanent</validity-type> </feature-summary> <feature-summary> <name>remote-access-ipsec-vpn-client</name> <description>remote-access-ipsec-vpn-client</description> <licensed>2</licensed> <used-licensed>0</used-licensed> <needed>0</needed> <validity-type>permanent</validity-type> </feature-summary> <feature-summary> <name>Virtual Appliance</name> <description>Virtual Appliance</description> <licensed>1</licensed> <used-licensed>1</used-licensed> <needed>0</needed> <remaining-time> <remaining-validity-value junos:seconds="2572880">29 days</remaining-validity-value> </remaining-time> </feature-summary> </license-usage-summary> """ self.response["SINGLE_PERMANENT_LICENSE"] = """ <license-usage-summary xmlns="http://xml.juniper.net/junos/15.1I0/junos-license"> <feature-summary> <name>logical-system</name> <description>Logical System Capacity</description> <licensed>1</licensed> <used-licensed>1</used-licensed> <used-given>0</used-given> <needed>0</needed> <validity-type>permanent</validity-type> </feature-summary> </license-usage-summary> """ self.response["SINGLE_END_DATE_LICENSE"] = """ <license-usage-summary xmlns="http://xml.juniper.net/junos/15.1I0/junos-license"> <feature-summary> <name>idp-sig</name> <description>IDP Signature</description> <licensed>1</licensed> <used-licensed>0</used-licensed> <needed>0</needed> <end-date junos:seconds="1545696000">2018-12-25</end-date> </feature-summary> </license-usage-summary> """ self.response["SINGLE_REMAINING_TIME_LICENSE"] = """
def __init__(self): """Init processing""" self.tool = flow_common_tool() self.chassis = chassis() self.hidden_info = {}
# coding: UTF-8 # pylint: disable=too-many-arguments,invalid-name,too-many-statements """SRX Platform ROBOT keywords""" import re import time from jnpr.toby.hldcl import device as dev from jnpr.toby.utils.flow_common_tool import flow_common_tool from jnpr.toby.utils.utils import run_multiple TOOL = flow_common_tool() RUNTIME = {} def check_feature_support(device, feature, **kwargs): """Check device whether support specific feature This method get system license to check specific feature whether supported on device. Supported feature includes: + "HE" - HighEnd series such as "SRX4100", "SRX4200", "SRX4600", "SRX5400", "SRX5600", "SRX5800", etc... + "LE" - LowEnd (Branch) series. All platforms not in HE platform list. + "MULTI_SPU", "MULTISPU" - Have multi-spu platform such as SRX5400, SRX5600, SRX5800 + "LSYS", "LD", "LOGICAL_SYSTEM", "LOGICAL_DOMAIN" + "REMOTE_ACCESS_IPSEC_VPN", "IPSEC_VPN", "VPN" + "VIRTUAL_APPLIANCE"
def setUp(self): """setup before all case""" self.tool = flow_common_tool() self.xml = xml_tool() self.ins = route() self.response = {} self.response["HA_SINGLE_INSTANCE"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="terse"> <instance-core> <instance-name>master</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>inet.0</irib-name> <irib-active-count>22</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-active-count>7</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> </instance-information> """ self.response["HA_MULTI_INSTANCE"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="terse"> <instance-core> <instance-name>master</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>inet.0</irib-name> <irib-active-count>22</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-active-count>7</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> <instance-core> <instance-name>__juniper_private1__</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>__juniper_private1__.inet.0</irib-name> <irib-active-count>12</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> <instance-core> <instance-name>__juniper_private2__</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>__juniper_private2__.inet.0</irib-name> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>1</irib-hidden-count> </instance-rib> </instance-core> <instance-core> <instance-name>__juniper_private3__</instance-name> <instance-type>forwarding</instance-type> </instance-core> <instance-core> <instance-name>__juniper_private4__</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>__juniper_private4__.inet.0</irib-name> <irib-active-count>2</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> <instance-core> <instance-name>__master.anon__</instance-name> <instance-type>forwarding</instance-type> </instance-core> <instance-core> <instance-name>mgmt_junos</instance-name> <instance-type>forwarding</instance-type> </instance-core> </instance-information> """ self.response["HA_SINGLE_INSTANCE_BRIEF"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="terse"> <instance-core> <instance-name>master</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>inet.0</irib-name> <irib-active-count>18</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-active-count>1</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> </instance-information> """ self.response["HA_SINGLE_INSTANCE_DETAIL"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="detail"> <instance-core> <instance-name>master</instance-name> <router-id>10.208.133.147</router-id> <instance-type>forwarding</instance-type> <instance-state>Active</instance-state> <instance-rib> <irib-name>inet.0</irib-name> <irib-route-count>18</irib-route-count> <irib-active-count>18</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-route-count>1</irib-route-count> <irib-active-count>1</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> </instance-information> """ self.response["HA_SINGLE_INSTANCE_EXTENSIVE"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="detail"> <instance-core> <instance-name>master</instance-name> <router-id>10.208.133.147</router-id> <instance-type>forwarding</instance-type> <instance-state>Active</instance-state> <instance-rib> <irib-name>inet.0</irib-name> <irib-route-count>20</irib-route-count> <irib-active-count>20</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet.1</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet.2</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet.3</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>iso.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>mpls.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>__mpls-oam__.mpls.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-route-count>5</irib-route-count> <irib-active-count>5</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.1</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.2</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.3</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>l2circuit.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>mdt.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>l2protection.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>lsdist.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>lsdist.1</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inetcolor.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6color.0</irib-name> <irib-route-count>0</irib-route-count> <irib-active-count>0</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> </instance-information> """ self.response["HA_SINGLE_INSTANCE_SUMMARY"] = """ <instance-information xmlns="http://xml.juniper.net/junos/18.1I0/junos-routing" junos:style="terse"> <instance-core> <instance-name>master</instance-name> <instance-type>forwarding</instance-type> <instance-rib> <irib-name>inet.0</irib-name> <irib-active-count>22</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> <instance-rib> <irib-name>inet6.0</irib-name> <irib-active-count>5</irib-active-count> <irib-holddown-count>0</irib-holddown-count> <irib-hidden-count>0</irib-hidden-count> </instance-rib> </instance-core> </instance-information> """ self.response["SA_INSTANCE_TEXT"] = """