Merge pull request #648 from raskle/input-definition

Broadcast Delete InputDefinition Messages and handle on remote nodes.
This commit is contained in:
Linh Vo 2017-06-16 16:56:38 -05:00 committed by GitHub
commit 01d51ac97c
6 changed files with 248 additions and 55 deletions

View file

@ -133,6 +133,8 @@ func MarshalMessage(m proto.Message) ([]byte, error) {
typ = MessageTypeDeleteFrame
case *internal.CreateInputDefinitionMessage:
typ = MessageTypeCreateInputDefinition
case *internal.DeleteInputDefinitionMessage:
typ = MessageTypeDeleteInputDefinition
default:
return nil, fmt.Errorf("message type not implemented for marshalling: %s", reflect.TypeOf(obj))
}
@ -161,6 +163,8 @@ func UnmarshalMessage(buf []byte) (proto.Message, error) {
m = &internal.DeleteFrameMessage{}
case MessageTypeCreateInputDefinition:
m = &internal.CreateInputDefinitionMessage{}
case MessageTypeDeleteInputDefinition:
m = &internal.DeleteInputDefinitionMessage{}
default:
return nil, fmt.Errorf("invalid message type: %d", typ)
}

View file

@ -893,7 +893,7 @@ func (h *Handler) readProtobufQueryRequest(r *http.Request) (*QueryRequest, erro
func (h *Handler) readURLQueryRequest(r *http.Request) (*QueryRequest, error) {
q := r.URL.Query()
validQuery := validOptions(QueryRequest{})
for key, _ := range q {
for key := range q {
if _, ok := validQuery[key]; !ok {
return nil, errors.New("invalid query params")
}
@ -1588,6 +1588,15 @@ func (h *Handler) handleDeleteInputDefinition(w http.ResponseWriter, r *http.Req
return
}
err := h.Broadcaster.SendSync(
&internal.DeleteInputDefinitionMessage{
Index: indexName,
Name: inputDefName,
})
if err != nil {
h.logger().Printf("problem sending CreateInputDefinition message: %s", err)
}
if err := json.NewEncoder(w).Encode(postInputDefinitionResponse{}); err != nil {
h.logger().Printf("response encoding error: %s", err)
}

View file

@ -9,6 +9,7 @@ import (
"github.com/pilosa/pilosa/internal"
)
// InputDefinition represents a container for the data input definition.
type InputDefinition struct {
name string
path string
@ -18,6 +19,7 @@ type InputDefinition struct {
fields []Field
}
// NewInputDefinition returns a new instance of InputDefinition.
func NewInputDefinition(path, index, name string) (*InputDefinition, error) {
err := ValidateName(name)
if err != nil {
@ -37,6 +39,7 @@ func (i *InputDefinition) Frames() []InputFrame { return i.frames }
// Fields returns fields of the input definition was initialized with.
func (i *InputDefinition) Fields() []Field { return i.fields }
// Open opens and initializes the InputDefinition from file.
func (i *InputDefinition) Open() error {
if err := func() error {
if err := os.MkdirAll(i.path, 0777); err != nil {

View file

@ -27,6 +27,7 @@
InputDefinitionField
Action
CreateInputDefinitionMessage
DeleteInputDefinitionMessage
NodeStatus
ClusterStatus
*/
@ -328,6 +329,18 @@ func (m *CreateInputDefinitionMessage) GetDefinition() *InputDefinition {
return nil
}
type DeleteInputDefinitionMessage struct {
Index string `protobuf:"bytes,1,opt,name=Index,proto3" json:"Index,omitempty"`
Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
}
func (m *DeleteInputDefinitionMessage) Reset() { *m = DeleteInputDefinitionMessage{} }
func (m *DeleteInputDefinitionMessage) String() string { return proto.CompactTextString(m) }
func (*DeleteInputDefinitionMessage) ProtoMessage() {}
func (*DeleteInputDefinitionMessage) Descriptor() ([]byte, []int) {
return fileDescriptorPrivate, []int{18}
}
type NodeStatus struct {
Host string `protobuf:"bytes,1,opt,name=Host,proto3" json:"Host,omitempty"`
State string `protobuf:"bytes,2,opt,name=State,proto3" json:"State,omitempty"`
@ -337,7 +350,7 @@ type NodeStatus struct {
func (m *NodeStatus) Reset() { *m = NodeStatus{} }
func (m *NodeStatus) String() string { return proto.CompactTextString(m) }
func (*NodeStatus) ProtoMessage() {}
func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{18} }
func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{19} }
func (m *NodeStatus) GetIndexes() []*Index {
if m != nil {
@ -353,7 +366,7 @@ type ClusterStatus struct {
func (m *ClusterStatus) Reset() { *m = ClusterStatus{} }
func (m *ClusterStatus) String() string { return proto.CompactTextString(m) }
func (*ClusterStatus) ProtoMessage() {}
func (*ClusterStatus) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{19} }
func (*ClusterStatus) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{20} }
func (m *ClusterStatus) GetNodes() []*NodeStatus {
if m != nil {
@ -381,6 +394,7 @@ func init() {
proto.RegisterType((*InputDefinitionField)(nil), "internal.InputDefinitionField")
proto.RegisterType((*Action)(nil), "internal.Action")
proto.RegisterType((*CreateInputDefinitionMessage)(nil), "internal.CreateInputDefinitionMessage")
proto.RegisterType((*DeleteInputDefinitionMessage)(nil), "internal.DeleteInputDefinitionMessage")
proto.RegisterType((*NodeStatus)(nil), "internal.NodeStatus")
proto.RegisterType((*ClusterStatus)(nil), "internal.ClusterStatus")
}
@ -1122,6 +1136,36 @@ func (m *CreateInputDefinitionMessage) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *DeleteInputDefinitionMessage) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *DeleteInputDefinitionMessage) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Index) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintPrivate(dAtA, i, uint64(len(m.Index)))
i += copy(dAtA[i:], m.Index)
}
if len(m.Name) > 0 {
dAtA[i] = 0x12
i++
i = encodeVarintPrivate(dAtA, i, uint64(len(m.Name)))
i += copy(dAtA[i:], m.Name)
}
return i, nil
}
func (m *NodeStatus) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -1546,6 +1590,20 @@ func (m *CreateInputDefinitionMessage) Size() (n int) {
return n
}
func (m *DeleteInputDefinitionMessage) Size() (n int) {
var l int
_ = l
l = len(m.Index)
if l > 0 {
n += 1 + l + sovPrivate(uint64(l))
}
l = len(m.Name)
if l > 0 {
n += 1 + l + sovPrivate(uint64(l))
}
return n
}
func (m *NodeStatus) Size() (n int) {
var l int
_ = l
@ -4141,6 +4199,114 @@ func (m *CreateInputDefinitionMessage) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *DeleteInputDefinitionMessage) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPrivate
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: DeleteInputDefinitionMessage: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: DeleteInputDefinitionMessage: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPrivate
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthPrivate
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Index = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPrivate
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthPrivate
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipPrivate(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthPrivate
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *NodeStatus) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@ -4469,58 +4635,58 @@ var (
func init() { proto.RegisterFile("private.proto", fileDescriptorPrivate) }
var fileDescriptorPrivate = []byte{
// 834 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x8e, 0x1b, 0x45,
// 842 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x8e, 0x1b, 0x45,
0x10, 0x66, 0xec, 0xb1, 0x63, 0xd7, 0x6a, 0x77, 0x9d, 0x66, 0x85, 0x26, 0xab, 0x95, 0xb5, 0xea,
0x03, 0x59, 0x7c, 0xf0, 0x21, 0x48, 0x08, 0x12, 0x0e, 0x10, 0xdb, 0x51, 0x2c, 0x70, 0x80, 0x76,
0x94, 0x23, 0x52, 0xaf, 0x5d, 0xc0, 0x68, 0xc7, 0x33, 0x66, 0xba, 0xc7, 0x1b, 0x73, 0xe0, 0x82,
0xc4, 0x33, 0x20, 0xf1, 0x0c, 0xbc, 0x07, 0x47, 0xae, 0xdc, 0xd0, 0x72, 0xe1, 0x31, 0x50, 0xff,
0xcd, 0x8c, 0xc7, 0x6b, 0x47, 0x9b, 0x5b, 0xd7, 0x57, 0x5f, 0x57, 0x7d, 0x5d, 0x53, 0x55, 0x36,
0x1c, 0x2e, 0xd3, 0x70, 0xc5, 0x25, 0xf6, 0x97, 0x69, 0x22, 0x13, 0xd2, 0x0a, 0x63, 0x89, 0x69,
0xcc, 0x23, 0xfa, 0x15, 0xb4, 0xc7, 0xf1, 0x1c, 0x5f, 0x4f, 0x50, 0x72, 0x72, 0x0e, 0x07, 0x83,
0x24, 0xca, 0x16, 0xf1, 0x97, 0xfc, 0x12, 0xa3, 0xc0, 0x3b, 0xf7, 0x2e, 0xda, 0xac, 0x0c, 0x29,
0xc6, 0xcb, 0x70, 0x81, 0xdf, 0x64, 0x3c, 0x96, 0xd9, 0x22, 0xa8, 0x19, 0x46, 0x09, 0xa2, 0x7f,
0x78, 0xd0, 0x7e, 0x96, 0xf2, 0x05, 0xea, 0x88, 0xa7, 0xd0, 0x62, 0xc9, 0x75, 0x39, 0x5c, 0x6e,
0x93, 0xf7, 0xe1, 0x68, 0x1c, 0xaf, 0x30, 0x15, 0x38, 0x8a, 0xf9, 0x65, 0x84, 0x73, 0x1d, 0xae,
0xc5, 0x2a, 0x28, 0x39, 0x83, 0xf6, 0x80, 0xcf, 0x7e, 0xc0, 0x97, 0xeb, 0x25, 0x06, 0x75, 0x1d,
0xa4, 0x00, 0x72, 0xef, 0x34, 0xfc, 0x09, 0x03, 0xff, 0xdc, 0xbb, 0x38, 0x64, 0x05, 0x50, 0xd5,
0xdb, 0xd8, 0xd6, 0x4b, 0xe1, 0x68, 0xbc, 0x58, 0x26, 0xa9, 0x64, 0x28, 0x96, 0x49, 0x2c, 0x90,
0x74, 0xa0, 0x3e, 0x4a, 0x53, 0x2b, 0x57, 0x1d, 0xe9, 0xcf, 0xd0, 0x79, 0x1a, 0x25, 0xb3, 0xab,
0x21, 0x97, 0x9c, 0xe1, 0x8f, 0x19, 0x0a, 0x49, 0x4e, 0xa0, 0xa1, 0x0b, 0x67, 0x79, 0xc6, 0x50,
0xa8, 0x7e, 0xbc, 0xad, 0x8c, 0x31, 0x14, 0xaa, 0xef, 0x6b, 0xf5, 0x3e, 0x33, 0x86, 0x42, 0xa7,
0x51, 0x38, 0x33, 0xaa, 0x7d, 0x66, 0x0c, 0x42, 0xc0, 0x7f, 0x15, 0xe2, 0xb5, 0x95, 0xaa, 0xcf,
0x74, 0x0c, 0xf7, 0x4b, 0xf9, 0xad, 0xcc, 0xf7, 0xa0, 0xc9, 0x92, 0xeb, 0xf1, 0x50, 0x04, 0xde,
0x79, 0xfd, 0xc2, 0x67, 0xd6, 0xd2, 0x05, 0xd1, 0x5f, 0x4c, 0xb9, 0x6a, 0xda, 0x55, 0x00, 0xf4,
0x01, 0x34, 0x74, 0x75, 0xd4, 0x2b, 0x8b, 0xbb, 0xea, 0x48, 0x7f, 0xf7, 0xe0, 0xfe, 0x84, 0xbf,
0xd6, 0x32, 0x44, 0x9e, 0xe6, 0x39, 0xb4, 0x73, 0x50, 0xb3, 0x0f, 0x1e, 0xf5, 0xfa, 0xae, 0x7d,
0xfa, 0x5b, 0xfc, 0x02, 0x19, 0xc5, 0x32, 0x5d, 0xb3, 0xe2, 0xf2, 0xe9, 0xa7, 0x70, 0xb4, 0xe9,
0x54, 0x1a, 0xae, 0x70, 0xed, 0x2a, 0x7d, 0x85, 0x6b, 0x55, 0x93, 0x15, 0x8f, 0x32, 0x53, 0x3f,
0x9f, 0x19, 0xe3, 0x71, 0xed, 0x63, 0x8f, 0x7e, 0x0b, 0x64, 0x90, 0x22, 0x97, 0xa8, 0x03, 0x4c,
0x50, 0x08, 0xfe, 0x3d, 0xee, 0xfe, 0x0a, 0xa6, 0xb2, 0xb5, 0x72, 0x65, 0xcf, 0xa0, 0x3d, 0x16,
0x03, 0x59, 0x7c, 0xf0, 0x21, 0x48, 0x08, 0x12, 0x0e, 0x10, 0xdb, 0xd1, 0x5a, 0xe0, 0x00, 0xed,
0x28, 0x47, 0xa4, 0x5e, 0xbb, 0x80, 0xd1, 0x8e, 0x67, 0xcc, 0x74, 0x8f, 0x37, 0xe6, 0xc0, 0x05,
0x89, 0x67, 0x40, 0xe2, 0x19, 0x78, 0x0f, 0x8e, 0x5c, 0xb9, 0xa1, 0xe5, 0xc2, 0x63, 0xa0, 0xfe,
0x9b, 0x19, 0x8f, 0xd7, 0x8e, 0x02, 0xb7, 0xae, 0xaf, 0xbe, 0xae, 0xfa, 0xba, 0xa6, 0xaa, 0x6c,
0x38, 0x5c, 0xa6, 0xe1, 0x8a, 0x4b, 0xec, 0x2f, 0xd3, 0x44, 0x26, 0xa4, 0x15, 0xc6, 0x12, 0xd3,
0x98, 0x47, 0xf4, 0x0b, 0x68, 0x8f, 0xe3, 0x39, 0xbe, 0x9a, 0xa0, 0xe4, 0xe4, 0x1c, 0x0e, 0x06,
0x49, 0x94, 0x2d, 0xe2, 0xcf, 0xf9, 0x15, 0x46, 0x81, 0x77, 0xee, 0x5d, 0xb4, 0x59, 0x19, 0x52,
0x8c, 0x17, 0xe1, 0x02, 0xbf, 0xca, 0x78, 0x2c, 0xb3, 0x45, 0x50, 0x33, 0x8c, 0x12, 0x44, 0x7f,
0xf3, 0xa0, 0xfd, 0x2c, 0xe5, 0x0b, 0xd4, 0x11, 0x4f, 0xa1, 0xc5, 0x92, 0x9b, 0x72, 0xb8, 0xdc,
0x26, 0xef, 0xc2, 0xd1, 0x38, 0x5e, 0x61, 0x2a, 0x70, 0x14, 0xf3, 0xab, 0x08, 0xe7, 0x3a, 0x5c,
0x8b, 0x55, 0x50, 0x72, 0x06, 0xed, 0x01, 0x9f, 0x7d, 0x87, 0x2f, 0xd6, 0x4b, 0x0c, 0xea, 0x3a,
0x48, 0x01, 0xe4, 0xde, 0x69, 0xf8, 0x03, 0x06, 0xfe, 0xb9, 0x77, 0x71, 0xc8, 0x0a, 0xa0, 0xaa,
0xb7, 0xb1, 0xad, 0x97, 0xc2, 0xd1, 0x78, 0xb1, 0x4c, 0x52, 0xc9, 0x50, 0x2c, 0x93, 0x58, 0x20,
0xe9, 0x40, 0x7d, 0x94, 0xa6, 0x56, 0xae, 0x3a, 0xd2, 0x1f, 0xa1, 0xf3, 0x34, 0x4a, 0x66, 0xd7,
0x43, 0x2e, 0x39, 0xc3, 0xef, 0x33, 0x14, 0x92, 0x9c, 0x40, 0x43, 0x17, 0xce, 0xf2, 0x8c, 0xa1,
0x50, 0xfd, 0x78, 0x5b, 0x19, 0x63, 0x28, 0x54, 0xdf, 0xd7, 0xea, 0x7d, 0x66, 0x0c, 0x85, 0x4e,
0xa3, 0x70, 0x66, 0x54, 0xfb, 0xcc, 0x18, 0x84, 0x80, 0xff, 0x32, 0xc4, 0x1b, 0x2b, 0x55, 0x9f,
0xe9, 0x18, 0xee, 0x97, 0xf2, 0x5b, 0x99, 0xef, 0x40, 0x93, 0x25, 0x37, 0xe3, 0xa1, 0x08, 0xbc,
0xf3, 0xfa, 0x85, 0xcf, 0xac, 0xa5, 0x0b, 0xa2, 0xbf, 0x98, 0x72, 0xd5, 0xb4, 0xab, 0x00, 0xe8,
0x03, 0x68, 0xe8, 0xea, 0xa8, 0x57, 0x16, 0x77, 0xd5, 0x91, 0xfe, 0xea, 0xc1, 0xfd, 0x09, 0x7f,
0xa5, 0x65, 0x88, 0x3c, 0xcd, 0x25, 0xb4, 0x73, 0x50, 0xb3, 0x0f, 0x1e, 0xf5, 0xfa, 0xae, 0x7d,
0xfa, 0x5b, 0xfc, 0x02, 0x19, 0xc5, 0x32, 0x5d, 0xb3, 0xe2, 0xf2, 0xe9, 0xc7, 0x70, 0xb4, 0xe9,
0x54, 0x1a, 0xae, 0x71, 0xed, 0x2a, 0x7d, 0x8d, 0x6b, 0x55, 0x93, 0x15, 0x8f, 0x32, 0x53, 0x3f,
0x9f, 0x19, 0xe3, 0x71, 0xed, 0x43, 0x8f, 0x7e, 0x0d, 0x64, 0x90, 0x22, 0x97, 0xa8, 0x03, 0x4c,
0x50, 0x08, 0xfe, 0x2d, 0xee, 0xfe, 0x0a, 0xa6, 0xb2, 0xb5, 0x72, 0x65, 0xcf, 0xa0, 0x3d, 0x16,
0xb6, 0xb7, 0xf4, 0x97, 0x68, 0xb1, 0x02, 0xa0, 0x3d, 0x20, 0x43, 0x8c, 0x50, 0xa2, 0x1d, 0x87,
0x3d, 0xf1, 0xe9, 0xd4, 0x69, 0x79, 0x33, 0x97, 0x3c, 0x04, 0x5f, 0x4d, 0x82, 0x96, 0x72, 0xf0,
0xe8, 0xdd, 0xa2, 0x74, 0xf9, 0xd8, 0x31, 0x4d, 0xa0, 0xa1, 0x0b, 0x6a, 0xa7, 0xe7, 0x0d, 0x0f,
0xbc, 0xa5, 0xcd, 0x5c, 0xaa, 0x7a, 0x35, 0x55, 0x3e, 0x8f, 0x36, 0xd5, 0x67, 0xee, 0xad, 0x6f,
0x9b, 0x8a, 0x0e, 0x2d, 0xaa, 0xda, 0xf5, 0x85, 0xf2, 0x9a, 0x3b, 0xfa, 0xbc, 0xfb, 0xc9, 0x55,
0x1d, 0xff, 0x79, 0x36, 0xe5, 0xdd, 0xc2, 0x54, 0x2a, 0xa7, 0x96, 0x8c, 0x6b, 0x2c, 0x3b, 0x61,
0xb9, 0x4d, 0x1e, 0x42, 0x53, 0x67, 0x15, 0x81, 0xaf, 0x7b, 0xf7, 0xb8, 0xa2, 0x86, 0x59, 0xb7,
0x1a, 0x27, 0xdb, 0xe4, 0x0d, 0x33, 0x4e, 0xc6, 0x22, 0x23, 0xe8, 0x8c, 0xe3, 0x65, 0x26, 0x87,
0xf8, 0x5d, 0x18, 0x87, 0x32, 0x4c, 0x62, 0x11, 0x34, 0x75, 0xa8, 0x07, 0x65, 0x45, 0x1b, 0x0c,
0xb6, 0x75, 0x85, 0xfe, 0xea, 0xc1, 0x71, 0x05, 0xdc, 0xf1, 0x68, 0xa7, 0xb7, 0xb6, 0x5f, 0xef,
0x47, 0xd0, 0x7c, 0x16, 0x62, 0x34, 0x17, 0x41, 0x5d, 0x13, 0xbb, 0x3b, 0xd5, 0x68, 0x1a, 0xb3,
0x6c, 0xba, 0x82, 0x93, 0xdb, 0xfc, 0xb7, 0x8a, 0xe9, 0x02, 0x7c, 0x9d, 0x86, 0x0b, 0x9e, 0xae,
0xbf, 0xc0, 0xb5, 0xdd, 0xce, 0x25, 0x84, 0xf4, 0xe0, 0xde, 0xe7, 0x33, 0x53, 0x12, 0x23, 0xa2,
0x53, 0x88, 0x30, 0x0e, 0xe6, 0x08, 0xf4, 0x6f, 0x0f, 0x9a, 0xe6, 0x5c, 0xb4, 0x94, 0x57, 0xee,
0xde, 0x1e, 0x74, 0x5e, 0xa9, 0x69, 0x1f, 0xa2, 0x90, 0x61, 0xcc, 0x15, 0xd3, 0xf6, 0xdc, 0x16,
0x4e, 0x1e, 0x43, 0x4b, 0x63, 0x13, 0xbe, 0xdc, 0x7e, 0xbe, 0xc9, 0xd2, 0x77, 0x04, 0xb3, 0x87,
0x72, 0xbe, 0xca, 0xae, 0x37, 0xa5, 0x5b, 0xbb, 0xda, 0x38, 0x7d, 0x02, 0x87, 0x1b, 0x17, 0xee,
0xb4, 0x9b, 0x7e, 0xf1, 0xe0, 0xcc, 0x2d, 0x84, 0x8d, 0xd2, 0xee, 0x1f, 0x2d, 0x57, 0xf2, 0x5a,
0xa9, 0xe4, 0x9f, 0x00, 0x14, 0xd7, 0xed, 0x24, 0xef, 0x69, 0xb4, 0x12, 0x99, 0x72, 0x80, 0x17,
0xc9, 0x1c, 0xa7, 0x92, 0xcb, 0x4c, 0xa8, 0xe0, 0xcf, 0x13, 0x21, 0xdd, 0xf7, 0x54, 0x67, 0xbd,
0x17, 0x25, 0x97, 0xf9, 0x2c, 0x6b, 0x83, 0x7c, 0x00, 0xf7, 0xb4, 0x1e, 0x74, 0x5f, 0xf1, 0xb8,
0x32, 0x6a, 0xcc, 0xf9, 0xe9, 0x13, 0x38, 0x1c, 0x44, 0x99, 0x90, 0x98, 0xda, 0x2c, 0x3d, 0x68,
0xa8, 0x9c, 0xee, 0x97, 0xe1, 0xa4, 0xb8, 0x59, 0x48, 0x61, 0x86, 0xf2, 0xb4, 0xf3, 0xe7, 0x4d,
0xd7, 0xfb, 0xeb, 0xa6, 0xeb, 0xfd, 0x73, 0xd3, 0xf5, 0x7e, 0xfb, 0xb7, 0xfb, 0xce, 0x65, 0x53,
0xff, 0x1b, 0xf9, 0xf0, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb0, 0xe6, 0xa2, 0xa7, 0x9e, 0x08,
0x00, 0x00,
0x3d, 0xf1, 0xe9, 0xd4, 0x69, 0x79, 0x3d, 0x97, 0x3c, 0x04, 0x5f, 0x4d, 0x82, 0x96, 0x72, 0xf0,
0xe8, 0xed, 0xa2, 0x74, 0xf9, 0xd8, 0x31, 0x4d, 0xa0, 0xa1, 0x0b, 0x6a, 0xa7, 0xe7, 0x35, 0x0f,
0xbc, 0xa3, 0xcd, 0x5c, 0xaa, 0x7a, 0x35, 0x55, 0x3e, 0x8f, 0x36, 0xd5, 0x27, 0xee, 0xad, 0xff,
0x35, 0x15, 0x1d, 0x5a, 0x54, 0xb5, 0xeb, 0x73, 0xe5, 0x35, 0x77, 0xf4, 0x79, 0xf7, 0x93, 0xab,
0x3a, 0xfe, 0xf1, 0x6c, 0xca, 0x37, 0x0b, 0x53, 0xa9, 0x9c, 0x5a, 0x32, 0xae, 0xb1, 0xec, 0x84,
0xe5, 0x36, 0x79, 0x08, 0x4d, 0x9d, 0x55, 0x04, 0xbe, 0xee, 0xdd, 0xe3, 0x8a, 0x1a, 0x66, 0xdd,
0x6a, 0x9c, 0x6c, 0x93, 0x37, 0xcc, 0x38, 0x19, 0x8b, 0x8c, 0xa0, 0x33, 0x8e, 0x97, 0x99, 0x1c,
0xe2, 0x37, 0x61, 0x1c, 0xca, 0x30, 0x89, 0x45, 0xd0, 0xd4, 0xa1, 0x1e, 0x94, 0x15, 0x6d, 0x30,
0xd8, 0xd6, 0x15, 0xfa, 0xb3, 0x07, 0xc7, 0x15, 0x70, 0xc7, 0xa3, 0x9d, 0xde, 0xda, 0x7e, 0xbd,
0x1f, 0x40, 0xf3, 0x59, 0x88, 0xd1, 0x5c, 0x04, 0x75, 0x4d, 0xec, 0xee, 0x54, 0xa3, 0x69, 0xcc,
0xb2, 0xe9, 0x0a, 0x4e, 0xee, 0xf2, 0xdf, 0x29, 0xa6, 0x0b, 0xf0, 0x65, 0x1a, 0x2e, 0x78, 0xba,
0xfe, 0x0c, 0xd7, 0x76, 0x3b, 0x97, 0x10, 0xd2, 0x83, 0x7b, 0x9f, 0xce, 0x4c, 0x49, 0x8c, 0x88,
0x4e, 0x21, 0xc2, 0x38, 0x98, 0x23, 0xd0, 0x3f, 0x3d, 0x68, 0x9a, 0x73, 0xd1, 0x52, 0x5e, 0xb9,
0x7b, 0x7b, 0xd0, 0x79, 0xa9, 0xa6, 0x7d, 0x88, 0x42, 0x86, 0x31, 0x57, 0x4c, 0xdb, 0x73, 0x5b,
0x38, 0x79, 0x0c, 0x2d, 0x8d, 0x4d, 0xf8, 0x72, 0xfb, 0xf9, 0x26, 0x4b, 0xdf, 0x11, 0xcc, 0x1e,
0xca, 0xf9, 0x2a, 0xbb, 0xde, 0x94, 0x6e, 0xed, 0x6a, 0xe3, 0xf4, 0x09, 0x1c, 0x6e, 0x5c, 0x78,
0xa3, 0xdd, 0xf4, 0x93, 0x07, 0x67, 0x6e, 0x21, 0x6c, 0x94, 0x76, 0xff, 0x68, 0xb9, 0x92, 0xd7,
0x4a, 0x25, 0xff, 0x08, 0xa0, 0xb8, 0x6e, 0x27, 0x79, 0x4f, 0xa3, 0x95, 0xc8, 0xf4, 0x12, 0xce,
0xdc, 0x06, 0xfb, 0x7f, 0x22, 0x28, 0x07, 0x78, 0x9e, 0xcc, 0x71, 0x2a, 0xb9, 0xcc, 0x84, 0x62,
0x5c, 0x26, 0x42, 0xba, 0xce, 0x50, 0x67, 0xbd, 0x61, 0x25, 0x97, 0xf9, 0x56, 0xd0, 0x06, 0x79,
0x0f, 0xee, 0xe9, 0xa0, 0xe8, 0xfa, 0xe1, 0xb8, 0x32, 0xb4, 0xcc, 0xf9, 0xe9, 0x13, 0x38, 0x1c,
0x44, 0x99, 0x90, 0x98, 0xda, 0x2c, 0x3d, 0x68, 0xa8, 0x9c, 0xee, 0x37, 0xe6, 0xa4, 0xb8, 0x59,
0x48, 0x61, 0x86, 0xf2, 0xb4, 0xf3, 0xfb, 0x6d, 0xd7, 0xfb, 0xe3, 0xb6, 0xeb, 0xfd, 0x75, 0xdb,
0xf5, 0x7e, 0xf9, 0xbb, 0xfb, 0xd6, 0x55, 0x53, 0xff, 0xaf, 0x79, 0xff, 0xdf, 0x00, 0x00, 0x00,
0xff, 0xff, 0x41, 0x4c, 0x6a, 0xbc, 0xe8, 0x08, 0x00, 0x00,
}

View file

@ -106,6 +106,11 @@ message CreateInputDefinitionMessage {
InputDefinition Definition = 3;
}
message DeleteInputDefinitionMessage {
string Index = 1;
string Name = 2;
}
message NodeStatus {
string Host = 1;
string State = 2;

View file

@ -326,6 +326,12 @@ func (s *Server) ReceiveMessage(pb proto.Message) error {
return fmt.Errorf("Local Index not found: %s", obj.Index)
}
idx.CreateInputDefinition(obj.Definition)
case *internal.DeleteInputDefinitionMessage:
idx := s.Holder.Index(obj.Index)
err := idx.DeleteInputDefinition(obj.Name)
if err != nil {
return err
}
}
return nil
}