Beispiel #1
0
    def test_issue_2420(self):
        # manipulate the core.re to enable host access control
        corefile = get_irods_config_dir() + "/core.re"
        backupcorefile = corefile + "--" + self._testMethodName
        shutil.copy(corefile, backupcorefile)
        os.system(
            '''sed -e '/^acAclPolicy {msiAclPolicy("STRICT"); }/iacAclPolicy {ON($userNameClient == "quickshare") { } }' /etc/irods/core.re > /tmp/irods/core.re''')
        time.sleep(1)  # remove once file hash fix is commited #2279
        os.system("cp /tmp/irods/core.re /etc/irods/core.re")
        time.sleep(1)  # remove once file hash fix is commited #2279

        # restart the server to reread the new core.re
        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl stop")
        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl start")

        assertiCmd(s.adminsession, "ils", "LIST", "tempZone")

        # look for the error "unable to read session variable $userNameClient."
        p = subprocess.Popen(
            ['grep "unable to read session variable $userNameClient."  ../../iRODS/server/log/rodsLog.*'], shell=True, stdout=subprocess.PIPE)
        result = p.communicate()[0]

        # restore the original core.re
        shutil.copy(backupcorefile, corefile)
        os.remove(backupcorefile)

        # check the results for the error
        assert(-1 == result.find("userNameClient"))
Beispiel #2
0
    def test_iput_overwrite_others_file__ticket_2086(self):
        # pre state
        assertiCmd(s.adminsession,"ils -L","LIST",self.testfile) # should be listed

        # local setup
        filename = "overwritefile.txt"
        filepath = create_local_testfile(filename)

        # alice tries to put
        homepath = "/home/"+s.adminsession.getUserName()+"/"+s.adminsession.sessionId+"/"+self.testfile
        logicalpath = "/"+s.adminsession.getZoneName()+homepath
        assertiCmd(s.sessions[1],"iput "+filepath+" "+logicalpath,"ERROR","CAT_NO_ACCESS_PERMISSION") # iput

        # check physicalpaths (of all replicas)
        cmdout = s.adminsession.runCmd('ils',['-L'])
        print "[ils -L]:"
        print "["+cmdout[0]+"]"
        lines = cmdout[0].splitlines()
        for l in cmdout[0].splitlines():
            if "demoResc" in l:
                if "/session-" in l:
                    physicalpath = l.split()[2]
                    # check file is on disk
                    print "[ls -l "+physicalpath+"]:"
                    os.system("ls -l "+physicalpath)
                    assert os.path.exists(physicalpath)

        # local cleanup
        output = commands.getstatusoutput( 'rm '+filepath )
Beispiel #3
0
    def test_server_config_environment_variables(self):
        # set log level to get all the things
        os.environ['spLogLevel'] = '11'

        # set a random environment value to find in the log
        svr_cfg_file = get_irods_config_dir() + "/server_config.json"
        os.system("cp %s %sOrig" % (svr_cfg_file, svr_cfg_file))

        with open(svr_cfg_file) as f:
            svr_cfg = json.load(f)
        the_value = 'THIS_IS_THE_VALUE'
        svr_cfg['environment_variables']['foo_bar'] = the_value
        mod_json_file(svr_cfg_file, svr_cfg)

        # bounce the server to get the new env variable
        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl stop")
        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl start")

        assertiCmd(s.adminsession, "ils", "LIST", "tempZone")

        # look for the error "unable to read session variable $userNameClient."
        p = subprocess.Popen(
            ['grep "' + the_value + '"  ../../iRODS/server/log/rodsLog.*'], shell=True, stdout=subprocess.PIPE)
        result = p.communicate()[0]

        del os.environ['spLogLevel']
        os.system("mv %sOrig %s" % (svr_cfg_file, svr_cfg_file))

        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl stop")
        os.system(get_irods_top_level_dir() + "/iRODS/irodsctl start")

        # check the results for the error
        assert(-1 != result.find(the_value))
Beispiel #4
0
 def test_local_imkdir(self):
     # local setup
     mytestdir = "testingimkdir"
     # assertions
     assertiCmdFail(s.adminsession, "ils -L " + mytestdir, "LIST", mytestdir)  # should not be listed
     assertiCmd(s.adminsession, "imkdir " + mytestdir)  # imkdir
     assertiCmd(s.adminsession, "ils -L " + mytestdir, "LIST", mytestdir)  # should be listed
Beispiel #5
0
 def test_local_imkdir_with_trailing_slash(self):
     # local setup
     mytestdir = "testingimkdirwithslash"
     # assertions
     assertiCmdFail(s.adminsession, "ils -L " + mytestdir + "/", "LIST", mytestdir)  # should not be listed
     assertiCmd(s.adminsession, "imkdir " + mytestdir + "/")  # imkdir
     assertiCmd(s.adminsession, "ils -L " + mytestdir, "LIST", mytestdir)  # should be listed
Beispiel #6
0
 def test_local_imkdir_with_trailing_slash_already_exists(self):
     # local setup
     mytestdir = "testingimkdirwithslash"
     # assertions
     assertiCmd(s.adminsession, "imkdir " + mytestdir + "/")  # imkdir
     assertiCmdFail(s.adminsession, "imkdir " + mytestdir)  # should fail, already exists
     assertiCmdFail(s.adminsession, "imkdir " + mytestdir + "/")  # should fail, already exists
Beispiel #7
0
 def test_local_imkdir_with_parent(self):
     # local setup
     mytestdir = "parent/testingimkdirwithparent"
     # assertions
     assertiCmdFail(s.adminsession, "ils -L " + mytestdir, "LIST", mytestdir)  # should not be listed
     assertiCmd(s.adminsession, "imkdir -p " + mytestdir)  # imkdir with parent
     assertiCmd(s.adminsession, "ils -L " + mytestdir, "LIST", mytestdir)  # should be listed
    def test_icp_r(self):
        base_name_source = "test_icp_r_dir_source"
        user_session = s.sessions[1]
        file_names = set(self.iput_r_large_collection(user_session, base_name_source, file_count=1000, file_size=100)[1])

        base_name_target = "test_icp_r_dir_target"
        assertiCmd(user_session, "icp -r " + base_name_source + " " + base_name_target, "EMPTY")
        assertiCmd(user_session, "ils", "LIST", base_name_target)
        rods_files_source = set(runCmd_ils_to_entries(user_session.runCmd("ils", [base_name_source])))
        self.assertTrue(file_names == rods_files_source,
                        msg="Files missing from rods source:\n" + str(file_names-rods_files_source) + "\n\n" + \
                            "Extra files in rods source:\n" + str(rods_files_source-file_names))

        rods_files_target = set(runCmd_ils_to_entries(user_session.runCmd("ils", [base_name_target])))
        self.assertTrue(file_names == rods_files_target,
                        msg="Files missing from rods target:\n" + str(file_names-rods_files_target) + "\n\n" + \
                            "Extra files in rods target:\n" + str(rods_files_target-file_names))     

        vault_files_post_icp_source = set(os.listdir(os.path.join(get_vault_session_path(user_session),
                                                                  base_name_source)))

        self.assertTrue(file_names == vault_files_post_icp_source,
                        msg="Files missing from vault:\n" + str(file_names-vault_files_post_icp_source) + "\n\n" + \
                            "Extra files in vault:\n" + str(vault_files_post_icp_source-file_names))


        vault_files_post_icp_target = set(os.listdir(os.path.join(get_vault_session_path(user_session),
                                                                  base_name_target)))
        self.assertTrue(file_names == vault_files_post_icp_target,
                        msg="Files missing from vault:\n" + str(file_names-vault_files_post_icp_target) + "\n\n" + \
                            "Extra files in vault:\n" + str(vault_files_post_icp_target-file_names))
 def test_curl_post(self):
     rule_file = self.rules_dir + "curlPost.r"
     print "-- running "+rule_file
     
     # will have to dynamically pass form_data to the rule once that's fixed
     form_data = "Sent from iRODS"
     c.assertiCmd(s.adminsession,"irule -F "+rule_file, "LIST", form_data)
