func ParseEntity()

in internal/commands/interceptor/entity.go [35:84]


func ParseEntity(ctx *cli.Context) (*api.Entity, error) {
	serviceID := ctx.String("service-id")
	instance := ctx.String("instance-name")
	endpoint := ctx.String("endpoint-name")
	process := ctx.String("process-name")

	destServiceID := ctx.String("dest-service-id")
	destInstance := ctx.String("dest-instance-name")
	destEndpoint := ctx.String("dest-endpoint-name")
	destProcess := ctx.String("dest-process-name")

	serviceName, isNormal, err := ParseServiceID(serviceID)
	if err != nil {
		return nil, err
	}

	destServiceName, destIsNormal, err := ParseServiceID(destServiceID)
	if err != nil {
		return nil, err
	}

	entity := &api.Entity{
		ServiceName:             &serviceName,
		Normal:                  &isNormal,
		ServiceInstanceName:     &instance,
		EndpointName:            &endpoint,
		ProcessName:             &process,
		DestServiceName:         &destServiceName,
		DestNormal:              &destIsNormal,
		DestServiceInstanceName: &destInstance,
		DestEndpointName:        &destEndpoint,
		DestProcessName:         &destProcess,
	}
	entity.Scope = utils.ParseScope(entity)

	// adapt for the old version of backend
	if *entity.ProcessName == "" {
		entity.ProcessName = nil
	}
	if *entity.DestProcessName == "" {
		entity.DestProcessName = nil
	}

	if logger.Log.GetLevel() <= logrus.DebugLevel {
		s, _ := json.Marshal(&entity)
		logger.Log.Debugf("entity: %+v", string(s))
	}

	return entity, nil
}