[tilo] Only unmarshal name and IDs from proto messages

RPC responses don't include anything other than names and IDs,
so we don't need code to unmarshal any other fields.

IN-699#comment

Change-Id: I48f650e0cb1b0e444564ed8f3276f26da2bdfd09
diff --git a/tilo/resultstore/entity.go b/tilo/resultstore/entity.go
index 5442184..4a1768b 100644
--- a/tilo/resultstore/entity.go
+++ b/tilo/resultstore/entity.go
@@ -23,28 +23,10 @@
 	return output
 }
 
-func protoTimestampToTime(input *timestamp.Timestamp) time.Time {
-	output, err := ptypes.Timestamp(input)
-	if err != nil {
-		// We should never get here.
-		panic(err.Error())
-	}
-	return output.UTC()
-}
-
 func durationToProtoDuration(input time.Duration) *duration.Duration {
 	return ptypes.DurationProto(input)
 }
 
-func protoDurationToDuration(input *duration.Duration) time.Duration {
-	output, err := ptypes.Duration(input)
-	if err != nil {
-		// We should never get here.
-		panic(err.Error())
-	}
-	return output
-}
-
 func mapToProperties(input map[string]string) []*api.Property {
 	var props []*api.Property
 	for k, v := range input {
@@ -53,14 +35,6 @@
 	return props
 }
 
-func propertiesToMap(input []*api.Property) map[string]string {
-	output := make(map[string]string)
-	for _, property := range input {
-		output[property.Key] = property.Value
-	}
-	return output
-}
-
 func lookupFileURI(files []*api.File, fileID string) string {
 	for _, file := range files {
 		if file.Uid == fileID {
@@ -114,16 +88,8 @@
 
 func (i *Invocation) FromResultStoreInvocation(input *api.Invocation) {
 	*i = Invocation{
-		Name:       input.GetName(),
-		ID:         input.GetId().InvocationId,
-		ProjectID:  input.InvocationAttributes.ProjectId,
-		Users:      input.InvocationAttributes.Users,
-		Labels:     input.InvocationAttributes.Labels,
-		Properties: propertiesToMap(input.Properties),
-		LogURL:     lookupFileURI(input.Files, "invocation.log"),
-		Status:     statusFromResultStoreStatus(input.StatusAttributes.Status),
-		StartTime:  protoTimestampToTime(input.Timing.StartTime),
-		Duration:   protoDurationToDuration(input.Timing.Duration),
+		Name: input.GetName(),
+		ID:   input.GetId().InvocationId,
 	}
 }
 
@@ -154,7 +120,6 @@
 		Name:         input.GetName(),
 		ID:           input.GetId().ConfigurationId,
 		InvocationID: input.GetId().InvocationId,
-		Properties:   propertiesToMap(input.Properties),
 	}
 }
 
@@ -193,10 +158,6 @@
 		Name:         input.GetName(),
 		ID:           input.GetId().TargetId,
 		InvocationID: input.GetId().InvocationId,
-		Properties:   propertiesToMap(input.Properties),
-		Status:       statusFromResultStoreStatus(input.StatusAttributes.Status),
-		StartTime:    protoTimestampToTime(input.Timing.StartTime),
-		Duration:     protoDurationToDuration(input.Timing.Duration),
 	}
 }
 
@@ -237,10 +198,6 @@
 		ConfigID:     input.GetId().ConfigurationId,
 		InvocationID: input.GetId().InvocationId,
 		TargetID:     input.GetId().TargetId,
-		Status:       statusFromResultStoreStatus(input.StatusAttributes.Status),
-		Properties:   propertiesToMap(input.Properties),
-		StartTime:    protoTimestampToTime(input.Timing.StartTime),
-		Duration:     protoDurationToDuration(input.Timing.Duration),
 	}
 }
 
@@ -292,21 +249,12 @@
 }
 
 func (a *TestAction) FromResultStoreAction(input *api.Action) {
-	testAction, ok := input.ActionType.(*api.Action_TestAction)
-	if !ok {
-		panic("action is not a test action")
-	}
-
 	*a = TestAction{
+		Name:         input.GetName(),
 		InvocationID: input.GetId().InvocationId,
 		TargetID:     input.GetId().TargetId,
 		ConfigID:     input.GetId().ConfigurationId,
 		ID:           input.GetId().ActionId,
-		TestSuite:    testAction.TestAction.TestSuite.SuiteName,
-		TestLogURI:   lookupFileURI(input.Files, "test.log"),
-		Status:       statusFromResultStoreStatus(input.StatusAttributes.Status),
-		StartTime:    protoTimestampToTime(input.Timing.StartTime),
-		Duration:     protoDurationToDuration(input.Timing.Duration),
 	}
 }
 
@@ -338,20 +286,3 @@
 		return api.Status_UNKNOWN
 	}
 }