Beispiel #10
0
 def test_irm_specific_replica(self):
     assertiCmd(s.adminsession,"ils -L "+self.testfile,"LIST",self.testfile) # should be listed
     assertiCmd(s.adminsession,"irepl -R "+self.testresc+" "+self.testfile) # creates replica
     assertiCmd(s.adminsession,"ils -L "+self.testfile,"LIST",self.testfile) # should be listed twice
     assertiCmd(s.adminsession,"irm -n 0 "+self.testfile) # remove original from grid
     assertiCmd(s.adminsession,"ils -L "+self.testfile,"LIST",["1 "+self.testresc,self.testfile]) # replica 1 should be there
     assertiCmdFail(s.adminsession,"ils -L "+self.testfile,"LIST",["0 "+s.adminsession.getDefResource(),self.testfile]) # replica 0 should be gone
     trashpath = "/"+s.adminsession.getZoneName()+"/trash/home/"+s.adminsession.getUserName()+"/"+s.adminsession.sessionId
     assertiCmdFail(s.adminsession,"ils -L "+trashpath+"/"+self.testfile,"LIST",["0 "+s.adminsession.getDefResource(),self.testfile]) # replica should not be in trash
Beispiel #11
0
 def test_iscan_local_file(self):
     assertiCmd( s.sessions[1], 'iscan non_existent_file', 'STDERR', 'ERROR: scanObj: non_existent_file does not exist' )
     existent_file = os.path.join( s.sessions[1]._session_dir, 'existent_file' )
     pydevtest_common.touch( existent_file )
     assertiCmd( s.sessions[1], 'iscan ' + existent_file, 'STDOUT', existent_file + ' is not registered in iRODS' )
     assertiCmd( s.sessions[1], 'iput ' + existent_file );
     output = getiCmdOutput( s.sessions[1], '''iquest "SELECT DATA_PATH WHERE DATA_NAME = 'existent_file'"''' )[0]
     data_path = output.strip().strip('-').strip()[12:]
     assertiCmd( s.sessions[1], 'iscan ' + data_path );
     assertiCmd( s.sessions[1], 'irm -f existent_file' );
Beispiel #12
0
    def test_imeta_set_single_object_abandoned_avu_triple_to_double_empty_unit(self):
        user = s.sessions[1].get_username()

        set_and_check_avu(user, 'att0', 'val0', 'unt0')

        assertiCmd(s.adminsession, 'imeta rm -u %s %s %s %s' % (user, 'att0', 'val0', 'unt0'))

        set_and_check_avu(user, 'att0', 'val0', '""')

        assertiCmdFail(s.adminsession, 'imeta ls -u ' + user + ' att0', 'STDOUT', 'units: unt0')
Beispiel #13
0
 def test_local_iput_physicalpath_no_permission(self):
     # local setup
     datafilename = "newfile.txt"
     f = open(datafilename,'wb')
     f.write("TESTFILE -- ["+datafilename+"]")
     f.close()
     # assertions
     assertiCmd(s.adminsession,"iput -p /newfileinroot.txt "+datafilename,"ERROR",["UNIX_FILE_CREATE_ERR","Permission denied"]) # should fail to write
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
Beispiel #14
0
    def setUp(self):
        ResourceBase.__init__(self)
        s.twousers_up()
        self.run_resource_setup()

        usernames = [ss.get_username() for ss in s.sessions]
        assertiCmd(s.adminsession, 'iadmin lu', 'STDOUT_MULTILINE', usernames)

        for u in usernames:
            assertiCmd(s.adminsession, 'imeta ls -u ' + u, 'STDOUT', 'None')
Beispiel #15
0
 def test_local_iget(self):
     # local setup
     localfile = "local.txt"
     # assertions
     assertiCmd(s.adminsession,"iget "+self.testfile+" "+localfile) # iget
     output = commands.getstatusoutput( 'ls '+localfile )
     print "  output: ["+output[1]+"]"
     assert output[1] == localfile
     # local cleanup
     output = commands.getstatusoutput( 'rm '+localfile )
Beispiel #16
0
 def test_local_iput_checksum(self):
     # local setup
     datafilename = "newfile.txt"
     f = open(datafilename,'wb')
     f.write("TESTFILE -- ["+datafilename+"]")
     f.close()
     # assertions
     assertiCmd(s.adminsession,"iput -K "+datafilename) # iput
     assertiCmd(s.adminsession,"ils -L","LIST","d60af3eb3251240782712eab3d8ef3b1") # check proper checksum
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
Beispiel #17
0
 def test_local_iput_relative_physicalpath_into_server_bin(self):
     # local setup
     datafilename = "newfile.txt"
     f = open(datafilename,'wb')
     f.write("TESTFILE -- ["+datafilename+"]")
     f.close()
     # assertions
     relpath = "relativephysicalpath.txt"
     assertiCmd(s.sessions[1],"iput -p "+relpath+" "+datafilename,"ERROR","absolute") # should error
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
    def setUp(self):
        ResourceBase.__init__(self)
        s.twousers_up()
        shutil.copy2('/bin/cp', RODSHOME + '/server/bin/cmd/mycp')
        shutil.copy2(FILESDIR + '/myWorkFlow', RODSHOME + '/server/bin/cmd/')
        shutil.copy2(FILESDIR + '/tt', RODSHOME + '/server/bin/cmd/')
        assertiCmd(s.adminsession, "iput -f " + FILESDIR + "/PHOTO.JPG /tempZone/home/rods")
	getiCmdOutput(s.adminsession, "irm -rf /tempZone/home/rods/workflow")
        assertiCmd(s.adminsession, "imkdir -p /tempZone/home/rods/workflow")

        self.run_resource_setup()
Beispiel #19
0
 def test_create_and_remove_coordinating_resource(self):
     testresc1 = "testResc1"
     assertiCmdFail(s.adminsession,"iadmin lr","LIST",testresc1) # should not be listed
     output = commands.getstatusoutput("hostname")
     hostname = output[1]
     assertiCmd(s.adminsession,"iadmin mkresc "+testresc1+" replication", "LIST", "Creating") # replication
     assertiCmd(s.adminsession,"iadmin lr","LIST",testresc1) # should be listed
     assertiCmd(s.adminsession,"iadmin lr "+testresc1,"LIST",["resc_net","EMPTY_RESC_HOST"]) # should have empty host
     assertiCmd(s.adminsession,"iadmin lr "+testresc1,"LIST",["resc_def_path","EMPTY_RESC_PATH"]) # should have empty path
     assertiCmd(s.adminsession,"iadmin rmresc "+testresc1) # good remove
     assertiCmdFail(s.adminsession,"iadmin lr","LIST",testresc1) # should be gone
