示例#1
0
 def test07_make_portal_dd_member(self):
     """
     Make the portal a domain member too. Now even the portal index should stay
     the same. Note that we do not replace whole entity now, but just the portal
     """
     harness.isns_stage('dd-registration2', 'Register port in Discovery Domain')
     (res, msg) = harness.isns_register_domain(self.client_config,
                                               ['dd-id=1',
                                                'member-addr=192.168.1.1',
                                                'member-port=860'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.isns_stage('registration4', 'Replace whole entity')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['--replace',
                                                '--key', 'portal=192.168.1.1:860',
                                                'portal=192.168.1.2:860'])
     self.assertTrue(res, msg)
     harness.isns_stage('registration5', 'Replace whole entity again')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['--replace',
                                                '--key', 'portal=192.168.1.2:860',
                                                'portal=192.168.1.1:860'])
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#2
0
    def test09_remove_discovery_domain_entries(self):
        """
        Remove some entries from the DD (and add one)
        """
        harness.isns_stage('deregister1', 'Deregister Client by member-iscs-index')
        (res, msg) = harness.isns_deregister_domain(self.client1_config,
                                                    ['1', 'member-iscsi-idx=10'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        self.assertTrue(res, msg)

        harness.isns_stage('deregister2', 'Deregister Client by member-name')
        (res, msg) = harness.isns_deregister_domain(self.client1_config,
                                                    ['1',
                                                     'member-name=iqn.com.foobar:disk1'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        self.assertTrue(res, msg)

        harness.isns_stage('dd-registration3', 'Add Discovery Domain Member Again')
        (res, msg) = harness.isns_register_domain(self.client1_config,
                                                  ['member-name=isns.client2'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        self.assertTrue(res, msg)

        harness.isns_stage('deregister3', 'Deregister Domaon')
        (res, msg) = harness.isns_deregister_domain(self.client1_config, ['1'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        self.assertTrue(res, msg)

        harness.vprint('*** SUCCESS ***')
示例#3
0
 def setUpClass(cls):
     harness.vprint('*** Starting %s' % cls.__name__)
     cls.security = harness.set_up_test(cls.__name__)
     cls.server_config = harness.create_server()
     cls.client1_config = harness.create_client(cls.server_config, '127.1.0.1')
     cls.client2_config = harness.create_client(cls.server_config, '127.1.0.2')
     harness.isns_start_server(cls.server_config)
示例#4
0
 def test03_verify_regitration_expires(self):
     """
     Ensure the registration expires as the 20 second registration period
     """
     harness.isns_stage('expired', 'Waiting for registration period to expire (25s)')
     harness.isns_idle(25)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#5
0
 def test03_get_client_eid(self):
     """
     Get our eid (entity id)
     """
     harness.isns_stage('query', 'Get our Entity ID (eid)')
     (res, eid) = harness.isns_query_eid(self.client_config)
     self.assertTrue(res, 'unable to get eid for client (%d)' % res)
     self.__class__.eid = eid
     harness.vprint('*** SUCCESS ***')
示例#6
0
 def test03_run_external_program_pauw3_again(self):
     """
     Run the third external program
     """
     harness.isns_stage('pauw3-2', 'Run external program pauw3 (slow)')
     (res, msg) = harness.isns_external_test(self.client_config,
                                             ['tests/pauw3', '-n', '16'])
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#7
0
 def test04_wait_for_esi_to_expire_again(self):
     """
     Wait for ESI to come around
     """
     harness.isns_stage('expired2', 'Wait for ESI to expire (5s)')
     harness.isns_idle(5)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#8
0
 def test08_query_discovery_domain_membersip(self):
     """
     Get a list of the Discovery Domains (DDs) we are a member of
     """
     harness.isns_stage('query4', 'Querying client1 dd-id')
     (res, msg) = harness.isns_query_objects(self.client1_config, ['dd-id'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client1_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#9
0
 def test06_query_object_node_type(self):
     """
     Have the first initiator query for the target
     """
     harness.isns_stage('query3', 'Querying client1 iscsi-node-type')
     (res, msg) = harness.isns_query_objects(self.client1_config, ['iscsi-node-type'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client1_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#10
0
 def test99_deregister_client(self):
     """
     Deregister client
     """
     harness.isns_stage('deregister', 'Deregister client')
     (res, msg) = harness.isns_deregister_client(self.client_config)
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#11
0
 def test03_query_object_eid(self):
     """
     Run a simple query
     """
     harness.isns_stage('query', 'Querying eid')
     (res, msg) = harness.isns_query_objects(self.client_config, ['eid'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#12
0
 def test01_run_external_program_pauw4(self):
     """
     Run the second external program
     """
     harness.isns_stage('pauw2', 'Run external program pauw4')
     (res, msg) = harness.isns_external_test(self.client_config, ['tests/pauw4'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#13
0
 def test04_deregister_client_name(self):
     """
     As the iscsi node goes away, so should the whole entity
     """
     harness.isns_stage('deregister2', 'Deregister Client by member-iscs-index')
     (res, msg) = harness.isns_deregister_client(self.client_config,
                                                 ['iscsi-name=isns.client1'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#14
0
 def test03_restart_server_verify_ok(self):
     """
     Restart the server and ensure the DB is still good
     """
     harness.isns_stage('restart', 'Restart the server and ensure DB ok')
     new_pid = harness.isns_restart_server(self.server_config, self.server_pid)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     self.assertNotEqual(self.server_pid, new_pid,
                         'New PID same as old? (%d)' % new_pid)
     harness.vprint('*** SUCCESS ***')
示例#15
0
 def test05_register_discovery_domain(self):
     """
     Register our DD
     """
     harness.isns_stage('dd-registration1', 'Add Discovery Domain')
     (res, msg) = harness.isns_register_domain(self.client_config,
                                               ['member-name=isns.client1'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#16
0
 def test02_register_client_initiator_portal(self):
     """
     Register an iniator with default port
     """
     harness.isns_stage('registration', 'Register client initiator portal')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['initiator', 'portal'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#17
0
 def test03_deregister_client_portal(self):
     """
     Unregistering the portal should leave the iscsi node and
     portal group active, and move the portal to state limbo.
     """
     harness.isns_stage('deregister1', 'Deregister Client by portal')
     (res, msg) = harness.isns_deregister_client(self.client_config,
                                                 ['portal=127.0.0.1:860'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#18
0
 def test01_enroll_client(self):
     """
     Enroll our client
     """
     if self.security:
         harness.isns_stage('enroll', 'Enroll our cilent')
         self.assertEqual(harness.isns_enroll_client(self.client_config), 0)
         (res, msg) = harness.verify_db(self.server_config)
         self.assertTrue(res, msg)
         harness.vprint('*** SUCCESS ***')
     else:
         harness.vprint('*** Skipped (no security) ***')
示例#19
0
 def test04_register_discovery_domain(self):
     """
     Register a discovery domain (DD) that links the two clients
     """
     harness.isns_stage('dd-registration1', 'Add Discovery Domain')
     (res, msg) = harness.isns_register_domain(self.client1_config,
                                               ['member-name=isns.client1',
                                                'member-name=isns.client2'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#20
0
 def test07_add_discovery_domain_member(self):
     """
     Have the first initiator query for the target
     """
     harness.isns_stage('dd-registration2', 'Add Discovery Domain Member')
     (res, msg) = harness.isns_register_domain(self.client1_config,
                                               ['dd-id=1',
                                                'member-name=isns.client2',
                                                'member-name=iqn.com.foobar:disk1'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#21
0
 def test03_query_object_eids_before(self):
     """
     Run a simple query on each client -- clients will not see each other (yet)
     """
     harness.isns_stage('query1-1', 'Querying client1 eid')
     (res, msg) = harness.isns_query_objects(self.client1_config, ['eid'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client1_config)
     self.assertTrue(res, msg)
     harness.isns_stage('query1-2', 'Querying client2 eid')
     (res, msg) = harness.isns_query_objects(self.client2_config, ['eid'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client2_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#22
0
 def test06_replace_initiator_portal_with_dd(self):
     """
     Replace the portal again. Now the object index of the initiator
     should not change, since it is a domain member now
     """
     harness.isns_stage('registration3', 'Replace initiator portal')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['--replace',
                                                'entity=%s' % self.__class__.eid,
                                                'initiator',
                                                'portal=192.168.1.1:860'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#23
0
 def test05_query_object_eids_after(self):
     """
     Run a simple query on each client -- clients should be able to see each
     other now
     """
     harness.isns_stage('query2-1', 'Querying client1 eid')
     (res, msg) = harness.isns_query_objects(self.client1_config, ['eid'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client1_config)
     self.assertTrue(res, msg)
     harness.isns_stage('query2-2', 'Querying client2 eid')
     (res, msg) = harness.isns_query_objects(self.client2_config, ['eid'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_query_response(self.client2_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#24
0
 def test03_register_client_two_portals(self):
     """
     Register a simple initiator with two portals, one with ESI and one without.
     When the ESI-monitored portal expires, this should still take down
     the whole network entity.
     """
     harness.isns_stage('registration2', 'Register client with two portals')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['initiator',
                                                'portal,esi-port=65535,esi-interval=5',
                                                'portal=127.0.0.1:1'])
     harness.isns_stage('expired2', 'Wait for ESI to expire again (15s)')
     harness.isns_idle(15)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#25
0
 def test02_register_client_initiator_portal(self):
     """
     Register a simple initiator with one portal, then wait for ESI to expire
     """
     harness.isns_stage('registration1', 'Register client initiator portal')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['initiator',
                                                'portal,esi-port=65535,esi-interval=5'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.isns_stage('expired1', 'Wait for ESI to expire (15s)')
     harness.isns_idle(15)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#26
0
 def test02_register_client_portals(self):
     """
     Register iniator and target portals
     """
     harness.isns_stage('registration1', 'Register client1: initiator portals')
     (res, msg) = harness.isns_register_client(self.client1_config,
                                               ['initiator', 'portal'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.isns_stage('registration2', 'Register client2: target portals')
     (res, msg) = harness.isns_register_client(self.client2_config,
                                               ['target', 'portal'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#27
0
 def test01_enroll_clients(self):
     """
     Enroll the test client
     """
     if self.security:
         harness.isns_stage('enroll1', 'Enroll client 1')
         self.assertEqual(harness.isns_enroll_client(self.client1_config), 0)
         (res, msg) = harness.verify_db(self.server_config)
         self.assertTrue(res, msg)
         harness.isns_stage('enroll2', 'Enroll client 2')
         self.assertEqual(harness.isns_enroll_client(self.client2_config,
                                                     ['node-type=target']), 0)
         (res, msg) = harness.verify_db(self.server_config)
         self.assertTrue(res, msg)
         harness.vprint('*** SUCCESS ***')
     else:
         harness.vprint('*** Skipped (no security) ***')
示例#28
0
 def test08_deregister_and_reregister(self):
     """
     Deregister the whole client, and re-register. Portal and Client
     index should remain the same
     """
     harness.isns_stage('deregister', 'Deregister our client')
     (res, msg) = harness.isns_deregister_client(self.client_config,
                                                 ['eid=%s' % self.__class__.eid])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.isns_stage('registration6', 'Re-Register the client')
     (res, msg) = harness.isns_register_client(self.client_config,
                                               ['initiator',
                                                'portal=192.168.1.1:860'])
     self.assertTrue(res, msg)
     (res, msg) = harness.verify_db(self.server_config)
     self.assertTrue(res, msg)
     harness.vprint('*** SUCCESS ***')
示例#29
0
    def test04_replace_initiator_portal(self):
        """
        Replace the portal with different values
        """
        harness.isns_stage('registration2-1', 'Replace initiator portal')

        # set portal to 192.168.1.1, then override with 192.168.1.2
        (res, msg) = harness.isns_register_client(self.client_config,
                                                  ['--replace',
                                                   'entity=%s' % self.__class__.eid,
                                                   'initiator',
                                                   'portal=192.168.1.1:860'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        harness.isns_stage('registration2-2', 'Replace initiator portal')
        (res, msg) = harness.isns_register_client(self.client_config,
                                                  ['--replace',
                                                   'entity=%s' % self.__class__.eid,
                                                   'initiator',
                                                   'portal=192.168.1.2:860'])
        self.assertTrue(res, msg)
        (res, msg) = harness.verify_db(self.server_config)
        self.assertTrue(res, msg)
        harness.vprint('*** SUCCESS ***')
示例#30
0
 def setUpClass(cls):
     harness.vprint('*** Starting %s' % cls.__name__)
     cls.security = harness.set_up_test(cls.__name__, security=False)
     cls.server_config = harness.create_server()
     cls.client_config = harness.create_client(cls.server_config)
     cls.server_pid = harness.isns_start_server(cls.server_config)