-
-func statusFromResultStoreStatus(input api.Status) Status {
-	switch input {
-	case api.Status_BUILDING:
-		return Building
-	case api.Status_PASSED:
-		return Passed
-	case api.Status_FAILED:
-		return Failed
-	case api.Status_TESTING:
-		return Testing
-	case api.Status_TIMED_OUT:
-		return TimedOut
-	default:
-		return Unknown
-	}
-}
diff --git a/tilo/resultstore/upload_client_test.go b/tilo/resultstore/upload_client_test.go
index 88e3970..9a73660 100644
--- a/tilo/resultstore/upload_client_test.go
+++ b/tilo/resultstore/upload_client_test.go
@@ -92,6 +92,18 @@
 			Status:     resultstore.Passed,
 		}
 
+		apiResponse := &api.Invocation{
+			Name: "resultstore_invocation_name",
+			Id: &api.Invocation_Id{
+				InvocationId: "invocation_id",
+			},
+		}
+
+		expectedOutput := &resultstore.Invocation{
+			Name: "resultstore_invocation_name",
+			ID:   "invocation_id",
+		}
+
 		testBed.ExpectRPC().
 			CreateInvocation(ctx, &api.CreateInvocationRequest{
 				RequestId:          testUUID,
@@ -99,14 +111,14 @@
 				InvocationId:       "invocation_id",
 				Invocation:         input.ToResultStoreInvocation(),
 			}).
-			Return(input.ToResultStoreInvocation(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.CreateInvocation(ctx, input)
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -128,6 +140,18 @@
 			Status:     resultstore.Passed,
 		}
 
+		apiResponse := &api.Invocation{
+			Name: "resultstore_invocation_name",
+			Id: &api.Invocation_Id{
+				InvocationId: "invocation_id",
+			},
+		}
+
+		expectedOutput := &resultstore.Invocation{
+			Name: "resultstore_invocation_name",
+			ID:   "invocation_id",
+		}
+
 		testBed.ExpectRPC().
 			UpdateInvocation(ctx, &api.UpdateInvocationRequest{
 				AuthorizationToken: "auth_token",
@@ -136,13 +160,13 @@
 					Paths: []string{"timing.duration", "status_attributes"},
 				},
 			}).
