Example #1
0
def main(argv):

    ## PARAM OVERRIDES
    dssSanityLib.GLOBAL_DEBUG = 1                    # The lib supresses debug logs by default. Override here.
    #dssSanityLib.RADOSHOST = '127.0.0.1'            # The lib points to DSS staging endpoint by default. Override here.
    #dssSanityLib.RADOSPORT = 7480                   # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if(ret == -1):
        sys.exit(2)


    ## Cross account copy
#    BUCKETNAME = 'buck668'
#    userObj = dssSanityLib.getConnection(1) ##pers
##    dssSanityLib.cleanupUser(userObj, BUCKETNAME)
#    b = userObj.create_bucket(BUCKETNAME)
#    k = Key(b)
#    k.key = 'tobecopiedobj'
#    k.set_contents_from_string('I used to be in buck667')

#    anObj = dssSanityLib.getConnection(0) ##shiv test
##    dssSanityLib.cleanupUser(anObj, BUCKETNAME)
#    c = anObj.create_bucket(BUCKETNAME + 'buckwow18')
#    l = c.copy_key('dest1', BUCKETNAME, 'tobecopiedobj')
#    print str(l)


## Bucket create and cross account access
    BUCKETNAME = 'buck888'
    userObj = dssSanityLib.getConnection(0)
    b = userObj.create_bucket(BUCKETNAME)
    k = Key(b)
    k.key = 'obj'
    k.set_contents_from_string('obj which will be downloaded from cross account')

    user2 = dssSanityLib.getConnection(1)
    c = user2.get_bucket(BUCKETNAME)
#    j = Key(c)
#    j.key = 'obj'
#    try:
#        print j.get_contents_as_string()
#    except:
#        print "IAM did not validate get object when cross account get bucket is allowed."



    ## Copy object single user workflow
#    userObj = dssSanityLib.getConnection()
#    b = userObj.create_bucket('copysourcebucket')
#    k = Key(b)
#    k.key = 'obj500'
#    k.set_contents_from_string('obj text')
#    c = userObj.create_bucket('copydestbucket')
#    l = c.copy_key('newobj', 'copysourcebucket', 'obj500')
#    print str(l)

    return
Example #2
0
def deleteBucket(targ):
    if (not targ):
        print "Need target to delete!"
        return -1
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    dssSanityLib.cleanupUser(userObj, targ)
    return
Example #3
0
def deleteBucket(targ):
    if (not targ):
        print "Need target to delete!"
        return -1
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    dssSanityLib.cleanupUser(userObj, targ)
    return
Example #4
0
def createObject(num, targ):
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(targ)
    k = Key(b)
    for i in range(1, int(num) + 1):
        k.key = 'Obj_' + str(i)
        k.set_contents_from_string("User data for obj")
    return
Example #5
0
def createObject(num, targ):
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(targ)
    k = Key(b)
    for i in range(1, int(num) + 1):
        k.key = 'Obj_' + str(i)
        k.set_contents_from_string("User data for obj")
    return
Example #6
0
def createBucket(num, targ):
    pref = dssSanityLib.getsNewBucketName(targ)
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()

    for i in range(1, int(num) + 1):
        buckname = pref + str(i)
        dssSanityLib.whisper("Creating bucket " + buckname)
        userObj.create_bucket(buckname)
    return
Example #7
0
def createBucket(num, targ):
    pref = dssSanityLib.getsNewBucketName(targ)
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()

    for i in range(1, int(num) + 1):
        buckname = pref + str(i)
        dssSanityLib.whisper("Creating bucket " + buckname)
        userObj.create_bucket(buckname)
    return
Example #8
0
def listBucket(targ):
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    if (not targ):
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
    else:
        print "Listing bucket " + str(targ)
        b = userObj.get_bucket(targ)
        for k in b.list():
            print str(k)
    return