Beispiel #20
0
 def test_irepl_invalid_input(self):
     # local setup
     filename = "somefile.txt"
     filepath = create_local_testfile(filename)
     # assertions
     assertiCmd(s.adminsession,"ils -L "+filename,"STDERR","does not exist")                     # should not be listed
     assertiCmd(s.adminsession,"iput "+filename)                                                 # put file
     assertiCmd(s.adminsession,"ils -L "+filename,"STDOUT",filename)                             # for debugging
     assertiCmd(s.adminsession,"irepl -R nonresc "+filename,"STDERR","SYS_INVALID_INPUT_PARAM")  # replicate to bad resource
     assertiCmd(s.adminsession,"irm -f "+filename)                                               # cleanup file
     # local cleanup
     os.remove(filepath)
Beispiel #21
0
 def test_local_iput_upper_checksum(self):
     # local setup
     datafilename = "newfile.txt"
     with open(datafilename,'wb') as f:
         f.write("TESTFILE -- ["+datafilename+"]")
     # assertions
     assertiCmd(s.adminsession,"iput -K "+datafilename) # iput
     with open(datafilename) as f:
         checksum = hashlib.sha256(f.read()).digest().encode("base64").strip()
     assertiCmd(s.adminsession,"ils -L","LIST","sha2:"+checksum) # check proper checksum
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
    def test_irm_r(self):
        base_name = "test_irm_r_dir"
        user_session = s.sessions[1]
        self.iput_r_large_collection(user_session, base_name, file_count=1000, file_size=100)

        assertiCmd(user_session, "irm -r " + base_name, "EMPTY")
        assertiCmd(user_session, "ils " + base_name, "ERROR", "does not exist")
        
        vault_files_post_irm = os.listdir(os.path.join(get_vault_session_path(user_session),
                                                       base_name))
        self.assertTrue(len(vault_files_post_irm) == 0,
                        msg="Files not removed from vault:\n" + str(vault_files_post_irm))
Beispiel #23
0
 def test_local_iput_with_changed_target_filename(self):
     # local setup
     datafilename = "newfile.txt"
     f = open(datafilename,'wb')
     f.write("TESTFILE -- ["+datafilename+"]")
     f.close()
     # assertions
     changedfilename = "different.txt"
     assertiCmd(s.adminsession,"iput "+datafilename+" "+changedfilename) # should complete
     assertiCmd(s.adminsession,"ils -L "+changedfilename,"LIST",changedfilename) # should be listed
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
Beispiel #24
0
 def test_local_iget_with_overwrite(self):
     # local setup
     localfile = "local.txt"
     # assertions
     assertiCmd(s.adminsession,"iget "+self.testfile+" "+localfile) # iget
     assertiCmdFail(s.adminsession,"iget "+self.testfile+" "+localfile) # already exists
     assertiCmd(s.adminsession,"iget -f "+self.testfile+" "+localfile) # already exists, so force
     output = commands.getstatusoutput( 'ls '+localfile )
     print "  output: ["+output[1]+"]"
     assert output[1] == localfile
     # local cleanup
     output = commands.getstatusoutput( 'rm '+localfile )
Beispiel #25
0
def check_avu(user_name, a, v, u):
    # If setting unit to empty string then ls output should be blank
    if u == '""':
        u = ''

    a = re.escape(a)
    v = re.escape(v)
    u = re.escape(u)

    assertiCmd(s.adminsession, 'imeta ls -u %s %s' % (user_name, a), 'STDOUT_MULTILINE', ['attribute: ' + a + '$',
                                                                                          'value: ' + v + '$',
                                                                                          'units: ' + u + '$'],
               use_regex=True)
Beispiel #26
0
    def test_mso_slink(self):
        test_file_path = "/"+s.adminsession.getZoneName()+"/home/"+s.adminsession.getUserName()+"/"+s.adminsession.sessionId
        assertiCmd( s.adminsession, 'iput -fR origResc ../zombiereaper.sh src_file.txt' )
        assertiCmd( s.adminsession, 'ireg -D mso -R archiveResc "//slink:'+test_file_path+'/src_file.txt" '+test_file_path+'/test_file.txt')
        assertiCmd( s.adminsession, 'iget -f '+test_file_path+'/test_file.txt')
	
        result = os.system("diff %s %s" % ( './test_file.txt', '../zombiereaper.sh' ))
        assert result == 0 
        
        assertiCmd( s.adminsession, 'iput -f ../zombiereaper.sh '+test_file_path+'/test_file.txt')
        
        # unregister the object
        assertiCmd( s.adminsession, 'irm -U '+test_file_path+'/test_file.txt')
Beispiel #27
0
 def test_local_iput(self):
     '''also needs to count and confirm number of replicas after the put'''
     # local setup
     datafilename = "newfile.txt"
     f = open(datafilename,'wb')
     f.write("TESTFILE -- ["+datafilename+"]")
     f.close()
     # assertions
     assertiCmdFail(s.adminsession,"ils -L "+datafilename,"LIST",datafilename) # should not be listed
     assertiCmd(s.adminsession,"iput "+datafilename) # iput
     assertiCmd(s.adminsession,"ils -L "+datafilename,"LIST",datafilename) # should be listed
     # local cleanup
     output = commands.getstatusoutput( 'rm '+datafilename )
Beispiel #28
0
 def test_empty_icd(self):
     # assertions
     assertiCmd(s.adminsession, "ils -L", "LIST", "test")  # whatever
     assertiCmd(s.adminsession, "icd " + self.testdir)  # get into subdir
     assertiCmd(s.adminsession, "icd")  # just go home
     assertiCmd(s.adminsession, "ils", "LIST", "/" + s.adminsession.getZoneName() +
                "/home/" + s.adminsession.getUserName() + ":")  # listing
Beispiel #29
0
 def test_isysmeta_no_permission(self):
     assertiCmd(s.sessions[1], "icd /" + s.adminsession.getZoneName() + "/home/public", "EMPTY")  # get into public/
     assertiCmd(s.sessions[1], "ils -L ", "STDOUT", "pydevtest_testfile.txt")  # basic listing
     assertiCmd(s.sessions[1], "isysmeta ls pydevtest_testfile.txt", "STDOUT",
                "data_expiry_ts (expire time): 00000000000: None")  # initialized with zeros
     assertiCmd(s.sessions[1], "isysmeta mod pydevtest_testfile.txt 1",
                "ERROR", "CAT_NO_ACCESS_PERMISSION")  # cannot set expiry
Beispiel #30
0
 def test_resource_name_restrictions(self):
     h = get_hostname()
     oversize_name = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" # longer than NAME_LEN
     assertiCmd(s.adminsession,"iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" % ("?/=*", h, "junk"), "ERROR", "SYS_INVALID_INPUT_PARAM") # invalid char
     assertiCmd(s.adminsession,"iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" % ("replication.B", h, "junk"), "ERROR", "SYS_INVALID_INPUT_PARAM") # invalid char
     assertiCmd(s.adminsession,"iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" % ("replication{", h, "junk"), "ERROR", "SYS_INVALID_INPUT_PARAM") # invalid char
     assertiCmd(s.adminsession,"iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" % (oversize_name, h, "junk"), "ERROR", "SYS_INVALID_INPUT_PARAM") # too long