-			Return(input.ToResultStoreInvocation(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.UpdateInvocation(ctx, input)
 		if err != nil {
 			t.Fatal(err)
 		}
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -177,6 +201,20 @@
 			Properties:   map[string]string{"key": "value"},
 		}
 
+		apiResponse := &api.Configuration{
+			Name: "resultstore_configuration_name",
+			Id: &api.Configuration_Id{
+				ConfigurationId: "configuration_id",
+				InvocationId:    "invocation_id",
+			},
+		}
+
+		expectedOutput := &resultstore.Configuration{
+			Name:         "resultstore_configuration_name",
+			ID:           "configuration_id",
+			InvocationID: "invocation_id",
+		}
+
 		testBed.ExpectRPC().
 			CreateConfiguration(ctx, &api.CreateConfigurationRequest{
 				RequestId:          testUUID,
@@ -185,14 +223,14 @@
 				ConfigId:           "configuration_id",
 				Configuration:      input.ToResultStoreConfiguration(),
 			}).
-			Return(input.ToResultStoreConfiguration(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.CreateConfiguration(ctx, input, "invocation_name")
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -209,6 +247,20 @@
 			Status:     resultstore.Passed,
 		}
 
+		apiResponse := &api.Target{
+			Name: "resultstore_target_name",
+			Id: &api.Target_Id{
+				TargetId:     "target_id",
+				InvocationId: "invocation_id",
+			},
+		}
+
+		expectedOutput := &resultstore.Target{
+			Name:         "resultstore_target_name",
+			ID:           "target_id",
+			InvocationID: "invocation_id",
+		}
+
 		testBed.ExpectRPC().
 			CreateTarget(ctx, &api.CreateTargetRequest{
 				RequestId:          testUUID,
@@ -217,14 +269,14 @@
 				TargetId:           input.ID,
 				Target:             input.ToResultStoreTarget(),
 			}).
-			Return(input.ToResultStoreTarget(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.CreateTarget(ctx, input, "invocation_name")
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -243,6 +295,20 @@
 			Status:       resultstore.Passed,
 		}
 
+		apiResponse := &api.Target{
+			Name: "resultstore_target_name",
+			Id: &api.Target_Id{
+				TargetId:     "target_id",
+				InvocationId: "invocation_id",
+			},
+		}
+
+		expectedOutput := &resultstore.Target{
+			Name:         "resultstore_target_name",
+			ID:           "target_id",
+			InvocationID: "invocation_id",
+		}
+
 		testBed.ExpectRPC().
 			UpdateTarget(ctx, &api.UpdateTargetRequest{
 				AuthorizationToken: "auth_token",
@@ -251,14 +317,14 @@
 					Paths: []string{"timing.duration", "status_attributes"},
 				},
 			}).
-			Return(input.ToResultStoreTarget(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.UpdateTarget(ctx, input)
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -296,6 +362,22 @@
 			Status:       resultstore.Passed,
 		}
 
+		apiResponse := &api.ConfiguredTarget{
+			Name: "resultstore_configured_target_name",
+			Id: &api.ConfiguredTarget_Id{
+				InvocationId:    "invocation_id",
+				ConfigurationId: "configuration_id",
+				TargetId:        "target_id",
+			},
+		}
+
+		expectedOutput := &resultstore.ConfiguredTarget{
+			Name:         "resultstore_configured_target_name",
+			InvocationID: "invocation_id",
+			ConfigID:     "configuration_id",
+			TargetID:     "target_id",
+		}
+
 		testBed.ExpectRPC().
 			CreateConfiguredTarget(ctx, &api.CreateConfiguredTargetRequest{
 				RequestId:          testUUID,
@@ -304,14 +386,14 @@
 				ConfigId:           "configuration_id",
 				ConfiguredTarget:   input.ToResultStoreConfiguredTarget(),
 			}).
-			Return(input.ToResultStoreConfiguredTarget(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.CreateConfiguredTarget(ctx, input, "target_name")
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -329,6 +411,22 @@
 			Duration:   time.Hour,
 		}
 
+		apiResponse := &api.ConfiguredTarget{
+			Name: "resultstore_configured_target_name",
+			Id: &api.ConfiguredTarget_Id{
+				InvocationId:    "invocation_id",
+				ConfigurationId: "configuration_id",
+				TargetId:        "target_id",
+			},
+		}
+
+		expectedOutput := &resultstore.ConfiguredTarget{
+			Name:         "resultstore_configured_target_name",
+			InvocationID: "invocation_id",
+			ConfigID:     "configuration_id",
+			TargetID:     "target_id",
+		}
+
 		testBed.ExpectRPC().
 			UpdateConfiguredTarget(ctx, &api.UpdateConfiguredTargetRequest{
 				AuthorizationToken: "auth_token",
@@ -337,14 +435,14 @@
 					Paths: []string{"timing.duration", "status_attributes"},
 				},
 			}).
-			Return(input.ToResultStoreConfiguredTarget(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.UpdateConfiguredTarget(ctx, input)
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -384,22 +482,40 @@
 			Status:       resultstore.Passed,
 		}
 
+		apiResponse := &api.Action{
+			Name: "resultstore_action_name",
+			Id: &api.Action_Id{
+				ActionId:        "test",
+				InvocationId:    "invocation_id",
+				ConfigurationId: "configuration_id",
+				TargetId:        "target_id",
+			},
+		}
+
+		expectedOutput := &resultstore.TestAction{
+			Name:         "resultstore_action_name",
+			ID:           "test",
+			InvocationID: "invocation_id",
+			ConfigID:     "configuration_id",
+			TargetID:     "target_id",
+		}
+
 		testBed.ExpectRPC().
 			CreateAction(ctx, &api.CreateActionRequest{
 				RequestId:          testUUID,
 				AuthorizationToken: "auth_token",
 				Parent:             "configured_target_name",
-				ActionId:           input.ID,
+				ActionId:           "test",
 				Action:             input.ToResultStoreAction(),
 			}).
-			Return(input.ToResultStoreAction(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.CreateTestAction(ctx, input, "configured_target_name")
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }
 
@@ -421,6 +537,22 @@
 			Status:       resultstore.Passed,
 		}
 
+		apiResponse := &api.Action{
+			Name: "resultstore_action_name",
+			Id: &api.Action_Id{
+				InvocationId:    "invocation_id",
+				ConfigurationId: "configuration_id",
+				TargetId:        "target_id",
+			},
+		}
+
+		expectedOutput := &resultstore.TestAction{
+			Name:         "resultstore_action_name",
+			InvocationID: "invocation_id",
+			ConfigID:     "configuration_id",
+			TargetID:     "target_id",
+		}
+
 		testBed.ExpectRPC().
 			UpdateAction(ctx, &api.UpdateActionRequest{
 				AuthorizationToken: "auth_token",
@@ -429,13 +561,13 @@
 					Paths: []string{"timing.duration", "status_attributes"},
 				},
 			}).
-			Return(input.ToResultStoreAction(), nil)
+			Return(apiResponse, nil)
 
 		output, err := client.UpdateTestAction(ctx, input)
 		if err != nil {
 			t.Fatal(err)
 		}
 
-		expectEqual(t, input, output)
+		expectEqual(t, expectedOutput, output)
 	})
 }