Example #9
0
def listBucket(targ):
    if (dssSanityLib.CLI_USER):
        userObj = dssSanityLib.getConnection(int(dssSanityLib.CLI_USER))
    else:
        userObj = dssSanityLib.getConnection()
    if (not targ):
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
    else:
        print "Listing bucket " + str(targ)
        b = userObj.get_bucket(targ)
        for k in b.list():
            print str(k)
    return
Example #10
0
def main(argv):

    ## PARAM OVERRIDES
    #dssSanityLib.MULTIPART_LARGE_FILE = '/boot/initrd.img-3.13.0-24-generic' # Need a large file to upload in multiparts.
    dssSanityLib.MULTIPART_LARGE_FILE = 'output.dat'  # Need a large file to upload in multiparts.
    dssSanityLib.GLOBAL_DEBUG = 1  # The lib supresses debug logs by default. Override here.
    ##dssSanityLib.RADOSHOST = '127.0.0.1'           # The lib points to DSS staging endpoint by default. Override here.
    ##dssSanityLib.RADOSPORT = 7480                  # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if (ret == -1):
        sys.exit(2)

    ## TESTCASES
    dssSanityLib.callTest(bucketSanity(),
                          "Create buckets and objects then delete them")
    dssSanityLib.callTest(multipartObjectUpload(),
                          "Upload object in Multiparts")
    #dssSanityLib.callTest(dnsNamesTest(), "Check various DNS name rules")
    dssSanityLib.callTest(publicUrlTest(), "Public URL test")

    ## CLEANUP
    userObj = dssSanityLib.getConnection()
    #dssSanityLib.cleanupUser(userObj, 'rjilbucketsanity')
    return
Example #11
0
def main(argv):

    ## PARAM OVERRIDES
    dssSanityLib.GLOBAL_DEBUG = 1                    # The lib supresses debug logs by default. Override here.
    #dssSanityLib.RADOSHOST = '127.0.0.1'            # The lib points to DSS staging endpoint by default. Override here.
    #dssSanityLib.RADOSPORT = 7480                   # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if(ret == -1):
        sys.exit(2)

    userObj = dssSanityLib.getConnection(1)
    b = userObj.create_bucket('gangadhar')

    k = Key(b)
    k.key = 'lobhaidekhlo'
    k.set_contents_from_string('obj text')
    #out = k.get_contents_as_string()
    #k.set_acl('public-read-write')
    #k.get_acl()

    #b.set_acl('private')
    #b.get_acl()

    #nuObj = dssSanityLib.getConnection(2)
    #c = nuObj.get_bucket('twopubbuck')
    #k = Key(c)
    #k.key = 'obj500'
    #k.set_contents_from_string('obj text')

    return
Example #12
0
def main(argv):

    ## PARAM OVERRIDES
    dssSanityLib.GLOBAL_DEBUG = 1                    # The lib supresses debug logs by default. Override here.
    #dssSanityLib.RADOSHOST = '127.0.0.1'            # The lib points to DSS staging endpoint by default. Override here.
    #dssSanityLib.RADOSPORT = 7480                   # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if(ret == -1):
        sys.exit(2)

    userObj = dssSanityLib.getConnection(1)
    b = userObj.create_bucket('gangadhar')
    #k = Key(b)
    #k.key = 'obj'
    #k.set_contents_from_string('obj text')
    #out = k.get_contents_as_string()
    #k.set_acl('public-read-write')
    #k.get_acl()

    #b.set_acl('private')
    #b.get_acl()

    #nuObj = dssSanityLib.getConnection(2)
    #c = nuObj.get_bucket('twopubbuck')
    #k = Key(c)
    #k.key = 'obj500'
    #k.set_contents_from_string('obj text')

    return
Example #13
0
def print_obj():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(BUCKETNAME)
    for k in b.list():
        print "\nObj name: " + str(k) + "\t Data: " + k.get_contents_as_string()
    return
