blob: d4a525c83bf378f761bf5700b696b19d41bdfc6f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
###############################################################################
# curl command tests for templeton
#
#
#use Yahoo::Miners::Test::PigSetup;
#PigSetup::setup();
#my $me = `whoami`;
#chomp $me;
$cfg =
{
'driver' => 'Curl',
'groups' =>
[
##=============================================================================================================
{
'name' => 'DB_OPS',
'tests' =>
[
{
#check if db created by UNAME_OTHER is visible for user UNAME
'num' => 1,
'setup' => [
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_a',
'user_name' => ':UNAME_OTHER:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{"comment":"Hello there", "properties":{"a":"b"}}'],
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'json_field_substr_match' => {'databases' => 'hcatperms_a'},
'status_code' => 200,
},
{
#check if group id is set as per spec
'num' => 2,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_b',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'post_options' => [
'{"permissions" : "rwxrwxrwx",
"group" : ":UGROUP:"
}'
],
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_b',
'user_name' => ':UNAME:',
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_b',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'json_field_substr_match' => {'location_perms' => 'rwxrwxrwx', 'location_group' => ':UGROUP:'},
'status_code' => 200,
},
{
#check if group id is set as per spec
'num' => 3,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_c',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'post_options' => [
'{"permissions" : "rwxr-x---",
"group" : ":UGROUP:"
}'
],
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_c',
'user_name' => ':UNAME:',
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_c',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'json_field_substr_match' => {'location_perms' => 'rwxr-x---', 'location_group' => ':UGROUP:'},
'status_code' => 200,
},
{
#check if user belonging to same group is able to access
'num' => 4,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_d',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'post_options' => [
'{
"permissions" : "rwxr-x---",
"group" : ":UGROUP:"
}'
],
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_d',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_d',
'user_name' => ':UNAME_GROUP:',
'format_header' => 'Content-Type: application/json',
'json_field_substr_match' => {'location_perms' => 'rwxr-x---', 'location_group' => ':UGROUP:'},
'status_code' => 200,
},
{
#check default db permissions
#the default group is currently the group of parent dir
'num' => 5,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_e',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_e',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{}']
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_e',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'json_field_substr_match' => {'location_perms' => 'rwx------'},
'status_code' => 200,
},
{
#check if user can delete db
'num' => 6,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_f',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_f',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{}']
}
],
'method' => 'DELETE',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_f',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'status_code' => 200,
},
{
#check if user belonging to group can delete table
'num' => 7,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }']
}
],
'method' => 'DELETE',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME_GROUP:',
'format_header' => 'Content-Type: application/json',
'status_code' => 200,
},
{
#check if user belonging to group is unable to delete table
'num' => 8,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }']
}
],
'method' => 'DELETE',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME_GROUP:',
'format_header' => 'Content-Type: application/json',
'status_code' => 500,
},
{
#check if user belonging to 'other' is unable to delete table
'num' => 10,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }']
}
],
'method' => 'DELETE',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME_OTHER:',
'format_header' => 'Content-Type: application/json',
'status_code' => 500,
},
{
#check if user is able to create table
'num' => 11,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------" }']
},
],
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" },
{ "name" : "j", "type" : "bigint", "comment" : "some comment" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#check if group user is able to create table
'num' => 12,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---" , "group" : ":UGROUP:"} ']
},
],
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" },
{ "name" : "j", "type" : "bigint", "comment" : "some comment" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
},
{
#check if group user is unable to create table without permissions
'num' => 13,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }']
},
],
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" },
{ "name" : "j", "type" : "bigint", "comment" : "some comment" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#check if other user is unable to create table without permissions
'num' => 14,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
],
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" },
{ "name" : "j", "type" : "bigint", "comment" : "some comment" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
},
{
#show table allowed for user
'num' => 15,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME:',
'status_code' => 200,
'json_field_substr_match' => {'tables' => 'permstable_:TNUM:'},
},
{
#show table allowed for group
'num' => 16,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
'json_field_substr_match' => {'tables' => 'permstable_:TNUM:'},
},
{
#show table not allowed for group user without permissions
'num' => 17,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
{
#create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#show table not allowed for other user without permissions
'num' => 18,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
{
#create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
'json_field_substr_match' => {'error' => 'unable to show tables'},
},
{
#describe db - by user
'num' => 19,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---" }'],
'status_code' => 200,
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME:',
'status_code' => 200,
'json_field_substr_match' => {'database' => 'hcatperms_:TNUM:',
'location' => 'hcatperms_:TNUM:'},
},
{
#describe db - by group user
'num' => 20,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
'json_field_substr_match' => {'database' => 'hcatperms_:TNUM:',
'location' => 'hcatperms_:TNUM:'},
},
{
#describe db - by group user without permissions
'num' => 21,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#describe db - by other user without permissions
'num' => 22,
'setup' => [
{ #drop db cascade
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#create db
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwx------", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/hcatperms_:TNUM:',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
},
]
},
##=============================================================================================================
{
'name' => 'TABLE_OPS',
'tests' =>
[
{
#test if the permissions and group for table are set correctly
'num' => 1,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxr-xr-x", "group" : ":UGROUP:" }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?format=extended',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME:',
'status_code' => 200,
'json_field_substr_match' => {'location_perms' => 'rwxr-xr-x', 'location_group' => ':UGROUP:'},
},
{
#check default permissions
#the default group is currently the group of parent dir
'num' => 2,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"} }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?format=extended',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME:',
'status_code' => 200,
'json_field_substr_match' => {'location_perms' => 'rwx------', 'location_owner' => ':UNAME:'},
},
{
#alter table permissions for user
'num' => 3,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"} }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#alter table add column j
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:/column/j',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{"type": "string", "comment": "The 2nd col"}'],
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#alter table for group user - with permissions
'num' => 4,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxrwxr-x", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#alter table add column j
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:/column/j',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{"type": "string", "comment": "The 2nd col"}'],
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
},
{
#alter table for group user -without permissions
'num' => 5,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxr-xr-x", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#alter table add column j
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:/column/j',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{"type": "string", "comment": "The 2nd col"}'],
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#alter table for other user -without permissions
'num' => 6,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxr-xr-x", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#alter table add column j
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:/column/j',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{"type": "string", "comment": "The 2nd col"}'],
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
},
{
#drop table by user
'num' => 7,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxr-xr-x", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
#drop table by group user with permissions
'num' => 8,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxrwx---", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
},
{
#drop table by group user without permissions
'num' => 9,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwx------", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#drop table by other user without permissions
'num' => 10,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],
"format" : { "storedAs" : "rcfile"},
"permissions" : "rwx------", "group" : ":UGROUP:" }' ],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
#drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
},
{
#show table allowed for user
'num' => 11,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [
{ "name" : "i", "type" : "int" }
],
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME:',
'status_code' => 200,
'json_field_substr_match' => {'tables' => 'permstable_:TNUM:'},
},
{
#show table allowed for group user with permissions
'num' => 12,
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---", "group" : ":UGROUP:" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [ { "name" : "i", "type" : "int" }], "permissions" : "rwxrwx---", "group" : ":UGROUP:" }
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
'json_field_substr_match' => {'tables' => 'permstable_:TNUM:'},
},
{
#show table not allowed for group user without permissions
'num' => 13,
'ignore' => 'HIVE-3009',
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwx---" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [ { "name" : "i", "type" : "int" }], "permissions" : "rwx------", "group" : ":UGROUP:" }
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
'json_field_substr_match' => {'error' => 'unable to show tables'},
},
{
#show table not allowed for other user without permissions
'num' => 14,
'ignore' => 'HIVE-3009',
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwxrwx" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [ { "name" : "i", "type" : "int" }], "permissions" : "rwx------", "group" : ":UGROUP:" }
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
'json_field_substr_match' => {'error' => 'unable to show tables'},
},
{
#show table not allowed for other user without permissions
'num' => 15,
'ignore' => 'see HIVE-3009',
'setup' => [
{
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:?ifExists=true&option=cascade',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:',
'user_name' => ':UNAME:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "permissions" : "rwxrwxrwx" }'],
'status_code' => 200,
},
{
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{
"columns": [ { "name" : "i", "type" : "int" }], "permissions" : "rwx------", "group" : ":UGROUP:" }
"format" : { "storedAs" : "rcfile"}
}'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/tabpermsdb:TNUM:/table/',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
'json_field_substr_match' => {'error' => 'unable to show tables'},
},
{
#describe table test for user done as part of permissions check test
#describe table by group user
'num' => 16,
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"},
"permissions" : "rwxr-x---", "group" : ":UGROUP:" }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?format=extended',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 200,
'json_field_substr_match' => {'location_perms' => 'rwxr-x---', 'location_group' => ':UGROUP:'},
},
{
#describe extended, table by group user without permission
'num' => 17,
'ignore' => 'see HIVE-3009',
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"},
"permissions" : "rwx------", "group" : ":UGROUP:" }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?format=extended',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_GROUP:',
'status_code' => 500,
},
{
#describe extended, table by other user without permission
'num' => 18,
'ignore' => 'see HIVE-3009',
'setup' => [
{ #drop table
'method' => 'DELETE',
'format_header' => 'Content-Type: application/json',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?ifExists=true',
'user_name' => ':UNAME:',
'status_code' => 200,
},
{ #create table
'method' => 'PUT',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:',
'format_header' => 'Content-Type: application/json',
'post_options' => ['{ "columns": [ { "name" : "i", "type" : "int" } ],"format" : { "storedAs" : "rcfile"},
"permissions" : "rwx------", "group" : ":UGROUP:" }'],
'user_name' => ':UNAME:',
'status_code' => 200,
}
],
'method' => 'GET',
'url' => ':TEMPLETON_URL:/templeton/v1/ddl/database/default/table/permstable_:TNUM:?format=extended',
'format_header' => 'Content-Type: application/json',
'user_name' => ':UNAME_OTHER:',
'status_code' => 500,
},
] }
]
},
;