示例#1
0
 def test_spoofguard_with_ping_between_servers_on_same_network(self):
     username, password = self.get_image_userpass()
     image = self.get_server_image()
     flavor = self.get_server_flavor()
     port_client = self.manager.ports_client
     self.green = self.setup_vm_environment(self.manager, 'green', True)
     security_groups = [{'name': self.green['security_group']['id']}]
     # Boot instance vm2
     keypair = self.create_keypair()
     self.keypairs[keypair['name']] = keypair
     key_name = keypair['name']
     t_serv2 = self.create_server_on_network(
         self.green['network'],
         security_groups,
         key_name=key_name,
         image=image,
         flavor=flavor,
         name=self.green['network']['name'])
     self.check_server_connected(t_serv2)
     t_floatingip2 = self.create_floatingip_for_server(
         t_serv2, client_mgr=self.manager)
     msg = ("Associate t_floatingip[%s] to server[%s]" %
            (t_floatingip2, t_serv2['name']))
     self._check_floatingip_connectivity(t_floatingip2,
                                         t_serv2,
                                         should_connect=True,
                                         msg=msg)
     public_ip_vm_1 = self.green['fip1']['floating_ip_address']
     public_ip_vm_2 = t_floatingip2['floating_ip_address']
     private_ip_vm_1 = \
         self.green['fip1']['fixed_ip_address']
     private_ip_vm_2 = \
         t_floatingip2['fixed_ip_address']
     private_key_1 = self._get_server_key(self.green['serv1'])
     client1 = remote_client.RemoteClient(public_ip_vm_1,
                                          username=username,
                                          pkey=private_key_1,
                                          password=password)
     private_key_2 = self._get_server_key(t_serv2)
     client2 = remote_client.RemoteClient(public_ip_vm_2,
                                          username=username,
                                          pkey=private_key_2,
                                          password=password)
     self.assertEqual(True, dmgr.is_reachable(client1, private_ip_vm_2),
                      "Destination is reachable")
     port1_id = self.green['fip1']['port_id']
     # Update vm1 port to disbale port security
     port_client.update_port(port_id=port1_id,
                             port_security_enabled='false',
                             security_groups=[])
     time.sleep(constants.NSX_BACKEND_TIME_INTERVAL)
     self.compute_security_group_rules_client.\
         delete_security_group_rule(self.green['rule_id'])
     time.sleep(constants.NSX_BACKEND_TIME_INTERVAL)
     self.assertEqual(False, dmgr.is_reachable(client1, private_ip_vm_2),
                      "Destination is not reachable")
     self.assertEqual(True, dmgr.is_reachable(client2, private_ip_vm_1),
                      "Destination is reachable")
 def host_can_reach_ips(self, host_id, host_ssh, ip_type, ip_list):
     for dest_ip in ip_list:
         reachable = dmgr.is_reachable(host_ssh, dest_ip,
                                       time_out=self.conn_timeout)
         msg = (self.exc_msg +
                ("\n  *FAILURE* VM[%s] cannot PING %s[%s]" %
                 (host_id, ip_type, dest_ip)))
         if not reachable:
             reachable = dmgr.is_reachable(host_ssh, dest_ip,
                                           time_out=self.conn_timeout)
         dmgr.STEPINTO_DEBUG_IF_TRUE(not reachable)
         self.assertTrue(reachable, msg)
         self.log_exc_msg(
             ("  VM[%s] can PING %s[%s]" % (host_id, ip_type, dest_ip)))
 def validate_all_servers_private_address_are_reachable(self,
                                                        ssh_client,
                                                        ip_addresses):
     for ip_addr in ip_addresses:
         msg = "VM private address[%s] is not reachable." % ip_addr
         reachable = dmgr.is_reachable(ssh_client, ip_addr)
         self.assertTrue(reachable, msg)
 def run_servers_connectivity_test(self, servers):
     # select one from the servers
     net_id_list = servers.keys()
     net_id = net_id_list[0]
     other_net_id_list = net_id_list[1:]
     username, password = self.get_image_userpass()
     nsv = self.tp_svrs[net_id]
     serv = nsv['server']
     floatingip = self.create_floatingip_for_server(serv,
                                                    client_mgr=self.manager)
     msg = ("Associate floatingip[%s] to server[%s]" %
            (floatingip, serv['name']))
     self._check_floatingip_connectivity(floatingip,
                                         serv,
                                         should_connect=True,
                                         msg=msg)
     serv_fip = floatingip['floating_ip_address']
     dmgr.rm_sshkey(serv_fip)
     ssh_client = dmgr.get_remote_client_by_password(
         serv_fip, username, password)
     not_reachable_list = []
     for nid in other_net_id_list:
         o_svr = servers[nid]['server']
         o_net = servers[nid]['network']
         o_ipaddr = self.get_server_fixed_ip(o_svr, o_net)
         reachable = dmgr.is_reachable(ssh_client, o_ipaddr)
         if not reachable:
             not_reachable_list.append(o_ipaddr)
     self.assertTrue(
         len(not_reachable_list) == 0,
         ("Following Servers are not reachable: %s" % not_reachable_list))
 def run_servers_connectivity_test(self, servers):
     # select one from the servers
     net_id_list = servers.keys()
     net_id = net_id_list[0]
     other_net_id_list = net_id_list[1:]
     username, password = self.get_image_userpass()
     nsv = self.servers[net_id]
     serv = nsv['server']
     floatingip = self.create_floatingip_for_server(
         serv, client_mgr=self.admin_manager)
     msg = ("Associate floatingip[%s] to server[%s]"
            % (floatingip, serv['name']))
     self._check_floatingip_connectivity(
         floatingip, serv, should_connect=True, msg=msg)
     serv_fip = floatingip.floating_ip_address
     dmgr.rm_sshkey(serv_fip)
     ssh_client = dmgr.get_remote_client_by_password(
         serv_fip, username, password)
     not_reachable_list = []
     for nid in other_net_id_list:
         o_svr = servers[nid]['server']
         o_net = servers[nid]['network']
         o_ipaddr = self.get_server_fixed_ip(o_svr, o_net)
         reachable = dmgr.is_reachable(ssh_client, o_ipaddr)
         if not reachable:
             not_reachable_list.append(o_ipaddr)
     self.assertTrue(
         len(not_reachable_list) == 0,
         ("Following Servers are not reachable: %s" % not_reachable_list))