[current results] Add support for secure connection from command-line client

Change-Id: Ie9dd90c6f8c373da6d81ec1702464ba2b5f8f557
Reviewed-on: https://dart-review.googlesource.com/c/dart_ci/+/163920
Reviewed-by: Alexander Thomas <athom@google.com>
diff --git a/current_results/bin/client.dart b/current_results/bin/client.dart
index 5f7fb2c..3140bed 100644
--- a/current_results/bin/client.dart
+++ b/current_results/bin/client.dart
@@ -16,19 +16,23 @@
     ..addCommand(FetchCommand())
     ..argParser.addOption('host', help: 'current results server to query')
     ..argParser
-        .addOption('port', abbr: 'p', help: 'port of current results server');
+        .addOption('port', abbr: 'p', help: 'port of current results server')
+    ..argParser.addFlag('insecure', help: 'connect over insecure http');
   await runner.run(args);
 }
 
 abstract class gRpcCommand extends Command {
-  Future<void> runWithChannel(ClientChannel channel);
+  Future<void> runWithClient(QueryClient client);
   Future<void> run() async {
     final channel = ClientChannel(globalResults['host'],
         port: int.parse(globalResults['port']),
-        options:
-            const ChannelOptions(credentials: ChannelCredentials.insecure()));
+        options: globalResults['insecure'] == true
+            ? const ChannelOptions(credentials: ChannelCredentials.insecure())
+            : const ChannelOptions(credentials: ChannelCredentials.secure()));
+
+    final client = QueryClient(channel);
     try {
-      await runWithChannel(channel);
+      await runWithClient(client);
     } finally {
       await channel.shutdown();
     }
@@ -48,7 +52,7 @@
   String get name => 'getResults';
   String get description => 'Send a GetResults gRPC request to the server';
 
-  Future<void> runWithChannel(ClientChannel channel) async {
+  Future<void> runWithClient(QueryClient client) async {
     final request = GetResultsRequest();
     request.filter = argResults['filter'] ?? '';
     if (argResults['limit'] != null) {
@@ -58,7 +62,7 @@
       request.pageToken = argResults['page'];
     }
 
-    final result = await QueryClient(channel).getResults(request);
+    final result = await client.getResults(request);
     print(result.toProto3Json());
   }
 }
@@ -75,11 +79,11 @@
   String get name => 'listTests';
   String get description => 'Send a ListTests gRPC request to the server';
 
-  Future<void> runWithChannel(ClientChannel channel) async {
+  Future<void> runWithClient(QueryClient client) async {
     final query = ListTestsRequest()
       ..prefix = argResults['prefix']
       ..limit = int.parse(argResults['limit']);
-    final result = await QueryClient(channel).listTests(query);
+    final result = await client.listTests(query);
     print(result.toProto3Json());
   }
 }
@@ -88,8 +92,8 @@
   String get name => 'fetch';
   String get description => 'Send a Fetch gRPC request to the server';
 
-  Future<void> runWithChannel(ClientChannel channel) async {
-    final result = await QueryClient(channel).fetch(Empty());
+  Future<void> runWithClient(QueryClient client) async {
+    final result = await client.fetch(Empty());
     print(result.toProto3Json());
   }
 }
diff --git a/current_results/bin/server.dart b/current_results/bin/server.dart
index ad0e0f9..0869124 100644
--- a/current_results/bin/server.dart
+++ b/current_results/bin/server.dart
@@ -21,7 +21,7 @@
   await bucket.initialize();
   await notifications.initialize();
   await loadData();
-  var port = int.tryParse(Platform.environment['PORT'] ?? '8081');
+  var port = int.tryParse(Platform.environment['PORT'] ?? '8080');
   await grpcServer.serve(port: port);
   print('Grpc serving on port ${grpcServer.port}');
 }