build/parse_spec_7_4.pl (44 lines of code) (raw):
#!/usr/bin/env perl
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. 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.
use strict;
use warnings FATAL => 'all';
use v5.12;
use Path::Class;
use FindBin;
use File::Basename;
use HTTP::Tiny;
use JSON::XS;
do "$FindBin::RealBin/parse_spec_base_74.pl" || die $@;
do "$FindBin::RealBin/../util/get_elasticsearch_info.pl" || die $@;
my $contents = get_elasticsearch_info();
my $dirname = dirname(__FILE__) . "/..";
my $hash = $contents->{version}->{build_hash};
my $pathSpecs = sprintf("%s/util/rest-spec/%s/rest-api-spec/api", $dirname, $hash);
unless (-e $pathSpecs) {
printf "ERROR: The API spec folder %s is not found", $pathSpecs;
exit 1;
}
my @files = map { file($_) } (
sprintf("%s/_common.json", $pathSpecs),
glob
sprintf("%s/*.json", $pathSpecs)
);
forbid(
'GET' => qw(
/_nodes/hotthreads
/_nodes/{node_id}/hotthreads
)
);
forbid(
'PUT' => qw(
/{index}/{type}/_mapping
)
);
forbid(
'QS' => qw(
operation_threading
field_data
)
);
process_files(
sprintf("%s/lib/Search/Elasticsearch/Client/7_0/Role/API.pm", $dirname),
@files
);