X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fqa%2Fworkunits%2Frgw%2Fs3_user_quota.pl;fp=src%2Fceph%2Fqa%2Fworkunits%2Frgw%2Fs3_user_quota.pl;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=fbda89a66d9e3f854890fae4c2443fbacabe5a74;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/qa/workunits/rgw/s3_user_quota.pl b/src/ceph/qa/workunits/rgw/s3_user_quota.pl deleted file mode 100755 index fbda89a..0000000 --- a/src/ceph/qa/workunits/rgw/s3_user_quota.pl +++ /dev/null @@ -1,191 +0,0 @@ -#! /usr/bin/perl - -=head1 NAME - -s3_user_quota.pl - Script to test the rgw user quota functionality using s3 interface. - -=head1 SYNOPSIS - -Use: - perl s3_user_quota.pl [--help] - -Examples: - perl s3_user_quota.pl - or - perl s3_user_quota.pl --help - -=head1 DESCRIPTION - -This script intends to test the rgw user quota funcionality using s3 interface -and reports the test results - -=head1 ARGUMENTS - -s3_user_quota.pl takes the following arguments: - --help - (optional) Displays the usage message. - -=cut - -use Amazon::S3; -use Data::Dumper; -use IO::File; -use Getopt::Long; -use Digest::MD5; -use Pod::Usage(); -use FindBin; -use lib $FindBin::Bin; -use s3_utilities; -use Net::Domain qw(hostfqdn); - -my $help; - -Getopt::Long::GetOptions( - 'help' => \$help -); -Pod::Usage::pod2usage(-verbose => 1) && exit if ($help); - -#== local variables === -our $mytestfilename; -my $mytestfilename1; -my $logmsg; -my $kruft; -my $s3; -my $hostdom = $ENV{RGW_FQDN}||hostfqdn(); -my $port = $ENV{RGW_PORT}||7280; -our $hostname = "$hostdom:$port"; -our $testfileloc; -our $cnt; - -sub quota_set_max_size_per_user { - my ($maxsize, $size1,$rgw_user) = @_; - run_s3($rgw_user); - my $set_quota = `$radosgw_admin quota set --uid=$rgw_user --quota-scope=user --max-size=$maxsize`; - if (($set_quota !~ /./)&&($maxsize == 0)){ - my $ret = test_max_objs($size1, $rgw_user); - if ($ret == 1){ - pass("quota set for user: $rgw_user with max_size=$maxsize passed" ); - }else { - fail("quota set for user: $rgw_user with max_size=$maxsize failed" ); - } - } elsif (($set_quota !~ /./) && ($maxsize != 0)) { - my $ret = test_max_objs($size1, $rgw_user); - if ($ret == 0){ - pass("quota set for user: $rgw_user with max_size=$maxsize passed" ); - }else { - fail("quota set for user: $rgw_user with max_size=$maxsize failed" ); - } - } - delete_keys($mytestfilename); - purge_data($rgw_user); - return 0; -} - -sub max_size_per_user { - my ($maxsize, $size1,$rgw_user) = @_; - run_s3($rgw_user); - my $set_quota = `$radosgw_admin quota set --uid=$rgw_user --quota-scope=user --max-size=$maxsize`; - if (($set_quota !~ /./) && ($maxsize != 0)) { - my $ret = test_max_objs($size1, $rgw_user); - if ($ret == 0){ - $cnt++; - } - } - return $cnt; -} - -sub quota_set_max_obj_per_user { - # set max objects - my ($maxobjs, $size1, $rgw_user) = @_; - run_s3($rgw_user); - my $set_quota = `$radosgw_admin quota set --uid=$rgw_user --quota-scope=user --max-objects=$maxobjs`; - if (($set_quota !~ /./) && ($maxobjs == 0)){ - my $ret = test_max_objs($size1, $rgw_user); - if ($ret == 1){ - pass("quota set for user: $rgw_user with max_objects=$maxobjs passed" ); - }else { - fail("quota set for user: $rgw_user with max_objects=$maxobjs failed" ); - } - } elsif (($set_quota !~ /./) && ($maxobjs == 1)) { - my $ret = test_max_objs($size1, $rgw_user); - if ($ret == 0){ - pass("quota set for user: $rgw_user with max_objects=$maxobjs passed" ); - }else { - fail("quota set for user: $rgw_user with max_objects=$maxobjs failed" ); - } - } - delete_keys($mytestfilename); - purge_data($rgw_user); -} - -sub quota_enable_user { - my ($rgw_user) = @_; - my $en_quota = `$radosgw_admin quota enable --uid=$rgw_user --quota-scope=user`; - if ($en_quota !~ /./){ - print "quota enabled for the user $rgw_user \n"; - } else { - print "quota enable failed for the user $rgw_user \n"; - exit 1; - } - return 0; -} - -sub quota_disable_user { - my $dis_quota = `$radosgw_admin quota disable --uid=$rgw_user --quota-scope=user`; - if ($dis_quota !~ /./){ - print "quota disabled for the user $rgw_user \n"; - } else { - print "quota disable failed for the user $rgw_user \n"; - exit 1; - } - return 0; -} - -# upload a file to the bucket -sub upload_file { - print "adding file to bucket $bucketname: $mytestfilename\n"; - ($bucket->add_key_filename( $mytestfilename, $testfileloc, - { content_type => 'text/plain', }, - ) and (print "upload file successful\n" ) and return 0 ) or (return 1); -} - -# delete the bucket -sub delete_bucket { - ($bucket->delete_bucket) and (print "bucket delete succeeded \n") or die $s3->err . "delete bucket failed\n" . $s3->errstr; -} - -#Function to upload the given file size to bucket and verify -sub test_max_objs { - my ($size, $rgw_user) = @_; - create_file($size); - quota_enable_user($rgw_user); - my $ret_value = upload_file(); - return $ret_value; -} - -# set user quota and ensure it is validated -sub test_user_quota_max_size{ - my ($max_buckets,$size, $fsize) = @_; - my $usr = rand(); - foreach my $i (1..$max_buckets){ - my $ret_value = max_size_per_user($size, $fsize, $usr ); - } - if ($ret_value == $max_buckets){ - fail( "user quota max size for $usr failed on $max_buckets buckets" ); - } else { - pass( "user quota max size for $usr passed on $max_buckets buckets" ); - } - delete_keys($mytestfilename); - purge_data($usr); -} - -#== Main starts here=== -ceph_os_info(); -check(); -quota_set_max_obj_per_user('0', '10Mb', 'usr1'); -quota_set_max_obj_per_user('1', '10Mb', 'usr2'); -quota_set_max_size_per_user(0, '10Mb', 'usr1'); -quota_set_max_size_per_user(1048576000, '1Gb', 'usr2'); -test_user_quota_max_size(3,1048576000,'100Mb'); -test_user_quota_max_size(2,1048576000, '1Gb'); -print "OK";