Beispiel #31
0
 def test_local_ihelp_with_good_icommand(self):
     # assertions
     assertiCmd(s.adminsession, "ihelp ils", "LIST",
                "Usage")  # run ihelp with good icommand
Beispiel #32
0
    def test_ireg_files(self):
        assertiCmd(
            s.adminsession, "ireg -R l_resc " + ABSPATHTESTDIR +
            "/file0 /tempZone/home/rods/file0", "EMPTY")
        assertiCmd(s.adminsession, "ils -l /tempZone/home/rods/file0", "LIST",
                   "r_resc;m_resc;l_resc")

        assertiCmd(
            s.adminsession, "ireg -R r_resc " + ABSPATHTESTDIR +
            "/file1 /tempZone/home/rods/file1", "EMPTY")
        assertiCmd(s.adminsession, "ils -l /tempZone/home/rods/file1", "LIST",
                   "r_resc;m_resc;l_resc")

        assertiCmd(
            s.adminsession, "ireg -R m_resc " + ABSPATHTESTDIR +
            "/file2 /tempZone/home/rods/file2", "ERROR",
            "ERROR: regUtil: reg error for")

        assertiCmd(
            s.adminsession, "ireg -R demoResc " + ABSPATHTESTDIR +
            "/file3 /tempZone/home/rods/file3", "EMPTY")
Beispiel #33
0
def set_avu(user_name, a, v, u):
    assertiCmd(s.adminsession,
               'imeta set -u %s %s %s %s' % (user_name, a, v, u))
Beispiel #34
0
 def test_iexit(self):
     # assertions
     assertiCmd(s.adminsession, "iexit")  # just go home
Beispiel #35
0
    def test_iadmin_mkuser(self):

        # A few examples of valid and invalid usernames
        valid = ['bob', 'jim-bob', 'boB', '123.456', '___haysoos___']

        invalid = [
            'bo', '.bob', 'bob.', 'jim--bob', 'jamesbond..007',
            '________________________________longer_than_NAME_LEN________________________________________________'
        ]

        # Test valid names
        for name in valid:
            assertiCmd(s.adminsession, "iadmin mkuser " + name +
                       " rodsuser")  # should be accepted
            assertiCmd(s.adminsession, "iadmin lu", "LIST", name + "#" +
                       s.adminsession.getZoneName())  # should be listed
            assertiCmd(s.adminsession, "iadmin rmuser " + name)  # remove user
            assertiCmdFail(s.adminsession, "iadmin lu", "LIST", name + "#" +
                           s.adminsession.getZoneName())  # should be gone

        # Test invalid names
        for name in invalid:
            assertiCmd(s.adminsession, "iadmin mkuser " + name + " rodsuser",
                       "ERROR",
                       "SYS_INVALID_INPUT_PARAM")  # should be rejected

        # Invalid names with special characters
        assertiCmd(s.adminsession, r"iadmin mkuser hawai\'i rodsuser", "ERROR",
                   "SYS_INVALID_INPUT_PARAM")  # should be rejected
        assertiCmd(s.adminsession, r"iadmin mkuser \\\/\!\*\?\|\$ rodsuser",
                   "ERROR", "SYS_INVALID_INPUT_PARAM")  # should be rejected
Beispiel #36
0
    def test_rebalance_for_repl_node(self):
        output = commands.getstatusoutput("hostname")
        hostname = output[1]

        # =-=-=-=-=-=-=-
        # STANDUP
        assertiCmd(s.adminsession, "iadmin mkresc pt passthru", "LIST",
                   "Creating")
        assertiCmd(s.adminsession, "iadmin mkresc pt_b passthru", "LIST",
                   "Creating")
        assertiCmd(s.adminsession, "iadmin mkresc pt_c1 passthru", "LIST",
                   "Creating")
        assertiCmd(s.adminsession, "iadmin mkresc pt_c2 passthru", "LIST",
                   "Creating")
        assertiCmd(s.adminsession, "iadmin mkresc repl replication", "LIST",
                   "Creating")

        assertiCmd(s.adminsession, "iadmin mkresc leaf_a unixfilesystem " +
                   hostname + ":/tmp/pydevtest_leaf_a", "LIST",
                   "Creating")  # unix
        assertiCmd(s.adminsession, "iadmin mkresc leaf_b unixfilesystem " +
                   hostname + ":/tmp/pydevtest_leaf_b", "LIST",
                   "Creating")  # unix
        assertiCmd(s.adminsession, "iadmin mkresc leaf_c unixfilesystem " +
                   hostname + ":/tmp/pydevtest_leaf_c", "LIST",
                   "Creating")  # unix

        assertiCmd(s.adminsession, "iadmin addchildtoresc pt repl")
        assertiCmd(s.adminsession, "iadmin addchildtoresc repl leaf_a")
        assertiCmd(s.adminsession, "iadmin addchildtoresc repl pt_b")
        assertiCmd(s.adminsession, "iadmin addchildtoresc repl pt_c1")
        assertiCmd(s.adminsession, "iadmin addchildtoresc pt_b leaf_b")
        assertiCmd(s.adminsession, "iadmin addchildtoresc pt_c1 pt_c2")
        assertiCmd(s.adminsession, "iadmin addchildtoresc pt_c2 leaf_c")

        # =-=-=-=-=-=-=-
        # place data into the resource
        num_children = 11
        for i in range(num_children):
            assertiCmd(s.adminsession, "iput -R pt README foo%d" % i)

        # =-=-=-=-=-=-=-
        # surgically trim repls so we can rebalance
        assertiCmd(s.adminsession,
                   "itrim -N1 -n 0 foo0 foo3 foo5 foo6 foo7 foo8")
        assertiCmd(s.adminsession, "itrim -N1 -n 1 foo1 foo3 foo4 foo9")
        assertiCmd(s.adminsession, "itrim -N1 -n 2 foo2 foo4 foo5")

        # =-=-=-=-=-=-=-
        # visualize our pruning
        assertiCmd(s.adminsession, "ils -AL", "LIST", "foo")

        # =-=-=-=-=-=-=-
        # call rebalance function - the thing were actually testing... finally.
        assertiCmd(s.adminsession, "iadmin modresc pt rebalance")

        # =-=-=-=-=-=-=-
        # assert that all the appropriate repl numbers exist for all the children
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 1 ", " foo0"])
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 2 ", " foo0"])
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 3 ", " foo0"])

        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 0 ", " foo1"])
        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 2 ", " foo1"])
        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 3 ", " foo1"])

        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 0 ", " foo2"])
        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 1 ", " foo2"])
        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 2 ", " foo2"])

        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 2 ", " foo3"])
        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 3 ", " foo3"])
        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 4 ", " foo3"])

        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 0 ", " foo4"])
        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 1 ", " foo4"])
        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 2 ", " foo4"])

        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 1 ", " foo5"])
        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 2 ", " foo5"])
        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 3 ", " foo5"])

        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 1 ", " foo6"])
        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 2 ", " foo6"])
        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 3 ", " foo6"])

        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 1 ", " foo7"])
        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 2 ", " foo7"])
        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 3 ", " foo7"])

        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 1 ", " foo8"])
        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 2 ", " foo8"])
        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 3 ", " foo8"])

        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 0 ", " foo9"])
        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 2 ", " foo9"])
        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 3 ", " foo9"])

        assertiCmd(s.adminsession, "ils -AL foo10", "LIST", [" 0 ", " foo10"])
        assertiCmd(s.adminsession, "ils -AL foo10", "LIST", [" 1 ", " foo10"])
        assertiCmd(s.adminsession, "ils -AL foo10", "LIST", [" 2 ", " foo10"])

        # =-=-=-=-=-=-=-
        # TEARDOWN
        for i in range(num_children):
            assertiCmd(s.adminsession, "irm -f foo%d" % i)

        assertiCmd(s.adminsession, "iadmin rmchildfromresc pt_c2 leaf_c")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc repl leaf_a")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc pt_b leaf_b")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc pt_c1 pt_c2")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc repl pt_c1")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc repl pt_b")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc pt repl")

        assertiCmd(s.adminsession, "iadmin rmresc leaf_c")
        assertiCmd(s.adminsession, "iadmin rmresc leaf_b")
        assertiCmd(s.adminsession, "iadmin rmresc leaf_a")
        assertiCmd(s.adminsession, "iadmin rmresc pt_c2")
        assertiCmd(s.adminsession, "iadmin rmresc pt_c1")
        assertiCmd(s.adminsession, "iadmin rmresc pt_b")
        assertiCmd(s.adminsession, "iadmin rmresc repl")
        assertiCmd(s.adminsession, "iadmin rmresc pt")