def publicUrlTest():
    result = 0
    userObj = dssSanityLib.getConnection()
    bucketpref = dssSanityLib.getsNewBucketName()
    b1 = userObj.create_bucket(bucketpref)

    k = Key(b1)
    k.key = 'userObj1'
    k.set_contents_from_string('Data of URL object')

    m = Key(b1)
    m.key = 'userObj1'
    urlname = m.generate_url(1000)
    print "\nThe userObj URL is: " + str(urlname)
    urlname = b1.generate_url(1000)
    print "\nThe bucket URL is: " + str(urlname)

    for i in range(1, 3):
        time.sleep(1)
        if i % 5 == 0:
            print str(2 - i) + " Seconds left before Obj deletion"
    m.delete()
    print "Object deleted\n"

    for i in range(1, 3):
        time.sleep(1)
        if i % 5 == 0:
            print str(2 - i) + " Seconds left before bucket deletion"
    userObj.delete_bucket(bucketpref)
    print "Bucket deleted\n"

    return result
Example #15
0
def delete_obj():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(BUCKETNAME)
    for k in b.list():
        print "Deleting:   " + str(k)
        k.delete()
Example #16
0
def bucketSanity():

    ## Create five buckets
    dssSanityLib.whisper(
        "Creating five test buckets and putting objects in them...")
    bucketpref = dssSanityLib.getsNewBucketName()
    dssSanityLib.createMaxBuckets(12, bucketpref)

    ## Bucket name conflict during creation
    #dssSanityLib.whisper("Trying to create a bucket with name conflict...")
    #userObj = dssSanityLib.getConnection(1) ## Different user
    #buck_str = bucketpref + '1'
    #try:
    #b = userObj.create_bucket(buck_str)
    #print "Error: Unexpectedly created bucket " + buck_str
    #return -1
    #except:
    #    print "Expected failure: " + str(sys.exc_info())

    ## Delete all buckets
    try:
        userObj = dssSanityLib.getConnection()
        dssSanityLib.whisper("Deleting the test buckets...")
        dssSanityLib.cleanupUser(userObj, bucketpref)
    except:
        print "Unexpected failure: " + str(sys.exc_info())
        return -1
    return 0
Example #17
0
def bucketSanity():

    ## Create five buckets
    dssSanityLib.whisper("Creating five test buckets and putting objects in them...")
    bucketpref = dssSanityLib.getsNewBucketName()
    dssSanityLib.createMaxBuckets(12, bucketpref)

    ## Bucket name conflict during creation
    #dssSanityLib.whisper("Trying to create a bucket with name conflict...")
    #userObj = dssSanityLib.getConnection(1) ## Different user
    #buck_str = bucketpref + '1'
    #try:
        #b = userObj.create_bucket(buck_str)
        #print "Error: Unexpectedly created bucket " + buck_str
        #return -1
    #except:
    #    print "Expected failure: " + str(sys.exc_info())

    ## Delete all buckets
    try:
        userObj = dssSanityLib.getConnection()
        dssSanityLib.whisper("Deleting the test buckets...")
        dssSanityLib.cleanupUser(userObj, bucketpref)
    except:
        print "Unexpected failure: " + str(sys.exc_info())
        return -1
    return 0
Example #18
0
def main(argv):

    ## PARAM OVERRIDES
    dssSanityLib.GLOBAL_DEBUG = 1  # The lib supresses debug logs by default. Override here.
    # dssSanityLib.RADOSHOST = '127.0.0.1'             # The lib points to DSS staging endpoint by default. Override here.
    # dssSanityLib.RADOSPORT = 7480                    # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if ret == -1:
        sys.exit(2)

    userObj = dssSanityLib.getConnection()

    #    userObj.create_bucket('bucket0');
    #    userObj.create_bucket('bucket1');
    #    userObj.create_bucket('bucket2');
    #    userObj.create_bucket('bucket3');
    #    userObj.create_bucket('bucket4');
    #    userObj.create_bucket('bucket5');
    #    userObj.create_bucket('bucket6');
    #    userObj.create_bucket('bucket7');
    #    userObj.create_bucket('bucket8');
    #    userObj.create_bucket('bucket9');
    print userObj.get_all_buckets()
    return
