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