Beispiel #37
0
    def test_rebalance_for_repl_in_repl_node(self):
        output = commands.getstatusoutput("hostname")
        # =-=-=-=-=-=-=-
        # STANDUP
        h = get_hostname()
        # first tree standup
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s passthru %s:/tmp/pydevtest_%s" %
                   ("pt", h, "pt"), "LIST", "Creating")  # passthru
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s replication %s:/tmp/pydevtest_%s" %
                   ("replA", h, "replA"), "LIST", "Creating")  # replication
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixA1", h, "unixA1"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixA2", h, "unixA2"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("pt", "replA"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "unixA1"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "unixA2"))
        # second tree standup
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s replication %s:/tmp/pydevtest_%s" %
                   ("replB", h, "replB"), "LIST", "Creating")  # replication
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixB1", h, "unixB1"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixB2", h, "unixB2"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replB", "unixB1"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replB", "unixB2"))

        # wire the repls together
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "replB"))

        # =-=-=-=-=-=-=-
        # place data into the resource
        num_children = 11
        for i in range(num_children):
            assertiCmd(s.adminsession, "iput -R pt README foo%d" % i)

        # =-=-=-=-=-=-=-
        # visualize our replication
        assertiCmd(s.adminsession, "ils -AL", "LIST", "foo")

        # =-=-=-=-=-=-=-
        # surgically trim repls so we can rebalance
        assertiCmd(s.adminsession,
                   "itrim -N1 -n 0 foo0 foo3 foo5 foo6 foo7 foo8")
        assertiCmd(s.adminsession, "itrim -N1 -n 1 foo1 foo3 foo4 foo9")
        assertiCmd(s.adminsession, "itrim -N1 -n 2 foo2 foo4 foo5")

        # =-=-=-=-=-=-=-
        # dirty up a foo10 repl to ensure that code path is tested also
        assertiCmd(s.adminsession, "iadmin modresc unixA2 status down")
        assertiCmd(s.adminsession, "iput -fR pt test_allrules.py foo10")
        assertiCmd(s.adminsession, "iadmin modresc unixA2 status up")

        # =-=-=-=-=-=-=-
        # visualize our pruning
        assertiCmd(s.adminsession, "ils -AL", "LIST", "foo")

        # =-=-=-=-=-=-=-
        # call rebalance function - the thing were actually testing... finally.
        assertiCmd(s.adminsession, "iadmin modresc pt rebalance")

        # =-=-=-=-=-=-=-
        # visualize our rebalance
        assertiCmd(s.adminsession, "ils -AL", "LIST", "foo")

        # =-=-=-=-=-=-=-
        # assert that all the appropriate repl numbers exist for all the children
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 1 ", " foo0"])
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 2 ", " foo0"])
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 3 ", " foo0"])
        assertiCmd(s.adminsession, "ils -AL foo0", "LIST", [" 4 ", " foo0"])

        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 0 ", " foo1"])
        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 2 ", " foo1"])
        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 3 ", " foo1"])
        assertiCmd(s.adminsession, "ils -AL foo1", "LIST", [" 4 ", " foo1"])

        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 0 ", " foo2"])
        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 1 ", " foo2"])
        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 3 ", " foo2"])
        assertiCmd(s.adminsession, "ils -AL foo2", "LIST", [" 4 ", " foo2"])

        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 2 ", " foo3"])
        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 3 ", " foo3"])
        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 4 ", " foo3"])
        assertiCmd(s.adminsession, "ils -AL foo3", "LIST", [" 5 ", " foo3"])

        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 0 ", " foo4"])
        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 3 ", " foo4"])
        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 4 ", " foo4"])
        assertiCmd(s.adminsession, "ils -AL foo4", "LIST", [" 5 ", " foo4"])

        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 1 ", " foo5"])
        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 3 ", " foo5"])
        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 4 ", " foo5"])
        assertiCmd(s.adminsession, "ils -AL foo5", "LIST", [" 5 ", " foo5"])

        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 1 ", " foo6"])
        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 2 ", " foo6"])
        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 3 ", " foo6"])
        assertiCmd(s.adminsession, "ils -AL foo6", "LIST", [" 4 ", " foo6"])

        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 1 ", " foo7"])
        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 2 ", " foo7"])
        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 3 ", " foo7"])
        assertiCmd(s.adminsession, "ils -AL foo7", "LIST", [" 4 ", " foo7"])

        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 1 ", " foo8"])
        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 2 ", " foo8"])
        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 3 ", " foo8"])
        assertiCmd(s.adminsession, "ils -AL foo8", "LIST", [" 4 ", " foo8"])

        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 0 ", " foo9"])
        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 2 ", " foo9"])
        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 3 ", " foo9"])
        assertiCmd(s.adminsession, "ils -AL foo9", "LIST", [" 4 ", " foo9"])

        assertiCmd(s.adminsession, "ils -AL foo10", "LIST",
                   [" 0 ", " & ", " foo10"])
        assertiCmd(s.adminsession, "ils -AL foo10", "LIST",
                   [" 1 ", " & ", " foo10"])
        assertiCmd(s.adminsession, "ils -AL foo10", "LIST",
                   [" 2 ", " & ", " foo10"])
        assertiCmd(s.adminsession, "ils -AL foo10", "LIST",
                   [" 3 ", " & ", " foo10"])

        # =-=-=-=-=-=-=-
        # TEARDOWN
        for i in range(num_children):
            assertiCmd(s.adminsession, "irm -f foo%d" % i)

        # unwire repl nods
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "replB"))

        # second tree teardown
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replB", "unixB2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replB", "unixB1"))
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixB2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixB1")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "replB")
        # first tree teardown
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "unixA2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "unixA1"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("pt", "replA"))
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixA2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixA1")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "replA")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "pt")
Beispiel #38
0
 def test_iphybun_n(self):
   assertiCmd(s.adminsession, "imkdir testColl")
   assertiCmd(s.adminsession, "icd testColl")
   filenames = []
   for i in range(0, 8):
     f = "empty" + str(i) + ".txt"
     filenames.append(f)
     cat(f, str(i))
     assertiCmd(s.adminsession, "iput " + f)
     unlink(f)
   assertiCmd(s.adminsession, "icd ..")
   assertiCmd(s.adminsession, "iphybun -N3 -SdemoResc -RdemoResc testColl")
   coll_dir = getiCmdOutput(s.adminsession, "ils /tempZone/bundle/home/rods")[0].split('\n')[-2].lstrip(string.printable.translate(None, "/"))
   after = getiCmdOutput(s.adminsession, "ils " + coll_dir)
   after = after[0].split('\n');
   assert(len(after) == 2 + 3)
   assertiCmd(s.adminsession, "irm -rf testColl" )