def multipartObjectUpload():
    result = 0
    dssSanityLib.whisper("Making bucket and listing...")
    userObj = dssSanityLib.getConnection()
    bucketpref = dssSanityLib.getsNewBucketName()
    b = userObj.create_bucket(bucketpref)
    #dssSanityLib.listBucket(userObj, "User")

    source_path = dssSanityLib.MULTIPART_LARGE_FILE
    source_size = os.stat(source_path).st_size
    chunk_size = 5242880 ## 5 mb
    #chunk_size = 1048576  ## 1 mb
    chunk_count = int(math.ceil(source_size / float(chunk_size)))

    b1 = userObj.get_bucket(bucketpref)
    dssSanityLib.whisper("Got bucket: " + str(b1))
    try:
        mp = b1.initiate_multipart_upload(os.path.basename(source_path))
        for i in range(chunk_count):
            dssSanityLib.whisper("Uploading chunk: " + str(i))
            offset = chunk_size * i
            bytes = min(chunk_size, source_size - offset)
            with FileChunkIO(source_path, 'r', offset=offset, bytes=bytes) as fp:
                mp.upload_part_from_file(fp, part_num=i + 1)
        mp.complete_upload()
    except:
        print "Unexpected error during multipart upload: ", sys.exc_info()
        result = -1

    dssSanityLib.cleanupUser(userObj, bucketpref)
    return result
Example #20
0
def delete_obj():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(BUCKETNAME)
    k = Key(b)
    k.key = 'file33'
    k.delete()
    return
Example #21
0
def create_stuff():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.create_bucket(BUCKETNAME)
    k = Key(b)
    k.key = "videofile.flv"
    k.set_contents_from_string("obj which will be downloaded")
    return
Example #22
0
def print_obj():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(BUCKETNAME)
    for k in b.list():
        print k
        print k.get_contents_as_string()
    return
Example #23
0
def create_stuff():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.create_bucket(BUCKETNAME)
    k = Key(b)
    k.key = 'videofile.flv'
    k.set_contents_from_string('obj which will be downloaded')
    #c = userObj.get_bucket(BUCKETNAME)
    #l = c.copy_key('newobj', BUCKETNAME, 'audio.mp3')
    return
Example #24
0
def create_obj():
    global BUCKETNAME
    name = dssSanityLib.getsNewBucketName()
    userObj = dssSanityLib.getConnection()
    b = userObj.get_bucket(BUCKETNAME)
    k = Key(b)
    k.key = name
    k.set_contents_from_string('obj data')
    l = Key(b)
    l.key = name + '_new'
    l.set_contents_from_string('new obj data')
    return name
Example #25
0
def dnsNamesTest():
    userObj = dssSanityLib.getConnection()
    result = 0
    longHundredChars = 'a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789'
    longFiftyChars = 'a123456789a123456789a123456789a123456789a123456789'
    longTFTchars = longHundredChars + longHundredChars + longFiftyChars + 'qwe'
    try:
        userObj.create_bucket(longTFTchars)
        userObj.delete_bucket(longTFTchars)
        print "Able to create bucket with 253 chars in name"
    except:
        print "Failed to create or delete a valid bucket name"
        print "Unexpected error: ", sys.exc_info()
        return -1

    try:
        badName = longTFTchars + 'abc'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with illegally long name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating 256 char bucket name"
        print "Expected error: ", sys.exc_info()

    try:
        badName = 'Abc'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with capital letter name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating bucket name with CAPS"
        print "Expected error: ", sys.exc_info()

    try:
        badName = 'bc/'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with slash in name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating bucket name with slash"
        print "Expected error: ", sys.exc_info()

    return result
