VOL-1848 API for setting and querying loglevel in api-server

Change-Id: Ibecb3c33953b60251c94c5e1438c4bff99e9139a
diff --git a/protos/voltha_protos/afrouter.proto b/protos/voltha_protos/afrouter.proto
index 2f2ec00..c10a00f 100644
--- a/protos/voltha_protos/afrouter.proto
+++ b/protos/voltha_protos/afrouter.proto
@@ -6,10 +6,15 @@
 
 package afrouter;
 
+// For logging
+import "voltha_protos/common.proto";
+
 service Configuration {
-    	rpc SetConnection (Conn) returns (Result) {}
+   	rpc SetConnection (Conn) returns (Result) {}
 	rpc SetAffinity(Affinity) returns (Result) {}
 	rpc GetGoroutineCount(Empty) returns (Count) {}
+	rpc UpdateLogLevel(common.Logging) returns (Empty) {}
+	rpc GetLogLevels(common.LoggingComponent) returns (common.Loggings) {}
 }
 
 message Result {
@@ -43,3 +48,4 @@
 	string backend = 4;
 	string id = 5;
 }
+
diff --git a/protos/voltha_protos/common.proto b/protos/voltha_protos/common.proto
index 880c4ad..f5e68c4 100644
--- a/protos/voltha_protos/common.proto
+++ b/protos/voltha_protos/common.proto
@@ -34,6 +34,22 @@
     }
 }
 
+message Logging {
+    common.LogLevel.LogLevel level = 1;
+    string package_name = 2;
+    string component_name = 3;
+}
+
+// For GetLogLevels(), select component to query
+message LoggingComponent {
+    string component_name = 1;
+}
+
+// For returning multiple log levels
+message Loggings {
+	repeated Logging items = 1;
+}
+
 message AdminState {
     option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
 
diff --git a/protos/voltha_protos/voltha.proto b/protos/voltha_protos/voltha.proto
index 75199aa..5e45033 100644
--- a/protos/voltha_protos/voltha.proto
+++ b/protos/voltha_protos/voltha.proto
@@ -70,11 +70,6 @@
     repeated AlarmFilter filters = 1;
 }
 
-message Logging {
-    common.LogLevel.LogLevel level = 1;
-    string package_name = 2;
-}
-
 // CoreInstance represents a core instance.  It is data held in memory when a core
 // is running.  This data is not persistent.
 message CoreInstance {
@@ -163,7 +158,14 @@
 service VolthaService {
 
     // Get more information on a given physical device
-    rpc UpdateLogLevel(Logging) returns(google.protobuf.Empty) {
+    rpc UpdateLogLevel(common.Logging) returns(google.protobuf.Empty) {
+        option (google.api.http) = {
+            post: "/api/v1/logs"
+            body: "*"
+        };
+    }
+
+    rpc GetLogLevels(common.LoggingComponent) returns (common.Loggings) {
         option (google.api.http) = {
             get: "/api/v1/logs"
         };