Beispiel #39
0
 def test_iquest_totaldatasize(self):
     assertiCmd(s.adminsession,
                "iquest \"select sum(DATA_SIZE) where COLL_NAME like '/" +
                s.adminsession.getZoneName() + "/home/%'\"", "LIST",
                "DATA_SIZE")  # selects total data size
Beispiel #40
0
 def test_iquest_bad_format(self):
     assertiCmd(s.adminsession, "iquest \"bad formatting\"", "ERROR",
                "INPUT_ARG_NOT_WELL_FORMED_ERR")  # bad request
Beispiel #41
0
    def test_modify_resource_name(self):
        h = get_hostname()
        # tree standup
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s passthru %s:/tmp/pydevtest_%s" %
                   ("pt1", h, "pt1"), "LIST", "Creating")  # passthru
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s replication %s:/tmp/pydevtest_%s" %
                   ("repl", h, "repl"), "LIST", "Creating")  # replication
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unix1", h, "unix1"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s passthru %s:/tmp/pydevtest_%s" %
                   ("pt2", h, "pt2"), "LIST", "Creating")  # passthru
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unix2", h, "unix2"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("pt1", "repl"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("repl", "unix1"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("repl", "pt2"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("pt2", "unix2"))

        # rename repl node
        newnodename = "replwithmoreletters"
        assertiCmd(s.adminsession,
                   "iadmin modresc %s name %s" % ("repl", newnodename), "LIST",
                   "OK, performing the resource rename")  # rename

        # confirm children of pt1 is newnodename
        assertiCmd(s.adminsession, "iadmin lr %s" % "pt1", "LIST",
                   "resc_children: %s" % newnodename + "{}")
        # confirm parent of newnodename is still pt1
        assertiCmd(s.adminsession, "iadmin lr %s" % newnodename, "LIST",
                   "resc_parent: %s" % "pt1")
        # confirm children of newnodename is unix1 and pt2
        assertiCmd(s.adminsession, "iadmin lr %s" % newnodename, "LIST",
                   "resc_children: %s" % "unix1{};pt2{}")
        # confirm parent of pt2 is newnodename
        assertiCmd(s.adminsession, "iadmin lr %s" % "pt2", "LIST",
                   "resc_parent: %s" % newnodename)
        # confirm parent of unix2 is pt2
        assertiCmd(s.adminsession, "iadmin lr %s" % "unix2", "LIST",
                   "resc_parent: %s" % "pt2")
        # confirm parent of unix1 is newnodename
        assertiCmd(s.adminsession, "iadmin lr %s" % "unix1", "LIST",
                   "resc_parent: %s" % newnodename)

        # tree teardown
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("pt2", "unix2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % (newnodename, "unix1"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % (newnodename, "pt2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("pt1", newnodename))
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unix2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unix1")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "pt2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % newnodename)
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "pt1")
Beispiel #42
0
    def test_resource_hierarchy_manipulation(self):
        h = get_hostname()
        # first tree standup
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s passthru %s:/tmp/pydevtest_%s" %
                   ("pt", h, "pt"), "LIST", "Creating")  # passthru
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s replication %s:/tmp/pydevtest_%s" %
                   ("replA", h, "replA"), "LIST", "Creating")  # replication
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixA1", h, "unixA1"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixA2", h, "unixA2"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("pt", "replA"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "unixA1"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "unixA2"))
        # second tree standup
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s replication %s:/tmp/pydevtest_%s" %
                   ("replB", h, "replB"), "LIST", "Creating")  # replication
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixB1", h, "unixB1"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin mkresc %s unixfilesystem %s:/tmp/pydevtest_%s" %
                   ("unixB2", h, "unixB2"), "LIST", "Creating")  # unix
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replB", "unixB1"))
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replB", "unixB2"))

        # create some files
        dir1 = "for_pt"
        dir2 = "for_replB"
        tree1 = 5
        tree2 = 8
        doubletree1 = 2 * tree1  # 10
        doubletree2 = 2 * tree2  # 16
        totaltree = doubletree1 + doubletree2  # 26
        create_directory_of_small_files(dir1, tree1)
        create_directory_of_small_files(dir2, tree2)
        #os.system("ls -al %s" % dir1)
        #os.system("ls -al %s" % dir2)

        # add files
        assertiCmd(s.adminsession, "iput -R %s -r %s" % ("pt", dir1))
        assertiCmd(s.adminsession, "iput -R %s -r %s" % ("replB", dir2))

        # debugging
        assertiCmd(s.adminsession, "ils -L %s" % dir1, "LIST", dir1)
        assertiCmd(s.adminsession, "ils -L %s" % dir2, "LIST", dir2)

        # add tree2 to tree1
        # add replB to replA
        assertiCmd(s.adminsession,
                   "iadmin addchildtoresc %s %s" % ("replA", "replB"))

        # debugging
        assertiCmd(s.adminsession, "ils -L %s" % dir1, "LIST", dir1)
        assertiCmd(s.adminsession, "ils -L %s" % dir2, "LIST", dir2)

        # check object_count on pt
        assertiCmd(s.adminsession, "iadmin lr %s" % "pt", "LIST",
                   "resc_objcount: %d" % totaltree)
        # check object_count and children on replA
        assertiCmd(s.adminsession, "iadmin lr %s" % "replA", "LIST",
                   "resc_objcount: %d" % totaltree)
        assertiCmd(s.adminsession, "iadmin lr %s" % "replA", "LIST",
                   "resc_children: %s" % "unixA1{};unixA2{};replB{}")
        # check object_count on unixA1
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixA1", "LIST",
                   "resc_objcount: %d" % tree1)
        # check object_count on unixA2
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixA2", "LIST",
                   "resc_objcount: %d" % tree1)
        # check object_count and parent on replB
        assertiCmd(s.adminsession, "iadmin lr %s" % "replB", "LIST",
                   "resc_objcount: %d" % doubletree2)
        assertiCmd(s.adminsession, "iadmin lr %s" % "replB", "LIST",
                   "resc_parent: %s" % "replA")
        # check object_count on unixB1
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixB1", "LIST",
                   "resc_objcount: %d" % tree2)
        # check object_count on unixB2
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixB2", "LIST",
                   "resc_objcount: %d" % tree2)
        # check resc_hier on replB files, should have full hierarchy, and should NOT start with replB
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_HIER where DATA_RESC_HIER like '%s;%%'\""
            % "pt;replA;replB", "LIST", "pt")
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_HIER where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "CAT_NO_ROWS_FOUND")
        # check resc_name on replB files
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "pt;replA;replB", "LIST", "pt")
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "CAT_NO_ROWS_FOUND")
        # check resc_group_name on replB files
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_GROUP_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "pt;replA;replB", "LIST", "pt")
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_GROUP_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "CAT_NO_ROWS_FOUND")

        # remove child
        # rm replB from replA
        assertiCmd(s.adminsession, "iadmin lr %s" % "replA", "LIST",
                   "replB")  # debugging
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "replB"))

        # check object_count on pt
        assertiCmd(s.adminsession, "iadmin lr %s" % "pt", "LIST",
                   "resc_objcount: %d" % doubletree1)
        # check object_count on replA
        assertiCmd(s.adminsession, "iadmin lr %s" % "replA", "LIST",
                   "resc_objcount: %d" % doubletree1)
        # check object_count on unixA1
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixA1", "LIST",
                   "resc_objcount: %d" % tree1)
        # check object_count on unixA2
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixA2", "LIST",
                   "resc_objcount: %d" % tree1)
        # check object_count on replB
        assertiCmd(s.adminsession, "iadmin lr %s" % "replB", "LIST",
                   "resc_objcount: %d" % doubletree2)
        # check object_count on unixB1
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixB1", "LIST",
                   "resc_objcount: %d" % tree2)
        # check object_count on unixB2
        assertiCmd(s.adminsession, "iadmin lr %s" % "unixB2", "LIST",
                   "resc_objcount: %d" % tree2)
        # check resc_hier on replB files, should start with replB and not have pt anymore
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_HIER where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "replB")
        # check resc_name on replB files
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "replB")
        # check resc_group_name on replB files
        assertiCmd(
            s.adminsession,
            "iquest \"select DATA_RESC_GROUP_NAME where DATA_RESC_HIER like '%s;%%'\""
            % "replB", "LIST", "replB")

        # delete files
        assertiCmd(s.adminsession, "irm -rf %s" % dir1)
        assertiCmd(s.adminsession, "irm -rf %s" % dir2)

        # local cleanup
        shutil.rmtree(dir1)
        shutil.rmtree(dir2)

        # second tree teardown
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replB", "unixB2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replB", "unixB1"))
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixB2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixB1")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "replB")
        # first tree teardown
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "unixA2"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("replA", "unixA1"))
        assertiCmd(s.adminsession,
                   "iadmin rmchildfromresc %s %s" % ("pt", "replA"))
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixA2")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "unixA1")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "replA")
        assertiCmd(s.adminsession, "iadmin rmresc %s" % "pt")