Example #26
0
def dnsNamesTest():
    userObj = dssSanityLib.getConnection()
    result = 0
    longHundredChars = 'a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789a123456789'
    longFiftyChars = 'a123456789a123456789a123456789a123456789a123456789'
    longTFTchars = longHundredChars + longHundredChars + longFiftyChars + 'qwe'
    try:
        userObj.create_bucket(longTFTchars)
        userObj.delete_bucket(longTFTchars)
        print "Able to create bucket with 253 chars in name"
    except:
        print "Failed to create or delete a valid bucket name"
        print "Unexpected error: ", sys.exc_info()
        return -1

    try:
        badName = longTFTchars + 'abc'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with illegally long name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating 256 char bucket name"
        print "Expected error: ", sys.exc_info()

    try:
        badName = 'Abc'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with capital letter name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating bucket name with CAPS"
        print "Expected error: ", sys.exc_info()

    try:
        badName = 'bc/'
        userObj.create_bucket(badName)
        print "Unexpectedly created bucket with slash in name"
        dssSanityLib.listBucketNum(userObj, "user")
        dssSanityLib.listBucket(userObj, "user")
        userObj.delete_bucket(badName)
        result = -1
    except:
        print "Expected failure in creating bucket name with slash"
        print "Expected error: ", sys.exc_info()

    return result
Example #27
0
def multipartObjectUpload():
    result = 0
    dssSanityLib.whisper("Making bucket and listing...")
    userObj = dssSanityLib.getConnection()
    bucketpref = dssSanityLib.getsNewBucketName()
    b = userObj.create_bucket(bucketpref)
    #b.set_acl('public-read-write')
    ##dssSanityLib.listBucket(userObj, "User")

    source_path = dssSanityLib.MULTIPART_LARGE_FILE
    source_size = os.stat(source_path).st_size
    chunk_size = 5242880  ## 5 mb
    #chunk_size = 1048576  ## 1 mb
    chunk_count = int(math.ceil(source_size / float(chunk_size)))

    b1 = userObj.get_bucket(bucketpref)
    dssSanityLib.whisper("Got bucket: " + str(b1))
    try:
        mp = b1.initiate_multipart_upload(os.path.basename(source_path))
        for i in range(chunk_count):
            dssSanityLib.whisper("Uploading chunk: " + str(i))
            offset = chunk_size * i
            bytes = min(chunk_size, source_size - offset)
            with FileChunkIO(source_path, 'r', offset=offset,
                             bytes=bytes) as fp:
                mp.upload_part_from_file(fp, part_num=i + 1)

        time.sleep(2)
        for i in b1.list_multipart_uploads():
            print "list_multipart_uploads: " + str(i)

        for i in b1.get_all_multipart_uploads():
            print "get_all_multipart_uploads: " + str(i)

        print("\n\nCompleting uploads")
        mp.complete_upload()
        #print("\n\nCancelling uploads")
        #mp.cancel_upload()

    except:
        print "Unexpected error during multipart upload: ", sys.exc_info()
        result = -1

    dssSanityLib.cleanupUser(userObj, bucketpref)
    return result
def main(argv):

    ## PARAM OVERRIDES
    dssSanityLib.MULTIPART_LARGE_FILE = '/boot/initrd.img-3.19.0-25-generic' # Need a large file to upload in multiparts.
    dssSanityLib.GLOBAL_DEBUG = 1                               # The lib supresses debug logs by default. Override here.
    ##dssSanityLib.RADOSHOST = '127.0.0.1'                      # The lib points to DSS staging endpoint by default. Override here.
    ##dssSanityLib.RADOSPORT = 7480                             # The lib points to DSS staging endpoint by default. Override here.

    ret = dssSanityLib.fetchArgs(argv)
    if(ret == -1):
        sys.exit(2)

    ## TESTCASES
    dssSanityLib.callTest(bucketSanity(), "Create buckets and objects then delete them")
    dssSanityLib.callTest(multipartObjectUpload(), "Upload object in Multiparts")
    dssSanityLib.callTest(dnsNamesTest(), "Check various DNS name rules")
    dssSanityLib.callTest(publicUrlTest(), "Public URL test")

    ## CLEANUP
    userObj = dssSanityLib.getConnection()
    dssSanityLib.cleanupUser(userObj, 'rjilbucketsanity')
    return
