इस मामले में, हमारा लक्ष्य एक परीक्षण फ़ंक्शन बनाना है GetNamespaceCreationTime फ़ंक्शन के लिए, जिसका उद्देश्य किसी विशेष कुबेरनेट्स नेमस्पेस के लिए निर्माण टाइमस्टैम्प को पुनः प्राप्त करना है। हालाँकि, आपको इनिशियलाइज़ेशन लॉजिक को शामिल करने और नकली क्लाइंट के साथ इंटरैक्ट करने के लिए एक उपयुक्त दृष्टिकोण खोजने में कठिनाई का सामना करना पड़ता है। स्वयं कार्य करें। इसके बजाय, Kubernetes क्लाइंट इंटरफ़ेस को फ़ंक्शन के पैरामीटर के रूप में पास किया जाना चाहिए।
import (
"fmt"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"time"
)
func GetNamespaceCreationTime(kubeClient kubernetes.Interface, namespace string) int64 {
ns, err := kubeClient.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%v \n", ns.CreationTimestamp)
return ns.GetCreationTimestamp().Unix()
}
func GetClientSet() kubernetes.Interface {
कॉन्फिग, त्रुटि := बाकी.InClusterConfig()
यदि त्रुटि !=शून्य {
log.Warnf("इन-क्लस्टर कॉन्फिगरेशन नहीं मिल सका: %s", त्रुटि)
वापसी शून्य, त्रुटि
}
क्लाइंट, त्रुटि := kubernetes.NewForConfig(config)
यदि त्रुटि !=शून्य {
log.Warnf ("इन-क्लस्टर एपीआई सर्वर से कनेक्ट नहीं हो सका: %s", त्रुटि)
वापसी शून्य, त्रुटि
}
वापसी ग्राहक, गलती
)
kubeClient := नकली.NewSimpleClientset()
मिला := GetNamespaceCreationTime(kubeClient, "डिफ़ॉल्ट")
चाहते हैं := int64(1257894000)
nsMock := config.CoreV1().Namespaces()
nsMock.Create(&v1.Namespace{
ऑब्जेक्टमेटा: मेटाव1.ऑब्जेक्टमेटा{
नाम: "डिफ़ॉल्ट",
निर्माणटाइमस्टैम्प: मेटाव1.दिनांक(2009, समय.नवंबर, 10, 23, 0, 0, 0, समय.यूटीसी),
},
})
अगर मिल गया != चाहिए {
t.Errorf ("मिल गया %q चाहिए %q", मिल गया, चाहिए)
}
}यह परीक्षण सुनिश्चित करता है कि "डिफ़ॉल्ट" नेमस्पेस के लिए अपेक्षित निर्माण टाइमस्टैम्प को नकली क्लाइंट का उपयोग करके सटीक रूप से पुनर्प्राप्त किया गया है।func GetClientSet() kubernetes.Interface {
config, err := rest.InClusterConfig()
if err != nil {
log.Warnf("Could not get in-cluster config: %s", err)
return nil, err
}
client, err := kubernetes.NewForConfig(config)
if err != nil {
log.Warnf("Could not connect to in-cluster API server: %s", err)
return nil, err
}
return client, err
}
func TestGetNamespaceCreationTime(t *testing.T) {
kubeClient := fake.NewSimpleClientset()
got := GetNamespaceCreationTime(kubeClient, "default")
want := int64(1257894000)
nsMock := config.CoreV1().Namespaces()
nsMock.Create(&v1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "default",
CreationTimestamp: metav1.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
},
})
if got != want {
t.Errorf("got %q want %q", got, want)
}
}
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3