Beispiel #43
0
 def test_list_users(self):
     assertiCmd(
         s.adminsession, "iadmin lu", "LIST",
         s.adminsession.getUserName() + "#" + s.adminsession.getZoneName())
     assertiCmdFail(s.adminsession, "iadmin lu", "LIST", "notauser")
Beispiel #44
0
 def test_local_ihelp(self):
     # assertions
     assertiCmd(s.adminsession, "ihelp", "LIST",
                "The following is a list of the icommands")  # run ihelp
Beispiel #45
0
 def test_list_resources(self):
     assertiCmd(s.adminsession, "iadmin lr", "LIST", self.testresc)
     assertiCmdFail(s.adminsession, "iadmin lr", "LIST", "notaresource")
Beispiel #46
0
 def test_icd_to_root(self):
     # assertions
     assertiCmd(s.adminsession, "icd /")  # go to root
     assertiCmd(s.adminsession, "ils", "LIST", "/:")  # listing
Beispiel #47
0
 def test_list_zones(self):
     assertiCmd(s.adminsession, "iadmin lz", "LIST",
                s.adminsession.getZoneName())
     assertiCmdFail(s.adminsession, "iadmin lz", "LIST", "notazone")
Beispiel #48
0
    def test_workflow_set_one_up(self):

        # setup

        # ingest workflow file
        assertiCmd(
            s.adminsession, "iput -D \"msso file\" " + FILESDIR +
            "/myWf.mss /tempZone/home/rods/workflow/myWf.mss")
        assertiCmd(s.adminsession, "ils -L /tempZone/home/rods/workflow",
                   "LIST", "myWf.mss")

        # create WSO collection and associate with MSO
        assertiCmd(s.adminsession,
                   "imkdir -p /tempZone/home/rods/workflow/myWf")
        assertiCmd(
            s.adminsession,
            "imcoll -m msso /tempZone/home/rods/workflow/myWf.mss /tempZone/home/rods/workflow/myWf"
        )

        # ingest param file into WSO (there can be more than one)
        assertiCmd(
            s.adminsession,
            "iput " + FILESDIR + "/myWf.mpf /tempZone/home/rods/workflow/myWf")

        # put any data to be used by workflow into WSO collection
        assertiCmd(
            s.adminsession, "iput " + FILESDIR +
            "/myData /tempZone/home/rods/workflow/myWf/myData")

        # run the workflow
        assertiCmd(s.adminsession,
                   "iget /tempZone/home/rods/workflow/myWf/myWf.run -", "LIST",
                   "Workflow Executed Successfully.")

        # teardown
        assertiCmd(s.adminsession,
                   "imcoll -U /tempZone/home/rods/workflow/myWf")
Beispiel #49
0
 def test_create_and_remove_coordinating_resource_with_explicit_contextstring(
         self):
     testresc1 = "testResc1"
     assertiCmdFail(s.adminsession, "iadmin lr", "LIST",
                    testresc1)  # should not be listed
     output = commands.getstatusoutput("hostname")
     hostname = output[1]
     assertiCmd(s.adminsession, "iadmin mkresc " + testresc1 +
                " replication '' Context:String", "LIST",
                "Creating")  # replication
     assertiCmd(s.adminsession, "iadmin lr", "LIST",
                testresc1)  # should be listed
     assertiCmd(s.adminsession, "iadmin lr " + testresc1, "LIST",
                ["resc_net", "EMPTY_RESC_HOST"])  # should have empty host
     assertiCmd(
         s.adminsession, "iadmin lr " + testresc1, "LIST",
         ["resc_def_path", "EMPTY_RESC_PATH"])  # should have empty path
     assertiCmd(
         s.adminsession, "iadmin lr " + testresc1, "LIST",
         ["resc_context", "Context:String"])  # should have contextstring
     assertiCmd(s.adminsession, "iadmin rmresc " + testresc1)  # good remove
     assertiCmdFail(s.adminsession, "iadmin lr", "LIST",
                    testresc1)  # should be gone
Beispiel #50
0
 def test_icd_to_parentdir(self):
     # assertions
     assertiCmd(s.adminsession, "icd ..")  # go to parent
     assertiCmd(s.adminsession, "ils", "LIST",
                "/" + s.adminsession.getZoneName() + "/home/" +
                s.adminsession.getUserName() + ":")  # listing
