[6683] Removing unnecessary files and update gitignore
VOL-507, VOL-463: Protobuf upgrade to 3.3 and Chameleon Removal
Update the Protobuf version from 3.1 to 3.3 to alleviate
a protobuf issue when loading protobuf extensions. The following
tests have been performed:
- Create a local Vagrant VM
- Voltha ensemble startup and check for errors/exceptions
- Manual compilations of the protos in voltha, ofagent, netconf and
chameleon directory
- Manual tests with ONOS/Voltha/Ponsim using Netconf, Curl and CLI
- Run the integration tests (known issues have Jiras already raised
against them.
- Run the make jenkins-test and make utest-with-coverage
Chameleon has been removed entirely from Voltha projects. Basic tests
have run to verify chameleon dependency has been removed. Some
documents (like README) will need to be changed under a separate Jiras
as they are referenced in different adapters. Some integration tests
will also need to be updated as well.
Change-Id: I2b266719a6825fb07ece3a79f7f81881ab3b9761
diff --git a/netconf/protos/Makefile b/netconf/protos/Makefile
index 98ac79a..2301bfe 100644
--- a/netconf/protos/Makefile
+++ b/netconf/protos/Makefile
@@ -20,26 +20,15 @@
$(error To get started, please source the env.sh file from Voltha top level directory)
endif
-PROTO_FILES := $(wildcard *.proto) $(wildcard third_party/google/api/*proto)
-PROTO_PB2_FILES := $(foreach f,$(PROTO_FILES),$(subst .proto,_pb2.py,$(f)))
-PROTO_DESC_FILES := $(foreach f,$(PROTO_FILES),$(subst .proto,.desc,$(f)))
-
PROTOC_PREFIX := /usr/local
PROTOC_LIBDIR := $(PROTOC_PREFIX)/lib
-build: copyprotos $(PROTO_PB2_FILES) copypb2files
-
-%_pb2.py: %.proto Makefile
- @echo "Building protocol buffer artifacts from $<"
- env LD_LIBRARY_PATH=$(PROTOC_LIBDIR) python -m grpc.tools.protoc \
- -I. \
- -I./third_party \
- --python_out=. \
- --grpc_python_out=. \
- $<
+build: copyprotos copypb2files
TARGET_PROTO_DIR := $(VOLTHA_BASE)/netconf/protos
SOURCE_PROTO_DIR := $(VOLTHA_BASE)/voltha/protos
+TARGET_GOOGLE_API_DIR := $(TARGET_PROTO_DIR)/third_party/google/api
+SOURCE_GOOGLE_API_DIR := $(SOURCE_PROTO_DIR)/third_party/google/api
TARGET_YANG_OPTION_DIR := $(VOLTHA_BASE)/netconf/protoc_plugins
YANG_OPTION_FILE := yang_options_pb2.py
@@ -52,13 +41,18 @@
copypb2files:
rsync -av --include '*/' --exclude='third_party/__init__.py' --include '*.py' --exclude='*' $(SOURCE_PROTO_DIR)/ $(TARGET_PROTO_DIR)
+ rsync -av --include '*/' --exclude='third_party/__init__.py' --include '*.py' --include '*.desc' --include '*.proto' --exclude='*' $(SOURCE_GOOGLE_API_DIR)/ $(TARGET_GOOGLE_API_DIR)
cp $(SOURCE_PROTO_DIR)/$(YANG_OPTION_FILE) $(TARGET_YANG_OPTION_DIR)
clean:
- rm -f $(PROTO_PB2_FILES) $(PROTO_DESC_FILES)
rm -f $(TARGET_YANG_OPTION_DIR)/$(YANG_OPTION_FILE)
- rm -f $(TARGET_PROTO_DIR)/*.py
- rm -f $(TARGET_PROTO_DIR)/*.pyc
+ rm -f $(TARGET_PROTO_DIR)/*_pb2*.py
+ rm -f $(TARGET_PROTO_DIR)/*_pb2*.pyc
rm -f $(TARGET_PROTO_DIR)/*.proto
+ rm -f $(TARGET_GOOGLE_API_DIR)/*_pb2*.py
+ rm -f $(TARGET_GOOGLE_API_DIR)/*_pb2*.pyc
+ rm -f $(TARGET_GOOGLE_API_DIR)/*.desc
+ rm -f $(TARGET_GOOGLE_API_DIR)/*.proto
+
diff --git a/netconf/protos/schema.proto b/netconf/protos/schema.proto
deleted file mode 100644
index 5114208..0000000
--- a/netconf/protos/schema.proto
+++ /dev/null
@@ -1,34 +0,0 @@
-syntax = "proto3";
-
-package schema;
-
-import "google/protobuf/empty.proto";
-
-// Contains the name and content of a *.proto file
-message ProtoFile {
- string file_name = 1; // name of proto file
- string proto = 2; // content of proto file
- bytes descriptor = 3; // compiled descriptor for proto (zlib compressed)
-}
-
-// Proto files and compiled descriptors for this interface
-message Schemas {
-
- // Proto files
- repeated ProtoFile protos = 1;
-
- // Name of proto file to generae swagger.json from
- string swagger_from = 2;
-
- // Prefix of proto files which would require a yang file generated for it
- string yang_from = 3;
-
-}
-
-// Schema services
-service SchemaService {
-
- // Return active grpc schemas
- rpc GetSchema(google.protobuf.Empty) returns (Schemas) {}
-
-}
diff --git a/netconf/protos/third_party/google/api/annotations.proto b/netconf/protos/third_party/google/api/annotations.proto
deleted file mode 100644
index cbd18b8..0000000
--- a/netconf/protos/third_party/google/api/annotations.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2015, Google Inc.
-//
-// 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.
-
-syntax = "proto3";
-
-package google.api;
-
-import "google/api/http.proto";
-import "google/protobuf/descriptor.proto";
-
-option java_multiple_files = true;
-option java_outer_classname = "AnnotationsProto";
-option java_package = "com.google.api";
-
-extend google.protobuf.MethodOptions {
- // See `HttpRule`.
- HttpRule http = 72295728;
-}
diff --git a/netconf/protos/third_party/google/api/http.proto b/netconf/protos/third_party/google/api/http.proto
deleted file mode 100644
index ce07aa1..0000000
--- a/netconf/protos/third_party/google/api/http.proto
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (c) 2015, Google Inc.
-//
-// 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.
-
-syntax = "proto3";
-
-package google.api;
-
-option java_multiple_files = true;
-option java_outer_classname = "HttpProto";
-option java_package = "com.google.api";
-
-
-// `HttpRule` defines the mapping of an RPC method to one or more HTTP REST API
-// methods. The mapping determines what portions of the request message are
-// populated from the path, query parameters, or body of the HTTP request. The
-// mapping is typically specified as an `google.api.http` annotation, see
-// "google/api/annotations.proto" for details.
-//
-// The mapping consists of a mandatory field specifying a path template and an
-// optional `body` field specifying what data is represented in the HTTP request
-// body. The field name for the path indicates the HTTP method. Example:
-//
-// ```
-// package google.storage.v2;
-//
-// import "google/api/annotations.proto";
-//
-// service Storage {
-// rpc CreateObject(CreateObjectRequest) returns (Object) {
-// option (google.api.http) {
-// post: "/v2/{bucket_name=buckets/*}/objects"
-// body: "object"
-// };
-// };
-// }
-// ```
-//
-// Here `bucket_name` and `object` bind to fields of the request message
-// `CreateObjectRequest`.
-//
-// The rules for mapping HTTP path, query parameters, and body fields
-// to the request message are as follows:
-//
-// 1. The `body` field specifies either `*` or a field path, or is
-// omitted. If omitted, it assumes there is no HTTP body.
-// 2. Leaf fields (recursive expansion of nested messages in the
-// request) can be classified into three types:
-// (a) Matched in the URL template.
-// (b) Covered by body (if body is `*`, everything except (a) fields;
-// else everything under the body field)
-// (c) All other fields.
-// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
-// 4. Any body sent with an HTTP request can contain only (b) fields.
-//
-// The syntax of the path template is as follows:
-//
-// Template = "/" Segments [ Verb ] ;
-// Segments = Segment { "/" Segment } ;
-// Segment = "*" | "**" | LITERAL | Variable ;
-// Variable = "{" FieldPath [ "=" Segments ] "}" ;
-// FieldPath = IDENT { "." IDENT } ;
-// Verb = ":" LITERAL ;
-//
-// `*` matches a single path component, `**` zero or more path components, and
-// `LITERAL` a constant. A `Variable` can match an entire path as specified
-// again by a template; this nested template must not contain further variables.
-// If no template is given with a variable, it matches a single path component.
-// The notation `{var}` is henceforth equivalent to `{var=*}`.
-//
-// Use CustomHttpPattern to specify any HTTP method that is not included in the
-// pattern field, such as HEAD, or "*" to leave the HTTP method unspecified for
-// a given URL path rule. The wild-card rule is useful for services that provide
-// content to Web (HTML) clients.
-message HttpRule {
-
- // Determines the URL pattern is matched by this rules. This pattern can be
- // used with any of the {get|put|post|delete|patch} methods. A custom method
- // can be defined using the 'custom' field.
- oneof pattern {
- // Used for listing and getting information about resources.
- string get = 2;
-
- // Used for updating a resource.
- string put = 3;
-
- // Used for creating a resource.
- string post = 4;
-
- // Used for deleting a resource.
- string delete = 5;
-
- // Used for updating a resource.
- string patch = 6;
-
- // Custom pattern is used for defining custom verbs.
- CustomHttpPattern custom = 8;
- }
-
- // The name of the request field whose value is mapped to the HTTP body, or
- // `*` for mapping all fields not captured by the path pattern to the HTTP
- // body.
- string body = 7;
-
- // Additional HTTP bindings for the selector. Nested bindings must not
- // specify a selector and must not contain additional bindings.
- repeated HttpRule additional_bindings = 11;
-}
-
-// A custom pattern is used for defining custom HTTP verb.
-message CustomHttpPattern {
- // The name of this custom HTTP verb.
- string kind = 1;
-
- // The path matched by this custom verb.
- string path = 2;
-}
diff --git a/netconf/protos/yang_options.proto b/netconf/protos/yang_options.proto
deleted file mode 100644
index 5ff2ed6..0000000
--- a/netconf/protos/yang_options.proto
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (c) 2015, Google Inc.
-//
-// 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.
-
-// This file contains annotation definitions that can be used to describe
-// a configuration tree.
-
-syntax = "proto3";
-
-package voltha;
-
-import "google/protobuf/descriptor.proto";
-
-enum MessageParserOption {
- // Move any enclosing child enum/message definition to the same level
- // as the parent (this message) in the yang generated file
- MOVE_TO_PARENT_LEVEL= 0;
-
- // Create both a grouping and a container for this message. The container
- // name will be the message name. The grouping name will be the message
- // name prefixed with "grouping_"
- CREATE_BOTH_GROUPING_AND_CONTAINER = 1;
-}
-
-message InlineNode {
- string id = 1;
- string type = 2;
-}
-
-extend google.protobuf.MessageOptions {
- // This annotation is used to indicate how a message is parsed when
- // converting from proto to yang format.
- MessageParserOption yang_child_rule = 7761774;
-
- MessageParserOption yang_message_rule = 7761775;
-}
-
-extend google.protobuf.FieldOptions {
- // If present, the field (a message reference) should be replaced by the
- // message itself. For now, this applies only to non-repeated fields.
- InlineNode yang_inline_node = 7761776;
-}