Example #29
0
def publicUrlTest():
    result = 0
    userObj = dssSanityLib.getConnection()
    bucketpref = dssSanityLib.getsNewBucketName()
    b1 = userObj.create_bucket(bucketpref)
    #print "Setting ACL on bucket"
    #b1.set_acl('public-read')

    k = Key(b1)
    k.key = 'userObj1'
    k.set_contents_from_string('Data of URL object')
    #print "Setting ACL on obj"
    #k.set_acl('public-read')

    m = Key(b1)
    m.key = 'userObj1'
    urlname = m.generate_url(1000)
    print "\nThe userObj URL is: " + str(urlname)
    urlname = b1.generate_url(10000)
    print "\nThe bucket URL is: " + str(urlname)

    #for i in range(1, 21):
    #    time.sleep(1)
    #    if i % 5 == 0:
    #        print str(20 - i) + " Seconds left before Obj deletion"
    #m.delete()
    #print "Object deleted\n"

    #for i in range(1, 21):
    #    time.sleep(1)
    #    if i % 5 == 0:
    #        print str(20 - i) + " Seconds left before bucket deletion"
    #userObj.delete_bucket(bucketpref)
    #print "Bucket deleted\n"

    return result
Example #30
0
def publicUrlTest():
    result = 0
    userObj = dssSanityLib.getConnection()
    bucketpref = dssSanityLib.getsNewBucketName()
    b1 = userObj.create_bucket(bucketpref)
    #print "Setting ACL on bucket"
    #b1.set_acl('public-read')

    k = Key(b1)
    k.key = 'userObj1'
    k.set_contents_from_string('Data of URL object')
    #print "Setting ACL on obj"
    #k.set_acl('public-read')

    m = Key(b1)
    m.key = 'userObj1'
    urlname = m.generate_url(1000)
    print "\nThe userObj URL is: " + str(urlname)
    urlname = b1.generate_url(10000)
    print "\nThe bucket URL is: " + str(urlname)

    #for i in range(1, 21):
    #    time.sleep(1)
    #    if i % 5 == 0:
    #        print str(20 - i) + " Seconds left before Obj deletion"
    #m.delete()
    #print "Object deleted\n"

    #for i in range(1, 21):
    #    time.sleep(1)
    #    if i % 5 == 0:
    #        print str(20 - i) + " Seconds left before bucket deletion"
    #userObj.delete_bucket(bucketpref)
    #print "Bucket deleted\n"

    return result
Example #31
0
def create_bucket():
    global BUCKETNAME
    userObj = dssSanityLib.getConnection()
    b = userObj.create_bucket(BUCKETNAME)
    return
