From d5ff9cef399fe09731b52945d97ce67a2d89383c Mon Sep 17 00:00:00 2001 From: ushabelgur Date: Mon, 15 Jul 2024 17:54:20 +0530 Subject: [PATCH 1/3] refactoring iri list machine events and added get events command to irictl --- broker/machinebroker/apiutils/apiutils.go | 16 - broker/machinebroker/server/event_list.go | 76 +- .../machinebroker/server/event_list_test.go | 19 +- iri/apis/machine/v1alpha1/api.pb.go | 725 ++++++------------ iri/apis/machine/v1alpha1/api.proto | 17 +- iri/testing/machine/fake.go | 21 +- .../irictlmachine/get/event/event.go | 84 ++ .../irictl-machine/irictlmachine/get/get.go | 2 + irictl-machine/tableconverters/event.go | 67 ++ poollet/machinepoollet/mem/mem.go | 29 +- poollet/machinepoollet/mem/mem_test.go | 31 +- 11 files changed, 479 insertions(+), 608 deletions(-) create mode 100644 irictl-machine/cmd/irictl-machine/irictlmachine/get/event/event.go create mode 100644 irictl-machine/tableconverters/event.go diff --git a/broker/machinebroker/apiutils/apiutils.go b/broker/machinebroker/apiutils/apiutils.go index 1bdb3d57e..7d037beb0 100644 --- a/broker/machinebroker/apiutils/apiutils.go +++ b/broker/machinebroker/apiutils/apiutils.go @@ -167,19 +167,3 @@ func IsManagedBy(o metav1.Object, manager string) bool { actual, ok := o.GetLabels()[machinebrokerv1alpha1.ManagerLabel] return ok && actual == manager } - -func GetIRIObjectMetadata(o metav1.Object) *irimeta.ObjectMetadata { - var deletedAt int64 - if !o.GetDeletionTimestamp().IsZero() { - deletedAt = o.GetDeletionTimestamp().UnixNano() - } - - return &irimeta.ObjectMetadata{ - Id: o.GetName(), - Annotations: o.GetAnnotations(), - Labels: o.GetLabels(), - Generation: o.GetGeneration(), - CreatedAt: o.GetCreationTimestamp().UnixNano(), - DeletedAt: deletedAt, - } -} diff --git a/broker/machinebroker/server/event_list.go b/broker/machinebroker/server/event_list.go index e9a78cdcc..479f011e3 100644 --- a/broker/machinebroker/server/event_list.go +++ b/broker/machinebroker/server/event_list.go @@ -12,35 +12,56 @@ import ( "k8s.io/apimachinery/pkg/labels" "sigs.k8s.io/controller-runtime/pkg/client" + computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1" "github.com/ironcore-dev/ironcore/broker/machinebroker/apiutils" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" ) -const InvolvedObjectName = "involvedObject.name" +const ( + InvolvedObjectKind = "Machine" + InvolvedObjectKindSelector = "involvedObject.kind" + InvolvedObjectAPIversionSelector = "involvedObject.apiVersion" +) -func (s *Server) listEvents(ctx context.Context, machineID string) ([]*iri.Event, error) { +func (s *Server) listEvents(ctx context.Context) ([]*iri.Event, error) { machineEventList := &v1.EventList{} selectorField := fields.Set{} - selectorField[InvolvedObjectName] = machineID + selectorField[InvolvedObjectKindSelector] = InvolvedObjectKind + selectorField[InvolvedObjectAPIversionSelector] = computev1alpha1.SchemeGroupVersion.String() if err := s.cluster.Client().List(ctx, machineEventList, client.InNamespace(s.cluster.Namespace()), client.MatchingFieldsSelector{Selector: selectorField.AsSelector()}, ); err != nil { - return nil, fmt.Errorf("error listing machine events: %w", err) + return nil, err } var iriEvents []*iri.Event + var eventTime int64 for _, machineEvent := range machineEventList.Items { - iriEvent := &iri.Event{ - Metadata: apiutils.GetIRIObjectMetadata(&machineEvent.ObjectMeta), - Spec: &iri.EventSpec{ - Reason: machineEvent.Reason, - Message: machineEvent.Message, - Type: machineEvent.Type, - EventTime: machineEvent.FirstTimestamp.Unix(), - }, + ironcoreMachine, err := s.getIronCoreMachine(ctx, machineEvent.InvolvedObject.Name) + if err != nil { + continue + } else { + machineObjectMetadata, err := apiutils.GetObjectMetadata(&ironcoreMachine.ObjectMeta) + if err != nil { + continue + } else { + eventTime = machineEvent.LastTimestamp.Unix() + if eventTime < 0 { + eventTime = machineEvent.FirstTimestamp.Unix() + } + iriEvent := &iri.Event{ + Spec: &iri.EventSpec{ + InvolvedObjectMeta: machineObjectMetadata, + Reason: machineEvent.Reason, + Message: machineEvent.Message, + Type: machineEvent.Type, + EventTime: eventTime, + }, + } + iriEvents = append(iriEvents, iriEvent) + } } - iriEvents = append(iriEvents, iriEvent) } return iriEvents, nil } @@ -55,10 +76,14 @@ func (s *Server) filterEvents(events []*iri.Event, filter *iri.EventFilter) []*i sel = labels.SelectorFromSet(filter.LabelSelector) ) for _, iriEvent := range events { - if !sel.Matches(labels.Set(iriEvent.Metadata.Labels)) { + if !sel.Matches(labels.Set(iriEvent.Spec.InvolvedObjectMeta.Labels)) { continue } - if (filter.EventsFromTime >= 0 && iriEvent.Spec.EventTime >= filter.EventsFromTime) && (filter.EventsToTime >= 0 && iriEvent.Spec.EventTime <= filter.EventsToTime) { + if filter.EventsFromTime > 0 && filter.EventsToTime > 0 { + if iriEvent.Spec.EventTime >= filter.EventsFromTime && iriEvent.Spec.EventTime <= filter.EventsToTime { + res = append(res, iriEvent) + } + } else { res = append(res, iriEvent) } @@ -67,27 +92,14 @@ func (s *Server) filterEvents(events []*iri.Event, filter *iri.EventFilter) []*i } func (s *Server) ListEvents(ctx context.Context, req *iri.ListEventsRequest) (*iri.ListEventsResponse, error) { - ironcoreMachineList, err := s.listIroncoreMachines(ctx) + iriEvents, err := s.listEvents(ctx) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing machine events : %w", err) } - var machineEvents []*iri.MachineEvents - for i := range ironcoreMachineList.Items { - ironcoreMachine := &ironcoreMachineList.Items[i] - iriEvents, err := s.listEvents(ctx, ironcoreMachine.Name) - if err != nil { - return nil, err - } - iriEvents = s.filterEvents(iriEvents, req.Filter) - ironcoreMachineMeta, err := apiutils.GetObjectMetadata(&ironcoreMachine.ObjectMeta) - if err != nil { - return nil, fmt.Errorf("error listing machine events: %w", err) - } - machineEvents = append(machineEvents, &iri.MachineEvents{InvolvedObjectMeta: ironcoreMachineMeta, Events: iriEvents}) - } + iriEvents = s.filterEvents(iriEvents, req.Filter) return &iri.ListEventsResponse{ - MachineEvents: machineEvents, + Events: iriEvents, }, nil } diff --git a/broker/machinebroker/server/event_list_test.go b/broker/machinebroker/server/event_list_test.go index f74797468..8de3abe1a 100644 --- a/broker/machinebroker/server/event_list_test.go +++ b/broker/machinebroker/server/event_list_test.go @@ -72,15 +72,14 @@ var _ = Describe("ListEvents", func() { Expect(err).NotTo(HaveOccurred()) - Expect(resp.MachineEvents).To(ConsistOf(SatisfyAll( - HaveField("InvolvedObjectMeta.Id", Equal(ironcoreMachine.Name)), - HaveField("Events", ConsistOf(SatisfyAll( - HaveField("Spec", SatisfyAll( - HaveField("Reason", Equal("testing")), - HaveField("Message", Equal("this is test event")), - HaveField("Type", Equal(corev1.EventTypeNormal)), - )), - ))), - ))) + Expect(resp.Events).To(ConsistOf( + HaveField("Spec", SatisfyAll( + HaveField("InvolvedObjectMeta.Id", Equal(ironcoreMachine.Name)), + HaveField("Reason", Equal("testing")), + HaveField("Message", Equal("this is test event")), + HaveField("Type", Equal(corev1.EventTypeNormal)), + )), + ), + ) }) }) diff --git a/iri/apis/machine/v1alpha1/api.pb.go b/iri/apis/machine/v1alpha1/api.pb.go index 2452f072d..4c813281e 100644 --- a/iri/apis/machine/v1alpha1/api.pb.go +++ b/iri/apis/machine/v1alpha1/api.pb.go @@ -837,10 +837,9 @@ func (m *MachineSpec) GetNetworkInterfaces() []*NetworkInterface { } type Event struct { - Metadata *v1alpha1.ObjectMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Spec *EventSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + Spec *EventSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Event) Reset() { *m = Event{} } @@ -875,13 +874,6 @@ func (m *Event) XXX_DiscardUnknown() { var xxx_messageInfo_Event proto.InternalMessageInfo -func (m *Event) GetMetadata() *v1alpha1.ObjectMetadata { - if m != nil { - return m.Metadata - } - return nil -} - func (m *Event) GetSpec() *EventSpec { if m != nil { return m.Spec @@ -890,12 +882,13 @@ func (m *Event) GetSpec() *EventSpec { } type EventSpec struct { - Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` - EventTime int64 `protobuf:"varint,4,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + InvolvedObjectMeta *v1alpha1.ObjectMetadata `protobuf:"bytes,1,opt,name=involved_object_meta,json=involvedObjectMeta,proto3" json:"involved_object_meta,omitempty"` + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + EventTime int64 `protobuf:"varint,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *EventSpec) Reset() { *m = EventSpec{} } @@ -930,6 +923,13 @@ func (m *EventSpec) XXX_DiscardUnknown() { var xxx_messageInfo_EventSpec proto.InternalMessageInfo +func (m *EventSpec) GetInvolvedObjectMeta() *v1alpha1.ObjectMetadata { + if m != nil { + return m.InvolvedObjectMeta + } + return nil +} + func (m *EventSpec) GetReason() string { if m != nil { return m.Reason @@ -1508,9 +1508,9 @@ func (m *ListEventsRequest) GetFilter() *EventFilter { } type ListEventsResponse struct { - MachineEvents []*MachineEvents `protobuf:"bytes,1,rep,name=machine_events,json=machineEvents,proto3" json:"machine_events,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ListEventsResponse) Reset() { *m = ListEventsResponse{} } @@ -1545,60 +1545,7 @@ func (m *ListEventsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ListEventsResponse proto.InternalMessageInfo -func (m *ListEventsResponse) GetMachineEvents() []*MachineEvents { - if m != nil { - return m.MachineEvents - } - return nil -} - -type MachineEvents struct { - InvolvedObjectMeta *v1alpha1.ObjectMetadata `protobuf:"bytes,1,opt,name=involved_object_meta,json=involvedObjectMeta,proto3" json:"involved_object_meta,omitempty"` - Events []*Event `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MachineEvents) Reset() { *m = MachineEvents{} } -func (*MachineEvents) ProtoMessage() {} -func (*MachineEvents) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{24} -} -func (m *MachineEvents) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MachineEvents) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MachineEvents.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MachineEvents) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineEvents.Merge(m, src) -} -func (m *MachineEvents) XXX_Size() int { - return m.Size() -} -func (m *MachineEvents) XXX_DiscardUnknown() { - xxx_messageInfo_MachineEvents.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineEvents proto.InternalMessageInfo - -func (m *MachineEvents) GetInvolvedObjectMeta() *v1alpha1.ObjectMetadata { - if m != nil { - return m.InvolvedObjectMeta - } - return nil -} - -func (m *MachineEvents) GetEvents() []*Event { +func (m *ListEventsResponse) GetEvents() []*Event { if m != nil { return m.Events } @@ -1614,7 +1561,7 @@ type CreateMachineRequest struct { func (m *CreateMachineRequest) Reset() { *m = CreateMachineRequest{} } func (*CreateMachineRequest) ProtoMessage() {} func (*CreateMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{25} + return fileDescriptor_00212fb1f9d3bf1c, []int{24} } func (m *CreateMachineRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1659,7 +1606,7 @@ type CreateMachineResponse struct { func (m *CreateMachineResponse) Reset() { *m = CreateMachineResponse{} } func (*CreateMachineResponse) ProtoMessage() {} func (*CreateMachineResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{26} + return fileDescriptor_00212fb1f9d3bf1c, []int{25} } func (m *CreateMachineResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1704,7 +1651,7 @@ type DeleteMachineRequest struct { func (m *DeleteMachineRequest) Reset() { *m = DeleteMachineRequest{} } func (*DeleteMachineRequest) ProtoMessage() {} func (*DeleteMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{27} + return fileDescriptor_00212fb1f9d3bf1c, []int{26} } func (m *DeleteMachineRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1748,7 +1695,7 @@ type DeleteMachineResponse struct { func (m *DeleteMachineResponse) Reset() { *m = DeleteMachineResponse{} } func (*DeleteMachineResponse) ProtoMessage() {} func (*DeleteMachineResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{28} + return fileDescriptor_00212fb1f9d3bf1c, []int{27} } func (m *DeleteMachineResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1787,7 +1734,7 @@ type UpdateMachineAnnotationsRequest struct { func (m *UpdateMachineAnnotationsRequest) Reset() { *m = UpdateMachineAnnotationsRequest{} } func (*UpdateMachineAnnotationsRequest) ProtoMessage() {} func (*UpdateMachineAnnotationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{29} + return fileDescriptor_00212fb1f9d3bf1c, []int{28} } func (m *UpdateMachineAnnotationsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1838,7 +1785,7 @@ type UpdateMachineAnnotationsResponse struct { func (m *UpdateMachineAnnotationsResponse) Reset() { *m = UpdateMachineAnnotationsResponse{} } func (*UpdateMachineAnnotationsResponse) ProtoMessage() {} func (*UpdateMachineAnnotationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{30} + return fileDescriptor_00212fb1f9d3bf1c, []int{29} } func (m *UpdateMachineAnnotationsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1877,7 +1824,7 @@ type UpdateMachinePowerRequest struct { func (m *UpdateMachinePowerRequest) Reset() { *m = UpdateMachinePowerRequest{} } func (*UpdateMachinePowerRequest) ProtoMessage() {} func (*UpdateMachinePowerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{31} + return fileDescriptor_00212fb1f9d3bf1c, []int{30} } func (m *UpdateMachinePowerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1928,7 +1875,7 @@ type UpdateMachinePowerResponse struct { func (m *UpdateMachinePowerResponse) Reset() { *m = UpdateMachinePowerResponse{} } func (*UpdateMachinePowerResponse) ProtoMessage() {} func (*UpdateMachinePowerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{32} + return fileDescriptor_00212fb1f9d3bf1c, []int{31} } func (m *UpdateMachinePowerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1967,7 +1914,7 @@ type AttachVolumeRequest struct { func (m *AttachVolumeRequest) Reset() { *m = AttachVolumeRequest{} } func (*AttachVolumeRequest) ProtoMessage() {} func (*AttachVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{33} + return fileDescriptor_00212fb1f9d3bf1c, []int{32} } func (m *AttachVolumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2018,7 +1965,7 @@ type AttachVolumeResponse struct { func (m *AttachVolumeResponse) Reset() { *m = AttachVolumeResponse{} } func (*AttachVolumeResponse) ProtoMessage() {} func (*AttachVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{34} + return fileDescriptor_00212fb1f9d3bf1c, []int{33} } func (m *AttachVolumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2057,7 +2004,7 @@ type DetachVolumeRequest struct { func (m *DetachVolumeRequest) Reset() { *m = DetachVolumeRequest{} } func (*DetachVolumeRequest) ProtoMessage() {} func (*DetachVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{35} + return fileDescriptor_00212fb1f9d3bf1c, []int{34} } func (m *DetachVolumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2108,7 +2055,7 @@ type DetachVolumeResponse struct { func (m *DetachVolumeResponse) Reset() { *m = DetachVolumeResponse{} } func (*DetachVolumeResponse) ProtoMessage() {} func (*DetachVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{36} + return fileDescriptor_00212fb1f9d3bf1c, []int{35} } func (m *DetachVolumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2147,7 +2094,7 @@ type AttachNetworkInterfaceRequest struct { func (m *AttachNetworkInterfaceRequest) Reset() { *m = AttachNetworkInterfaceRequest{} } func (*AttachNetworkInterfaceRequest) ProtoMessage() {} func (*AttachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{37} + return fileDescriptor_00212fb1f9d3bf1c, []int{36} } func (m *AttachNetworkInterfaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2198,7 +2145,7 @@ type AttachNetworkInterfaceResponse struct { func (m *AttachNetworkInterfaceResponse) Reset() { *m = AttachNetworkInterfaceResponse{} } func (*AttachNetworkInterfaceResponse) ProtoMessage() {} func (*AttachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{38} + return fileDescriptor_00212fb1f9d3bf1c, []int{37} } func (m *AttachNetworkInterfaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2237,7 +2184,7 @@ type DetachNetworkInterfaceRequest struct { func (m *DetachNetworkInterfaceRequest) Reset() { *m = DetachNetworkInterfaceRequest{} } func (*DetachNetworkInterfaceRequest) ProtoMessage() {} func (*DetachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{39} + return fileDescriptor_00212fb1f9d3bf1c, []int{38} } func (m *DetachNetworkInterfaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2288,7 +2235,7 @@ type DetachNetworkInterfaceResponse struct { func (m *DetachNetworkInterfaceResponse) Reset() { *m = DetachNetworkInterfaceResponse{} } func (*DetachNetworkInterfaceResponse) ProtoMessage() {} func (*DetachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{40} + return fileDescriptor_00212fb1f9d3bf1c, []int{39} } func (m *DetachNetworkInterfaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2325,7 +2272,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{41} + return fileDescriptor_00212fb1f9d3bf1c, []int{40} } func (m *StatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2363,7 +2310,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} func (*StatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{42} + return fileDescriptor_00212fb1f9d3bf1c, []int{41} } func (m *StatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2408,7 +2355,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{43} + return fileDescriptor_00212fb1f9d3bf1c, []int{42} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2453,7 +2400,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{44} + return fileDescriptor_00212fb1f9d3bf1c, []int{43} } func (m *ExecResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2526,7 +2473,6 @@ func init() { proto.RegisterType((*ListMachinesResponse)(nil), "machine.v1alpha1.ListMachinesResponse") proto.RegisterType((*ListEventsRequest)(nil), "machine.v1alpha1.ListEventsRequest") proto.RegisterType((*ListEventsResponse)(nil), "machine.v1alpha1.ListEventsResponse") - proto.RegisterType((*MachineEvents)(nil), "machine.v1alpha1.MachineEvents") proto.RegisterType((*CreateMachineRequest)(nil), "machine.v1alpha1.CreateMachineRequest") proto.RegisterType((*CreateMachineResponse)(nil), "machine.v1alpha1.CreateMachineResponse") proto.RegisterType((*DeleteMachineRequest)(nil), "machine.v1alpha1.DeleteMachineRequest") @@ -2553,138 +2499,137 @@ func init() { func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } var fileDescriptor_00212fb1f9d3bf1c = []byte{ - // 2094 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x73, 0x1b, 0x59, - 0x11, 0xf7, 0xc8, 0xb6, 0x62, 0xb5, 0x64, 0x59, 0x79, 0x76, 0x1c, 0x65, 0x82, 0x14, 0x65, 0x36, - 0x6c, 0x5c, 0x26, 0x91, 0x62, 0x85, 0xec, 0x2e, 0xa9, 0x5a, 0x0a, 0xc5, 0x96, 0x37, 0x26, 0xb6, - 0x1c, 0xc6, 0x8e, 0xc3, 0x52, 0x4b, 0x4d, 0x8d, 0x46, 0xcf, 0xf6, 0x10, 0x69, 0x46, 0x3b, 0x33, - 0xd2, 0x62, 0xf6, 0xb2, 0xdc, 0xb8, 0x50, 0xc0, 0x81, 0xaf, 0xc0, 0x85, 0x0b, 0x54, 0x71, 0xe4, - 0x03, 0xec, 0x91, 0x1b, 0x1c, 0xd9, 0x50, 0xc5, 0x81, 0x4f, 0x41, 0xbd, 0xf7, 0x7a, 0x46, 0x23, - 0x69, 0x46, 0x7f, 0x76, 0xa9, 0xe2, 0x36, 0xaf, 0xa7, 0xfb, 0xd7, 0xfd, 0xfa, 0xf5, 0xeb, 0x5f, - 0x8f, 0x04, 0x29, 0xbd, 0x6b, 0x96, 0xbb, 0x8e, 0xed, 0xd9, 0x24, 0xd7, 0xd1, 0x8d, 0x4b, 0xd3, - 0xa2, 0xe5, 0xfe, 0x8e, 0xde, 0xee, 0x5e, 0xea, 0x3b, 0xf2, 0xc3, 0x0b, 0xd3, 0xbb, 0xec, 0x35, - 0xcb, 0x86, 0xdd, 0xa9, 0x5c, 0xd8, 0x17, 0x76, 0x85, 0x2b, 0x36, 0x7b, 0xe7, 0x7c, 0xc5, 0x17, - 0xfc, 0x49, 0x00, 0xc8, 0xb5, 0x90, 0xba, 0xe9, 0xd8, 0x96, 0x61, 0x3b, 0xf4, 0x61, 0x8b, 0xf6, - 0x83, 0x45, 0xc5, 0x74, 0xcc, 0x8a, 0xde, 0x35, 0xdd, 0x4a, 0x87, 0x7a, 0x7a, 0xc5, 0xf7, 0x53, - 0x09, 0x62, 0x50, 0xfe, 0x9e, 0x00, 0x38, 0xb3, 0xdb, 0xbd, 0x0e, 0x3d, 0xe9, 0x52, 0x83, 0x6c, - 0x42, 0xb2, 0xe5, 0x98, 0x7d, 0xea, 0xe4, 0xa5, 0x92, 0xb4, 0x95, 0x52, 0x71, 0xc5, 0xe4, 0x97, - 0xba, 0xd5, 0x6a, 0xd3, 0x7c, 0x42, 0xc8, 0xc5, 0x8a, 0x1c, 0x02, 0xe8, 0x9e, 0xe7, 0x98, 0xcd, - 0x9e, 0x47, 0xdd, 0xfc, 0x62, 0x69, 0x71, 0x2b, 0x5d, 0x7d, 0x50, 0x1e, 0xdd, 0x57, 0x79, 0xe0, - 0xa1, 0x5c, 0x0b, 0xd4, 0xeb, 0x96, 0xe7, 0x5c, 0xa9, 0x21, 0x7b, 0x72, 0x04, 0x69, 0x97, 0x1a, - 0x0e, 0xf5, 0xb4, 0x96, 0xee, 0xe9, 0xf9, 0xa5, 0x19, 0xe0, 0x4e, 0xb8, 0xfe, 0x9e, 0xee, 0xe9, - 0x08, 0xe7, 0x06, 0x02, 0xf9, 0x43, 0x58, 0x1b, 0xf1, 0x46, 0x72, 0xb0, 0xf8, 0x86, 0x5e, 0xe1, - 0xe6, 0xd8, 0x23, 0xd9, 0x80, 0xe5, 0xbe, 0xde, 0xee, 0xf9, 0x1b, 0x13, 0x8b, 0xa7, 0x89, 0x0f, - 0x24, 0x66, 0x3e, 0x82, 0x3e, 0xcd, 0x3c, 0x13, 0x32, 0x57, 0xfe, 0x2a, 0xc1, 0xea, 0x91, 0x88, - 0x7c, 0xdf, 0x6c, 0x7b, 0xd4, 0x21, 0x59, 0x48, 0x98, 0x2d, 0x34, 0x4e, 0x98, 0x2d, 0xf2, 0x31, - 0x64, 0xdb, 0x7a, 0x93, 0xb6, 0x35, 0x97, 0xb6, 0xa9, 0xe1, 0xd9, 0x4e, 0x3e, 0xc1, 0x77, 0x5c, - 0x1d, 0xdf, 0xf1, 0x10, 0x50, 0xf9, 0x90, 0x59, 0x9d, 0xa0, 0x91, 0xd8, 0xf7, 0x6a, 0x3b, 0x2c, - 0x93, 0x7f, 0x00, 0x64, 0x5c, 0x69, 0x9e, 0xdd, 0x2b, 0xbf, 0x4a, 0x40, 0xba, 0xde, 0xa7, 0x96, - 0x17, 0x13, 0xfc, 0xeb, 0x98, 0xe0, 0x1f, 0x8d, 0x07, 0x1f, 0x82, 0x99, 0x1e, 0x3a, 0xd9, 0x82, - 0x1c, 0x65, 0x06, 0xae, 0x76, 0xee, 0xd8, 0x1d, 0xcd, 0x33, 0x3b, 0x34, 0xbf, 0x58, 0x92, 0xb6, - 0x16, 0xd5, 0xac, 0x90, 0xef, 0x3b, 0x76, 0xe7, 0xd4, 0xec, 0x50, 0x72, 0x0f, 0x50, 0xa2, 0x79, - 0xb6, 0xd0, 0x5b, 0xe2, 0x7a, 0x19, 0x21, 0x3d, 0xb5, 0x99, 0xd6, 0xff, 0x20, 0x15, 0x9f, 0x40, - 0x1e, 0xf3, 0xbf, 0xdb, 0xd6, 0x5d, 0x77, 0x57, 0xef, 0xea, 0x4d, 0xb3, 0x6d, 0x7a, 0x26, 0x75, - 0x49, 0x01, 0xc0, 0xe8, 0xf6, 0xb4, 0x8e, 0xd9, 0x6e, 0x9b, 0x2e, 0x87, 0x5b, 0x54, 0x53, 0x46, - 0xb7, 0x77, 0xc4, 0x05, 0xe4, 0x2e, 0x64, 0x3a, 0xb4, 0x63, 0x3b, 0x57, 0x5a, 0xf3, 0x8a, 0xdd, - 0x90, 0x04, 0x57, 0x48, 0x0b, 0xd9, 0x33, 0x26, 0x52, 0xfe, 0x24, 0xc1, 0x35, 0x84, 0x27, 0xdf, - 0x83, 0x15, 0x76, 0x51, 0x79, 0xf5, 0x33, 0xac, 0x74, 0xb5, 0x50, 0x66, 0x82, 0x41, 0x2e, 0x8f, - 0x9b, 0x3f, 0xa3, 0x86, 0x77, 0x84, 0x4a, 0x6a, 0xa0, 0x4e, 0x76, 0x60, 0xc9, 0xed, 0x52, 0x83, - 0x7b, 0xe0, 0x66, 0x31, 0x25, 0xc4, 0x6e, 0x8d, 0xca, 0x55, 0xc9, 0xfb, 0x90, 0x74, 0x3d, 0xdd, - 0xeb, 0xb9, 0x3c, 0xbf, 0xe9, 0xea, 0x9d, 0x78, 0x23, 0xae, 0xa6, 0xa2, 0xba, 0x72, 0x17, 0x52, - 0x07, 0x1d, 0xfd, 0x42, 0xb4, 0x8c, 0x0d, 0x58, 0x36, 0xd9, 0x02, 0x73, 0x29, 0x16, 0xca, 0x36, - 0xa4, 0xea, 0x9d, 0xae, 0x77, 0xb5, 0x67, 0xba, 0x6f, 0x58, 0x92, 0x5c, 0xf3, 0x17, 0x14, 0x73, - 0x80, 0x49, 0x62, 0x12, 0x91, 0x81, 0x5f, 0x2f, 0x41, 0x4e, 0x5c, 0xe9, 0x5d, 0xdb, 0xb2, 0xa8, - 0xe1, 0x99, 0xb6, 0x35, 0x77, 0x27, 0x52, 0x23, 0x3a, 0x51, 0x35, 0xae, 0x75, 0x0c, 0xfc, 0x4c, - 0xec, 0x47, 0x27, 0x51, 0xfd, 0x68, 0x16, 0xd0, 0x09, 0x5d, 0x89, 0x68, 0xb0, 0x46, 0x2d, 0xc3, - 0xb9, 0xea, 0x32, 0x4d, 0x01, 0xbc, 0xcc, 0x81, 0xdf, 0x9b, 0x01, 0xb8, 0x1e, 0x58, 0x0e, 0xc0, - 0xb3, 0x74, 0x48, 0xf8, 0xff, 0x6d, 0x7b, 0x72, 0x0d, 0xd6, 0x23, 0x82, 0x9c, 0xab, 0x73, 0xfe, - 0x45, 0x82, 0xa4, 0xd8, 0x39, 0x21, 0xb0, 0x64, 0xe9, 0x1d, 0xbf, 0xb6, 0xf8, 0x33, 0xaf, 0x0c, - 0xda, 0x37, 0x8d, 0xa0, 0x02, 0xc4, 0x8a, 0x3c, 0x05, 0xa0, 0xac, 0xe4, 0xb4, 0x96, 0xe9, 0xbe, - 0xe1, 0xad, 0x20, 0x5d, 0xbd, 0x1d, 0xd1, 0x8d, 0xfc, 0xb2, 0x54, 0x53, 0x34, 0xa8, 0xd0, 0x67, - 0x00, 0x46, 0x90, 0xe5, 0xfc, 0x32, 0xb7, 0x55, 0xa6, 0x9f, 0x87, 0x1a, 0xb2, 0x52, 0xfe, 0x23, - 0x41, 0xae, 0x41, 0xbd, 0xcf, 0x6c, 0xe7, 0xcd, 0x81, 0xe5, 0x51, 0xe7, 0x5c, 0x37, 0xa2, 0x37, - 0x50, 0x00, 0xb0, 0x84, 0x9e, 0x66, 0xb6, 0x70, 0x13, 0x29, 0x94, 0x1c, 0xb4, 0x58, 0xaa, 0xcc, - 0xae, 0x28, 0xe1, 0x94, 0xca, 0x1e, 0x47, 0x6a, 0x3b, 0xb6, 0x0c, 0x47, 0x9d, 0x4f, 0xaa, 0xed, - 0x6f, 0x58, 0x25, 0xca, 0x9f, 0x13, 0x90, 0x0e, 0x75, 0x14, 0xf2, 0x10, 0x96, 0xbb, 0xf6, 0x67, - 0x78, 0x5b, 0xb3, 0xd5, 0x9b, 0xe3, 0xd1, 0xbd, 0x64, 0xaf, 0x55, 0xa1, 0x45, 0x76, 0xfc, 0xa6, - 0x91, 0x88, 0x3b, 0xa6, 0xa0, 0xc1, 0x60, 0x47, 0x61, 0xb1, 0x18, 0xac, 0xfd, 0xf2, 0x66, 0x95, - 0x52, 0xc5, 0x82, 0xbc, 0x03, 0xab, 0xe6, 0x85, 0x65, 0x0e, 0xee, 0xd2, 0x12, 0xaf, 0xa6, 0x8c, - 0x2f, 0xe4, 0x57, 0xae, 0x0a, 0xd7, 0xfa, 0xfc, 0xe4, 0x5c, 0xbc, 0x6a, 0xf9, 0xb8, 0xa3, 0x55, - 0x7d, 0x45, 0xf2, 0x23, 0x20, 0xc1, 0x21, 0xf9, 0x09, 0x75, 0xf3, 0x49, 0x6e, 0xae, 0x4c, 0xcf, - 0xbd, 0x7a, 0xdd, 0x1a, 0x91, 0xb8, 0x8a, 0x0b, 0xcb, 0x9c, 0x0a, 0xbf, 0x49, 0x9b, 0xaf, 0x0c, - 0xb5, 0xf9, 0xdb, 0x31, 0x64, 0x3b, 0x68, 0xf2, 0x4a, 0x17, 0x52, 0x81, 0x88, 0x5d, 0x1d, 0x87, - 0xea, 0xae, 0x6d, 0xf9, 0x4d, 0x55, 0xac, 0x48, 0x1e, 0xae, 0x75, 0xa8, 0xeb, 0xfa, 0x07, 0x92, - 0x52, 0xfd, 0x25, 0xab, 0x5f, 0xef, 0xaa, 0x4b, 0x31, 0xe9, 0xfc, 0x99, 0xd5, 0x2f, 0x67, 0xd8, - 0x30, 0xe7, 0xa6, 0xb8, 0x84, 0x11, 0xae, 0xf2, 0x87, 0x44, 0x30, 0xf8, 0x08, 0xde, 0x20, 0x15, - 0x58, 0xb7, 0x9b, 0x2e, 0x75, 0xfa, 0xb4, 0xa5, 0x5d, 0x50, 0x8b, 0x3a, 0x3a, 0xbf, 0x66, 0x82, - 0x08, 0x88, 0xff, 0xea, 0xa3, 0xe0, 0x0d, 0xf9, 0x2e, 0x2c, 0x33, 0xaa, 0x11, 0xd1, 0x64, 0xab, - 0xc5, 0x89, 0xc4, 0x44, 0x55, 0xa1, 0x4c, 0x6e, 0x43, 0x8a, 0x97, 0x8a, 0xe6, 0xd0, 0x73, 0x0c, - 0x78, 0x85, 0x0b, 0x54, 0x7a, 0x4e, 0x3e, 0x18, 0xd4, 0x80, 0xb8, 0x40, 0xc5, 0xd8, 0xb9, 0x52, - 0x90, 0x5d, 0x50, 0x09, 0xaf, 0x23, 0x2b, 0x41, 0x14, 0xd2, 0xd6, 0xf4, 0x4a, 0x40, 0xb8, 0x88, - 0x7a, 0xb0, 0x21, 0x13, 0xf6, 0x18, 0xd7, 0xec, 0x22, 0xe9, 0xee, 0xb1, 0x9f, 0xa1, 0x45, 0x9e, - 0xa1, 0xc2, 0xa4, 0xcd, 0xf8, 0x09, 0x52, 0x7e, 0x2f, 0xc1, 0x66, 0x74, 0x78, 0x73, 0xf9, 0xfe, - 0x70, 0xd8, 0xf7, 0xfd, 0xd9, 0x72, 0x10, 0x1c, 0x13, 0xf6, 0xb7, 0xa5, 0xa0, 0xbf, 0x29, 0x0e, - 0x64, 0xc2, 0x03, 0x56, 0x64, 0x30, 0x0d, 0xc8, 0x18, 0xa1, 0xc1, 0x0b, 0x2f, 0xc0, 0x76, 0x6c, - 0x65, 0x8c, 0x8d, 0x6a, 0xea, 0x90, 0xbd, 0xd2, 0x03, 0x12, 0xd6, 0xc4, 0x34, 0xec, 0xc2, 0x2a, - 0x02, 0x6a, 0xa2, 0xd9, 0x88, 0xeb, 0x59, 0x9c, 0xec, 0x46, 0xcd, 0x74, 0xc2, 0xe1, 0xcb, 0xb0, - 0xf2, 0x69, 0x4f, 0xb7, 0x3c, 0xd3, 0xbb, 0xc2, 0x81, 0x2f, 0x58, 0x2b, 0xdb, 0x90, 0x3d, 0xa3, - 0x8e, 0xcb, 0xb8, 0x83, 0x7e, 0xda, 0xa3, 0xae, 0xc7, 0xee, 0x5e, 0x5f, 0x48, 0x70, 0xbf, 0xfe, - 0x52, 0xf9, 0x29, 0xac, 0x05, 0xba, 0x6e, 0xd7, 0xb6, 0x5c, 0xca, 0xe6, 0x49, 0xa7, 0x67, 0xb1, - 0x7b, 0xa7, 0x85, 0x32, 0x94, 0x46, 0x59, 0x83, 0x25, 0xea, 0x3e, 0xac, 0xf9, 0x2a, 0x3e, 0xae, - 0x38, 0xbe, 0x2c, 0x8a, 0x11, 0x53, 0x69, 0xc0, 0xfa, 0xa1, 0xe9, 0x7a, 0xb8, 0x11, 0xd7, 0x8f, - 0xe7, 0x7d, 0x48, 0x9e, 0xf3, 0x59, 0x1d, 0xf7, 0x7e, 0x67, 0xca, 0xd7, 0x88, 0x8a, 0xea, 0xca, - 0x11, 0x6c, 0x0c, 0xe3, 0x61, 0xcc, 0x4f, 0x60, 0x05, 0x11, 0x58, 0x3a, 0xd9, 0xad, 0xb9, 0x15, - 0x0b, 0xa9, 0x06, 0xaa, 0xca, 0x0f, 0xe1, 0x3a, 0x83, 0xe3, 0xcd, 0x2b, 0x08, 0xee, 0xc9, 0x48, - 0x70, 0x85, 0x89, 0x5f, 0x1b, 0x41, 0x68, 0x9f, 0x00, 0x09, 0x63, 0x61, 0x60, 0xfb, 0x90, 0xf5, - 0x0f, 0x5b, 0x7c, 0x31, 0x60, 0x78, 0xf1, 0x3b, 0x46, 0x00, 0xbf, 0x46, 0xc4, 0x52, 0xf9, 0xdd, - 0xe0, 0x4b, 0x4f, 0x48, 0xc8, 0x31, 0x6c, 0x98, 0x56, 0xdf, 0x6e, 0xb3, 0x86, 0x67, 0xf3, 0x56, - 0xae, 0xb1, 0x0e, 0x3e, 0x5b, 0xb3, 0x27, 0xbe, 0xe9, 0x40, 0x4e, 0x2a, 0x90, 0xc4, 0x10, 0xc5, - 0x57, 0xd6, 0xcd, 0x98, 0x7d, 0xab, 0xa8, 0xa6, 0xbc, 0x80, 0x8d, 0x5d, 0x87, 0xea, 0x1e, 0xf5, - 0x13, 0x8b, 0x09, 0x7c, 0x0c, 0xd7, 0xd0, 0x12, 0x83, 0x99, 0x70, 0x16, 0xbe, 0xa6, 0x72, 0x08, - 0x37, 0x46, 0xc0, 0x30, 0x83, 0x5f, 0x0b, 0xed, 0x09, 0x6c, 0xec, 0xd1, 0x36, 0x1d, 0x0b, 0xad, - 0x00, 0xe0, 0x1f, 0x47, 0xf0, 0xa5, 0x99, 0x42, 0xc9, 0x41, 0x4b, 0xb9, 0x09, 0x37, 0x46, 0xcc, - 0x44, 0x10, 0xca, 0xbf, 0x25, 0xb8, 0xf3, 0xaa, 0xdb, 0x1a, 0x84, 0x57, 0xb3, 0x2c, 0xdb, 0xe3, - 0x44, 0xe2, 0xce, 0x86, 0x4d, 0x5a, 0x90, 0xd6, 0x07, 0x46, 0x98, 0xe3, 0x67, 0xe3, 0x7b, 0x99, - 0xe2, 0xa6, 0x1c, 0x12, 0x89, 0x89, 0x2b, 0x0c, 0x2b, 0x7f, 0x1f, 0x72, 0xa3, 0x0a, 0x73, 0xcd, - 0x5c, 0x0a, 0x94, 0xe2, 0x03, 0xc0, 0x64, 0x98, 0x70, 0x6b, 0x48, 0x47, 0x4c, 0x5d, 0xb3, 0x65, - 0x21, 0x98, 0xe1, 0x12, 0xb3, 0xcc, 0x70, 0xca, 0xb7, 0x40, 0x8e, 0x72, 0x85, 0x81, 0x9c, 0xc3, - 0x7a, 0xcd, 0xf3, 0x74, 0xe3, 0x12, 0x07, 0xab, 0xd9, 0x42, 0x78, 0x04, 0x49, 0x41, 0xbb, 0xd8, - 0xdf, 0xe3, 0x07, 0x35, 0xd4, 0x53, 0x36, 0x61, 0x63, 0xd8, 0x0f, 0xfa, 0x7f, 0x0e, 0xeb, 0x7b, - 0x74, 0x6e, 0xff, 0x3e, 0xf3, 0x24, 0x06, 0xcc, 0xc3, 0x3c, 0x0c, 0x23, 0xa1, 0x87, 0xdf, 0x48, - 0x50, 0x10, 0xae, 0xc7, 0x86, 0xbf, 0xd9, 0x9c, 0x1d, 0xc3, 0xf5, 0xb1, 0xc1, 0x02, 0xf7, 0x3d, - 0xcb, 0x84, 0x99, 0x1b, 0x9d, 0x28, 0x94, 0x12, 0x14, 0xe3, 0x02, 0xc2, 0x98, 0x55, 0x28, 0x88, - 0xbd, 0x7c, 0xcd, 0x90, 0xa3, 0xf2, 0x53, 0x82, 0x62, 0x1c, 0x26, 0x7a, 0x5d, 0x83, 0x55, 0x9c, - 0x82, 0x84, 0x17, 0xe5, 0x12, 0xb2, 0xbe, 0x00, 0x3b, 0xc9, 0x19, 0x6c, 0x0c, 0x11, 0xaf, 0x86, - 0xbf, 0x4c, 0x88, 0x8e, 0x7c, 0x6f, 0x32, 0xff, 0x22, 0x16, 0xe9, 0x8c, 0xc9, 0x94, 0x07, 0x90, - 0xae, 0xff, 0x9c, 0x1a, 0x33, 0xf6, 0x98, 0x12, 0x64, 0x84, 0x36, 0x46, 0x95, 0x83, 0xc5, 0x9e, - 0xd3, 0xf6, 0x6f, 0x67, 0xcf, 0x69, 0x6f, 0xdf, 0x83, 0x65, 0x5e, 0xe7, 0x24, 0x03, 0x2b, 0x2f, - 0x8f, 0x5f, 0xd7, 0x55, 0xed, 0xb8, 0x91, 0x5b, 0x20, 0xab, 0x90, 0xc2, 0xd5, 0xfe, 0x7e, 0x4e, - 0xda, 0x7e, 0x0f, 0xd2, 0xa1, 0xf1, 0x8b, 0x10, 0xc8, 0x9e, 0x1d, 0x1f, 0xbe, 0x3a, 0xaa, 0x6b, - 0x2f, 0xeb, 0x8d, 0xbd, 0x83, 0xc6, 0x47, 0xb9, 0x05, 0xb2, 0x0e, 0x6b, 0x28, 0xab, 0x9d, 0x9e, - 0xd6, 0x76, 0x9f, 0xd7, 0xf7, 0x72, 0xd2, 0xf6, 0x19, 0xdc, 0x88, 0x1c, 0x9d, 0x48, 0x01, 0x6e, - 0x35, 0xea, 0xa7, 0xaf, 0x8f, 0xd5, 0x17, 0xda, 0x41, 0xe3, 0xb4, 0xae, 0xee, 0xd7, 0x76, 0xc3, - 0x60, 0x45, 0x90, 0xc7, 0x5f, 0x87, 0x70, 0xbf, 0x90, 0x82, 0x09, 0x4b, 0xe0, 0xad, 0xc3, 0xda, - 0x51, 0x6d, 0xf7, 0xf9, 0x41, 0x63, 0x24, 0x24, 0x5f, 0xa8, 0xbe, 0x6a, 0x34, 0x98, 0x50, 0x22, - 0x37, 0xe0, 0xba, 0x2f, 0x3c, 0x79, 0x75, 0xc2, 0x94, 0xeb, 0x7b, 0xb9, 0x04, 0xd9, 0x04, 0xe2, - 0x8b, 0x4f, 0xeb, 0xea, 0xd1, 0x41, 0xa3, 0x76, 0x5a, 0xdf, 0xcb, 0x2d, 0x92, 0x9b, 0xb0, 0x3e, - 0x2a, 0x67, 0x38, 0x4b, 0xd5, 0x3f, 0x02, 0x64, 0xfd, 0xce, 0x2d, 0xe6, 0x10, 0xf2, 0x12, 0xae, - 0xe1, 0x2c, 0x42, 0x4a, 0x11, 0xf7, 0x7c, 0x68, 0x4c, 0x92, 0xef, 0x4e, 0xd0, 0xc0, 0x32, 0x5b, - 0x20, 0x1f, 0x03, 0x0c, 0x78, 0x9e, 0xbc, 0x33, 0x6e, 0x32, 0x36, 0x51, 0xc8, 0xf7, 0x26, 0x2b, - 0x05, 0xd0, 0x1a, 0x64, 0xc2, 0xd3, 0x0d, 0xf9, 0x76, 0xb4, 0xdd, 0xc8, 0x34, 0x25, 0xbf, 0x3b, - 0x4d, 0x2d, 0x70, 0xd0, 0x84, 0xd5, 0x21, 0x92, 0x25, 0x11, 0xa6, 0x51, 0x94, 0x2e, 0xdf, 0x9f, - 0xaa, 0x17, 0xf6, 0x31, 0xc4, 0xa1, 0x51, 0x3e, 0xa2, 0xb8, 0x39, 0xca, 0x47, 0x34, 0x19, 0x2f, - 0x90, 0x5f, 0x4a, 0x90, 0x8f, 0xa3, 0x29, 0xb2, 0x33, 0x37, 0xa7, 0xca, 0xd5, 0x79, 0x4c, 0xf0, - 0xde, 0xda, 0x40, 0xc6, 0xa9, 0x89, 0x7c, 0x67, 0x0a, 0x52, 0x98, 0x2b, 0xe5, 0x07, 0xb3, 0x29, - 0xa3, 0x43, 0x0d, 0x32, 0x61, 0x16, 0x8a, 0xaa, 0x8e, 0x08, 0x36, 0x8c, 0xaa, 0x8e, 0x48, 0x32, - 0xe3, 0xe5, 0x17, 0x26, 0xa1, 0x28, 0x07, 0x11, 0x74, 0x27, 0xbf, 0x3b, 0x4d, 0x2d, 0x70, 0xf0, - 0x39, 0x6c, 0x46, 0x73, 0x07, 0xa9, 0xc4, 0x05, 0x19, 0xc3, 0x21, 0xf2, 0xa3, 0xd9, 0x0d, 0x30, - 0x7d, 0x9f, 0xc3, 0x66, 0x34, 0x85, 0x44, 0x39, 0x9f, 0x48, 0x60, 0x51, 0xce, 0x27, 0xb3, 0x13, - 0x79, 0x01, 0x49, 0xfc, 0xfa, 0x8b, 0x18, 0xfc, 0x87, 0x78, 0x4b, 0x2e, 0xc5, 0x2b, 0x20, 0x58, - 0x1d, 0x96, 0x18, 0x83, 0x90, 0xa8, 0x0f, 0x93, 0x01, 0x0f, 0xc9, 0xc5, 0xb8, 0xd7, 0x02, 0xe6, - 0xd9, 0x8f, 0xbf, 0xfc, 0xaa, 0x28, 0xfd, 0xe3, 0xab, 0xe2, 0xc2, 0x17, 0x6f, 0x8b, 0xd2, 0x97, - 0x6f, 0x8b, 0xd2, 0xdf, 0xde, 0x16, 0xa5, 0x7f, 0xbe, 0x2d, 0x4a, 0xbf, 0xfd, 0x57, 0x71, 0xe1, - 0x27, 0x4f, 0xe7, 0xf8, 0xdf, 0x4f, 0xb8, 0x09, 0xfe, 0xfa, 0x6b, 0x26, 0xf9, 0xff, 0x7e, 0x8f, - 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x57, 0xb4, 0xdc, 0xa1, 0x88, 0x1c, 0x00, 0x00, + // 2068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x73, 0x1b, 0x59, + 0x11, 0xf7, 0xe8, 0xcb, 0x56, 0x4b, 0x96, 0x95, 0x67, 0xc7, 0x51, 0x26, 0x48, 0x51, 0x66, 0xc3, + 0xc6, 0x65, 0x12, 0x29, 0x56, 0xc8, 0x6e, 0x48, 0xd5, 0x52, 0x28, 0xb6, 0xbc, 0x31, 0xb1, 0xe5, + 0x30, 0x76, 0x1c, 0x96, 0x82, 0x9a, 0x1a, 0x8d, 0x9e, 0xed, 0x21, 0xf3, 0xa1, 0x9d, 0x19, 0x69, + 0x31, 0x7b, 0x59, 0x6e, 0x5c, 0x28, 0xb8, 0xf0, 0x2f, 0x70, 0xe1, 0x02, 0x55, 0x1c, 0xb9, 0x70, + 0xdb, 0x23, 0x37, 0x38, 0xb2, 0xa6, 0x8a, 0x03, 0x7f, 0x05, 0xf5, 0x3e, 0x66, 0x34, 0x92, 0x66, + 0xf4, 0xb1, 0x50, 0xc5, 0x4d, 0xaf, 0xa7, 0xfb, 0xd7, 0xfd, 0x7a, 0xba, 0xfb, 0xd7, 0x63, 0x43, + 0x56, 0xed, 0xe9, 0xb5, 0x9e, 0x63, 0x7b, 0x36, 0x2a, 0x9a, 0xaa, 0x76, 0xa9, 0x5b, 0xb8, 0x36, + 0xd8, 0x51, 0x8d, 0xde, 0xa5, 0xba, 0x23, 0x3e, 0xba, 0xd0, 0xbd, 0xcb, 0x7e, 0xa7, 0xa6, 0xd9, + 0x66, 0xfd, 0xc2, 0xbe, 0xb0, 0xeb, 0x54, 0xb1, 0xd3, 0x3f, 0xa7, 0x27, 0x7a, 0xa0, 0xbf, 0x18, + 0x80, 0xd8, 0x0c, 0xa9, 0xeb, 0x8e, 0x6d, 0x69, 0xb6, 0x83, 0x1f, 0x75, 0xf1, 0x20, 0x38, 0xd4, + 0x75, 0x47, 0xaf, 0xab, 0x3d, 0xdd, 0xad, 0x9b, 0xd8, 0x53, 0xeb, 0xbe, 0x9f, 0x7a, 0x10, 0x83, + 0xf4, 0xb7, 0x04, 0xc0, 0x99, 0x6d, 0xf4, 0x4d, 0x7c, 0xd2, 0xc3, 0x1a, 0xda, 0x84, 0x4c, 0xd7, + 0xd1, 0x07, 0xd8, 0x29, 0x09, 0x55, 0x61, 0x2b, 0x2b, 0xf3, 0x13, 0x91, 0x5f, 0xaa, 0x56, 0xd7, + 0xc0, 0xa5, 0x04, 0x93, 0xb3, 0x13, 0x3a, 0x04, 0x50, 0x3d, 0xcf, 0xd1, 0x3b, 0x7d, 0x0f, 0xbb, + 0xa5, 0x64, 0x35, 0xb9, 0x95, 0x6b, 0x3c, 0xac, 0x8d, 0xdf, 0xab, 0x36, 0xf4, 0x50, 0x6b, 0x06, + 0xea, 0x2d, 0xcb, 0x73, 0xae, 0xe4, 0x90, 0x3d, 0x3a, 0x82, 0x9c, 0x8b, 0x35, 0x07, 0x7b, 0x4a, + 0x57, 0xf5, 0xd4, 0x52, 0x6a, 0x0e, 0xb8, 0x13, 0xaa, 0xbf, 0xa7, 0x7a, 0x2a, 0x87, 0x73, 0x03, + 0x81, 0xf8, 0x11, 0xac, 0x8d, 0x79, 0x43, 0x45, 0x48, 0xbe, 0xc3, 0x57, 0xfc, 0x72, 0xe4, 0x27, + 0xda, 0x80, 0xf4, 0x40, 0x35, 0xfa, 0xfe, 0xc5, 0xd8, 0xe1, 0x79, 0xe2, 0x99, 0x40, 0xcc, 0xc7, + 0xd0, 0x67, 0x99, 0xe7, 0x43, 0xe6, 0xd2, 0x9f, 0x05, 0x58, 0x3d, 0x62, 0x91, 0xef, 0xeb, 0x86, + 0x87, 0x1d, 0x54, 0x80, 0x84, 0xde, 0xe5, 0xc6, 0x09, 0xbd, 0x8b, 0x3e, 0x81, 0x82, 0xa1, 0x76, + 0xb0, 0xa1, 0xb8, 0xd8, 0xc0, 0x9a, 0x67, 0x3b, 0xa5, 0x04, 0xbd, 0x71, 0x63, 0xf2, 0xc6, 0x23, + 0x40, 0xb5, 0x43, 0x62, 0x75, 0xc2, 0x8d, 0xd8, 0xbd, 0x57, 0x8d, 0xb0, 0x4c, 0xfc, 0x1e, 0xa0, + 0x49, 0xa5, 0x45, 0x6e, 0x2f, 0xfd, 0x32, 0x01, 0xb9, 0xd6, 0x00, 0x5b, 0x5e, 0x4c, 0xf0, 0x6f, + 0x63, 0x82, 0x7f, 0x3c, 0x19, 0x7c, 0x08, 0x66, 0x76, 0xe8, 0x68, 0x0b, 0x8a, 0x98, 0x18, 0xb8, + 0xca, 0xb9, 0x63, 0x9b, 0x8a, 0xa7, 0x9b, 0xb8, 0x94, 0xac, 0x0a, 0x5b, 0x49, 0xb9, 0xc0, 0xe4, + 0xfb, 0x8e, 0x6d, 0x9e, 0xea, 0x26, 0x46, 0xf7, 0x81, 0x4b, 0x14, 0xcf, 0x66, 0x7a, 0x29, 0xaa, + 0x97, 0x67, 0xd2, 0x53, 0x9b, 0x68, 0xfd, 0x0f, 0x52, 0xf1, 0x63, 0x28, 0xf1, 0xfc, 0xef, 0x1a, + 0xaa, 0xeb, 0xee, 0xaa, 0x3d, 0xb5, 0xa3, 0x1b, 0xba, 0xa7, 0x63, 0x17, 0x95, 0x01, 0xb4, 0x5e, + 0x5f, 0x31, 0x75, 0xc3, 0xd0, 0x5d, 0x0a, 0x97, 0x94, 0xb3, 0x5a, 0xaf, 0x7f, 0x44, 0x05, 0xe8, + 0x1e, 0xe4, 0x4d, 0x6c, 0xda, 0xce, 0x95, 0xd2, 0xb9, 0x22, 0x1d, 0x92, 0xa0, 0x0a, 0x39, 0x26, + 0x7b, 0x41, 0x44, 0xd2, 0x1f, 0x04, 0x58, 0xe6, 0xf0, 0xe8, 0x3b, 0xb0, 0x42, 0x1a, 0x95, 0x56, + 0x3f, 0xc1, 0xca, 0x35, 0xca, 0x35, 0x22, 0x18, 0xe6, 0xf2, 0xb8, 0xf3, 0x53, 0xac, 0x79, 0x47, + 0x5c, 0x49, 0x0e, 0xd4, 0xd1, 0x0e, 0xa4, 0xdc, 0x1e, 0xd6, 0xa8, 0x07, 0x6a, 0x16, 0x53, 0x42, + 0xa4, 0x6b, 0x64, 0xaa, 0x8a, 0x3e, 0x84, 0x8c, 0xeb, 0xa9, 0x5e, 0xdf, 0xa5, 0xf9, 0xcd, 0x35, + 0xee, 0xc6, 0x1b, 0x51, 0x35, 0x99, 0xab, 0x4b, 0xf7, 0x20, 0x7b, 0x60, 0xaa, 0x17, 0x6c, 0x64, + 0x6c, 0x40, 0x5a, 0x27, 0x07, 0x9e, 0x4b, 0x76, 0x90, 0xb6, 0x21, 0xdb, 0x32, 0x7b, 0xde, 0xd5, + 0x9e, 0xee, 0xbe, 0x23, 0x49, 0x72, 0xf5, 0x9f, 0x63, 0x9e, 0x03, 0x9e, 0x24, 0x22, 0x61, 0x19, + 0xf8, 0x55, 0x0a, 0x8a, 0xac, 0xa5, 0x77, 0x6d, 0xcb, 0xc2, 0x9a, 0xa7, 0xdb, 0xd6, 0xc2, 0x93, + 0x48, 0x8e, 0x98, 0x44, 0x8d, 0xb8, 0xd1, 0x31, 0xf4, 0x33, 0x75, 0x1e, 0x9d, 0x44, 0xcd, 0xa3, + 0x79, 0x40, 0xa7, 0x4c, 0x25, 0xa4, 0xc0, 0x1a, 0xb6, 0x34, 0xe7, 0xaa, 0x47, 0x34, 0x19, 0x70, + 0x9a, 0x02, 0x7f, 0x30, 0x07, 0x70, 0x2b, 0xb0, 0x1c, 0x82, 0x17, 0xf0, 0x88, 0xf0, 0xff, 0x3b, + 0xf6, 0xc4, 0x26, 0xac, 0x47, 0x04, 0xb9, 0xd0, 0xe4, 0xfc, 0x93, 0x00, 0x19, 0x76, 0x73, 0x84, + 0x20, 0x65, 0xa9, 0xa6, 0x5f, 0x5b, 0xf4, 0x37, 0xad, 0x0c, 0x3c, 0xd0, 0xb5, 0xa0, 0x02, 0xd8, + 0x09, 0x3d, 0x07, 0xc0, 0xa4, 0xe4, 0x94, 0xae, 0xee, 0xbe, 0xa3, 0xa3, 0x20, 0xd7, 0xb8, 0x13, + 0x31, 0x8d, 0xfc, 0xb2, 0x94, 0xb3, 0x38, 0xa8, 0xd0, 0x17, 0x00, 0x5a, 0x90, 0xe5, 0x52, 0x9a, + 0xda, 0x4a, 0xb3, 0xdf, 0x87, 0x1c, 0xb2, 0x92, 0xfe, 0x2d, 0x40, 0xb1, 0x8d, 0xbd, 0xcf, 0x6c, + 0xe7, 0xdd, 0x81, 0xe5, 0x61, 0xe7, 0x5c, 0xd5, 0xa2, 0x2f, 0x50, 0x06, 0xb0, 0x98, 0x9e, 0xa2, + 0x77, 0xf9, 0x25, 0xb2, 0x5c, 0x72, 0xd0, 0x25, 0xa9, 0xd2, 0x7b, 0xac, 0x84, 0xb3, 0x32, 0xf9, + 0x39, 0x56, 0xdb, 0xb1, 0x65, 0x38, 0xee, 0x7c, 0x5a, 0x6d, 0xff, 0x97, 0x55, 0x22, 0xfd, 0x31, + 0x01, 0xb9, 0xd0, 0x44, 0x41, 0x8f, 0x20, 0xdd, 0xb3, 0x3f, 0xe3, 0xdd, 0x5a, 0x68, 0xdc, 0x9a, + 0x8c, 0xee, 0x35, 0x79, 0x2c, 0x33, 0x2d, 0xb4, 0xe3, 0x0f, 0x8d, 0x44, 0xdc, 0x6b, 0x0a, 0x06, + 0x0c, 0x9f, 0x28, 0x24, 0x16, 0x8d, 0x8c, 0x5f, 0x3a, 0xac, 0xb2, 0x32, 0x3b, 0xa0, 0xf7, 0x60, + 0x55, 0xbf, 0xb0, 0xf4, 0x61, 0x2f, 0xa5, 0x68, 0x35, 0xe5, 0x7d, 0x21, 0x6d, 0xb9, 0x06, 0x2c, + 0x0f, 0xe8, 0x9b, 0x73, 0x79, 0xab, 0x95, 0xe2, 0x5e, 0xad, 0xec, 0x2b, 0xa2, 0x1f, 0x00, 0x0a, + 0x5e, 0x92, 0x9f, 0x50, 0xb7, 0x94, 0xa1, 0xe6, 0xd2, 0xec, 0xdc, 0xcb, 0x37, 0xac, 0x31, 0x89, + 0x2b, 0x3d, 0x83, 0x34, 0xa5, 0x42, 0x54, 0x1f, 0x99, 0xd5, 0x77, 0x62, 0x18, 0x73, 0x38, 0xa9, + 0xa5, 0xbf, 0x08, 0x90, 0x0d, 0x64, 0xe8, 0x18, 0x36, 0x74, 0x6b, 0x60, 0x1b, 0x03, 0xdc, 0x55, + 0x6c, 0xca, 0x07, 0x0a, 0xa1, 0x81, 0xf9, 0x18, 0x03, 0xf9, 0xa6, 0x43, 0x39, 0xe9, 0x28, 0x07, + 0xab, 0xae, 0x6d, 0xf9, 0x1d, 0xc5, 0x4e, 0xa8, 0x04, 0xcb, 0x26, 0x76, 0x5d, 0xf2, 0x9e, 0x58, + 0xd2, 0xfd, 0x23, 0x29, 0x6b, 0xef, 0xaa, 0xc7, 0x08, 0x37, 0x2b, 0xd3, 0xdf, 0xa4, 0xac, 0x29, + 0xf1, 0x32, 0x2a, 0x4e, 0xb3, 0x29, 0x4f, 0x25, 0x84, 0x87, 0xa5, 0xdf, 0x25, 0x82, 0x7d, 0x88, + 0xd1, 0x09, 0xaa, 0xc3, 0xba, 0xdd, 0x71, 0xb1, 0x43, 0xee, 0x71, 0x81, 0x2d, 0xec, 0xa8, 0xb4, + 0xfb, 0x18, 0x3f, 0x20, 0xff, 0xd1, 0xc7, 0xc1, 0x13, 0xf4, 0x6d, 0x48, 0x13, 0x06, 0x62, 0x55, + 0x53, 0x68, 0x54, 0xa6, 0xf2, 0x15, 0x96, 0x99, 0x32, 0xba, 0x03, 0x59, 0x5a, 0x41, 0x8a, 0x83, + 0xcf, 0xf9, 0x3d, 0x56, 0xa8, 0x40, 0xc6, 0xe7, 0xe8, 0xd9, 0xb0, 0x34, 0x58, 0x5f, 0x55, 0x62, + 0xd7, 0x4d, 0xc6, 0x81, 0x41, 0x81, 0xbc, 0x8d, 0x2c, 0x10, 0x56, 0x5f, 0x5b, 0xb3, 0x0b, 0x84, + 0xc3, 0x45, 0x94, 0x89, 0x0d, 0xf9, 0xb0, 0xc7, 0xb8, 0x19, 0x18, 0xc9, 0x82, 0x4f, 0xfc, 0x0c, + 0x25, 0x69, 0x86, 0xca, 0xd3, 0x2e, 0xe3, 0x27, 0x48, 0xfa, 0xad, 0x00, 0x9b, 0xd1, 0xe1, 0x2d, + 0xe4, 0xfb, 0xa3, 0x51, 0xdf, 0x0f, 0xe6, 0xcb, 0x41, 0xf0, 0x9a, 0xf8, 0xd8, 0x4b, 0x05, 0x63, + 0x4f, 0x72, 0x20, 0x1f, 0xde, 0xbb, 0x22, 0x83, 0x69, 0x43, 0x5e, 0x0b, 0xed, 0x63, 0xbc, 0xa5, + 0xb6, 0x63, 0x2b, 0x63, 0x62, 0x83, 0x93, 0x47, 0xec, 0xa5, 0x3e, 0xa0, 0xb0, 0x26, 0x4f, 0xc3, + 0x2e, 0xac, 0x72, 0x40, 0x85, 0xcd, 0x20, 0xd6, 0x6a, 0x95, 0xe9, 0x6e, 0xe4, 0xbc, 0x19, 0x0e, + 0x5f, 0x84, 0x95, 0x4f, 0xfb, 0xaa, 0xe5, 0xe9, 0xde, 0x15, 0xdf, 0x03, 0x83, 0xb3, 0xb4, 0x0d, + 0x85, 0x33, 0xec, 0xb8, 0x84, 0x52, 0xf0, 0xa7, 0x7d, 0xec, 0x7a, 0xa4, 0xf7, 0x06, 0x4c, 0xc2, + 0xef, 0xeb, 0x1f, 0xa5, 0x9f, 0xc0, 0x5a, 0xa0, 0xeb, 0xf6, 0x6c, 0xcb, 0xc5, 0x64, 0xcd, 0x74, + 0xfa, 0x16, 0xe9, 0x3b, 0x25, 0x94, 0xa1, 0x1c, 0x97, 0xb5, 0x49, 0xa2, 0x1e, 0xc0, 0x9a, 0xaf, + 0xe2, 0xe3, 0xb2, 0xd7, 0x57, 0xe0, 0x62, 0x8e, 0x29, 0xb5, 0x61, 0xfd, 0x50, 0x77, 0x3d, 0x7e, + 0x11, 0xd7, 0x8f, 0xe7, 0x43, 0xc8, 0x9c, 0xd3, 0x15, 0x9e, 0xdf, 0xfd, 0xee, 0x8c, 0x8f, 0x14, + 0x99, 0xab, 0x4b, 0x47, 0xb0, 0x31, 0x8a, 0xc7, 0x63, 0x7e, 0x0a, 0x2b, 0x1c, 0x81, 0xa4, 0x93, + 0x74, 0xcd, 0xed, 0x58, 0x48, 0x39, 0x50, 0x95, 0xbe, 0x0f, 0x37, 0x08, 0x1c, 0x9d, 0x86, 0x41, + 0x70, 0x4f, 0xc7, 0x82, 0x2b, 0x4f, 0xfd, 0x08, 0x09, 0x42, 0x6b, 0x01, 0x0a, 0x63, 0xf1, 0xc0, + 0xea, 0x90, 0x61, 0x1f, 0x10, 0x3c, 0xac, 0x5b, 0x31, 0x60, 0x32, 0x57, 0x93, 0x5e, 0xc1, 0xc6, + 0xae, 0x83, 0x55, 0x0f, 0xfb, 0xd1, 0xf2, 0xa8, 0x9e, 0xc0, 0x32, 0xb7, 0xe4, 0x61, 0x4d, 0xb9, + 0xa0, 0xaf, 0x29, 0x1d, 0xc2, 0xcd, 0x31, 0x30, 0x1e, 0xd6, 0xd7, 0x42, 0x7b, 0x0a, 0x1b, 0x7b, + 0xd8, 0xc0, 0x13, 0xa1, 0x95, 0x01, 0xfc, 0x82, 0x0e, 0xbe, 0xea, 0xb2, 0x5c, 0x72, 0xd0, 0x95, + 0x6e, 0xc1, 0xcd, 0x31, 0x33, 0x16, 0x84, 0xf4, 0x2f, 0x01, 0xee, 0xbe, 0xe9, 0x75, 0x87, 0xe1, + 0x35, 0x2d, 0xcb, 0xf6, 0xe8, 0x74, 0x76, 0xe7, 0xc3, 0x46, 0x5d, 0xc8, 0xa9, 0x43, 0x23, 0xfe, + 0xd5, 0xf8, 0x62, 0xf2, 0x2e, 0x33, 0xdc, 0xd4, 0x42, 0x22, 0xb6, 0xdd, 0x84, 0x61, 0xc5, 0xef, + 0x42, 0x71, 0x5c, 0x61, 0xa1, 0xfd, 0x46, 0x82, 0x6a, 0x7c, 0x00, 0x3c, 0x19, 0x3a, 0xdc, 0x1e, + 0xd1, 0x61, 0x1b, 0xce, 0x7c, 0x59, 0x08, 0xf6, 0xa5, 0xc4, 0x3c, 0xfb, 0x92, 0xf4, 0x0d, 0x10, + 0xa3, 0x5c, 0xf1, 0x40, 0xce, 0x61, 0xbd, 0xe9, 0x79, 0xaa, 0x76, 0xc9, 0x97, 0x98, 0xf9, 0x42, + 0x78, 0x0c, 0x19, 0xc6, 0x65, 0x7c, 0x68, 0xc6, 0x2f, 0x45, 0x5c, 0x4f, 0xda, 0x84, 0x8d, 0x51, + 0x3f, 0xdc, 0xff, 0x4b, 0x58, 0xdf, 0xc3, 0x0b, 0xfb, 0xf7, 0xc7, 0x79, 0x62, 0x38, 0xce, 0x89, + 0x87, 0x51, 0x24, 0xee, 0xe1, 0xd7, 0x02, 0x94, 0x99, 0xeb, 0x89, 0x45, 0x6b, 0x3e, 0x67, 0xc7, + 0x70, 0x63, 0x82, 0xad, 0xf9, 0xbd, 0xe7, 0xd9, 0xe6, 0x8a, 0xe3, 0x34, 0x2d, 0x55, 0xa1, 0x12, + 0x17, 0x10, 0x8f, 0x59, 0x86, 0x32, 0xbb, 0xcb, 0xd7, 0x0c, 0x39, 0x2a, 0x3f, 0x55, 0xa8, 0xc4, + 0x61, 0x72, 0xaf, 0x6b, 0xb0, 0xca, 0x57, 0x0b, 0xe6, 0x45, 0xba, 0x84, 0x82, 0x2f, 0xe0, 0x93, + 0xe4, 0x0c, 0x36, 0x46, 0xd8, 0x4c, 0xe1, 0x7f, 0x05, 0x60, 0xe3, 0xee, 0xfe, 0x74, 0x52, 0xe3, + 0x58, 0xc8, 0x9c, 0x90, 0x49, 0x0f, 0x21, 0xd7, 0xfa, 0x19, 0xd6, 0xe6, 0x9c, 0x31, 0x55, 0xc8, + 0x33, 0x6d, 0x1e, 0x55, 0x11, 0x92, 0x7d, 0xc7, 0xf0, 0xbb, 0xb3, 0xef, 0x18, 0xdb, 0xf7, 0x21, + 0x4d, 0xeb, 0x1c, 0xe5, 0x61, 0xe5, 0xf5, 0xf1, 0xdb, 0x96, 0xac, 0x1c, 0xb7, 0x8b, 0x4b, 0x68, + 0x15, 0xb2, 0xfc, 0xb4, 0xbf, 0x5f, 0x14, 0xb6, 0x3f, 0x80, 0x5c, 0x68, 0xa7, 0x41, 0x08, 0x0a, + 0x67, 0xc7, 0x87, 0x6f, 0x8e, 0x5a, 0xca, 0xeb, 0x56, 0x7b, 0xef, 0xa0, 0xfd, 0x71, 0x71, 0x09, + 0xad, 0xc3, 0x1a, 0x97, 0x35, 0x4f, 0x4f, 0x9b, 0xbb, 0x2f, 0x5b, 0x7b, 0x45, 0x61, 0xfb, 0x0c, + 0x6e, 0x46, 0xee, 0x23, 0xa8, 0x0c, 0xb7, 0xdb, 0xad, 0xd3, 0xb7, 0xc7, 0xf2, 0x2b, 0xe5, 0xa0, + 0x7d, 0xda, 0x92, 0xf7, 0x9b, 0xbb, 0x61, 0xb0, 0x0a, 0x88, 0x93, 0x8f, 0x43, 0xb8, 0x5f, 0x08, + 0xc1, 0xda, 0xc2, 0xf0, 0xd6, 0x61, 0xed, 0xa8, 0xb9, 0xfb, 0xf2, 0xa0, 0x3d, 0x16, 0x92, 0x2f, + 0x94, 0xdf, 0xb4, 0xdb, 0x44, 0x28, 0xa0, 0x9b, 0x70, 0xc3, 0x17, 0x9e, 0xbc, 0x39, 0x21, 0xca, + 0xad, 0xbd, 0x62, 0x02, 0x6d, 0x02, 0xf2, 0xc5, 0xa7, 0x2d, 0xf9, 0xe8, 0xa0, 0xdd, 0x3c, 0x6d, + 0xed, 0x15, 0x93, 0xe8, 0x16, 0xac, 0x8f, 0xcb, 0x09, 0x4e, 0xaa, 0xf1, 0x7b, 0x80, 0x82, 0x3f, + 0xb9, 0x19, 0xb9, 0xa3, 0xd7, 0xb0, 0xcc, 0x09, 0x1e, 0x55, 0x23, 0xfa, 0x7c, 0x64, 0xf7, 0x10, + 0xef, 0x4d, 0xd1, 0xe0, 0x65, 0xb6, 0x84, 0x3e, 0x01, 0x18, 0x92, 0x27, 0x7a, 0x6f, 0xd2, 0x64, + 0x82, 0xa6, 0xc5, 0xfb, 0xd3, 0x95, 0x02, 0x68, 0x05, 0xf2, 0xe1, 0x95, 0x01, 0x7d, 0x33, 0xda, + 0x6e, 0x6c, 0x45, 0x11, 0xdf, 0x9f, 0xa5, 0x16, 0x38, 0xe8, 0xc0, 0xea, 0x08, 0xc9, 0xa2, 0x08, + 0xd3, 0x28, 0x4a, 0x17, 0x1f, 0xcc, 0xd4, 0x0b, 0xfb, 0x18, 0xe1, 0xd0, 0x28, 0x1f, 0x51, 0xdc, + 0x1c, 0xe5, 0x23, 0x9a, 0x8c, 0x97, 0xd0, 0x2f, 0x04, 0x28, 0xc5, 0xd1, 0x14, 0xda, 0x59, 0x98, + 0x53, 0xc5, 0xc6, 0x22, 0x26, 0xbc, 0x6f, 0x6d, 0x40, 0x93, 0xd4, 0x84, 0xbe, 0x35, 0x03, 0x29, + 0xcc, 0x95, 0xe2, 0xc3, 0xf9, 0x94, 0xb9, 0x43, 0x05, 0xf2, 0x61, 0x16, 0x8a, 0xaa, 0x8e, 0x08, + 0x36, 0x8c, 0xaa, 0x8e, 0x48, 0x32, 0xa3, 0xe5, 0x17, 0x26, 0xa1, 0x28, 0x07, 0x11, 0x74, 0x27, + 0xbe, 0x3f, 0x4b, 0x2d, 0x70, 0xf0, 0x39, 0x6c, 0x46, 0x73, 0x07, 0xaa, 0xc7, 0x05, 0x19, 0xc3, + 0x21, 0xe2, 0xe3, 0xf9, 0x0d, 0x78, 0xfa, 0x3e, 0x87, 0xcd, 0x68, 0x0a, 0x89, 0x72, 0x3e, 0x95, + 0xc0, 0xa2, 0x9c, 0x4f, 0x67, 0x27, 0xf4, 0x0a, 0x32, 0xfc, 0x93, 0x2a, 0xe2, 0xfb, 0x61, 0x84, + 0xb7, 0xc4, 0x6a, 0xbc, 0x02, 0x07, 0x6b, 0x41, 0x8a, 0x30, 0x08, 0x8a, 0xda, 0xf6, 0x87, 0x3c, + 0x24, 0x56, 0xe2, 0x1e, 0x33, 0x98, 0x17, 0x3f, 0xfc, 0xf2, 0xab, 0x8a, 0xf0, 0xf7, 0xaf, 0x2a, + 0x4b, 0x5f, 0x5c, 0x57, 0x84, 0x2f, 0xaf, 0x2b, 0xc2, 0x5f, 0xaf, 0x2b, 0xc2, 0x3f, 0xae, 0x2b, + 0xc2, 0x6f, 0xfe, 0x59, 0x59, 0xfa, 0xd1, 0xf3, 0x05, 0xfe, 0xc7, 0xc6, 0xdc, 0x04, 0xff, 0x66, + 0xeb, 0x64, 0xe8, 0xff, 0xd8, 0x9e, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x55, 0x76, 0xa1, 0xa1, + 0xf4, 0x1b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3872,18 +3817,6 @@ func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.Metadata != nil { - { - size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintApi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -3910,27 +3843,39 @@ func (m *EventSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { if m.EventTime != 0 { i = encodeVarintApi(dAtA, i, uint64(m.EventTime)) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x28 } if len(m.Type) > 0 { i -= len(m.Type) copy(dAtA[i:], m.Type) i = encodeVarintApi(dAtA, i, uint64(len(m.Type))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } if len(m.Message) > 0 { i -= len(m.Message) copy(dAtA[i:], m.Message) i = encodeVarintApi(dAtA, i, uint64(len(m.Message))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Reason) > 0 { i -= len(m.Reason) copy(dAtA[i:], m.Reason) i = encodeVarintApi(dAtA, i, uint64(len(m.Reason))) i-- + dAtA[i] = 0x12 + } + if m.InvolvedObjectMeta != nil { + { + size, err := m.InvolvedObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -4369,43 +4314,6 @@ func (m *ListEventsResponse) MarshalTo(dAtA []byte) (int, error) { } func (m *ListEventsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.MachineEvents) > 0 { - for iNdEx := len(m.MachineEvents) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.MachineEvents[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintApi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *MachineEvents) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MachineEvents) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MachineEvents) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4421,20 +4329,8 @@ func (m *MachineEvents) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 - } - } - if m.InvolvedObjectMeta != nil { - { - size, err := m.InvolvedObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintApi(dAtA, i, uint64(size)) + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -5366,10 +5262,6 @@ func (m *Event) Size() (n int) { } var l int _ = l - if m.Metadata != nil { - l = m.Metadata.Size() - n += 1 + l + sovApi(uint64(l)) - } if m.Spec != nil { l = m.Spec.Size() n += 1 + l + sovApi(uint64(l)) @@ -5383,6 +5275,10 @@ func (m *EventSpec) Size() (n int) { } var l int _ = l + if m.InvolvedObjectMeta != nil { + l = m.InvolvedObjectMeta.Size() + n += 1 + l + sovApi(uint64(l)) + } l = len(m.Reason) if l > 0 { n += 1 + l + sovApi(uint64(l)) @@ -5588,25 +5484,6 @@ func (m *ListEventsResponse) Size() (n int) { } var l int _ = l - if len(m.MachineEvents) > 0 { - for _, e := range m.MachineEvents { - l = e.Size() - n += 1 + l + sovApi(uint64(l)) - } - } - return n -} - -func (m *MachineEvents) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.InvolvedObjectMeta != nil { - l = m.InvolvedObjectMeta.Size() - n += 1 + l + sovApi(uint64(l)) - } if len(m.Events) > 0 { for _, e := range m.Events { l = e.Size() @@ -6109,7 +5986,6 @@ func (this *Event) String() string { return "nil" } s := strings.Join([]string{`&Event{`, - `Metadata:` + strings.Replace(fmt.Sprintf("%v", this.Metadata), "ObjectMetadata", "v1alpha1.ObjectMetadata", 1) + `,`, `Spec:` + strings.Replace(this.Spec.String(), "EventSpec", "EventSpec", 1) + `,`, `}`, }, "") @@ -6120,6 +5996,7 @@ func (this *EventSpec) String() string { return "nil" } s := strings.Join([]string{`&EventSpec{`, + `InvolvedObjectMeta:` + strings.Replace(fmt.Sprintf("%v", this.InvolvedObjectMeta), "ObjectMetadata", "v1alpha1.ObjectMetadata", 1) + `,`, `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, `Message:` + fmt.Sprintf("%v", this.Message) + `,`, `Type:` + fmt.Sprintf("%v", this.Type) + `,`, @@ -6256,21 +6133,6 @@ func (this *ListEventsRequest) String() string { return s } func (this *ListEventsResponse) String() string { - if this == nil { - return "nil" - } - repeatedStringForMachineEvents := "[]*MachineEvents{" - for _, f := range this.MachineEvents { - repeatedStringForMachineEvents += strings.Replace(f.String(), "MachineEvents", "MachineEvents", 1) + "," - } - repeatedStringForMachineEvents += "}" - s := strings.Join([]string{`&ListEventsResponse{`, - `MachineEvents:` + repeatedStringForMachineEvents + `,`, - `}`, - }, "") - return s -} -func (this *MachineEvents) String() string { if this == nil { return "nil" } @@ -6279,8 +6141,7 @@ func (this *MachineEvents) String() string { repeatedStringForEvents += strings.Replace(f.String(), "Event", "Event", 1) + "," } repeatedStringForEvents += "}" - s := strings.Join([]string{`&MachineEvents{`, - `InvolvedObjectMeta:` + strings.Replace(fmt.Sprintf("%v", this.InvolvedObjectMeta), "ObjectMetadata", "v1alpha1.ObjectMetadata", 1) + `,`, + s := strings.Join([]string{`&ListEventsResponse{`, `Events:` + repeatedStringForEvents + `,`, `}`, }, "") @@ -8953,42 +8814,6 @@ func (m *Event) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Metadata == nil { - m.Metadata = &v1alpha1.ObjectMetadata{} - } - if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) @@ -9076,6 +8901,42 @@ func (m *EventSpec) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InvolvedObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InvolvedObjectMeta == nil { + m.InvolvedObjectMeta = &v1alpha1.ObjectMetadata{} + } + if err := m.InvolvedObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) } @@ -9107,7 +8968,7 @@ func (m *EventSpec) Unmarshal(dAtA []byte) error { } m.Reason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } @@ -9139,7 +9000,7 @@ func (m *EventSpec) Unmarshal(dAtA []byte) error { } m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } @@ -9171,7 +9032,7 @@ func (m *EventSpec) Unmarshal(dAtA []byte) error { } m.Type = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType) } @@ -10402,126 +10263,6 @@ func (m *ListEventsResponse) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MachineEvents", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MachineEvents = append(m.MachineEvents, &MachineEvents{}) - if err := m.MachineEvents[len(m.MachineEvents)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MachineEvents) 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 ErrIntOverflowApi - } - 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: MachineEvents: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MachineEvents: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InvolvedObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.InvolvedObjectMeta == nil { - m.InvolvedObjectMeta = &v1alpha1.ObjectMetadata{} - } - if err := m.InvolvedObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) } diff --git a/iri/apis/machine/v1alpha1/api.proto b/iri/apis/machine/v1alpha1/api.proto index 383897e70..13f49e51b 100644 --- a/iri/apis/machine/v1alpha1/api.proto +++ b/iri/apis/machine/v1alpha1/api.proto @@ -108,15 +108,15 @@ message MachineSpec { } message Event { - meta.v1alpha1.ObjectMetadata metadata = 1; EventSpec spec = 2; } message EventSpec { - string reason = 1; - string message = 2; - string type = 3; - int64 event_time = 4; + meta.v1alpha1.ObjectMetadata involved_object_meta = 1; + string reason = 2; + string message = 3; + string type = 4; + int64 event_time = 5; } message MachineStatus { @@ -193,12 +193,7 @@ message ListEventsRequest { } message ListEventsResponse { - repeated MachineEvents machine_events = 1; -} - -message MachineEvents { - meta.v1alpha1.ObjectMetadata involved_object_meta = 1; - repeated Event events = 2; + repeated Event events = 1; } message CreateMachineRequest { diff --git a/iri/testing/machine/fake.go b/iri/testing/machine/fake.go index afc17540f..b1514f83c 100644 --- a/iri/testing/machine/fake.go +++ b/iri/testing/machine/fake.go @@ -62,8 +62,8 @@ type FakeMachineClassStatus struct { iri.MachineClassStatus } -type FakeMachineEvents struct { - iri.MachineEvents +type FakeEvent struct { + iri.Event } type FakeRuntimeService struct { @@ -72,27 +72,28 @@ type FakeRuntimeService struct { Machines map[string]*FakeMachine MachineClassStatus map[string]*FakeMachineClassStatus GetExecURL func(req *iri.ExecRequest) string - MachineEvents map[string]*FakeMachineEvents + Events []*FakeEvent } // ListEvents implements machine.RuntimeService. func (r *FakeRuntimeService) ListEvents(ctx context.Context, req *iri.ListEventsRequest) (*iri.ListEventsResponse, error) { r.Lock() defer r.Unlock() - var machineEvents []*iri.MachineEvents - for _, m := range r.MachineEvents { - machineEvents = append(machineEvents, &m.MachineEvents) + var res []*iri.Event + for _, e := range r.Events { + event := e.Event + res = append(res, &event) } - return &iri.ListEventsResponse{MachineEvents: machineEvents}, nil + return &iri.ListEventsResponse{Events: res}, nil } func NewFakeRuntimeService() *FakeRuntimeService { return &FakeRuntimeService{ Machines: make(map[string]*FakeMachine), MachineClassStatus: make(map[string]*FakeMachineClassStatus), - MachineEvents: make(map[string]*FakeMachineEvents), + Events: []*FakeEvent{}, } } @@ -123,11 +124,11 @@ func (r *FakeRuntimeService) SetGetExecURL(f func(req *iri.ExecRequest) string) r.GetExecURL = f } -func (r *FakeRuntimeService) SetEvents(machineId string, events *FakeMachineEvents) { +func (r *FakeRuntimeService) SetEvents(events []*FakeEvent) { r.Lock() defer r.Unlock() - r.MachineEvents[machineId] = events + r.Events = events } func (r *FakeRuntimeService) Version(ctx context.Context, req *iri.VersionRequest) (*iri.VersionResponse, error) { diff --git a/irictl-machine/cmd/irictl-machine/irictlmachine/get/event/event.go b/irictl-machine/cmd/irictl-machine/irictlmachine/get/event/event.go new file mode 100644 index 000000000..7672c5d64 --- /dev/null +++ b/irictl-machine/cmd/irictl-machine/irictlmachine/get/event/event.go @@ -0,0 +1,84 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and IronCore contributors +// SPDX-License-Identifier: Apache-2.0 + +package event + +import ( + "context" + "fmt" + + iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" + "github.com/ironcore-dev/ironcore/irictl-machine/cmd/irictl-machine/irictlmachine/common" + clicommon "github.com/ironcore-dev/ironcore/irictl/cmd" + "github.com/ironcore-dev/ironcore/irictl/renderer" + "github.com/spf13/cobra" + "github.com/spf13/pflag" + ctrl "sigs.k8s.io/controller-runtime" +) + +type Options struct { + Labels map[string]string +} + +func (o *Options) AddFlags(fs *pflag.FlagSet) { + fs.StringToStringVarP(&o.Labels, "labels", "l", o.Labels, "Labels to filter the events by.") +} + +func Command(streams clicommon.Streams, clientFactory common.Factory) *cobra.Command { + var ( + opts Options + outputOpts = clientFactory.OutputOptions() + ) + + cmd := &cobra.Command{ + Use: "events", + RunE: func(cmd *cobra.Command, args []string) error { + ctx := cmd.Context() + log := ctrl.LoggerFrom(ctx) + + client, cleanup, err := clientFactory.Client() + if err != nil { + return err + } + defer func() { + if err := cleanup(); err != nil { + log.Error(err, "Error cleaning up") + } + }() + + render, err := outputOpts.Renderer("table") + if err != nil { + return err + } + + return Run(cmd.Context(), streams, client, render, opts) + }, + } + + outputOpts.AddFlags(cmd.Flags()) + opts.AddFlags(cmd.Flags()) + + return cmd +} + +func Run( + ctx context.Context, + streams clicommon.Streams, + client iri.MachineRuntimeClient, + render renderer.Renderer, + opts Options, +) error { + var filter *iri.EventFilter + if opts.Labels != nil { + filter = &iri.EventFilter{ + LabelSelector: opts.Labels, + } + } + + res, err := client.ListEvents(ctx, &iri.ListEventsRequest{Filter: filter}) + if err != nil { + return fmt.Errorf("error listing events: %w", err) + } + + return render.Render(res.Events, streams.Out) +} diff --git a/irictl-machine/cmd/irictl-machine/irictlmachine/get/get.go b/irictl-machine/cmd/irictl-machine/irictlmachine/get/get.go index 574ac6075..3fefb8f2a 100644 --- a/irictl-machine/cmd/irictl-machine/irictlmachine/get/get.go +++ b/irictl-machine/cmd/irictl-machine/irictlmachine/get/get.go @@ -5,6 +5,7 @@ package get import ( "github.com/ironcore-dev/ironcore/irictl-machine/cmd/irictl-machine/irictlmachine/common" + "github.com/ironcore-dev/ironcore/irictl-machine/cmd/irictl-machine/irictlmachine/get/event" "github.com/ironcore-dev/ironcore/irictl-machine/cmd/irictl-machine/irictlmachine/get/machine" "github.com/ironcore-dev/ironcore/irictl-machine/cmd/irictl-machine/irictlmachine/get/status" clicommon "github.com/ironcore-dev/ironcore/irictl/cmd" @@ -19,6 +20,7 @@ func Command(streams clicommon.Streams, clientFactory common.Factory) *cobra.Com cmd.AddCommand( machine.Command(streams, clientFactory), status.Command(streams, clientFactory), + event.Command(streams, clientFactory), ) return cmd diff --git a/irictl-machine/tableconverters/event.go b/irictl-machine/tableconverters/event.go new file mode 100644 index 000000000..0a6cdbe55 --- /dev/null +++ b/irictl-machine/tableconverters/event.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and IronCore contributors +// SPDX-License-Identifier: Apache-2.0 + +package tableconverters + +import ( + iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" + "github.com/ironcore-dev/ironcore/irictl/api" + "github.com/ironcore-dev/ironcore/irictl/tableconverter" + machinepoolletv1alpha1 "github.com/ironcore-dev/ironcore/poollet/machinepoollet/api/v1alpha1" +) + +const ( + RootMachineName = "downward-api.machinepoollet.ironcore.dev/root-machine-name" + RootMachineNamespace = "downward-api.machinepoollet.ironcore.dev/root-machine-namespace" +) + +var ( + eventHeaders = []api.Header{ + {Name: "InvolvedMachineName"}, + {Name: "Type"}, + {Name: "Reason"}, + {Name: "Message"}, + {Name: "RootMachineName"}, + {Name: "RootMachineNamespace"}, + } + + Events = tableconverter.Funcs[*iri.Event]{ + Headers: tableconverter.Headers(eventHeaders), + Rows: tableconverter.SingleRowFrom(func(event *iri.Event) (api.Row, error) { + return api.Row{ + event.Spec.GetInvolvedObjectMeta().Id, + event.Spec.Type, + event.Spec.Reason, + event.Spec.Message, + getRootMachineName(event.Spec.GetInvolvedObjectMeta().Labels), + getRootMachineNamespace(event.Spec.GetInvolvedObjectMeta().Labels), + }, nil + }), + } + + EventsSlice = tableconverter.SliceFuncs[*iri.Event](Events) +) + +func getRootMachineName(labels map[string]string) string { + var rootMachineName string + rootMachineName, ok := labels[RootMachineName] + if !ok { + return labels[machinepoolletv1alpha1.MachineNameLabel] + } + return rootMachineName +} +func getRootMachineNamespace(labels map[string]string) string { + var rootMachineNamespace string + rootMachineNamespace, ok := labels[RootMachineNamespace] + if !ok { + return labels[machinepoolletv1alpha1.MachineNamespaceLabel] + } + return rootMachineNamespace +} + +func init() { + RegistryBuilder.Register( + tableconverter.ToTagAndTypedAny[*iri.Event](Events), + tableconverter.ToTagAndTypedAny[[]*iri.Event](EventsSlice), + ) +} diff --git a/poollet/machinepoollet/mem/mem.go b/poollet/machinepoollet/mem/mem.go index ee9950e05..3f809d351 100644 --- a/poollet/machinepoollet/mem/mem.go +++ b/poollet/machinepoollet/mem/mem.go @@ -13,9 +13,7 @@ import ( "github.com/ironcore-dev/ironcore/iri/apis/machine" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" "github.com/ironcore-dev/ironcore/poollet/machinepoollet/api/v1alpha1" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" @@ -45,30 +43,21 @@ func (m *MachineEventMapper) relist(ctx context.Context, log logr.Logger) error } m.lastFetched = toEventFilterTime - - for _, machineEvent := range res.MachineEvents { - if involvedMachine, err := m.getMachine(ctx, machineEvent.InvolvedObjectMeta.GetLabels()); err == nil { - for _, event := range machineEvent.Events { - m.Eventf(involvedMachine, event.Spec.Type, event.Spec.Reason, event.Spec.Message) + for _, machineEvent := range res.Events { + if machineEvent.Spec.InvolvedObjectMeta.Labels != nil { + involvedMachine := &computev1alpha1.Machine{ + ObjectMeta: metav1.ObjectMeta{ + Name: machineEvent.Spec.InvolvedObjectMeta.Labels[v1alpha1.MachineNameLabel], + Namespace: machineEvent.Spec.InvolvedObjectMeta.Labels[v1alpha1.MachineNamespaceLabel], + }, } + m.Eventf(involvedMachine, machineEvent.Spec.Type, machineEvent.Spec.Reason, machineEvent.Spec.Message) } } return nil } -func (m *MachineEventMapper) getMachine(ctx context.Context, labels map[string]string) (*computev1alpha1.Machine, error) { - ironcoreMachine := &computev1alpha1.Machine{} - ironcoreMachineKey := client.ObjectKey{Namespace: labels[v1alpha1.MachineNamespaceLabel], Name: labels[v1alpha1.MachineNameLabel]} - if err := m.Client.Get(ctx, ironcoreMachineKey, ironcoreMachine); err != nil { - if !apierrors.IsNotFound(err) { - return nil, fmt.Errorf("error getting ironcore machine: %w", err) - } - return nil, status.Errorf(codes.NotFound, "machine %s not found", ironcoreMachineKey.Name) - } - return ironcoreMachine, nil -} - func (m *MachineEventMapper) Start(ctx context.Context) error { log := ctrl.LoggerFrom(ctx).WithName("mem") m.lastFetched = time.Now() diff --git a/poollet/machinepoollet/mem/mem_test.go b/poollet/machinepoollet/mem/mem_test.go index 9af805c18..e26664dbb 100644 --- a/poollet/machinepoollet/mem/mem_test.go +++ b/poollet/machinepoollet/mem/mem_test.go @@ -108,25 +108,22 @@ var _ = Describe("MachineEventMapper", func() { Eventually(srv).Should(SatisfyAll( HaveField("Machines", HaveLen(1)), )) - - By("setting an event for iri machine") _, iriMachine := GetSingleMapEntry(srv.Machines) - machineEvent := &fakemachine.FakeMachineEvents{ - MachineEvents: iri.MachineEvents{ - InvolvedObjectMeta: &v1alpha1.ObjectMetadata{ - Id: iriMachine.Metadata.Id, - Labels: iriMachine.Metadata.Labels, - }, - Events: []*iri.Event{{ - Spec: &iri.EventSpec{ - Reason: "testing", - Message: "this is test event", - Type: "Normal", - EventTime: time.Now().Unix(), - }}}, - }, + By("setting an event for iri machine") + eventList := []*fakemachine.FakeEvent{{ + Event: iri.Event{ + Spec: &iri.EventSpec{ + InvolvedObjectMeta: &v1alpha1.ObjectMetadata{ + Labels: iriMachine.Metadata.Labels, + }, + Reason: "testing", + Message: "this is test event", + Type: "Normal", + EventTime: time.Now().Unix(), + }}, + }, } - srv.SetEvents(iriMachine.Metadata.Id, machineEvent) + srv.SetEvents(eventList) By("validating event has been emitted for correct machine") machineEventList := &corev1.EventList{} From f9def441b7a9018facf554012b42a4a4f1b3bec3 Mon Sep 17 00:00:00 2001 From: ushabelgur Date: Tue, 16 Jul 2024 15:52:43 +0530 Subject: [PATCH 2/3] incorporating review comments --- broker/machinebroker/server/event_list.go | 69 +- .../machinebroker/server/event_list_test.go | 4 +- hack/update-proto.sh | 1 + iri/apis/event/v1alpha1/api.pb.go | 739 ++++++++++++++ iri/apis/event/v1alpha1/api.proto | 27 + iri/apis/machine/v1alpha1/api.pb.go | 912 ++++-------------- iri/apis/machine/v1alpha1/api.proto | 15 +- iri/testing/machine/fake.go | 5 +- irictl-machine/tableconverters/event.go | 2 +- poollet/machinepoollet/mem/mem_test.go | 5 +- 10 files changed, 979 insertions(+), 800 deletions(-) create mode 100644 iri/apis/event/v1alpha1/api.pb.go create mode 100644 iri/apis/event/v1alpha1/api.proto diff --git a/broker/machinebroker/server/event_list.go b/broker/machinebroker/server/event_list.go index 479f011e3..28b2a323d 100644 --- a/broker/machinebroker/server/event_list.go +++ b/broker/machinebroker/server/event_list.go @@ -10,10 +10,12 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" + ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1" "github.com/ironcore-dev/ironcore/broker/machinebroker/apiutils" + irievent "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" ) @@ -23,70 +25,63 @@ const ( InvolvedObjectAPIversionSelector = "involvedObject.apiVersion" ) -func (s *Server) listEvents(ctx context.Context) ([]*iri.Event, error) { +func (s *Server) listEvents(ctx context.Context) ([]*irievent.Event, error) { + log := ctrl.LoggerFrom(ctx) machineEventList := &v1.EventList{} - selectorField := fields.Set{} - selectorField[InvolvedObjectKindSelector] = InvolvedObjectKind - selectorField[InvolvedObjectAPIversionSelector] = computev1alpha1.SchemeGroupVersion.String() - + selectorField := fields.Set{ + InvolvedObjectKindSelector: InvolvedObjectKind, + InvolvedObjectAPIversionSelector: computev1alpha1.SchemeGroupVersion.String(), + } if err := s.cluster.Client().List(ctx, machineEventList, client.InNamespace(s.cluster.Namespace()), client.MatchingFieldsSelector{Selector: selectorField.AsSelector()}, ); err != nil { return nil, err } - var iriEvents []*iri.Event - var eventTime int64 + var iriEvents []*irievent.Event for _, machineEvent := range machineEventList.Items { ironcoreMachine, err := s.getIronCoreMachine(ctx, machineEvent.InvolvedObject.Name) if err != nil { + log.V(1).Info("Unable to get ironcore machine", "MachineName", machineEvent.InvolvedObject.Name) continue - } else { - machineObjectMetadata, err := apiutils.GetObjectMetadata(&ironcoreMachine.ObjectMeta) - if err != nil { - continue - } else { - eventTime = machineEvent.LastTimestamp.Unix() - if eventTime < 0 { - eventTime = machineEvent.FirstTimestamp.Unix() - } - iriEvent := &iri.Event{ - Spec: &iri.EventSpec{ - InvolvedObjectMeta: machineObjectMetadata, - Reason: machineEvent.Reason, - Message: machineEvent.Message, - Type: machineEvent.Type, - EventTime: eventTime, - }, - } - iriEvents = append(iriEvents, iriEvent) - } } + machineObjectMetadata, err := apiutils.GetObjectMetadata(&ironcoreMachine.ObjectMeta) + if err != nil { + continue + } + iriEvent := &irievent.Event{ + Spec: &irievent.EventSpec{ + InvolvedObjectMeta: machineObjectMetadata, + Reason: machineEvent.Reason, + Message: machineEvent.Message, + Type: machineEvent.Type, + EventTime: machineEvent.LastTimestamp.Unix(), + }, + } + iriEvents = append(iriEvents, iriEvent) } return iriEvents, nil } -func (s *Server) filterEvents(events []*iri.Event, filter *iri.EventFilter) []*iri.Event { +func (s *Server) filterEvents(events []*irievent.Event, filter *iri.EventFilter) []*irievent.Event { if filter == nil { return events } var ( - res []*iri.Event + res []*irievent.Event sel = labels.SelectorFromSet(filter.LabelSelector) ) for _, iriEvent := range events { - if !sel.Matches(labels.Set(iriEvent.Spec.InvolvedObjectMeta.Labels)) { - continue - } - if filter.EventsFromTime > 0 && filter.EventsToTime > 0 { - if iriEvent.Spec.EventTime >= filter.EventsFromTime && iriEvent.Spec.EventTime <= filter.EventsToTime { - res = append(res, iriEvent) + if sel.Matches(labels.Set(iriEvent.Spec.InvolvedObjectMeta.Labels)) { + if filter.EventsFromTime > 0 && filter.EventsToTime > 0 { + if iriEvent.Spec.EventTime >= filter.EventsFromTime && iriEvent.Spec.EventTime <= filter.EventsToTime { + res = append(res, iriEvent) + } + continue } - } else { res = append(res, iriEvent) } - } return res } diff --git a/broker/machinebroker/server/event_list_test.go b/broker/machinebroker/server/event_list_test.go index 8de3abe1a..dd5e3e093 100644 --- a/broker/machinebroker/server/event_list_test.go +++ b/broker/machinebroker/server/event_list_test.go @@ -68,7 +68,9 @@ var _ = Describe("ListEvents", func() { eventRecorder.Event(ironcoreMachine, corev1.EventTypeNormal, "testing", "this is test event") By("listing the machine events") - resp, err := srv.ListEvents(ctx, &iri.ListEventsRequest{}) + resp, err := srv.ListEvents(ctx, &iri.ListEventsRequest{Filter: &iri.EventFilter{ + LabelSelector: map[string]string{machinepoolletv1alpha1.MachineUIDLabel: "foobar"}, + }}) Expect(err).NotTo(HaveOccurred()) diff --git a/hack/update-proto.sh b/hack/update-proto.sh index 830fc365c..c6fd28128 100755 --- a/hack/update-proto.sh +++ b/hack/update-proto.sh @@ -41,6 +41,7 @@ function generate() { } generate "iri/apis/meta/v1alpha1" +generate "iri/apis/event/v1alpha1" generate "iri/apis/machine/v1alpha1" generate "iri/apis/volume/v1alpha1" generate "iri/apis/bucket/v1alpha1" diff --git a/iri/apis/event/v1alpha1/api.pb.go b/iri/apis/event/v1alpha1/api.pb.go new file mode 100644 index 000000000..5438d793c --- /dev/null +++ b/iri/apis/event/v1alpha1/api.pb.go @@ -0,0 +1,739 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: api.proto + +package v1alpha1 + +import ( + fmt "fmt" + io "io" + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" + + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + v1alpha1 "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Event struct { + Spec *EventSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Event) Reset() { *m = Event{} } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{0} +} +func (m *Event) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Event.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Event) XXX_Merge(src proto.Message) { + xxx_messageInfo_Event.Merge(m, src) +} +func (m *Event) XXX_Size() int { + return m.Size() +} +func (m *Event) XXX_DiscardUnknown() { + xxx_messageInfo_Event.DiscardUnknown(m) +} + +var xxx_messageInfo_Event proto.InternalMessageInfo + +func (m *Event) GetSpec() *EventSpec { + if m != nil { + return m.Spec + } + return nil +} + +type EventSpec struct { + InvolvedObjectMeta *v1alpha1.ObjectMetadata `protobuf:"bytes,1,opt,name=involved_object_meta,json=involvedObjectMeta,proto3" json:"involved_object_meta,omitempty"` + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + EventTime int64 `protobuf:"varint,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EventSpec) Reset() { *m = EventSpec{} } +func (*EventSpec) ProtoMessage() {} +func (*EventSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{1} +} +func (m *EventSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSpec.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSpec.Merge(m, src) +} +func (m *EventSpec) XXX_Size() int { + return m.Size() +} +func (m *EventSpec) XXX_DiscardUnknown() { + xxx_messageInfo_EventSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSpec proto.InternalMessageInfo + +func (m *EventSpec) GetInvolvedObjectMeta() *v1alpha1.ObjectMetadata { + if m != nil { + return m.InvolvedObjectMeta + } + return nil +} + +func (m *EventSpec) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +func (m *EventSpec) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +func (m *EventSpec) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *EventSpec) GetEventTime() int64 { + if m != nil { + return m.EventTime + } + return 0 +} + +func init() { + proto.RegisterType((*Event)(nil), "event.v1alpha1.Event") + proto.RegisterType((*EventSpec)(nil), "event.v1alpha1.EventSpec") +} + +func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } + +var fileDescriptor_00212fb1f9d3bf1c = []byte{ + // 320 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4b, 0x33, 0x41, + 0x10, 0xc6, 0xb3, 0x6f, 0xfe, 0xbc, 0xdc, 0x0a, 0x16, 0x8b, 0xc8, 0x1a, 0xc8, 0x12, 0x52, 0xa5, + 0xc9, 0x2e, 0x51, 0x10, 0x5b, 0x05, 0x4b, 0x09, 0x9c, 0x62, 0x61, 0x13, 0xf6, 0x2e, 0xe3, 0x65, + 0x25, 0x77, 0xbb, 0xdc, 0x6d, 0x0e, 0xec, 0xfc, 0x08, 0x7e, 0x25, 0xbb, 0x94, 0x96, 0x96, 0xe6, + 0xfc, 0x22, 0x92, 0xd1, 0x5c, 0xb4, 0xb3, 0x9b, 0xdf, 0xb3, 0xcf, 0xcc, 0x3c, 0x3b, 0x34, 0xd0, + 0xce, 0x48, 0x97, 0x5b, 0x6f, 0xd9, 0x3e, 0x94, 0x90, 0x79, 0x59, 0x8e, 0xf5, 0xc2, 0xcd, 0xf5, + 0xb8, 0x3b, 0x4a, 0x8c, 0x9f, 0x2f, 0x23, 0x19, 0xdb, 0x54, 0x25, 0x36, 0xb1, 0x0a, 0x6d, 0xd1, + 0xf2, 0x1e, 0x09, 0x01, 0xab, 0xaf, 0xf6, 0xee, 0xf9, 0x0f, 0xbb, 0xc9, 0x6d, 0x16, 0xdb, 0x1c, + 0x46, 0x33, 0x28, 0x6b, 0x50, 0x26, 0x37, 0x4a, 0x3b, 0x53, 0xa8, 0x14, 0xbc, 0x56, 0xdb, 0x3d, + 0xaa, 0x4e, 0x30, 0x38, 0xa5, 0xed, 0xcb, 0x4d, 0x06, 0x36, 0xa2, 0xad, 0xc2, 0x41, 0xcc, 0xff, + 0xf5, 0xc9, 0x70, 0xef, 0xf8, 0x48, 0xfe, 0x4e, 0x26, 0xd1, 0x74, 0xed, 0x20, 0x0e, 0xd1, 0x36, + 0x78, 0x21, 0x34, 0xa8, 0x35, 0x36, 0xa1, 0x07, 0x26, 0x2b, 0xed, 0xa2, 0x84, 0xd9, 0xd4, 0x46, + 0x0f, 0x10, 0xfb, 0xe9, 0x66, 0x21, 0x27, 0x38, 0xac, 0x27, 0x37, 0xb0, 0x9b, 0x35, 0x41, 0xc7, + 0x15, 0x78, 0x3d, 0xd3, 0x5e, 0x87, 0x6c, 0xdb, 0xba, 0xd3, 0xd9, 0x21, 0xed, 0xe4, 0xa0, 0x0b, + 0x9b, 0x61, 0x9e, 0x20, 0xfc, 0x26, 0xc6, 0xe9, 0xff, 0x14, 0x8a, 0x42, 0x27, 0xc0, 0x9b, 0xf8, + 0xb0, 0x45, 0xc6, 0x68, 0xcb, 0x3f, 0x3a, 0xe0, 0x2d, 0x94, 0xb1, 0x66, 0x3d, 0x4a, 0xf1, 0x1b, + 0x53, 0x6f, 0x52, 0xe0, 0xed, 0x3e, 0x19, 0x36, 0xc3, 0x00, 0x95, 0x1b, 0x93, 0xc2, 0xc5, 0xed, + 0x6a, 0x2d, 0xc8, 0xdb, 0x5a, 0x34, 0x9e, 0x2a, 0x41, 0x56, 0x95, 0x20, 0xaf, 0x95, 0x20, 0xef, + 0x95, 0x20, 0xcf, 0x1f, 0xa2, 0x71, 0x77, 0xf6, 0xf7, 0xe3, 0xe2, 0xc8, 0xfa, 0xba, 0x51, 0x07, + 0x4f, 0x7b, 0xf2, 0x19, 0x00, 0x00, 0xff, 0xff, 0xa1, 0xe5, 0xa2, 0x10, 0xe9, 0x01, 0x00, 0x00, +} + +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Spec != nil { + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *EventSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EventTime != 0 { + i = encodeVarintApi(dAtA, i, uint64(m.EventTime)) + i-- + dAtA[i] = 0x28 + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintApi(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x22 + } + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintApi(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x1a + } + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintApi(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x12 + } + if m.InvolvedObjectMeta != nil { + { + size, err := m.InvolvedObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintApi(dAtA []byte, offset int, v uint64) int { + offset -= sovApi(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Event) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spec != nil { + l = m.Spec.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + +func (m *EventSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.InvolvedObjectMeta != nil { + l = m.InvolvedObjectMeta.Size() + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.Reason) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.Message) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.Type) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.EventTime != 0 { + n += 1 + sovApi(uint64(m.EventTime)) + } + return n +} + +func sovApi(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozApi(x uint64) (n int) { + return sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Event) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Event{`, + `Spec:` + strings.Replace(this.Spec.String(), "EventSpec", "EventSpec", 1) + `,`, + `}`, + }, "") + return s +} +func (this *EventSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EventSpec{`, + `InvolvedObjectMeta:` + strings.Replace(fmt.Sprintf("%v", this.InvolvedObjectMeta), "ObjectMetadata", "v1alpha1.ObjectMetadata", 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `EventTime:` + fmt.Sprintf("%v", this.EventTime) + `,`, + `}`, + }, "") + return s +} +func valueToStringApi(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Event) 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 ErrIntOverflowApi + } + 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: Event: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Spec == nil { + m.Spec = &EventSpec{} + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventSpec) 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 ErrIntOverflowApi + } + 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: EventSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InvolvedObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InvolvedObjectMeta == nil { + m.InvolvedObjectMeta = &v1alpha1.ObjectMetadata{} + } + if err := m.InvolvedObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + 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 ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + 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 ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + 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 ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType) + } + m.EventTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventTime |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipApi(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowApi + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowApi + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowApi + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthApi + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupApi + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthApi + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowApi = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupApi = fmt.Errorf("proto: unexpected end of group") +) diff --git a/iri/apis/event/v1alpha1/api.proto b/iri/apis/event/v1alpha1/api.proto new file mode 100644 index 000000000..b14173643 --- /dev/null +++ b/iri/apis/event/v1alpha1/api.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package event.v1alpha1; +option go_package = "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1"; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1/api.proto"; + +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = true; +option (gogoproto.goproto_getters_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.goproto_unrecognized_all) = false; + +message Event { + EventSpec spec = 2; +} + +message EventSpec { + meta.v1alpha1.ObjectMetadata involved_object_meta = 1; + string reason = 2; + string message = 3; + string type = 4; + int64 event_time = 5; +} diff --git a/iri/apis/machine/v1alpha1/api.pb.go b/iri/apis/machine/v1alpha1/api.pb.go index 4c813281e..930994a21 100644 --- a/iri/apis/machine/v1alpha1/api.pb.go +++ b/iri/apis/machine/v1alpha1/api.pb.go @@ -15,6 +15,7 @@ import ( _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + v1alpha11 "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1" v1alpha1 "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -836,128 +837,6 @@ func (m *MachineSpec) GetNetworkInterfaces() []*NetworkInterface { return nil } -type Event struct { - Spec *EventSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Event) Reset() { *m = Event{} } -func (*Event) ProtoMessage() {} -func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{11} -} -func (m *Event) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Event.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Event) XXX_Merge(src proto.Message) { - xxx_messageInfo_Event.Merge(m, src) -} -func (m *Event) XXX_Size() int { - return m.Size() -} -func (m *Event) XXX_DiscardUnknown() { - xxx_messageInfo_Event.DiscardUnknown(m) -} - -var xxx_messageInfo_Event proto.InternalMessageInfo - -func (m *Event) GetSpec() *EventSpec { - if m != nil { - return m.Spec - } - return nil -} - -type EventSpec struct { - InvolvedObjectMeta *v1alpha1.ObjectMetadata `protobuf:"bytes,1,opt,name=involved_object_meta,json=involvedObjectMeta,proto3" json:"involved_object_meta,omitempty"` - Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` - Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` - EventTime int64 `protobuf:"varint,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *EventSpec) Reset() { *m = EventSpec{} } -func (*EventSpec) ProtoMessage() {} -func (*EventSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{12} -} -func (m *EventSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EventSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_EventSpec.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *EventSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventSpec.Merge(m, src) -} -func (m *EventSpec) XXX_Size() int { - return m.Size() -} -func (m *EventSpec) XXX_DiscardUnknown() { - xxx_messageInfo_EventSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_EventSpec proto.InternalMessageInfo - -func (m *EventSpec) GetInvolvedObjectMeta() *v1alpha1.ObjectMetadata { - if m != nil { - return m.InvolvedObjectMeta - } - return nil -} - -func (m *EventSpec) GetReason() string { - if m != nil { - return m.Reason - } - return "" -} - -func (m *EventSpec) GetMessage() string { - if m != nil { - return m.Message - } - return "" -} - -func (m *EventSpec) GetType() string { - if m != nil { - return m.Type - } - return "" -} - -func (m *EventSpec) GetEventTime() int64 { - if m != nil { - return m.EventTime - } - return 0 -} - type MachineStatus struct { ObservedGeneration int64 `protobuf:"varint,1,opt,name=observed_generation,json=observedGeneration,proto3" json:"observed_generation,omitempty"` State MachineState `protobuf:"varint,2,opt,name=state,proto3,enum=machine.v1alpha1.MachineState" json:"state,omitempty"` @@ -971,7 +850,7 @@ type MachineStatus struct { func (m *MachineStatus) Reset() { *m = MachineStatus{} } func (*MachineStatus) ProtoMessage() {} func (*MachineStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{13} + return fileDescriptor_00212fb1f9d3bf1c, []int{11} } func (m *MachineStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1046,7 +925,7 @@ type VolumeStatus struct { func (m *VolumeStatus) Reset() { *m = VolumeStatus{} } func (*VolumeStatus) ProtoMessage() {} func (*VolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{14} + return fileDescriptor_00212fb1f9d3bf1c, []int{12} } func (m *VolumeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1108,7 +987,7 @@ type NetworkInterfaceStatus struct { func (m *NetworkInterfaceStatus) Reset() { *m = NetworkInterfaceStatus{} } func (*NetworkInterfaceStatus) ProtoMessage() {} func (*NetworkInterfaceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{15} + return fileDescriptor_00212fb1f9d3bf1c, []int{13} } func (m *NetworkInterfaceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1175,7 +1054,7 @@ type MachineClass struct { func (m *MachineClass) Reset() { *m = MachineClass{} } func (*MachineClass) ProtoMessage() {} func (*MachineClass) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{16} + return fileDescriptor_00212fb1f9d3bf1c, []int{14} } func (m *MachineClass) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1228,7 +1107,7 @@ type MachineClassStatus struct { func (m *MachineClassStatus) Reset() { *m = MachineClassStatus{} } func (*MachineClassStatus) ProtoMessage() {} func (*MachineClassStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{17} + return fileDescriptor_00212fb1f9d3bf1c, []int{15} } func (m *MachineClassStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1280,7 +1159,7 @@ type VersionRequest struct { func (m *VersionRequest) Reset() { *m = VersionRequest{} } func (*VersionRequest) ProtoMessage() {} func (*VersionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{18} + return fileDescriptor_00212fb1f9d3bf1c, []int{16} } func (m *VersionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1329,7 +1208,7 @@ type VersionResponse struct { func (m *VersionResponse) Reset() { *m = VersionResponse{} } func (*VersionResponse) ProtoMessage() {} func (*VersionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{19} + return fileDescriptor_00212fb1f9d3bf1c, []int{17} } func (m *VersionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1381,7 +1260,7 @@ type ListMachinesRequest struct { func (m *ListMachinesRequest) Reset() { *m = ListMachinesRequest{} } func (*ListMachinesRequest) ProtoMessage() {} func (*ListMachinesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{20} + return fileDescriptor_00212fb1f9d3bf1c, []int{18} } func (m *ListMachinesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1426,7 +1305,7 @@ type ListMachinesResponse struct { func (m *ListMachinesResponse) Reset() { *m = ListMachinesResponse{} } func (*ListMachinesResponse) ProtoMessage() {} func (*ListMachinesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{21} + return fileDescriptor_00212fb1f9d3bf1c, []int{19} } func (m *ListMachinesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1471,7 +1350,7 @@ type ListEventsRequest struct { func (m *ListEventsRequest) Reset() { *m = ListEventsRequest{} } func (*ListEventsRequest) ProtoMessage() {} func (*ListEventsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{22} + return fileDescriptor_00212fb1f9d3bf1c, []int{20} } func (m *ListEventsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1508,15 +1387,15 @@ func (m *ListEventsRequest) GetFilter() *EventFilter { } type ListEventsResponse struct { - Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + Events []*v1alpha11.Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ListEventsResponse) Reset() { *m = ListEventsResponse{} } func (*ListEventsResponse) ProtoMessage() {} func (*ListEventsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{23} + return fileDescriptor_00212fb1f9d3bf1c, []int{21} } func (m *ListEventsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1545,7 +1424,7 @@ func (m *ListEventsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ListEventsResponse proto.InternalMessageInfo -func (m *ListEventsResponse) GetEvents() []*Event { +func (m *ListEventsResponse) GetEvents() []*v1alpha11.Event { if m != nil { return m.Events } @@ -1561,7 +1440,7 @@ type CreateMachineRequest struct { func (m *CreateMachineRequest) Reset() { *m = CreateMachineRequest{} } func (*CreateMachineRequest) ProtoMessage() {} func (*CreateMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{24} + return fileDescriptor_00212fb1f9d3bf1c, []int{22} } func (m *CreateMachineRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1606,7 +1485,7 @@ type CreateMachineResponse struct { func (m *CreateMachineResponse) Reset() { *m = CreateMachineResponse{} } func (*CreateMachineResponse) ProtoMessage() {} func (*CreateMachineResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{25} + return fileDescriptor_00212fb1f9d3bf1c, []int{23} } func (m *CreateMachineResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1651,7 +1530,7 @@ type DeleteMachineRequest struct { func (m *DeleteMachineRequest) Reset() { *m = DeleteMachineRequest{} } func (*DeleteMachineRequest) ProtoMessage() {} func (*DeleteMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{26} + return fileDescriptor_00212fb1f9d3bf1c, []int{24} } func (m *DeleteMachineRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1695,7 +1574,7 @@ type DeleteMachineResponse struct { func (m *DeleteMachineResponse) Reset() { *m = DeleteMachineResponse{} } func (*DeleteMachineResponse) ProtoMessage() {} func (*DeleteMachineResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{27} + return fileDescriptor_00212fb1f9d3bf1c, []int{25} } func (m *DeleteMachineResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1734,7 +1613,7 @@ type UpdateMachineAnnotationsRequest struct { func (m *UpdateMachineAnnotationsRequest) Reset() { *m = UpdateMachineAnnotationsRequest{} } func (*UpdateMachineAnnotationsRequest) ProtoMessage() {} func (*UpdateMachineAnnotationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{28} + return fileDescriptor_00212fb1f9d3bf1c, []int{26} } func (m *UpdateMachineAnnotationsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1785,7 +1664,7 @@ type UpdateMachineAnnotationsResponse struct { func (m *UpdateMachineAnnotationsResponse) Reset() { *m = UpdateMachineAnnotationsResponse{} } func (*UpdateMachineAnnotationsResponse) ProtoMessage() {} func (*UpdateMachineAnnotationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{29} + return fileDescriptor_00212fb1f9d3bf1c, []int{27} } func (m *UpdateMachineAnnotationsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1824,7 +1703,7 @@ type UpdateMachinePowerRequest struct { func (m *UpdateMachinePowerRequest) Reset() { *m = UpdateMachinePowerRequest{} } func (*UpdateMachinePowerRequest) ProtoMessage() {} func (*UpdateMachinePowerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{30} + return fileDescriptor_00212fb1f9d3bf1c, []int{28} } func (m *UpdateMachinePowerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1875,7 +1754,7 @@ type UpdateMachinePowerResponse struct { func (m *UpdateMachinePowerResponse) Reset() { *m = UpdateMachinePowerResponse{} } func (*UpdateMachinePowerResponse) ProtoMessage() {} func (*UpdateMachinePowerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{31} + return fileDescriptor_00212fb1f9d3bf1c, []int{29} } func (m *UpdateMachinePowerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1914,7 +1793,7 @@ type AttachVolumeRequest struct { func (m *AttachVolumeRequest) Reset() { *m = AttachVolumeRequest{} } func (*AttachVolumeRequest) ProtoMessage() {} func (*AttachVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{32} + return fileDescriptor_00212fb1f9d3bf1c, []int{30} } func (m *AttachVolumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1965,7 +1844,7 @@ type AttachVolumeResponse struct { func (m *AttachVolumeResponse) Reset() { *m = AttachVolumeResponse{} } func (*AttachVolumeResponse) ProtoMessage() {} func (*AttachVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{33} + return fileDescriptor_00212fb1f9d3bf1c, []int{31} } func (m *AttachVolumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2004,7 +1883,7 @@ type DetachVolumeRequest struct { func (m *DetachVolumeRequest) Reset() { *m = DetachVolumeRequest{} } func (*DetachVolumeRequest) ProtoMessage() {} func (*DetachVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{34} + return fileDescriptor_00212fb1f9d3bf1c, []int{32} } func (m *DetachVolumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2055,7 +1934,7 @@ type DetachVolumeResponse struct { func (m *DetachVolumeResponse) Reset() { *m = DetachVolumeResponse{} } func (*DetachVolumeResponse) ProtoMessage() {} func (*DetachVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{35} + return fileDescriptor_00212fb1f9d3bf1c, []int{33} } func (m *DetachVolumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2094,7 +1973,7 @@ type AttachNetworkInterfaceRequest struct { func (m *AttachNetworkInterfaceRequest) Reset() { *m = AttachNetworkInterfaceRequest{} } func (*AttachNetworkInterfaceRequest) ProtoMessage() {} func (*AttachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{36} + return fileDescriptor_00212fb1f9d3bf1c, []int{34} } func (m *AttachNetworkInterfaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2145,7 +2024,7 @@ type AttachNetworkInterfaceResponse struct { func (m *AttachNetworkInterfaceResponse) Reset() { *m = AttachNetworkInterfaceResponse{} } func (*AttachNetworkInterfaceResponse) ProtoMessage() {} func (*AttachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{37} + return fileDescriptor_00212fb1f9d3bf1c, []int{35} } func (m *AttachNetworkInterfaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2184,7 +2063,7 @@ type DetachNetworkInterfaceRequest struct { func (m *DetachNetworkInterfaceRequest) Reset() { *m = DetachNetworkInterfaceRequest{} } func (*DetachNetworkInterfaceRequest) ProtoMessage() {} func (*DetachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{38} + return fileDescriptor_00212fb1f9d3bf1c, []int{36} } func (m *DetachNetworkInterfaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2235,7 +2114,7 @@ type DetachNetworkInterfaceResponse struct { func (m *DetachNetworkInterfaceResponse) Reset() { *m = DetachNetworkInterfaceResponse{} } func (*DetachNetworkInterfaceResponse) ProtoMessage() {} func (*DetachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{39} + return fileDescriptor_00212fb1f9d3bf1c, []int{37} } func (m *DetachNetworkInterfaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2272,7 +2151,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{40} + return fileDescriptor_00212fb1f9d3bf1c, []int{38} } func (m *StatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2310,7 +2189,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} func (*StatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{41} + return fileDescriptor_00212fb1f9d3bf1c, []int{39} } func (m *StatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2355,7 +2234,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{42} + return fileDescriptor_00212fb1f9d3bf1c, []int{40} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2400,7 +2279,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{43} + return fileDescriptor_00212fb1f9d3bf1c, []int{41} } func (m *ExecResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2460,8 +2339,6 @@ func init() { proto.RegisterType((*NetworkInterface)(nil), "machine.v1alpha1.NetworkInterface") proto.RegisterMapType((map[string]string)(nil), "machine.v1alpha1.NetworkInterface.AttributesEntry") proto.RegisterType((*MachineSpec)(nil), "machine.v1alpha1.MachineSpec") - proto.RegisterType((*Event)(nil), "machine.v1alpha1.Event") - proto.RegisterType((*EventSpec)(nil), "machine.v1alpha1.EventSpec") proto.RegisterType((*MachineStatus)(nil), "machine.v1alpha1.MachineStatus") proto.RegisterType((*VolumeStatus)(nil), "machine.v1alpha1.VolumeStatus") proto.RegisterType((*NetworkInterfaceStatus)(nil), "machine.v1alpha1.NetworkInterfaceStatus") @@ -2499,137 +2376,132 @@ func init() { func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } var fileDescriptor_00212fb1f9d3bf1c = []byte{ - // 2068 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x73, 0x1b, 0x59, - 0x11, 0xf7, 0xe8, 0xcb, 0x56, 0x4b, 0x96, 0x95, 0x67, 0xc7, 0x51, 0x26, 0x48, 0x51, 0x66, 0xc3, - 0xc6, 0x65, 0x12, 0x29, 0x56, 0xc8, 0x6e, 0x48, 0xd5, 0x52, 0x28, 0xb6, 0xbc, 0x31, 0xb1, 0xe5, - 0x30, 0x76, 0x1c, 0x96, 0x82, 0x9a, 0x1a, 0x8d, 0x9e, 0xed, 0x21, 0xf3, 0xa1, 0x9d, 0x19, 0x69, - 0x31, 0x7b, 0x59, 0x6e, 0x5c, 0x28, 0xb8, 0xf0, 0x2f, 0x70, 0xe1, 0x02, 0x55, 0x1c, 0xb9, 0x70, - 0xdb, 0x23, 0x37, 0x38, 0xb2, 0xa6, 0x8a, 0x03, 0x7f, 0x05, 0xf5, 0x3e, 0x66, 0x34, 0x92, 0x66, - 0xf4, 0xb1, 0x50, 0xc5, 0x4d, 0xaf, 0xa7, 0xfb, 0xd7, 0xfd, 0x7a, 0xba, 0xfb, 0xd7, 0x63, 0x43, - 0x56, 0xed, 0xe9, 0xb5, 0x9e, 0x63, 0x7b, 0x36, 0x2a, 0x9a, 0xaa, 0x76, 0xa9, 0x5b, 0xb8, 0x36, - 0xd8, 0x51, 0x8d, 0xde, 0xa5, 0xba, 0x23, 0x3e, 0xba, 0xd0, 0xbd, 0xcb, 0x7e, 0xa7, 0xa6, 0xd9, - 0x66, 0xfd, 0xc2, 0xbe, 0xb0, 0xeb, 0x54, 0xb1, 0xd3, 0x3f, 0xa7, 0x27, 0x7a, 0xa0, 0xbf, 0x18, - 0x80, 0xd8, 0x0c, 0xa9, 0xeb, 0x8e, 0x6d, 0x69, 0xb6, 0x83, 0x1f, 0x75, 0xf1, 0x20, 0x38, 0xd4, - 0x75, 0x47, 0xaf, 0xab, 0x3d, 0xdd, 0xad, 0x9b, 0xd8, 0x53, 0xeb, 0xbe, 0x9f, 0x7a, 0x10, 0x83, - 0xf4, 0xb7, 0x04, 0xc0, 0x99, 0x6d, 0xf4, 0x4d, 0x7c, 0xd2, 0xc3, 0x1a, 0xda, 0x84, 0x4c, 0xd7, - 0xd1, 0x07, 0xd8, 0x29, 0x09, 0x55, 0x61, 0x2b, 0x2b, 0xf3, 0x13, 0x91, 0x5f, 0xaa, 0x56, 0xd7, - 0xc0, 0xa5, 0x04, 0x93, 0xb3, 0x13, 0x3a, 0x04, 0x50, 0x3d, 0xcf, 0xd1, 0x3b, 0x7d, 0x0f, 0xbb, - 0xa5, 0x64, 0x35, 0xb9, 0x95, 0x6b, 0x3c, 0xac, 0x8d, 0xdf, 0xab, 0x36, 0xf4, 0x50, 0x6b, 0x06, - 0xea, 0x2d, 0xcb, 0x73, 0xae, 0xe4, 0x90, 0x3d, 0x3a, 0x82, 0x9c, 0x8b, 0x35, 0x07, 0x7b, 0x4a, - 0x57, 0xf5, 0xd4, 0x52, 0x6a, 0x0e, 0xb8, 0x13, 0xaa, 0xbf, 0xa7, 0x7a, 0x2a, 0x87, 0x73, 0x03, - 0x81, 0xf8, 0x11, 0xac, 0x8d, 0x79, 0x43, 0x45, 0x48, 0xbe, 0xc3, 0x57, 0xfc, 0x72, 0xe4, 0x27, - 0xda, 0x80, 0xf4, 0x40, 0x35, 0xfa, 0xfe, 0xc5, 0xd8, 0xe1, 0x79, 0xe2, 0x99, 0x40, 0xcc, 0xc7, - 0xd0, 0x67, 0x99, 0xe7, 0x43, 0xe6, 0xd2, 0x9f, 0x05, 0x58, 0x3d, 0x62, 0x91, 0xef, 0xeb, 0x86, - 0x87, 0x1d, 0x54, 0x80, 0x84, 0xde, 0xe5, 0xc6, 0x09, 0xbd, 0x8b, 0x3e, 0x81, 0x82, 0xa1, 0x76, - 0xb0, 0xa1, 0xb8, 0xd8, 0xc0, 0x9a, 0x67, 0x3b, 0xa5, 0x04, 0xbd, 0x71, 0x63, 0xf2, 0xc6, 0x23, - 0x40, 0xb5, 0x43, 0x62, 0x75, 0xc2, 0x8d, 0xd8, 0xbd, 0x57, 0x8d, 0xb0, 0x4c, 0xfc, 0x1e, 0xa0, - 0x49, 0xa5, 0x45, 0x6e, 0x2f, 0xfd, 0x32, 0x01, 0xb9, 0xd6, 0x00, 0x5b, 0x5e, 0x4c, 0xf0, 0x6f, - 0x63, 0x82, 0x7f, 0x3c, 0x19, 0x7c, 0x08, 0x66, 0x76, 0xe8, 0x68, 0x0b, 0x8a, 0x98, 0x18, 0xb8, - 0xca, 0xb9, 0x63, 0x9b, 0x8a, 0xa7, 0x9b, 0xb8, 0x94, 0xac, 0x0a, 0x5b, 0x49, 0xb9, 0xc0, 0xe4, - 0xfb, 0x8e, 0x6d, 0x9e, 0xea, 0x26, 0x46, 0xf7, 0x81, 0x4b, 0x14, 0xcf, 0x66, 0x7a, 0x29, 0xaa, - 0x97, 0x67, 0xd2, 0x53, 0x9b, 0x68, 0xfd, 0x0f, 0x52, 0xf1, 0x63, 0x28, 0xf1, 0xfc, 0xef, 0x1a, - 0xaa, 0xeb, 0xee, 0xaa, 0x3d, 0xb5, 0xa3, 0x1b, 0xba, 0xa7, 0x63, 0x17, 0x95, 0x01, 0xb4, 0x5e, - 0x5f, 0x31, 0x75, 0xc3, 0xd0, 0x5d, 0x0a, 0x97, 0x94, 0xb3, 0x5a, 0xaf, 0x7f, 0x44, 0x05, 0xe8, - 0x1e, 0xe4, 0x4d, 0x6c, 0xda, 0xce, 0x95, 0xd2, 0xb9, 0x22, 0x1d, 0x92, 0xa0, 0x0a, 0x39, 0x26, - 0x7b, 0x41, 0x44, 0xd2, 0x1f, 0x04, 0x58, 0xe6, 0xf0, 0xe8, 0x3b, 0xb0, 0x42, 0x1a, 0x95, 0x56, - 0x3f, 0xc1, 0xca, 0x35, 0xca, 0x35, 0x22, 0x18, 0xe6, 0xf2, 0xb8, 0xf3, 0x53, 0xac, 0x79, 0x47, - 0x5c, 0x49, 0x0e, 0xd4, 0xd1, 0x0e, 0xa4, 0xdc, 0x1e, 0xd6, 0xa8, 0x07, 0x6a, 0x16, 0x53, 0x42, - 0xa4, 0x6b, 0x64, 0xaa, 0x8a, 0x3e, 0x84, 0x8c, 0xeb, 0xa9, 0x5e, 0xdf, 0xa5, 0xf9, 0xcd, 0x35, - 0xee, 0xc6, 0x1b, 0x51, 0x35, 0x99, 0xab, 0x4b, 0xf7, 0x20, 0x7b, 0x60, 0xaa, 0x17, 0x6c, 0x64, - 0x6c, 0x40, 0x5a, 0x27, 0x07, 0x9e, 0x4b, 0x76, 0x90, 0xb6, 0x21, 0xdb, 0x32, 0x7b, 0xde, 0xd5, - 0x9e, 0xee, 0xbe, 0x23, 0x49, 0x72, 0xf5, 0x9f, 0x63, 0x9e, 0x03, 0x9e, 0x24, 0x22, 0x61, 0x19, - 0xf8, 0x55, 0x0a, 0x8a, 0xac, 0xa5, 0x77, 0x6d, 0xcb, 0xc2, 0x9a, 0xa7, 0xdb, 0xd6, 0xc2, 0x93, - 0x48, 0x8e, 0x98, 0x44, 0x8d, 0xb8, 0xd1, 0x31, 0xf4, 0x33, 0x75, 0x1e, 0x9d, 0x44, 0xcd, 0xa3, - 0x79, 0x40, 0xa7, 0x4c, 0x25, 0xa4, 0xc0, 0x1a, 0xb6, 0x34, 0xe7, 0xaa, 0x47, 0x34, 0x19, 0x70, - 0x9a, 0x02, 0x7f, 0x30, 0x07, 0x70, 0x2b, 0xb0, 0x1c, 0x82, 0x17, 0xf0, 0x88, 0xf0, 0xff, 0x3b, - 0xf6, 0xc4, 0x26, 0xac, 0x47, 0x04, 0xb9, 0xd0, 0xe4, 0xfc, 0x93, 0x00, 0x19, 0x76, 0x73, 0x84, - 0x20, 0x65, 0xa9, 0xa6, 0x5f, 0x5b, 0xf4, 0x37, 0xad, 0x0c, 0x3c, 0xd0, 0xb5, 0xa0, 0x02, 0xd8, - 0x09, 0x3d, 0x07, 0xc0, 0xa4, 0xe4, 0x94, 0xae, 0xee, 0xbe, 0xa3, 0xa3, 0x20, 0xd7, 0xb8, 0x13, - 0x31, 0x8d, 0xfc, 0xb2, 0x94, 0xb3, 0x38, 0xa8, 0xd0, 0x17, 0x00, 0x5a, 0x90, 0xe5, 0x52, 0x9a, - 0xda, 0x4a, 0xb3, 0xdf, 0x87, 0x1c, 0xb2, 0x92, 0xfe, 0x2d, 0x40, 0xb1, 0x8d, 0xbd, 0xcf, 0x6c, - 0xe7, 0xdd, 0x81, 0xe5, 0x61, 0xe7, 0x5c, 0xd5, 0xa2, 0x2f, 0x50, 0x06, 0xb0, 0x98, 0x9e, 0xa2, - 0x77, 0xf9, 0x25, 0xb2, 0x5c, 0x72, 0xd0, 0x25, 0xa9, 0xd2, 0x7b, 0xac, 0x84, 0xb3, 0x32, 0xf9, - 0x39, 0x56, 0xdb, 0xb1, 0x65, 0x38, 0xee, 0x7c, 0x5a, 0x6d, 0xff, 0x97, 0x55, 0x22, 0xfd, 0x31, - 0x01, 0xb9, 0xd0, 0x44, 0x41, 0x8f, 0x20, 0xdd, 0xb3, 0x3f, 0xe3, 0xdd, 0x5a, 0x68, 0xdc, 0x9a, - 0x8c, 0xee, 0x35, 0x79, 0x2c, 0x33, 0x2d, 0xb4, 0xe3, 0x0f, 0x8d, 0x44, 0xdc, 0x6b, 0x0a, 0x06, - 0x0c, 0x9f, 0x28, 0x24, 0x16, 0x8d, 0x8c, 0x5f, 0x3a, 0xac, 0xb2, 0x32, 0x3b, 0xa0, 0xf7, 0x60, - 0x55, 0xbf, 0xb0, 0xf4, 0x61, 0x2f, 0xa5, 0x68, 0x35, 0xe5, 0x7d, 0x21, 0x6d, 0xb9, 0x06, 0x2c, - 0x0f, 0xe8, 0x9b, 0x73, 0x79, 0xab, 0x95, 0xe2, 0x5e, 0xad, 0xec, 0x2b, 0xa2, 0x1f, 0x00, 0x0a, - 0x5e, 0x92, 0x9f, 0x50, 0xb7, 0x94, 0xa1, 0xe6, 0xd2, 0xec, 0xdc, 0xcb, 0x37, 0xac, 0x31, 0x89, - 0x2b, 0x3d, 0x83, 0x34, 0xa5, 0x42, 0x54, 0x1f, 0x99, 0xd5, 0x77, 0x62, 0x18, 0x73, 0x38, 0xa9, - 0xa5, 0xbf, 0x08, 0x90, 0x0d, 0x64, 0xe8, 0x18, 0x36, 0x74, 0x6b, 0x60, 0x1b, 0x03, 0xdc, 0x55, - 0x6c, 0xca, 0x07, 0x0a, 0xa1, 0x81, 0xf9, 0x18, 0x03, 0xf9, 0xa6, 0x43, 0x39, 0xe9, 0x28, 0x07, - 0xab, 0xae, 0x6d, 0xf9, 0x1d, 0xc5, 0x4e, 0xa8, 0x04, 0xcb, 0x26, 0x76, 0x5d, 0xf2, 0x9e, 0x58, - 0xd2, 0xfd, 0x23, 0x29, 0x6b, 0xef, 0xaa, 0xc7, 0x08, 0x37, 0x2b, 0xd3, 0xdf, 0xa4, 0xac, 0x29, - 0xf1, 0x32, 0x2a, 0x4e, 0xb3, 0x29, 0x4f, 0x25, 0x84, 0x87, 0xa5, 0xdf, 0x25, 0x82, 0x7d, 0x88, - 0xd1, 0x09, 0xaa, 0xc3, 0xba, 0xdd, 0x71, 0xb1, 0x43, 0xee, 0x71, 0x81, 0x2d, 0xec, 0xa8, 0xb4, - 0xfb, 0x18, 0x3f, 0x20, 0xff, 0xd1, 0xc7, 0xc1, 0x13, 0xf4, 0x6d, 0x48, 0x13, 0x06, 0x62, 0x55, - 0x53, 0x68, 0x54, 0xa6, 0xf2, 0x15, 0x96, 0x99, 0x32, 0xba, 0x03, 0x59, 0x5a, 0x41, 0x8a, 0x83, - 0xcf, 0xf9, 0x3d, 0x56, 0xa8, 0x40, 0xc6, 0xe7, 0xe8, 0xd9, 0xb0, 0x34, 0x58, 0x5f, 0x55, 0x62, - 0xd7, 0x4d, 0xc6, 0x81, 0x41, 0x81, 0xbc, 0x8d, 0x2c, 0x10, 0x56, 0x5f, 0x5b, 0xb3, 0x0b, 0x84, - 0xc3, 0x45, 0x94, 0x89, 0x0d, 0xf9, 0xb0, 0xc7, 0xb8, 0x19, 0x18, 0xc9, 0x82, 0x4f, 0xfc, 0x0c, - 0x25, 0x69, 0x86, 0xca, 0xd3, 0x2e, 0xe3, 0x27, 0x48, 0xfa, 0xad, 0x00, 0x9b, 0xd1, 0xe1, 0x2d, - 0xe4, 0xfb, 0xa3, 0x51, 0xdf, 0x0f, 0xe6, 0xcb, 0x41, 0xf0, 0x9a, 0xf8, 0xd8, 0x4b, 0x05, 0x63, - 0x4f, 0x72, 0x20, 0x1f, 0xde, 0xbb, 0x22, 0x83, 0x69, 0x43, 0x5e, 0x0b, 0xed, 0x63, 0xbc, 0xa5, - 0xb6, 0x63, 0x2b, 0x63, 0x62, 0x83, 0x93, 0x47, 0xec, 0xa5, 0x3e, 0xa0, 0xb0, 0x26, 0x4f, 0xc3, - 0x2e, 0xac, 0x72, 0x40, 0x85, 0xcd, 0x20, 0xd6, 0x6a, 0x95, 0xe9, 0x6e, 0xe4, 0xbc, 0x19, 0x0e, - 0x5f, 0x84, 0x95, 0x4f, 0xfb, 0xaa, 0xe5, 0xe9, 0xde, 0x15, 0xdf, 0x03, 0x83, 0xb3, 0xb4, 0x0d, - 0x85, 0x33, 0xec, 0xb8, 0x84, 0x52, 0xf0, 0xa7, 0x7d, 0xec, 0x7a, 0xa4, 0xf7, 0x06, 0x4c, 0xc2, - 0xef, 0xeb, 0x1f, 0xa5, 0x9f, 0xc0, 0x5a, 0xa0, 0xeb, 0xf6, 0x6c, 0xcb, 0xc5, 0x64, 0xcd, 0x74, - 0xfa, 0x16, 0xe9, 0x3b, 0x25, 0x94, 0xa1, 0x1c, 0x97, 0xb5, 0x49, 0xa2, 0x1e, 0xc0, 0x9a, 0xaf, - 0xe2, 0xe3, 0xb2, 0xd7, 0x57, 0xe0, 0x62, 0x8e, 0x29, 0xb5, 0x61, 0xfd, 0x50, 0x77, 0x3d, 0x7e, - 0x11, 0xd7, 0x8f, 0xe7, 0x43, 0xc8, 0x9c, 0xd3, 0x15, 0x9e, 0xdf, 0xfd, 0xee, 0x8c, 0x8f, 0x14, - 0x99, 0xab, 0x4b, 0x47, 0xb0, 0x31, 0x8a, 0xc7, 0x63, 0x7e, 0x0a, 0x2b, 0x1c, 0x81, 0xa4, 0x93, - 0x74, 0xcd, 0xed, 0x58, 0x48, 0x39, 0x50, 0x95, 0xbe, 0x0f, 0x37, 0x08, 0x1c, 0x9d, 0x86, 0x41, - 0x70, 0x4f, 0xc7, 0x82, 0x2b, 0x4f, 0xfd, 0x08, 0x09, 0x42, 0x6b, 0x01, 0x0a, 0x63, 0xf1, 0xc0, - 0xea, 0x90, 0x61, 0x1f, 0x10, 0x3c, 0xac, 0x5b, 0x31, 0x60, 0x32, 0x57, 0x93, 0x5e, 0xc1, 0xc6, - 0xae, 0x83, 0x55, 0x0f, 0xfb, 0xd1, 0xf2, 0xa8, 0x9e, 0xc0, 0x32, 0xb7, 0xe4, 0x61, 0x4d, 0xb9, - 0xa0, 0xaf, 0x29, 0x1d, 0xc2, 0xcd, 0x31, 0x30, 0x1e, 0xd6, 0xd7, 0x42, 0x7b, 0x0a, 0x1b, 0x7b, - 0xd8, 0xc0, 0x13, 0xa1, 0x95, 0x01, 0xfc, 0x82, 0x0e, 0xbe, 0xea, 0xb2, 0x5c, 0x72, 0xd0, 0x95, - 0x6e, 0xc1, 0xcd, 0x31, 0x33, 0x16, 0x84, 0xf4, 0x2f, 0x01, 0xee, 0xbe, 0xe9, 0x75, 0x87, 0xe1, - 0x35, 0x2d, 0xcb, 0xf6, 0xe8, 0x74, 0x76, 0xe7, 0xc3, 0x46, 0x5d, 0xc8, 0xa9, 0x43, 0x23, 0xfe, - 0xd5, 0xf8, 0x62, 0xf2, 0x2e, 0x33, 0xdc, 0xd4, 0x42, 0x22, 0xb6, 0xdd, 0x84, 0x61, 0xc5, 0xef, - 0x42, 0x71, 0x5c, 0x61, 0xa1, 0xfd, 0x46, 0x82, 0x6a, 0x7c, 0x00, 0x3c, 0x19, 0x3a, 0xdc, 0x1e, - 0xd1, 0x61, 0x1b, 0xce, 0x7c, 0x59, 0x08, 0xf6, 0xa5, 0xc4, 0x3c, 0xfb, 0x92, 0xf4, 0x0d, 0x10, - 0xa3, 0x5c, 0xf1, 0x40, 0xce, 0x61, 0xbd, 0xe9, 0x79, 0xaa, 0x76, 0xc9, 0x97, 0x98, 0xf9, 0x42, - 0x78, 0x0c, 0x19, 0xc6, 0x65, 0x7c, 0x68, 0xc6, 0x2f, 0x45, 0x5c, 0x4f, 0xda, 0x84, 0x8d, 0x51, - 0x3f, 0xdc, 0xff, 0x4b, 0x58, 0xdf, 0xc3, 0x0b, 0xfb, 0xf7, 0xc7, 0x79, 0x62, 0x38, 0xce, 0x89, - 0x87, 0x51, 0x24, 0xee, 0xe1, 0xd7, 0x02, 0x94, 0x99, 0xeb, 0x89, 0x45, 0x6b, 0x3e, 0x67, 0xc7, - 0x70, 0x63, 0x82, 0xad, 0xf9, 0xbd, 0xe7, 0xd9, 0xe6, 0x8a, 0xe3, 0x34, 0x2d, 0x55, 0xa1, 0x12, - 0x17, 0x10, 0x8f, 0x59, 0x86, 0x32, 0xbb, 0xcb, 0xd7, 0x0c, 0x39, 0x2a, 0x3f, 0x55, 0xa8, 0xc4, - 0x61, 0x72, 0xaf, 0x6b, 0xb0, 0xca, 0x57, 0x0b, 0xe6, 0x45, 0xba, 0x84, 0x82, 0x2f, 0xe0, 0x93, - 0xe4, 0x0c, 0x36, 0x46, 0xd8, 0x4c, 0xe1, 0x7f, 0x05, 0x60, 0xe3, 0xee, 0xfe, 0x74, 0x52, 0xe3, - 0x58, 0xc8, 0x9c, 0x90, 0x49, 0x0f, 0x21, 0xd7, 0xfa, 0x19, 0xd6, 0xe6, 0x9c, 0x31, 0x55, 0xc8, - 0x33, 0x6d, 0x1e, 0x55, 0x11, 0x92, 0x7d, 0xc7, 0xf0, 0xbb, 0xb3, 0xef, 0x18, 0xdb, 0xf7, 0x21, - 0x4d, 0xeb, 0x1c, 0xe5, 0x61, 0xe5, 0xf5, 0xf1, 0xdb, 0x96, 0xac, 0x1c, 0xb7, 0x8b, 0x4b, 0x68, - 0x15, 0xb2, 0xfc, 0xb4, 0xbf, 0x5f, 0x14, 0xb6, 0x3f, 0x80, 0x5c, 0x68, 0xa7, 0x41, 0x08, 0x0a, - 0x67, 0xc7, 0x87, 0x6f, 0x8e, 0x5a, 0xca, 0xeb, 0x56, 0x7b, 0xef, 0xa0, 0xfd, 0x71, 0x71, 0x09, - 0xad, 0xc3, 0x1a, 0x97, 0x35, 0x4f, 0x4f, 0x9b, 0xbb, 0x2f, 0x5b, 0x7b, 0x45, 0x61, 0xfb, 0x0c, - 0x6e, 0x46, 0xee, 0x23, 0xa8, 0x0c, 0xb7, 0xdb, 0xad, 0xd3, 0xb7, 0xc7, 0xf2, 0x2b, 0xe5, 0xa0, - 0x7d, 0xda, 0x92, 0xf7, 0x9b, 0xbb, 0x61, 0xb0, 0x0a, 0x88, 0x93, 0x8f, 0x43, 0xb8, 0x5f, 0x08, - 0xc1, 0xda, 0xc2, 0xf0, 0xd6, 0x61, 0xed, 0xa8, 0xb9, 0xfb, 0xf2, 0xa0, 0x3d, 0x16, 0x92, 0x2f, - 0x94, 0xdf, 0xb4, 0xdb, 0x44, 0x28, 0xa0, 0x9b, 0x70, 0xc3, 0x17, 0x9e, 0xbc, 0x39, 0x21, 0xca, - 0xad, 0xbd, 0x62, 0x02, 0x6d, 0x02, 0xf2, 0xc5, 0xa7, 0x2d, 0xf9, 0xe8, 0xa0, 0xdd, 0x3c, 0x6d, - 0xed, 0x15, 0x93, 0xe8, 0x16, 0xac, 0x8f, 0xcb, 0x09, 0x4e, 0xaa, 0xf1, 0x7b, 0x80, 0x82, 0x3f, - 0xb9, 0x19, 0xb9, 0xa3, 0xd7, 0xb0, 0xcc, 0x09, 0x1e, 0x55, 0x23, 0xfa, 0x7c, 0x64, 0xf7, 0x10, - 0xef, 0x4d, 0xd1, 0xe0, 0x65, 0xb6, 0x84, 0x3e, 0x01, 0x18, 0x92, 0x27, 0x7a, 0x6f, 0xd2, 0x64, - 0x82, 0xa6, 0xc5, 0xfb, 0xd3, 0x95, 0x02, 0x68, 0x05, 0xf2, 0xe1, 0x95, 0x01, 0x7d, 0x33, 0xda, - 0x6e, 0x6c, 0x45, 0x11, 0xdf, 0x9f, 0xa5, 0x16, 0x38, 0xe8, 0xc0, 0xea, 0x08, 0xc9, 0xa2, 0x08, - 0xd3, 0x28, 0x4a, 0x17, 0x1f, 0xcc, 0xd4, 0x0b, 0xfb, 0x18, 0xe1, 0xd0, 0x28, 0x1f, 0x51, 0xdc, - 0x1c, 0xe5, 0x23, 0x9a, 0x8c, 0x97, 0xd0, 0x2f, 0x04, 0x28, 0xc5, 0xd1, 0x14, 0xda, 0x59, 0x98, - 0x53, 0xc5, 0xc6, 0x22, 0x26, 0xbc, 0x6f, 0x6d, 0x40, 0x93, 0xd4, 0x84, 0xbe, 0x35, 0x03, 0x29, - 0xcc, 0x95, 0xe2, 0xc3, 0xf9, 0x94, 0xb9, 0x43, 0x05, 0xf2, 0x61, 0x16, 0x8a, 0xaa, 0x8e, 0x08, - 0x36, 0x8c, 0xaa, 0x8e, 0x48, 0x32, 0xa3, 0xe5, 0x17, 0x26, 0xa1, 0x28, 0x07, 0x11, 0x74, 0x27, - 0xbe, 0x3f, 0x4b, 0x2d, 0x70, 0xf0, 0x39, 0x6c, 0x46, 0x73, 0x07, 0xaa, 0xc7, 0x05, 0x19, 0xc3, - 0x21, 0xe2, 0xe3, 0xf9, 0x0d, 0x78, 0xfa, 0x3e, 0x87, 0xcd, 0x68, 0x0a, 0x89, 0x72, 0x3e, 0x95, - 0xc0, 0xa2, 0x9c, 0x4f, 0x67, 0x27, 0xf4, 0x0a, 0x32, 0xfc, 0x93, 0x2a, 0xe2, 0xfb, 0x61, 0x84, - 0xb7, 0xc4, 0x6a, 0xbc, 0x02, 0x07, 0x6b, 0x41, 0x8a, 0x30, 0x08, 0x8a, 0xda, 0xf6, 0x87, 0x3c, - 0x24, 0x56, 0xe2, 0x1e, 0x33, 0x98, 0x17, 0x3f, 0xfc, 0xf2, 0xab, 0x8a, 0xf0, 0xf7, 0xaf, 0x2a, - 0x4b, 0x5f, 0x5c, 0x57, 0x84, 0x2f, 0xaf, 0x2b, 0xc2, 0x5f, 0xaf, 0x2b, 0xc2, 0x3f, 0xae, 0x2b, - 0xc2, 0x6f, 0xfe, 0x59, 0x59, 0xfa, 0xd1, 0xf3, 0x05, 0xfe, 0xc7, 0xc6, 0xdc, 0x04, 0xff, 0x66, - 0xeb, 0x64, 0xe8, 0xff, 0xd8, 0x9e, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x55, 0x76, 0xa1, 0xa1, - 0xf4, 0x1b, 0x00, 0x00, + // 1989 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4b, 0x73, 0x1b, 0x59, + 0x15, 0x76, 0x4b, 0xb2, 0x6c, 0x1d, 0xc9, 0xb2, 0x72, 0xfd, 0x88, 0xd2, 0x83, 0x14, 0xa5, 0x27, + 0x4c, 0x5c, 0x26, 0x91, 0x62, 0x85, 0xcc, 0x0c, 0xa9, 0x1a, 0x0a, 0x59, 0x96, 0x27, 0x26, 0xb6, + 0x1c, 0xda, 0x8e, 0xc3, 0x50, 0x50, 0x5d, 0xad, 0xd6, 0xb5, 0xdd, 0x44, 0xea, 0xd6, 0x74, 0xb7, + 0x34, 0x98, 0xd9, 0x0c, 0x3b, 0x36, 0x14, 0x6c, 0xf8, 0x0b, 0x6c, 0xd8, 0x40, 0x15, 0x4b, 0x7e, + 0xc0, 0x2c, 0xd9, 0xc1, 0x92, 0x09, 0x55, 0x2c, 0xf8, 0x15, 0xd4, 0x7d, 0x74, 0xab, 0x25, 0xdd, + 0xd6, 0x63, 0xa0, 0x6a, 0x76, 0xba, 0xa7, 0xbf, 0xf3, 0x9d, 0x47, 0x9f, 0x7b, 0xce, 0xe9, 0x12, + 0xa4, 0xf4, 0x9e, 0x59, 0xee, 0x39, 0xb6, 0x67, 0xa3, 0x5c, 0x57, 0x37, 0xae, 0x4d, 0x0b, 0x97, + 0x07, 0x7b, 0x7a, 0xa7, 0x77, 0xad, 0xef, 0xc9, 0x8f, 0xae, 0x4c, 0xef, 0xba, 0xdf, 0x2a, 0x1b, + 0x76, 0xb7, 0x72, 0x65, 0x5f, 0xd9, 0x15, 0x0a, 0x6c, 0xf5, 0x2f, 0xe9, 0x89, 0x1e, 0xe8, 0x2f, + 0x46, 0x20, 0xd7, 0x42, 0x70, 0xd3, 0xb1, 0x2d, 0xc3, 0x76, 0xf0, 0xa3, 0x36, 0x1e, 0x04, 0x87, + 0x8a, 0xe9, 0x98, 0x15, 0xbd, 0x67, 0xba, 0x95, 0x2e, 0xf6, 0xf4, 0x8a, 0x6f, 0xa7, 0x12, 0xf8, + 0x20, 0xef, 0xcf, 0x4f, 0x81, 0x07, 0xd8, 0xf2, 0x04, 0x1c, 0xca, 0xdf, 0x63, 0x00, 0x17, 0x76, + 0xa7, 0xdf, 0xc5, 0x67, 0x3d, 0x6c, 0xa0, 0x6d, 0x48, 0xb6, 0x1d, 0x73, 0x80, 0x9d, 0xbc, 0x54, + 0x92, 0x76, 0x52, 0x2a, 0x3f, 0x11, 0xf9, 0xb5, 0x6e, 0xb5, 0x3b, 0x38, 0x1f, 0x63, 0x72, 0x76, + 0x42, 0xc7, 0x00, 0xba, 0xe7, 0x39, 0x66, 0xab, 0xef, 0x61, 0x37, 0x1f, 0x2f, 0xc5, 0x77, 0xd2, + 0xd5, 0x87, 0xe5, 0xf1, 0xdc, 0x94, 0x87, 0x16, 0xca, 0xb5, 0x00, 0xde, 0xb0, 0x3c, 0xe7, 0x46, + 0x0d, 0xe9, 0xa3, 0x13, 0x48, 0xbb, 0xd8, 0x70, 0xb0, 0xa7, 0xb5, 0x75, 0x4f, 0xcf, 0x27, 0xe6, + 0xa0, 0x3b, 0xa3, 0xf8, 0x03, 0xdd, 0xd3, 0x39, 0x9d, 0x1b, 0x08, 0xe4, 0x8f, 0x60, 0x7d, 0xcc, + 0x1a, 0xca, 0x41, 0xfc, 0x0d, 0xbe, 0xe1, 0xc1, 0x91, 0x9f, 0x68, 0x13, 0x96, 0x07, 0x7a, 0xa7, + 0xef, 0x07, 0xc6, 0x0e, 0xcf, 0x62, 0x1f, 0x4a, 0x44, 0x7d, 0x8c, 0x7d, 0x96, 0x7a, 0x26, 0xa4, + 0xae, 0xfc, 0x55, 0x82, 0xb5, 0x13, 0xe6, 0xf9, 0xa1, 0xd9, 0xf1, 0xb0, 0x83, 0xb2, 0x10, 0x33, + 0xdb, 0x5c, 0x39, 0x66, 0xb6, 0xd1, 0x27, 0x90, 0xed, 0xe8, 0x2d, 0xdc, 0xd1, 0x5c, 0xdc, 0xc1, + 0x86, 0x67, 0x3b, 0xf9, 0x18, 0x8d, 0xb8, 0x3a, 0x19, 0xf1, 0x08, 0x51, 0xf9, 0x98, 0x68, 0x9d, + 0x71, 0x25, 0x16, 0xf7, 0x5a, 0x27, 0x2c, 0x93, 0x7f, 0x00, 0x68, 0x12, 0xb4, 0x48, 0xf4, 0xca, + 0xaf, 0x63, 0x90, 0x6e, 0x90, 0xaa, 0x89, 0x70, 0xfe, 0x75, 0x84, 0xf3, 0x8f, 0x27, 0x9d, 0x0f, + 0xd1, 0xcc, 0x76, 0x1d, 0xed, 0x40, 0x8e, 0x56, 0xab, 0xab, 0x5d, 0x3a, 0x76, 0x57, 0xf3, 0xcc, + 0x2e, 0xce, 0xc7, 0x4b, 0xd2, 0x4e, 0x5c, 0xcd, 0x32, 0xf9, 0xa1, 0x63, 0x77, 0xcf, 0xcd, 0x2e, + 0x46, 0xf7, 0x81, 0x4b, 0x34, 0xcf, 0x66, 0xb8, 0x04, 0xc5, 0x65, 0x98, 0xf4, 0xdc, 0x26, 0xa8, + 0xff, 0x43, 0x2a, 0x7e, 0x0a, 0x79, 0x9e, 0xff, 0x7a, 0x47, 0x77, 0xdd, 0xba, 0xde, 0xd3, 0x5b, + 0x66, 0xc7, 0xf4, 0x4c, 0xec, 0xa2, 0x02, 0x80, 0xd1, 0xeb, 0x6b, 0x5d, 0xb3, 0xd3, 0x31, 0x5d, + 0x4a, 0x17, 0x57, 0x53, 0x46, 0xaf, 0x7f, 0x42, 0x05, 0xe8, 0x1e, 0x64, 0xba, 0xb8, 0x6b, 0x3b, + 0x37, 0x5a, 0xeb, 0x86, 0xdc, 0x90, 0x18, 0x05, 0xa4, 0x99, 0x6c, 0x9f, 0x88, 0x94, 0x3f, 0x49, + 0xb0, 0xc2, 0xe9, 0xd1, 0xf7, 0x60, 0x95, 0x5c, 0x76, 0x5a, 0xfd, 0x84, 0x2b, 0x5d, 0x2d, 0x94, + 0x89, 0x60, 0x98, 0xcb, 0xd3, 0xd6, 0xcf, 0xb1, 0xe1, 0x9d, 0x70, 0x90, 0x1a, 0xc0, 0xd1, 0x1e, + 0x24, 0xdc, 0x1e, 0x36, 0xa8, 0x05, 0xaa, 0x16, 0x51, 0x42, 0xe4, 0xd6, 0xa8, 0x14, 0x8a, 0x3e, + 0x80, 0xa4, 0xeb, 0xe9, 0x5e, 0xdf, 0xa5, 0xf9, 0x4d, 0x57, 0xef, 0x46, 0x2b, 0x51, 0x98, 0xca, + 0xe1, 0xca, 0x3d, 0x48, 0x1d, 0x75, 0xf5, 0x2b, 0xd6, 0x32, 0x36, 0x61, 0xd9, 0x24, 0x07, 0x9e, + 0x4b, 0x76, 0x50, 0x76, 0x21, 0xd5, 0xe8, 0xf6, 0xbc, 0x9b, 0x03, 0xd3, 0x7d, 0x43, 0x92, 0xe4, + 0x9a, 0xbf, 0xc4, 0x3c, 0x07, 0x3c, 0x49, 0x44, 0xc2, 0x32, 0xf0, 0x9b, 0x04, 0xe4, 0xd8, 0x95, + 0xae, 0xdb, 0x96, 0x85, 0x0d, 0xcf, 0xb4, 0xad, 0x85, 0x3b, 0x91, 0x2a, 0xe8, 0x44, 0xd5, 0xa8, + 0xd6, 0x31, 0xb4, 0x33, 0xb5, 0x1f, 0x9d, 0x89, 0xfa, 0xd1, 0x3c, 0xa4, 0x53, 0xba, 0x12, 0xd2, + 0x60, 0x1d, 0x5b, 0x86, 0x73, 0xd3, 0x23, 0x48, 0x46, 0xbc, 0x4c, 0x89, 0xdf, 0x9f, 0x83, 0xb8, + 0x11, 0x68, 0x0e, 0xc9, 0xb3, 0x78, 0x44, 0xf8, 0xcd, 0xb6, 0x3d, 0xb9, 0x06, 0x1b, 0x02, 0x27, + 0x17, 0xea, 0x9c, 0x7f, 0x91, 0x20, 0xc9, 0x22, 0x47, 0x08, 0x12, 0x96, 0xde, 0xf5, 0x6b, 0x8b, + 0xfe, 0xa6, 0x95, 0x81, 0x07, 0xa6, 0x11, 0x54, 0x00, 0x3b, 0xa1, 0x67, 0x00, 0x98, 0x94, 0x9c, + 0xd6, 0x36, 0xdd, 0x37, 0xb4, 0x15, 0xa4, 0xab, 0xef, 0x08, 0xba, 0x91, 0x5f, 0x96, 0x6a, 0x0a, + 0x07, 0x15, 0xba, 0x0f, 0x60, 0x04, 0x59, 0xce, 0x2f, 0x53, 0x5d, 0x65, 0xf6, 0xfb, 0x50, 0x43, + 0x5a, 0xca, 0x7f, 0x24, 0xc8, 0x35, 0xb1, 0xf7, 0x99, 0xed, 0xbc, 0x39, 0xb2, 0x3c, 0xec, 0x5c, + 0xea, 0x86, 0x38, 0x80, 0x02, 0x80, 0xc5, 0x70, 0x9a, 0xd9, 0xe6, 0x41, 0xa4, 0xb8, 0xe4, 0xa8, + 0x4d, 0x52, 0x65, 0xf6, 0x58, 0x09, 0xa7, 0x54, 0xf2, 0x73, 0xac, 0xb6, 0x23, 0xcb, 0x70, 0xdc, + 0xf8, 0xb4, 0xda, 0xfe, 0x1f, 0xab, 0x44, 0xf9, 0x73, 0x0c, 0xd2, 0xa1, 0x8e, 0x82, 0x1e, 0xc1, + 0x72, 0xcf, 0xfe, 0x8c, 0xdf, 0xd6, 0x6c, 0xf5, 0xf6, 0xa4, 0x77, 0x2f, 0xc9, 0x63, 0x95, 0xa1, + 0xd0, 0x9e, 0xdf, 0x34, 0x62, 0x51, 0xaf, 0x29, 0x68, 0x30, 0xbc, 0xa3, 0x10, 0x5f, 0x0c, 0xd2, + 0x7e, 0x69, 0xb3, 0x4a, 0xa9, 0xec, 0x80, 0xde, 0x85, 0x35, 0xf3, 0xca, 0x32, 0x87, 0x77, 0x29, + 0x41, 0xab, 0x29, 0xe3, 0x0b, 0xe9, 0x95, 0xab, 0xc2, 0xca, 0x80, 0xbe, 0x39, 0x97, 0x5f, 0xb5, + 0x7c, 0xd4, 0xab, 0x55, 0x7d, 0x20, 0xfa, 0x11, 0xa0, 0xe0, 0x25, 0xf9, 0x09, 0x75, 0xf3, 0x49, + 0xaa, 0xae, 0xcc, 0xce, 0xbd, 0x7a, 0xcb, 0x1a, 0x93, 0xb8, 0xca, 0x1f, 0x62, 0xc1, 0x46, 0xc0, + 0x1a, 0x2a, 0xaa, 0xc0, 0x86, 0xdd, 0x72, 0xb1, 0x33, 0xc0, 0x6d, 0xed, 0x0a, 0x5b, 0xd8, 0xd1, + 0x69, 0xfd, 0xb1, 0x0e, 0x89, 0xfc, 0x47, 0x1f, 0x07, 0x4f, 0xd0, 0x77, 0x61, 0x99, 0xf4, 0x60, + 0x96, 0xb7, 0x6c, 0xb5, 0x38, 0xb5, 0x63, 0x63, 0x95, 0x81, 0xd1, 0x3b, 0x90, 0xa2, 0x39, 0xd4, + 0x1c, 0x7c, 0xc9, 0xd3, 0xb7, 0x4a, 0x05, 0x2a, 0xbe, 0x44, 0x1f, 0x0e, 0x93, 0xc3, 0x2a, 0xab, + 0x18, 0xb9, 0x70, 0xb1, 0x29, 0x10, 0xa4, 0xe8, 0xb5, 0x30, 0x45, 0x2c, 0xc3, 0x3b, 0xb3, 0x53, + 0xc4, 0xe9, 0x04, 0x89, 0xb2, 0x21, 0x13, 0xb6, 0x18, 0xd5, 0x05, 0x84, 0x73, 0xe0, 0x89, 0x9f, + 0xa1, 0x38, 0xcd, 0x50, 0x61, 0x5a, 0x30, 0x7e, 0x82, 0x94, 0xdf, 0x4b, 0xb0, 0x2d, 0x76, 0x6f, + 0x21, 0xdb, 0x1f, 0x8d, 0xda, 0x7e, 0x30, 0x5f, 0x0e, 0x82, 0xd7, 0xc4, 0x2f, 0x7e, 0x22, 0xb8, + 0xf8, 0x8a, 0x03, 0x99, 0xf0, 0xe6, 0x21, 0x74, 0xa6, 0x09, 0x19, 0x23, 0xb4, 0x91, 0xf0, 0x1b, + 0xb5, 0x1b, 0x59, 0x19, 0x13, 0x3b, 0x8c, 0x3a, 0xa2, 0xaf, 0xf4, 0x01, 0x85, 0x91, 0x3c, 0x0d, + 0x75, 0x58, 0xe3, 0x84, 0x1a, 0xbb, 0x85, 0x6c, 0x3d, 0x29, 0x4e, 0x37, 0xa3, 0x66, 0xba, 0x61, + 0xf7, 0x65, 0x58, 0xfd, 0xb4, 0xaf, 0x5b, 0x9e, 0xe9, 0xdd, 0xf0, 0x4d, 0x28, 0x38, 0x2b, 0xbb, + 0x90, 0xbd, 0xc0, 0x8e, 0x4b, 0x9a, 0x2a, 0xfe, 0xb4, 0x8f, 0x5d, 0x0f, 0xe5, 0x61, 0x65, 0xc0, + 0x24, 0x3c, 0x5e, 0xff, 0xa8, 0xfc, 0x0c, 0xd6, 0x03, 0xac, 0xdb, 0xb3, 0x2d, 0x17, 0x93, 0x45, + 0xcb, 0xe9, 0x5b, 0x64, 0x09, 0xd4, 0x42, 0x19, 0x4a, 0x73, 0x59, 0x93, 0x24, 0xea, 0x01, 0xac, + 0xfb, 0x10, 0x9f, 0x97, 0xbd, 0xbe, 0x2c, 0x17, 0x73, 0x4e, 0xa5, 0x09, 0x1b, 0xc7, 0xa6, 0xeb, + 0xf1, 0x40, 0x5c, 0xdf, 0x9f, 0x0f, 0x20, 0x79, 0x49, 0x97, 0x58, 0x1e, 0xfb, 0xdd, 0x19, 0x6b, + 0xba, 0xca, 0xe1, 0xca, 0x09, 0x6c, 0x8e, 0xf2, 0x71, 0x9f, 0x9f, 0xc2, 0x2a, 0x67, 0x20, 0xe9, + 0x24, 0xb7, 0xe6, 0x4e, 0x24, 0xa5, 0x1a, 0x40, 0x95, 0x1f, 0xc2, 0x2d, 0x42, 0x47, 0xb7, 0xea, + 0xc0, 0xb9, 0xa7, 0x63, 0xce, 0x15, 0xa6, 0xae, 0xe1, 0x81, 0x6b, 0x75, 0x40, 0x61, 0x2e, 0xee, + 0xd8, 0x23, 0x48, 0xb2, 0x15, 0x9a, 0xbb, 0xb5, 0x55, 0xa6, 0xc7, 0x31, 0x2a, 0x95, 0x83, 0x94, + 0x17, 0xb0, 0x59, 0x77, 0xb0, 0xee, 0x61, 0xdf, 0x57, 0xee, 0xd3, 0x13, 0x58, 0xe1, 0x4e, 0x70, + 0xa7, 0xa6, 0x84, 0xe7, 0x23, 0x95, 0x63, 0xd8, 0x1a, 0x23, 0xe3, 0x4e, 0x7d, 0x2d, 0xb6, 0xa7, + 0xb0, 0x79, 0x80, 0x3b, 0x78, 0xc2, 0xb5, 0x02, 0x80, 0x5f, 0xce, 0xc1, 0x57, 0x4d, 0x8a, 0x4b, + 0x8e, 0xda, 0xca, 0x6d, 0xd8, 0x1a, 0x53, 0x63, 0x4e, 0x28, 0xff, 0x96, 0xe0, 0xee, 0xab, 0x5e, + 0x7b, 0xe8, 0x5e, 0xcd, 0xb2, 0x6c, 0x8f, 0xf6, 0x66, 0x77, 0x3e, 0x6e, 0xd4, 0x86, 0xb4, 0x3e, + 0x54, 0xe2, 0x5f, 0x4d, 0xfb, 0x93, 0xb1, 0xcc, 0x30, 0x53, 0x0e, 0x89, 0xd8, 0x74, 0x0f, 0xd3, + 0xca, 0xdf, 0x87, 0xdc, 0x38, 0x60, 0xa1, 0xf9, 0xae, 0x40, 0x29, 0xda, 0x01, 0x9e, 0x0c, 0x13, + 0xee, 0x8c, 0x60, 0xd8, 0x84, 0x9f, 0x2f, 0x0b, 0xc1, 0xbe, 0x10, 0x9b, 0x67, 0x5f, 0x50, 0xbe, + 0x05, 0xb2, 0xc8, 0x14, 0x77, 0xe4, 0x12, 0x36, 0x6a, 0x9e, 0xa7, 0x1b, 0xd7, 0x7c, 0x88, 0xcf, + 0xe7, 0xc2, 0x63, 0x48, 0xb2, 0x49, 0xc6, 0x5b, 0x66, 0xf4, 0x52, 0xc0, 0x71, 0xca, 0x36, 0x6c, + 0x8e, 0xda, 0xe1, 0xf6, 0x9f, 0xc3, 0xc6, 0x01, 0x5e, 0xd8, 0xbe, 0xdf, 0xcc, 0x63, 0xc3, 0x66, + 0x4e, 0x2c, 0x8c, 0x32, 0x71, 0x0b, 0xbf, 0x95, 0xa0, 0xc0, 0x4c, 0x4f, 0x2c, 0x1a, 0xf3, 0x19, + 0x3b, 0x85, 0x5b, 0x13, 0xb3, 0x9a, 0xc7, 0x3d, 0xcf, 0x36, 0x93, 0x1b, 0x1f, 0xd2, 0x4a, 0x09, + 0x8a, 0x51, 0x0e, 0x71, 0x9f, 0x55, 0x28, 0xb0, 0x58, 0xbe, 0xa6, 0xcb, 0xa2, 0xfc, 0x94, 0xa0, + 0x18, 0xc5, 0xc9, 0xad, 0xae, 0xc3, 0x1a, 0x5f, 0x2c, 0x98, 0x15, 0xe5, 0x1a, 0xb2, 0xbe, 0x80, + 0x77, 0x92, 0x0b, 0xd8, 0x1c, 0x99, 0x65, 0x1a, 0xff, 0x0a, 0x66, 0xcd, 0xee, 0xfe, 0xf4, 0x91, + 0xc6, 0xb9, 0x50, 0x77, 0x42, 0xa6, 0x3c, 0x84, 0x74, 0xe3, 0x17, 0xd8, 0x98, 0xb3, 0xc7, 0x94, + 0x20, 0xc3, 0xd0, 0xdc, 0xab, 0x1c, 0xc4, 0xfb, 0x4e, 0xc7, 0xbf, 0x9d, 0x7d, 0xa7, 0xb3, 0x7b, + 0x1f, 0x96, 0x69, 0x9d, 0xa3, 0x0c, 0xac, 0xbe, 0x3c, 0x7d, 0xdd, 0x50, 0xb5, 0xd3, 0x66, 0x6e, + 0x09, 0xad, 0x41, 0x8a, 0x9f, 0x0e, 0x0f, 0x73, 0xd2, 0xee, 0xfb, 0x90, 0x0e, 0x6d, 0x34, 0x08, + 0x41, 0xf6, 0xe2, 0xf4, 0xf8, 0xd5, 0x49, 0x43, 0x7b, 0xd9, 0x68, 0x1e, 0x1c, 0x35, 0x3f, 0xce, + 0x2d, 0xa1, 0x0d, 0x58, 0xe7, 0xb2, 0xda, 0xf9, 0x79, 0xad, 0xfe, 0xbc, 0x71, 0x90, 0x93, 0x76, + 0x2f, 0x60, 0x4b, 0xb8, 0x8d, 0xa0, 0x02, 0xdc, 0x69, 0x36, 0xce, 0x5f, 0x9f, 0xaa, 0x2f, 0xb4, + 0xa3, 0xe6, 0x79, 0x43, 0x3d, 0xac, 0xd5, 0xc3, 0x64, 0x45, 0x90, 0x27, 0x1f, 0x87, 0x78, 0xbf, + 0x90, 0x82, 0xa5, 0x85, 0xf1, 0x6d, 0xc0, 0xfa, 0x49, 0xad, 0xfe, 0xfc, 0xa8, 0x39, 0xe6, 0x92, + 0x2f, 0x54, 0x5f, 0x35, 0x9b, 0x44, 0x28, 0xa1, 0x2d, 0xb8, 0xe5, 0x0b, 0xcf, 0x5e, 0x9d, 0x11, + 0x70, 0xe3, 0x20, 0x17, 0x43, 0xdb, 0x80, 0x7c, 0xf1, 0x79, 0x43, 0x3d, 0x39, 0x6a, 0xd6, 0xce, + 0x1b, 0x07, 0xb9, 0x38, 0xba, 0x0d, 0x1b, 0xe3, 0x72, 0xc2, 0x93, 0xa8, 0xfe, 0x11, 0x20, 0xeb, + 0x77, 0x6e, 0x36, 0xda, 0xd1, 0x4b, 0x58, 0xe1, 0xe3, 0x1d, 0x95, 0x04, 0xf7, 0x7c, 0x64, 0xf3, + 0x90, 0xef, 0x4d, 0x41, 0xf0, 0x32, 0x5b, 0x42, 0x9f, 0x00, 0x0c, 0x47, 0x27, 0x7a, 0x77, 0x52, + 0x65, 0x62, 0x48, 0xcb, 0xf7, 0xa7, 0x83, 0x02, 0x6a, 0x0d, 0x32, 0xe1, 0x85, 0x01, 0x7d, 0x5b, + 0xac, 0x37, 0xb6, 0xa0, 0xc8, 0xef, 0xcd, 0x82, 0x05, 0x06, 0x5a, 0xb0, 0x36, 0x32, 0x64, 0x91, + 0x40, 0x55, 0x34, 0xd2, 0xe5, 0x07, 0x33, 0x71, 0x61, 0x1b, 0x23, 0x33, 0x54, 0x64, 0x43, 0x34, + 0x9b, 0x45, 0x36, 0xc4, 0xc3, 0x78, 0x09, 0xfd, 0x4a, 0x82, 0x7c, 0xd4, 0x98, 0x42, 0x7b, 0x0b, + 0xcf, 0x54, 0xb9, 0xba, 0x88, 0x0a, 0xbf, 0xb7, 0x36, 0xa0, 0xc9, 0xd1, 0x84, 0xbe, 0x33, 0x83, + 0x29, 0x3c, 0x2b, 0xe5, 0x87, 0xf3, 0x81, 0xb9, 0x41, 0x0d, 0x32, 0xe1, 0x29, 0x24, 0xaa, 0x0e, + 0xc1, 0x34, 0x14, 0x55, 0x87, 0x70, 0x98, 0xd1, 0xf2, 0x0b, 0x0f, 0x21, 0x91, 0x01, 0xc1, 0xb8, + 0x93, 0xdf, 0x9b, 0x05, 0x0b, 0x0c, 0x7c, 0x0e, 0xdb, 0xe2, 0xd9, 0x81, 0x2a, 0x51, 0x4e, 0x46, + 0xcc, 0x10, 0xf9, 0xf1, 0xfc, 0x0a, 0x3c, 0x7d, 0x9f, 0xc3, 0xb6, 0x78, 0x84, 0x88, 0x8c, 0x4f, + 0x1d, 0x60, 0x22, 0xe3, 0xd3, 0xa7, 0x13, 0x7a, 0x01, 0x49, 0xfe, 0x41, 0x25, 0xf8, 0x7a, 0x18, + 0x99, 0x5b, 0x72, 0x29, 0x1a, 0xc0, 0xc9, 0x1a, 0x90, 0x20, 0x13, 0x04, 0x89, 0x76, 0xfd, 0xe1, + 0x1c, 0x92, 0x8b, 0x51, 0x8f, 0x19, 0xcd, 0xfe, 0x8f, 0xbf, 0xfc, 0xaa, 0x28, 0xfd, 0xe3, 0xab, + 0xe2, 0xd2, 0x17, 0x6f, 0x8b, 0xd2, 0x97, 0x6f, 0x8b, 0xd2, 0xdf, 0xde, 0x16, 0xa5, 0x7f, 0xbe, + 0x2d, 0x4a, 0xbf, 0xfb, 0x57, 0x71, 0xe9, 0x27, 0xcf, 0x16, 0xf8, 0x9f, 0x8a, 0x99, 0x09, 0xfe, + 0x66, 0x6a, 0x25, 0xe9, 0x7f, 0x4c, 0x4f, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x45, 0x5c, + 0x79, 0x38, 0x1b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3785,102 +3657,6 @@ func (m *MachineSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Event) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Event) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Spec != nil { - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintApi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - return len(dAtA) - i, nil -} - -func (m *EventSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EventSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EventSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.EventTime != 0 { - i = encodeVarintApi(dAtA, i, uint64(m.EventTime)) - i-- - dAtA[i] = 0x28 - } - if len(m.Type) > 0 { - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintApi(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0x22 - } - if len(m.Message) > 0 { - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintApi(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x1a - } - if len(m.Reason) > 0 { - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintApi(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x12 - } - if m.InvolvedObjectMeta != nil { - { - size, err := m.InvolvedObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintApi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *MachineStatus) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5256,47 +5032,6 @@ func (m *MachineSpec) Size() (n int) { return n } -func (m *Event) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Spec != nil { - l = m.Spec.Size() - n += 1 + l + sovApi(uint64(l)) - } - return n -} - -func (m *EventSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.InvolvedObjectMeta != nil { - l = m.InvolvedObjectMeta.Size() - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Reason) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Message) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Type) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - if m.EventTime != 0 { - n += 1 + sovApi(uint64(m.EventTime)) - } - return n -} - func (m *MachineStatus) Size() (n int) { if m == nil { return 0 @@ -5981,37 +5716,13 @@ func (this *MachineSpec) String() string { }, "") return s } -func (this *Event) String() string { +func (this *MachineStatus) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&Event{`, - `Spec:` + strings.Replace(this.Spec.String(), "EventSpec", "EventSpec", 1) + `,`, - `}`, - }, "") - return s -} -func (this *EventSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EventSpec{`, - `InvolvedObjectMeta:` + strings.Replace(fmt.Sprintf("%v", this.InvolvedObjectMeta), "ObjectMetadata", "v1alpha1.ObjectMetadata", 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `EventTime:` + fmt.Sprintf("%v", this.EventTime) + `,`, - `}`, - }, "") - return s -} -func (this *MachineStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForVolumes := "[]*VolumeStatus{" - for _, f := range this.Volumes { - repeatedStringForVolumes += strings.Replace(f.String(), "VolumeStatus", "VolumeStatus", 1) + "," + repeatedStringForVolumes := "[]*VolumeStatus{" + for _, f := range this.Volumes { + repeatedStringForVolumes += strings.Replace(f.String(), "VolumeStatus", "VolumeStatus", 1) + "," } repeatedStringForVolumes += "}" repeatedStringForNetworkInterfaces := "[]*NetworkInterfaceStatus{" @@ -6138,7 +5849,7 @@ func (this *ListEventsResponse) String() string { } repeatedStringForEvents := "[]*Event{" for _, f := range this.Events { - repeatedStringForEvents += strings.Replace(f.String(), "Event", "Event", 1) + "," + repeatedStringForEvents += strings.Replace(fmt.Sprintf("%v", f), "Event", "v1alpha11.Event", 1) + "," } repeatedStringForEvents += "}" s := strings.Join([]string{`&ListEventsResponse{`, @@ -8785,293 +8496,6 @@ func (m *MachineSpec) Unmarshal(dAtA []byte) error { } return nil } -func (m *Event) 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 ErrIntOverflowApi - } - 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: Event: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Spec == nil { - m.Spec = &EventSpec{} - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EventSpec) 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 ErrIntOverflowApi - } - 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: EventSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EventSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InvolvedObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.InvolvedObjectMeta == nil { - m.InvolvedObjectMeta = &v1alpha1.ObjectMetadata{} - } - if err := m.InvolvedObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - 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 ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - 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 ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - 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 ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthApi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType) - } - m.EventTime = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EventTime |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *MachineStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -10291,7 +9715,7 @@ func (m *ListEventsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Events = append(m.Events, &Event{}) + m.Events = append(m.Events, &v1alpha11.Event{}) if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/iri/apis/machine/v1alpha1/api.proto b/iri/apis/machine/v1alpha1/api.proto index 13f49e51b..49021e9dd 100644 --- a/iri/apis/machine/v1alpha1/api.proto +++ b/iri/apis/machine/v1alpha1/api.proto @@ -5,6 +5,7 @@ option go_package = "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1/api.proto"; +import "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1/api.proto"; option (gogoproto.goproto_stringer_all) = false; option (gogoproto.stringer_all) = true; @@ -107,18 +108,6 @@ message MachineSpec { repeated NetworkInterface network_interfaces = 6; } -message Event { - EventSpec spec = 2; -} - -message EventSpec { - meta.v1alpha1.ObjectMetadata involved_object_meta = 1; - string reason = 2; - string message = 3; - string type = 4; - int64 event_time = 5; -} - message MachineStatus { int64 observed_generation = 1; MachineState state = 2; @@ -193,7 +182,7 @@ message ListEventsRequest { } message ListEventsResponse { - repeated Event events = 1; + repeated event.v1alpha1.Event events = 1; } message CreateMachineRequest { diff --git a/iri/testing/machine/fake.go b/iri/testing/machine/fake.go index b1514f83c..3ff0ce8a1 100644 --- a/iri/testing/machine/fake.go +++ b/iri/testing/machine/fake.go @@ -11,6 +11,7 @@ import ( "sync" "time" + irievent "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -63,7 +64,7 @@ type FakeMachineClassStatus struct { } type FakeEvent struct { - iri.Event + irievent.Event } type FakeRuntimeService struct { @@ -80,7 +81,7 @@ func (r *FakeRuntimeService) ListEvents(ctx context.Context, req *iri.ListEvents r.Lock() defer r.Unlock() - var res []*iri.Event + var res []*irievent.Event for _, e := range r.Events { event := e.Event res = append(res, &event) diff --git a/irictl-machine/tableconverters/event.go b/irictl-machine/tableconverters/event.go index 0a6cdbe55..f42e4bd27 100644 --- a/irictl-machine/tableconverters/event.go +++ b/irictl-machine/tableconverters/event.go @@ -4,7 +4,7 @@ package tableconverters import ( - iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" + iri "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1" "github.com/ironcore-dev/ironcore/irictl/api" "github.com/ironcore-dev/ironcore/irictl/tableconverter" machinepoolletv1alpha1 "github.com/ironcore-dev/ironcore/poollet/machinepoollet/api/v1alpha1" diff --git a/poollet/machinepoollet/mem/mem_test.go b/poollet/machinepoollet/mem/mem_test.go index e26664dbb..dbcb89596 100644 --- a/poollet/machinepoollet/mem/mem_test.go +++ b/poollet/machinepoollet/mem/mem_test.go @@ -9,6 +9,7 @@ import ( "time" computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1" + irievent "github.com/ironcore-dev/ironcore/iri/apis/event/v1alpha1" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1" fakemachine "github.com/ironcore-dev/ironcore/iri/testing/machine" @@ -111,8 +112,8 @@ var _ = Describe("MachineEventMapper", func() { _, iriMachine := GetSingleMapEntry(srv.Machines) By("setting an event for iri machine") eventList := []*fakemachine.FakeEvent{{ - Event: iri.Event{ - Spec: &iri.EventSpec{ + Event: irievent.Event{ + Spec: &irievent.EventSpec{ InvolvedObjectMeta: &v1alpha1.ObjectMetadata{ Labels: iriMachine.Metadata.Labels, }, From 20c4e5e61af0679c5914930d7200abcbf07b0493 Mon Sep 17 00:00:00 2001 From: ushabelgur Date: Tue, 16 Jul 2024 19:50:26 +0530 Subject: [PATCH 3/3] incorporating review comments --- .reuse/dep5 | 2 + broker/machinebroker/server/event_list.go | 18 ++++---- .../machinebroker/server/event_list_test.go | 46 +++++++++++++++++-- 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/.reuse/dep5 b/.reuse/dep5 index 673b26611..0ae3a70b1 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -22,6 +22,8 @@ Files: hack/* iri/apis/bucket/v1alpha1/api.pb.go iri/apis/bucket/v1alpha1/api.proto + iri/apis/event/v1alpha1/api.pb.go + iri/apis/event/v1alpha1/api.proto iri/apis/machine/v1alpha1/api.pb.go iri/apis/machine/v1alpha1/api.proto iri/apis/meta/v1alpha1/api.pb.go diff --git a/broker/machinebroker/server/event_list.go b/broker/machinebroker/server/event_list.go index 28b2a323d..446f4660f 100644 --- a/broker/machinebroker/server/event_list.go +++ b/broker/machinebroker/server/event_list.go @@ -22,7 +22,7 @@ import ( const ( InvolvedObjectKind = "Machine" InvolvedObjectKindSelector = "involvedObject.kind" - InvolvedObjectAPIversionSelector = "involvedObject.apiVersion" + InvolvedObjectAPIVersionSelector = "involvedObject.apiVersion" ) func (s *Server) listEvents(ctx context.Context) ([]*irievent.Event, error) { @@ -30,7 +30,7 @@ func (s *Server) listEvents(ctx context.Context) ([]*irievent.Event, error) { machineEventList := &v1.EventList{} selectorField := fields.Set{ InvolvedObjectKindSelector: InvolvedObjectKind, - InvolvedObjectAPIversionSelector: computev1alpha1.SchemeGroupVersion.String(), + InvolvedObjectAPIVersionSelector: computev1alpha1.SchemeGroupVersion.String(), } if err := s.cluster.Client().List(ctx, machineEventList, client.InNamespace(s.cluster.Namespace()), client.MatchingFieldsSelector{Selector: selectorField.AsSelector()}, @@ -73,15 +73,17 @@ func (s *Server) filterEvents(events []*irievent.Event, filter *iri.EventFilter) sel = labels.SelectorFromSet(filter.LabelSelector) ) for _, iriEvent := range events { - if sel.Matches(labels.Set(iriEvent.Spec.InvolvedObjectMeta.Labels)) { - if filter.EventsFromTime > 0 && filter.EventsToTime > 0 { - if iriEvent.Spec.EventTime >= filter.EventsFromTime && iriEvent.Spec.EventTime <= filter.EventsToTime { - res = append(res, iriEvent) - } + if !sel.Matches(labels.Set(iriEvent.Spec.InvolvedObjectMeta.Labels)) { + continue + } + + if filter.EventsFromTime > 0 && filter.EventsToTime > 0 { + if iriEvent.Spec.EventTime < filter.EventsFromTime || iriEvent.Spec.EventTime > filter.EventsToTime { continue } - res = append(res, iriEvent) } + + res = append(res, iriEvent) } return res } diff --git a/broker/machinebroker/server/event_list_test.go b/broker/machinebroker/server/event_list_test.go index dd5e3e093..366b17dea 100644 --- a/broker/machinebroker/server/event_list_test.go +++ b/broker/machinebroker/server/event_list_test.go @@ -4,6 +4,8 @@ package server_test import ( + "time" + computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1" networkingv1alpha1 "github.com/ironcore-dev/ironcore/api/networking/v1alpha1" iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1" @@ -64,12 +66,30 @@ var _ = Describe("ListEvents", func() { Expect(k8sClient.Get(ctx, ironcoreMachineKey, ironcoreMachine)).To(Succeed()) By("generating the machine events") + eventGeneratedTime := time.Now() eventRecorder := k8sManager.GetEventRecorderFor("test-recorder") eventRecorder.Event(ironcoreMachine, corev1.EventTypeNormal, "testing", "this is test event") - By("listing the machine events") - resp, err := srv.ListEvents(ctx, &iri.ListEventsRequest{Filter: &iri.EventFilter{ - LabelSelector: map[string]string{machinepoolletv1alpha1.MachineUIDLabel: "foobar"}, + By("listing the machine events with no filters") + resp, err := srv.ListEvents(ctx, &iri.ListEventsRequest{}) + + Expect(err).NotTo(HaveOccurred()) + + Expect(resp.Events).To(ConsistOf( + HaveField("Spec", SatisfyAll( + HaveField("InvolvedObjectMeta.Id", Equal(ironcoreMachine.Name)), + HaveField("Reason", Equal("testing")), + HaveField("Message", Equal("this is test event")), + HaveField("Type", Equal(corev1.EventTypeNormal)), + )), + ), + ) + + By("listing the machine events with matching label and time filters") + resp, err = srv.ListEvents(ctx, &iri.ListEventsRequest{Filter: &iri.EventFilter{ + LabelSelector: map[string]string{machinepoolletv1alpha1.MachineUIDLabel: "foobar"}, + EventsFromTime: eventGeneratedTime.Unix(), + EventsToTime: time.Now().Unix(), }}) Expect(err).NotTo(HaveOccurred()) @@ -83,5 +103,25 @@ var _ = Describe("ListEvents", func() { )), ), ) + + By("listing the machine events with non matching label filter") + resp, err = srv.ListEvents(ctx, &iri.ListEventsRequest{Filter: &iri.EventFilter{ + LabelSelector: map[string]string{"foo": "bar"}, + EventsFromTime: eventGeneratedTime.Unix(), + EventsToTime: time.Now().Unix(), + }}) + Expect(err).NotTo(HaveOccurred()) + + Expect(resp.Events).To(BeEmpty()) + + By("listing the machine events with matching label filter and non matching time filter") + resp, err = srv.ListEvents(ctx, &iri.ListEventsRequest{Filter: &iri.EventFilter{ + LabelSelector: map[string]string{machinepoolletv1alpha1.MachineUIDLabel: "foobar"}, + EventsFromTime: eventGeneratedTime.Add(-10 * time.Minute).Unix(), + EventsToTime: eventGeneratedTime.Add(-5 * time.Minute).Unix(), + }}) + Expect(err).NotTo(HaveOccurred()) + + Expect(resp.Events).To(BeEmpty()) }) })