Beispiel #1
0
func createDom(id string) *pb.Domain {
	dom := new(pb.Domain)
	dom.Name = utils.Stringp(id)
	types := []pb.SketchType{pb.SketchType_MEMB, pb.SketchType_FREQ, pb.SketchType_RANK, pb.SketchType_CARD}
	for _, ty := range types {
		sketch := &pb.Sketch{}
		sketch.Name = dom.Name
		sketch.Type = &ty
		sketch.Properties = &pb.SketchProperties{
			Size:           utils.Int64p(100),
			MaxUniqueItems: utils.Int64p(10),
		}
		dom.Sketches = append(dom.Sketches, sketch)
	}
	return dom
}
Beispiel #2
0
func createDomain(fields []string, in *pb.Domain) error {
	if len(fields) > 5 {
		return fmt.Errorf("Too many argumets, expected 4 got %d", len(fields))
	}

	// FIXME make last 2 arguments optional
	capa, err := strconv.Atoi(fields[3])
	if err != nil {
		return fmt.Errorf("Expected 3rd argument to be of type int: %q", err)
	}

	size, err := strconv.Atoi(fields[4])
	if err != nil {
		return fmt.Errorf("Expected last argument to be of type int: %q", err)
	}

	types := []pb.SketchType{pb.SketchType_MEMB, pb.SketchType_FREQ, pb.SketchType_RANK, pb.SketchType_CARD}
	for _, ty := range types {
		sketch := &pb.Sketch{}
		sketch.Name = proto.String("")
		sketch.Type = &ty
		sketch.Properties = &pb.SketchProperties{
			Size:           proto.Int64(int64(size)),
			MaxUniqueItems: proto.Int64(int64(capa)),
		}
		in.Sketches = append(in.Sketches, sketch)
	}

	_, err = client.CreateDomain(context.Background(), in)
	return err
}
Beispiel #3
0
func (s *serverStruct) createDomain(ctx context.Context, in *pb.Domain) (*pb.Domain, error) {
	info := datamodel.NewEmptyInfo()
	info.Name = in.Name
	// FIXME: A Domain's info should have an array of properties for each Sketch (or just an array
	// of Sketches, like what the proto has). This is just a hack to choose the first Sketch and
	// use it's info for now
	info.Properties.MaxUniqueItems = in.GetSketches()[0].GetProperties().MaxUniqueItems
	info.Properties.Size = in.GetSketches()[0].GetProperties().Size
	if info.Properties.Size == nil || *info.Properties.Size == 0 {
		var defaultSize int64 = 100
		info.Properties.Size = &defaultSize
	}
	// FIXME: We should be passing a pb.Domain and not a datamodel.Info to manager.CreateDomain
	err := s.manager.CreateDomain(info)
	if err != nil {
		return nil, err
	}
	return in, nil
}
Beispiel #4
0
func (s *serverStruct) GetDomain(ctx context.Context, in *pb.Domain) (*pb.Domain, error) {
	return s.manager.GetDomain(in.GetName())
}
Beispiel #5
0
func (s *serverStruct) deleteDomain(ctx context.Context, in *pb.Domain) (*pb.Empty, error) {
	return &pb.Empty{}, s.manager.DeleteDomain(in.GetName())
}