Example #32
0
def crossAccountInSanity():
    x=randint(0,1000)
    # specify the bucket name of the third account
    buckName='buck264'
    userObj = dssSanityLib.getConnection(1)
    userObj2 = dssSanityLib.getConnection(2)
    #userObj.create_bucket(buckName)
    try:
        b=userObj2.get_bucket(buckName)
    except:
        print "Expected failure as permissions are not yet given to User2"
        print "Expected error: ", sys.exc_info()

    os.system("cd jcsclient")
    #os.system("source openrc_raj1_Staging")
    dssSanityLib.sourceCLI(1)

    try:
        command ="jcs iam CreateResourceBasedPolicy --PolicyDocument \"{\\\"name\\\": \\\"DeleteBucket"+str(x)+"\\\", \\\"statement\\\": [{\\\"action\\\": [\\\"jrn:jcs:dss:ListBucket\\\"], \\\"principle\\\": [\\\"jrn:jcs:iam:713268835218:User:rajat\\\"], \\\"effect\\\": \\\"allow\\\"}]}\""
        print "executed command is:: "+command
        ret = os.popen(command).read()
        print ret
        pairs=ret.split(",")
        #print pairs[3]
        values=pairs[2].split("\"")
        print values[3]
        policyId=values[3]
        command="jcs iam AttachPolicyToResource --PolicyId "+policyId+" --Resource \"{\\\"resource\\\": [\\\"jrn:jcs:dss:319505121107:Bucket:"+buckName+"\\\"]}\""
        print "executed command is:: "+command
        ret = os.popen(command).read()
    except:
        print "Unexpected error in creating a policy and attaching resource to it"
        return -1
    #userObj = dssSanityLib.getConnection(2)
    try:
        b=userObj2.get_bucket(buckName)
    except:
        print "Not able to get bucket despite giving permissions"
        return -1
        print ret

    try:
        command="jcs iam DeleteResourceBasedPolicy --Id "+policyId
        print "executed command is:: "+command
        ret = os.popen(command).read()
        print ret
    except:
        print "Error in deleting the resourceBasedPolicy"
        return -1

    bucks=userObj.get_all_buckets()
    for bucket in bucks:
        print "Checking for "+bucket.name
        #userObj.delete_bucket(bucket.name)
        if (bucket.name == buckName):
            print "Bucket still present despite being deleted by the second account"


    os.system("cd ..")

    return 0
Example #33
0
def crossAccountSanity():
    x=randint(0,1000)
    buckName='buck'+str(x)
    userObj = dssSanityLib.getConnection(1)
    userObj2 = dssSanityLib.getConnection(2)
    userObj.create_bucket(buckName)
    try:
        userObj2.delete_bucket(buckName)
    except:
        print "Expected failure as permissions are not yet given to User2"
        print "Expected error: ", sys.exc_info()

    os.system("cd jcsclient")
    #os.system("source openrc_raj1_Staging")
    dssSanityLib.sourceCLI(1)

    try:
        command = dssSanityLib.getCreateResourcePolicyCommand(2,x)
        ret = os.popen(command).read()
        print ret
        pairs=ret.split(",")
        #print pairs[3]
        values=pairs[2].split("\"")
        print values[3]
        policyId=values[3]
        command = dssSanityLib.getAttachPolicyToResourceCommand(1,buckName,policyId)
        ret = os.popen(command).read()
    except:
        print "Unexpected error in creating a policy and attaching resource to it"
        return -1
    dssSanityLib.sourceCLI(2)
    command = dssSanityLib.getCreateUserPolicyCommand(1,x, buckName)
    ret = os.popen(command).read()
    print ret
    pairs=ret.split(",")
        #print pairs[3]
    values=pairs[2].split("\"")
    print values[3]
    policyId1=values[3]
    command = dssSanityLib.getAttachPolicyToUserCommand(2,policyId1)


    print "executed command is:: "+command
    ret = os.popen(command).read()

    try:
        userObj2.delete_bucket(buckName)
    except:
        print "Not able to delete bucket despite giving permissions"
        return -1
        print ret

    try:
        print "cleaning up"
        command="jcs iam DeletePolicy --Id "+policyId1
        print "executed command is:: "+command
        ret = os.popen(command).read()
        print ret
        dssSanityLib.sourceCLI(1)
        command="jcs iam DeleteResourceBasedPolicy --Id "+policyId
        print "executed command is:: "+command
        ret = os.popen(command).read()
        print ret
    except:
        print "Error in deleting the resourceBasedPolicy"
        return -1

    bucks=userObj.get_all_buckets()
    for bucket in bucks:
        print "Checking for "+bucket.name
        #userObj.delete_bucket(bucket.name)
        if (bucket.name == buckName):
            print "Bucket still present despite being deleted by the second account"
            return -1


    os.system("cd ..")

    return 0