Beispiel #51
0
    def test_load_balanced(self):
        # =-=-=-=-=-=-=-
        # read server_config.json and .odbc.ini
        cfg = ServerConfig()

        if cfg.get('catalog_database_type') == "postgres":
            # =-=-=-=-=-=-=-
            # seed load table with fake values - rescA should win
            secs = int(time.time())
            cfg.exec_sql_cmd(
                "insert into r_server_load_digest values ('rescA', 50, %s)" %
                secs)
            cfg.exec_sql_cmd(
                "insert into r_server_load_digest values ('rescB', 75, %s)" %
                secs)
            cfg.exec_sql_cmd(
                "insert into r_server_load_digest values ('rescC', 95, %s)" %
                secs)

            # =-=-=-=-=-=-=-
            # build a logical path for putting a file
            test_file_path = "/" + s.adminsession.get_zone_name() + "/home/" + s.adminsession.get_username() + \
                "/" + s.adminsession._session_id
            test_file = test_file_path + "/test_file.txt"

            # =-=-=-=-=-=-=-
            # put a test_file.txt - should be on rescA given load table values
            assertiCmd(s.adminsession,
                       "iput -f ./test_load_balanced_suite.py " + test_file)
            assertiCmd(s.adminsession, "ils -L " + test_file, "LIST", "rescA")
            assertiCmd(s.adminsession, "irm -f " + test_file)

            # =-=-=-=-=-=-=-
            # drop rescC to a load of 15 - this should now win
            cfg.exec_sql_cmd(
                "update r_server_load_digest set load_factor=15 where resc_name='rescC'"
            )

            # =-=-=-=-=-=-=-
            # put a test_file.txt - should be on rescC given load table values
            assertiCmd(s.adminsession,
                       "iput -f ./test_load_balanced_suite.py " + test_file)
            assertiCmd(s.adminsession, "ils -L " + test_file, "LIST", "rescC")
            assertiCmd(s.adminsession, "irm -f " + test_file)

            # =-=-=-=-=-=-=-
            # clean up our alterations to the load table
            cfg.exec_sql_cmd(
                "delete from r_server_load_digest where resc_name='rescA'")
            cfg.exec_sql_cmd(
                "delete from r_server_load_digest where resc_name='rescB'")
            cfg.exec_sql_cmd(
                "delete from r_server_load_digest where resc_name='rescC'")
        else:
            print 'skipping test_load_balanced due to unsupported database for this test.'
Beispiel #52
0
 def test_icd_to_root_with_badpath(self):
     # assertions
     # go to root with bad path
     assertiCmd(s.adminsession, "icd /doesnotexist", "LIST",
                "No such directory (collection):")
Beispiel #53
0
    def tearDown(self):
        assertiCmd(s.adminsession, "irm -f /tempZone/home/rods/file0")
        assertiCmd(s.adminsession, "irm -f /tempZone/home/rods/file1")
        assertiCmd(s.adminsession, "irm -f /tempZone/home/rods/file3")

        assertiCmd(s.adminsession, "irmtrash -M")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc m_resc l_resc")
        assertiCmd(s.adminsession, "iadmin rmchildfromresc r_resc m_resc")

        assertiCmd(s.adminsession, "iadmin rmresc r_resc")
        assertiCmd(s.adminsession, "iadmin rmresc m_resc")
        assertiCmd(s.adminsession, "iadmin rmresc l_resc")

        os.remove(ABSPATHTESTDIR + '/file2')

        self.run_resource_teardown()
        s.twousers_down()
Beispiel #54
0
 def test_local_ihelp_all(self):
     # assertions
     assertiCmd(s.adminsession, "ihelp -a", "LIST",
                "Usage")  # run ihelp on all icommands
Beispiel #55
0
def add_avu(user_name, a, v, u):
    assertiCmd(s.adminsession,
               'imeta add -u %s %s %s %s' % (user_name, a, v, u))
Beispiel #56
0
 def test_isysmeta_init_set_and_reset(self):
     assertiCmd(s.adminsession, "ils -L", "STDOUT",
                "pydevtest_testfile.txt")  # basic listing
     assertiCmd(s.adminsession, "isysmeta ls pydevtest_testfile.txt",
                "STDOUT", "data_expiry_ts (expire time): 00000000000: None"
                )  # initialized with zeros
     assertiCmd(s.adminsession, "isysmeta mod pydevtest_testfile.txt 1",
                "EMPTY")  # set to 1 sec after epoch
     assertiCmd(
         s.adminsession, "isysmeta ls pydevtest_testfile.txt", "STDOUT",
         "data_expiry_ts (expire time): 00000000001: 1969-12-31.19:00:01"
     )  # confirm
     assertiCmd(s.adminsession, "isysmeta mod pydevtest_testfile.txt 0",
                "EMPTY")  # reset to zeros
     assertiCmd(
         s.adminsession, "isysmeta ls pydevtest_testfile.txt", "STDOUT",
         "data_expiry_ts (expire time): 00000000000: None")  # confirm
Beispiel #57
0
    def test_ibun(self):
        cmd = "tar cf somefile.tar ./README"
        output = commands.getstatusoutput(cmd)

        tar_path = "/tempZone/home/rods/" + s.adminsession.sessionId + "/somefile.tar"
        dir_path = "/tempZone/home/rods/" + s.adminsession.sessionId + "/somedir"

        assertiCmd(s.adminsession, "iput somefile.tar")
        assertiCmd(s.adminsession, "imkdir " + dir_path)
        assertiCmd(s.adminsession, "iput README " + dir_path + "/foo0")
        assertiCmd(s.adminsession, "iput README " + dir_path + "/foo1")

        assertiCmd(s.adminsession, "ibun -cD tar " + tar_path + " " + dir_path,
                   "ERROR", "OVERWRITE_WITHOUT_FORCE_FLAG")

        assertiCmd(s.adminsession, "irm -rf " + dir_path)
        assertiCmd(s.adminsession, "irm -rf " + tar_path)
Beispiel #58
0
 def test_local_ihelp_with_help(self):
     # assertions
     assertiCmd(s.adminsession, "ihelp -h", "LIST",
                "Display i-commands synopsis")  # run ihelp with help
Beispiel #59
0
 def test_iexit_verbose(self):
     # assertions
     assertiCmd(s.adminsession, "iexit -v", "LIST",
                "Deleting (if it exists) session envFile:")  # home, verbose
Beispiel #60
0
 def test_imeta_set(self):
   assertiCmd(s.adminsession,"iadmin lu","LIST","rods")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att", "LIST", "None")
   assertiCmd(s.adminsession,"imeta add -u " + s.users[1]["name"] + " att val")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att","LIST","attribute: att")
   assertiCmd(s.adminsession,"imeta set -u " + s.users[1]["name"] + " att newval")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att","LIST","value: newval")
   assertiCmd(s.adminsession,"imeta set -u " + s.users[1]["name"] + " att newval someunit")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att","LIST","units: someunit")
   assertiCmd(s.adminsession,"imeta set -u " + s.users[1]["name"] + " att verynewval")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att","LIST","value: verynewval")
   assertiCmd(s.adminsession,"imeta ls -u " + s.users[1]["name"] + " att","LIST","units: someunit")