mirror of https://github.com/grpc/grpc.git
Merge pull request #19021 from yashykt/validatesvccfg
Add method to validate service config jsonreviewable/pr19038/r2
commit
d43604a8b1
13 changed files with 113 additions and 1 deletions
@ -0,0 +1,36 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed 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. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef GRPCPP_SUPPORT_VALIDATE_SERVICE_CONFIG_H |
||||
#define GRPCPP_SUPPORT_VALIDATE_SERVICE_CONFIG_H |
||||
|
||||
#include <grpcpp/support/config.h> |
||||
|
||||
namespace grpc { |
||||
|
||||
namespace experimental { |
||||
/// Validates \a service_config_json. If valid, returns an empty string.
|
||||
/// Otherwise, returns the validation error.
|
||||
/// TODO(yashykt): Promote it to out of experimental once it is proved useful
|
||||
/// and gRFC is accepted.
|
||||
grpc::string ValidateServiceConfigJSON(const grpc::string& service_config_json); |
||||
} // namespace experimental
|
||||
|
||||
} // namespace grpc
|
||||
|
||||
#endif // GRPCPP_SUPPORT_VALIDATE_SERVICE_CONFIG_H
|
@ -0,0 +1,40 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed 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. |
||||
* |
||||
*/ |
||||
|
||||
#include <grpc/grpc.h> |
||||
#include <grpcpp/support/validate_service_config.h> |
||||
|
||||
#include "src/core/ext/filters/client_channel/service_config.h" |
||||
|
||||
namespace grpc { |
||||
namespace experimental { |
||||
grpc::string ValidateServiceConfigJSON( |
||||
const grpc::string& service_config_json) { |
||||
grpc_init(); |
||||
grpc_error* error = GRPC_ERROR_NONE; |
||||
grpc_core::ServiceConfig::Create(service_config_json.c_str(), &error); |
||||
grpc::string return_value; |
||||
if (error != GRPC_ERROR_NONE) { |
||||
return_value = grpc_error_string(error); |
||||
GRPC_ERROR_UNREF(error); |
||||
} |
||||
grpc_shutdown(); |
||||
return return_value; |
||||
} |
||||
} // namespace experimental
|
||||
} // namespace grpc
|
Loading…
Reference in new issue