Skip to content

Commit

Permalink
envoy-api: update SHA and fix namespaces (#2113)
Browse files Browse the repository at this point in the history
Signed-off-by: Matt Klein <mklein@lyft.com>
  • Loading branch information
mattklein123 authored and htuch committed Nov 28, 2017
1 parent 3a6ba49 commit 210c5ae
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 71 deletions.
2 changes: 1 addition & 1 deletion bazel/repository_locations.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ REPOSITORY_LOCATIONS = dict(
urls = ["https://github.com/google/protobuf/archive/v3.5.0.tar.gz"],
),
envoy_api = dict(
commit = "c73aac33c9d9f07dfc2d93e09b110a2269bb0632",
commit = "334d87c26060602f439976e26a54f26d05a77070",
remote = "https://github.com/envoyproxy/data-plane-api",
),
grpc_httpjson_transcoding = dict(
Expand Down
39 changes: 21 additions & 18 deletions source/common/access_log/access_log_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
namespace Envoy {
namespace AccessLog {

ComparisonFilter::ComparisonFilter(const envoy::api::v2::filter::ComparisonFilter& config,
Runtime::Loader& runtime)
ComparisonFilter::ComparisonFilter(
const envoy::api::v2::filter::accesslog::ComparisonFilter& config, Runtime::Loader& runtime)
: config_(config), runtime_(runtime) {}

bool ComparisonFilter::compareAgainstValue(uint64_t lhs) {
Expand All @@ -33,31 +33,31 @@ bool ComparisonFilter::compareAgainstValue(uint64_t lhs) {
}

switch (config_.op()) {
case envoy::api::v2::filter::ComparisonFilter::GE:
case envoy::api::v2::filter::accesslog::ComparisonFilter::GE:
return lhs >= value;
case envoy::api::v2::filter::ComparisonFilter::EQ:
case envoy::api::v2::filter::accesslog::ComparisonFilter::EQ:
return lhs == value;
default:
NOT_REACHED;
}
}

FilterPtr FilterFactory::fromProto(const envoy::api::v2::filter::AccessLogFilter& config,
FilterPtr FilterFactory::fromProto(const envoy::api::v2::filter::accesslog::AccessLogFilter& config,
Runtime::Loader& runtime) {
switch (config.filter_specifier_case()) {
case envoy::api::v2::filter::AccessLogFilter::kStatusCodeFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kStatusCodeFilter:
return FilterPtr{new StatusCodeFilter(config.status_code_filter(), runtime)};
case envoy::api::v2::filter::AccessLogFilter::kDurationFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kDurationFilter:
return FilterPtr{new DurationFilter(config.duration_filter(), runtime)};
case envoy::api::v2::filter::AccessLogFilter::kNotHealthCheckFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kNotHealthCheckFilter:
return FilterPtr{new NotHealthCheckFilter()};
case envoy::api::v2::filter::AccessLogFilter::kTraceableFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kTraceableFilter:
return FilterPtr{new TraceableRequestFilter()};
case envoy::api::v2::filter::AccessLogFilter::kRuntimeFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kRuntimeFilter:
return FilterPtr{new RuntimeFilter(config.runtime_filter(), runtime)};
case envoy::api::v2::filter::AccessLogFilter::kAndFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kAndFilter:
return FilterPtr{new AndFilter(config.and_filter(), runtime)};
case envoy::api::v2::filter::AccessLogFilter::kOrFilter:
case envoy::api::v2::filter::accesslog::AccessLogFilter::kOrFilter:
return FilterPtr{new OrFilter(config.or_filter(), runtime)};
default:
NOT_REACHED;
Expand All @@ -84,7 +84,7 @@ bool DurationFilter::evaluate(const RequestInfo& info, const Http::HeaderMap&) {
std::chrono::duration_cast<std::chrono::milliseconds>(info.duration()).count());
}

RuntimeFilter::RuntimeFilter(const envoy::api::v2::filter::RuntimeFilter& config,
RuntimeFilter::RuntimeFilter(const envoy::api::v2::filter::accesslog::RuntimeFilter& config,
Runtime::Loader& runtime)
: runtime_(runtime), runtime_key_(config.runtime_key()) {}

Expand All @@ -102,17 +102,19 @@ bool RuntimeFilter::evaluate(const RequestInfo&, const Http::HeaderMap& request_
}

OperatorFilter::OperatorFilter(
const Protobuf::RepeatedPtrField<envoy::api::v2::filter::AccessLogFilter>& configs,
const Protobuf::RepeatedPtrField<envoy::api::v2::filter::accesslog::AccessLogFilter>& configs,
Runtime::Loader& runtime) {
for (const auto& config : configs) {
filters_.emplace_back(FilterFactory::fromProto(config, runtime));
}
}

OrFilter::OrFilter(const envoy::api::v2::filter::OrFilter& config, Runtime::Loader& runtime)
OrFilter::OrFilter(const envoy::api::v2::filter::accesslog::OrFilter& config,
Runtime::Loader& runtime)
: OperatorFilter(config.filters(), runtime) {}

AndFilter::AndFilter(const envoy::api::v2::filter::AndFilter& config, Runtime::Loader& runtime)
AndFilter::AndFilter(const envoy::api::v2::filter::accesslog::AndFilter& config,
Runtime::Loader& runtime)
: OperatorFilter(config.filters(), runtime) {}

bool OrFilter::evaluate(const RequestInfo& info, const Http::HeaderMap& request_headers) {
Expand Down Expand Up @@ -145,8 +147,9 @@ bool NotHealthCheckFilter::evaluate(const RequestInfo& info, const Http::HeaderM
return !info.healthCheck();
}

InstanceSharedPtr AccessLogFactory::fromProto(const envoy::api::v2::filter::AccessLog& config,
Server::Configuration::FactoryContext& context) {
InstanceSharedPtr
AccessLogFactory::fromProto(const envoy::api::v2::filter::accesslog::AccessLog& config,
Server::Configuration::FactoryContext& context) {
FilterPtr filter;
if (config.has_filter()) {
filter = FilterFactory::fromProto(config.filter(), context.runtime());
Expand Down
28 changes: 16 additions & 12 deletions source/common/access_log/access_log_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

#include "common/protobuf/protobuf.h"

#include "api/filter/accesslog.pb.h"
#include "api/filter/accesslog/accesslog.pb.h"

namespace Envoy {
namespace AccessLog {
Expand All @@ -23,7 +23,7 @@ class FilterFactory {
/**
* Read a filter definition from proto and instantiate a concrete filter class.
*/
static FilterPtr fromProto(const envoy::api::v2::filter::AccessLogFilter& config,
static FilterPtr fromProto(const envoy::api::v2::filter::accesslog::AccessLogFilter& config,
Runtime::Loader& runtime);
};

Expand All @@ -32,12 +32,12 @@ class FilterFactory {
*/
class ComparisonFilter : public Filter {
protected:
ComparisonFilter(const envoy::api::v2::filter::ComparisonFilter& config,
ComparisonFilter(const envoy::api::v2::filter::accesslog::ComparisonFilter& config,
Runtime::Loader& runtime);

bool compareAgainstValue(uint64_t lhs);

envoy::api::v2::filter::ComparisonFilter config_;
envoy::api::v2::filter::accesslog::ComparisonFilter config_;
Runtime::Loader& runtime_;
};

Expand All @@ -46,7 +46,8 @@ class ComparisonFilter : public Filter {
*/
class StatusCodeFilter : public ComparisonFilter {
public:
StatusCodeFilter(const envoy::api::v2::filter::StatusCodeFilter& config, Runtime::Loader& runtime)
StatusCodeFilter(const envoy::api::v2::filter::accesslog::StatusCodeFilter& config,
Runtime::Loader& runtime)
: ComparisonFilter(config.comparison(), runtime) {}

// AccessLog::Filter
Expand All @@ -58,7 +59,8 @@ class StatusCodeFilter : public ComparisonFilter {
*/
class DurationFilter : public ComparisonFilter {
public:
DurationFilter(const envoy::api::v2::filter::DurationFilter& config, Runtime::Loader& runtime)
DurationFilter(const envoy::api::v2::filter::accesslog::DurationFilter& config,
Runtime::Loader& runtime)
: ComparisonFilter(config.comparison(), runtime) {}

// AccessLog::Filter
Expand All @@ -70,8 +72,9 @@ class DurationFilter : public ComparisonFilter {
*/
class OperatorFilter : public Filter {
public:
OperatorFilter(const Protobuf::RepeatedPtrField<envoy::api::v2::filter::AccessLogFilter>& configs,
Runtime::Loader& runtime);
OperatorFilter(
const Protobuf::RepeatedPtrField<envoy::api::v2::filter::accesslog::AccessLogFilter>& configs,
Runtime::Loader& runtime);

protected:
std::vector<FilterPtr> filters_;
Expand All @@ -82,7 +85,7 @@ class OperatorFilter : public Filter {
*/
class AndFilter : public OperatorFilter {
public:
AndFilter(const envoy::api::v2::filter::AndFilter& config, Runtime::Loader& runtime);
AndFilter(const envoy::api::v2::filter::accesslog::AndFilter& config, Runtime::Loader& runtime);

// AccessLog::Filter
bool evaluate(const RequestInfo& info, const Http::HeaderMap& request_headers) override;
Expand All @@ -93,7 +96,7 @@ class AndFilter : public OperatorFilter {
*/
class OrFilter : public OperatorFilter {
public:
OrFilter(const envoy::api::v2::filter::OrFilter& config, Runtime::Loader& runtime);
OrFilter(const envoy::api::v2::filter::accesslog::OrFilter& config, Runtime::Loader& runtime);

// AccessLog::Filter
bool evaluate(const RequestInfo& info, const Http::HeaderMap& request_headers) override;
Expand Down Expand Up @@ -124,7 +127,8 @@ class TraceableRequestFilter : public Filter {
*/
class RuntimeFilter : public Filter {
public:
RuntimeFilter(const envoy::api::v2::filter::RuntimeFilter& config, Runtime::Loader& runtime);
RuntimeFilter(const envoy::api::v2::filter::accesslog::RuntimeFilter& config,
Runtime::Loader& runtime);

// AccessLog::Filter
bool evaluate(const RequestInfo& info, const Http::HeaderMap& request_headers) override;
Expand All @@ -142,7 +146,7 @@ class AccessLogFactory {
/**
* Read a filter definition from proto and instantiate an Instance.
*/
static InstanceSharedPtr fromProto(const envoy::api::v2::filter::AccessLog& config,
static InstanceSharedPtr fromProto(const envoy::api::v2::filter::accesslog::AccessLog& config,
Server::Configuration::FactoryContext& context);
};

Expand Down
28 changes: 15 additions & 13 deletions source/common/config/filter_json.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ namespace Config {
namespace {

void translateComparisonFilter(const Json::Object& config,
envoy::api::v2::filter::ComparisonFilter& filter) {
envoy::api::v2::filter::accesslog::ComparisonFilter& filter) {
const std::string op = config.getString("op");
if (op == ">=") {
filter.set_op(envoy::api::v2::filter::ComparisonFilter::GE);
filter.set_op(envoy::api::v2::filter::accesslog::ComparisonFilter::GE);
} else {
ASSERT(op == "=");
filter.set_op(envoy::api::v2::filter::ComparisonFilter::EQ);
filter.set_op(envoy::api::v2::filter::accesslog::ComparisonFilter::EQ);
}

auto* runtime = filter.mutable_value();
Expand All @@ -33,39 +33,41 @@ void translateComparisonFilter(const Json::Object& config,
}

void translateStatusCodeFilter(const Json::Object& config,
envoy::api::v2::filter::StatusCodeFilter& filter) {
envoy::api::v2::filter::accesslog::StatusCodeFilter& filter) {
translateComparisonFilter(config, *filter.mutable_comparison());
}

void translateDurationFilter(const Json::Object& config,
envoy::api::v2::filter::DurationFilter& filter) {
envoy::api::v2::filter::accesslog::DurationFilter& filter) {
translateComparisonFilter(config, *filter.mutable_comparison());
}

void translateRuntimeFilter(const Json::Object& config,
envoy::api::v2::filter::RuntimeFilter& filter) {
envoy::api::v2::filter::accesslog::RuntimeFilter& filter) {
filter.set_runtime_key(config.getString("key"));
}

void translateRepeatedFilter(
const Json::Object& config,
Protobuf::RepeatedPtrField<envoy::api::v2::filter::AccessLogFilter>& filters) {
Protobuf::RepeatedPtrField<envoy::api::v2::filter::accesslog::AccessLogFilter>& filters) {
for (const auto& json_filter : config.getObjectArray("filters")) {
FilterJson::translateAccessLogFilter(*json_filter, *filters.Add());
}
}

void translateOrFilter(const Json::Object& config, envoy::api::v2::filter::OrFilter& filter) {
void translateOrFilter(const Json::Object& config,
envoy::api::v2::filter::accesslog::OrFilter& filter) {
translateRepeatedFilter(config, *filter.mutable_filters());
}

void translateAndFilter(const Json::Object& config, envoy::api::v2::filter::AndFilter& filter) {
void translateAndFilter(const Json::Object& config,
envoy::api::v2::filter::accesslog::AndFilter& filter) {
translateRepeatedFilter(config, *filter.mutable_filters());
}

void translateRepeatedAccessLog(
const std::vector<Json::ObjectSharedPtr>& json,
Protobuf::RepeatedPtrField<envoy::api::v2::filter::AccessLog>& access_logs) {
Protobuf::RepeatedPtrField<envoy::api::v2::filter::accesslog::AccessLog>& access_logs) {
for (const auto& json_access_log : json) {
auto* access_log = access_logs.Add();
FilterJson::translateAccessLog(*json_access_log, *access_log);
Expand All @@ -76,7 +78,7 @@ void translateRepeatedAccessLog(

void FilterJson::translateAccessLogFilter(
const Json::Object& json_access_log_filter,
envoy::api::v2::filter::AccessLogFilter& access_log_filter) {
envoy::api::v2::filter::accesslog::AccessLogFilter& access_log_filter) {
const std::string type = json_access_log_filter.getString("type");
if (type == "status_code") {
translateStatusCodeFilter(json_access_log_filter,
Expand All @@ -98,10 +100,10 @@ void FilterJson::translateAccessLogFilter(
}

void FilterJson::translateAccessLog(const Json::Object& json_access_log,
envoy::api::v2::filter::AccessLog& access_log) {
envoy::api::v2::filter::accesslog::AccessLog& access_log) {
json_access_log.validateSchema(Json::Schema::ACCESS_LOG_SCHEMA);

envoy::api::v2::filter::FileAccessLog file_access_log;
envoy::api::v2::filter::accesslog::FileAccessLog file_access_log;

JSON_UTIL_SET_STRING(json_access_log, file_access_log, path);
JSON_UTIL_SET_STRING(json_access_log, file_access_log, format);
Expand Down
15 changes: 8 additions & 7 deletions source/common/config/filter_json.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,21 @@ class FilterJson {
public:
/**
* Translate a v1 JSON access log filter object to v2
* envoy::api::v2::filter::AccessLogFilter.
* envoy::api::v2::filter::accesslog::AccessLogFilter.
* @param json_access_log_filter source v1 JSON access log object.
* @param access_log_filter destination v2 envoy::api::v2::filter::AccessLog.
* @param access_log_filter destination v2 envoy::api::v2::filter::accesslog::AccessLog.
*/
static void translateAccessLogFilter(const Json::Object& json_access_log_filter,
envoy::api::v2::filter::AccessLogFilter& access_log_filter);
static void
translateAccessLogFilter(const Json::Object& json_access_log_filter,
envoy::api::v2::filter::accesslog::AccessLogFilter& access_log_filter);

/**
* Translate a v1 JSON access log object to v2 envoy::api::v2::filter::AccessLog.
* Translate a v1 JSON access log object to v2 envoy::api::v2::filter::accesslog::AccessLog.
* @param json_access_log source v1 JSON access log object.
* @param access_log destination v2 envoy::api::v2::filter::AccessLog.
* @param access_log destination v2 envoy::api::v2::filter::accesslog::AccessLog.
*/
static void translateAccessLog(const Json::Object& json_access_log,
envoy::api::v2::filter::AccessLog& access_log);
envoy::api::v2::filter::accesslog::AccessLog& access_log);

/**
* Translate a v1 JSON HTTP connection manager object to v2
Expand Down
2 changes: 1 addition & 1 deletion source/common/filter/tcp_proxy.cc
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ TcpProxyConfig::TcpProxyConfig(const envoy::api::v2::filter::network::TcpProxy&
routes_.emplace_back(default_route);
}

for (const envoy::api::v2::filter::AccessLog& log_config : config.access_log()) {
for (const envoy::api::v2::filter::accesslog::AccessLog& log_config : config.access_log()) {
access_logs_.emplace_back(AccessLog::AccessLogFactory::fromProto(log_config, context));
}
}
Expand Down
5 changes: 3 additions & 2 deletions source/server/config/network/file_access_log.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ namespace Configuration {

AccessLog::InstanceSharedPtr FileAccessLogFactory::createAccessLogInstance(
const Protobuf::Message& config, AccessLog::FilterPtr&& filter, FactoryContext& context) {
const auto& fal_config = dynamic_cast<const envoy::api::v2::filter::FileAccessLog&>(config);
const auto& fal_config =
dynamic_cast<const envoy::api::v2::filter::accesslog::FileAccessLog&>(config);
AccessLog::FormatterPtr formatter;
if (fal_config.format().empty()) {
formatter = AccessLog::AccessLogFormatUtils::defaultAccessLogFormatter();
Expand All @@ -29,7 +30,7 @@ AccessLog::InstanceSharedPtr FileAccessLogFactory::createAccessLogInstance(
}

ProtobufTypes::MessagePtr FileAccessLogFactory::createEmptyConfigProto() {
return ProtobufTypes::MessagePtr{new envoy::api::v2::filter::FileAccessLog()};
return ProtobufTypes::MessagePtr{new envoy::api::v2::filter::accesslog::FileAccessLog()};
}

std::string FileAccessLogFactory::name() const { return Config::AccessLogNames::get().FILE; }
Expand Down
13 changes: 7 additions & 6 deletions test/common/access_log/access_log_impl_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@ namespace Envoy {
namespace AccessLog {
namespace {

envoy::api::v2::filter::AccessLog parseAccessLogFromJson(const std::string& json_string) {
envoy::api::v2::filter::AccessLog access_log;
envoy::api::v2::filter::accesslog::AccessLog
parseAccessLogFromJson(const std::string& json_string) {
envoy::api::v2::filter::accesslog::AccessLog access_log;
auto json_object_ptr = Json::Factory::loadFromString(json_string);
Config::FilterJson::translateAccessLog(*json_object_ptr, access_log);
return access_log;
Expand Down Expand Up @@ -490,9 +491,9 @@ TEST_F(AccessLogImplTest, multipleOperators) {
}

TEST_F(AccessLogImplTest, ConfigureFromProto) {
envoy::api::v2::filter::AccessLog config;
envoy::api::v2::filter::accesslog::AccessLog config;

envoy::api::v2::filter::FileAccessLog fal_config;
envoy::api::v2::filter::accesslog::FileAccessLog fal_config;
fal_config.set_path("/dev/null");

MessageUtil::jsonConvert(fal_config, *config.mutable_config());
Expand Down Expand Up @@ -524,7 +525,7 @@ TEST(AccessLogFilterTest, DurationWithRuntimeKey) {
NiceMock<Runtime::MockLoader> runtime;

Json::ObjectSharedPtr filter_object = loader->getObject("filter");
envoy::api::v2::filter::AccessLogFilter config;
envoy::api::v2::filter::accesslog::AccessLogFilter config;
Config::FilterJson::translateAccessLogFilter(*filter_object, config);
DurationFilter filter(config.duration_filter(), runtime);
Http::TestHeaderMapImpl request_headers{{":method", "GET"}, {":path", "/"}};
Expand Down Expand Up @@ -558,7 +559,7 @@ TEST(AccessLogFilterTest, StatusCodeWithRuntimeKey) {
NiceMock<Runtime::MockLoader> runtime;

Json::ObjectSharedPtr filter_object = loader->getObject("filter");
envoy::api::v2::filter::AccessLogFilter config;
envoy::api::v2::filter::accesslog::AccessLogFilter config;
Config::FilterJson::translateAccessLogFilter(*filter_object, config);
StatusCodeFilter filter(config.status_code_filter(), runtime);

Expand Down
Loading

0 comments on commit 210c5ae

Please sign in to comment.