// Convert_Slice_string_To_unversioned_Time allows converting a URL query parameter value func Convert_Slice_string_To_unversioned_Time(input *[]string, out *metav1.Time, s conversion.Scope) error { str := "" if len(*input) > 0 { str = (*input)[0] } return out.UnmarshalQueryParameter(str) }
func (u *Unstructured) GetDeletionTimestamp() *metav1.Time { var timestamp metav1.Time timestamp.UnmarshalQueryParameter(getNestedString(u.Object, "metadata", "deletionTimestamp")) if timestamp.IsZero() { return nil } return ×tamp }
func TestScaleDownRCImmediately(t *testing.T) { time := metav1.Time{Time: time.Now()} tc := testCase{ minReplicas: 2, maxReplicas: 5, initialReplicas: 6, desiredReplicas: 5, CPUTarget: 50, reportedLevels: []uint64{8000, 9500, 1000}, reportedCPURequests: []resource.Quantity{resource.MustParse("0.9"), resource.MustParse("1.0"), resource.MustParse("1.1")}, useMetricsApi: true, lastScaleTime: &time, } tc.runTest(t) }
func TestScaleUpRCImmediately(t *testing.T) { time := metav1.Time{Time: time.Now()} tc := testCase{ minReplicas: 2, maxReplicas: 6, initialReplicas: 1, desiredReplicas: 2, verifyCPUCurrent: true, reportedLevels: []uint64{0, 0, 0, 0}, reportedCPURequests: []resource.Quantity{resource.MustParse("1.0"), resource.MustParse("1.0"), resource.MustParse("1.0"), resource.MustParse("1.0")}, useMetricsApi: true, lastScaleTime: &time, } tc.runTest(t) }
func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, eventtype, reason, message string) *v1.Event { t := metav1.Time{Time: recorder.clock.Now()} namespace := ref.Namespace if namespace == "" { namespace = v1.NamespaceDefault } return &v1.Event{ ObjectMeta: v1.ObjectMeta{ Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), Namespace: namespace, }, InvolvedObject: *ref, Reason: reason, Message: message, FirstTimestamp: t, LastTimestamp: t, Count: 1, Type: eventtype, } }
// afterOrZero checks if time t1 is after time t2; if one of them // is zero, the zero time is seen as after non-zero time. func afterOrZero(t1, t2 metav1.Time) bool { if t1.Time.IsZero() || t2.Time.IsZero() { return t1.Time.IsZero() } return t1.After(t2.Time) }
scheduleTimes := make(map[string]metav1.Time, 0) runTimes := make(map[string]metav1.Time, 0) watchTimes := make(map[string]metav1.Time, 0) var mutex sync.Mutex checkPod := func(p *v1.Pod) { mutex.Lock() defer mutex.Unlock() defer GinkgoRecover() if p.Status.Phase == v1.PodRunning { if _, found := watchTimes[p.Name]; !found { watchTimes[p.Name] = metav1.Now() createTimes[p.Name] = p.CreationTimestamp nodeNames[p.Name] = p.Spec.NodeName var startTime metav1.Time for _, cs := range p.Status.ContainerStatuses { if cs.State.Running != nil { if startTime.Before(cs.State.Running.StartedAt) { startTime = cs.State.Running.StartedAt } } } if startTime != metav1.NewTime(time.Time{}) { runTimes[p.Name] = startTime } else { framework.Failf("Pod %v is reported to be running, but none of its containers is", p.Name) } } } }
func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) { ts, _ := timestamp.MarshalQueryParameter() u.setNestedField(ts, "metadata", "deletionTimestamp") }
func (u *Unstructured) GetCreationTimestamp() metav1.Time { var timestamp metav1.Time timestamp.UnmarshalQueryParameter(getNestedString(u.Object, "metadata", "creationTimestamp")) return timestamp }