- logf.SetLogger(logf.ZapLogger(true))
- bpaName1 := "bpa-test-cr"
- bpaName2 := "bpa-test-2"
- bpaName3 := "bpa-test-3"
- namespace := "default"
- clusterName := "test-cluster"
- clusterName2 := "test-cluster-2"
- clusterName3 := "test-cluster-3"
- macAddress1 := "08:00:27:00:ab:2c"
- macAddress2 := "08:00:27:00:ab:3d"
- macAddress3 := "08:00:27:00:ab:1c"
-
- // Create Fake DHCP file
- err := createFakeDHCP()
- if err != nil {
- t.Fatalf("Cannot create Fake DHCP file for testing\n")
- }
-
- // Create Fake baremetalhost
- bmhList := newBMList()
-
- // Create Fake Provisioning CR
- provisioning := newBPA(bpaName1, namespace, clusterName, macAddress1)
- provisioning2 := newBPA(bpaName2, namespace, clusterName2, macAddress2)
- provisioning3 := newBPA(bpaName3, namespace, clusterName3, macAddress3)
-
- // Objects to track in the fake Client
- objs := []runtime.Object{provisioning, provisioning2, provisioning3}
-
- // Register operator types with the runtime scheme
- sc := scheme.Scheme
-
- sc.AddKnownTypes(bpav1alpha1.SchemeGroupVersion, provisioning, provisioning2, provisioning3)
-
- // Create Fake Clients and Clientset
- fakeClient := fake.NewFakeClient(objs...)
- fakeDyn := fakedynamic.NewSimpleDynamicClient(sc, bmhList,)
- fakeClientSet := fakeclientset.NewSimpleClientset()
-
- r := &ReconcileProvisioning{client: fakeClient, scheme: sc, clientset: fakeClientSet, bmhClient: fakeDyn}
-
- // Mock request to simulate Reconcile() being called on an event for a watched resource
- req := simulateRequest(provisioning)
- _, err = r.Reconcile(req)
- if err != nil {
- t.Fatalf("reconcile: (%v)", err)
- }
-
- // Test 1: Check the job was created with the expected name
- jobClient := r.clientset.BatchV1().Jobs(namespace)
- job, err := jobClient.Get("kud-test-cluster", metav1.GetOptions{})
-
- if err != nil {
- t.Fatalf("Error occured while getting job: (%v)", err)
- }
-
- // Test 2: Check that cluster name metadata in job is the expected cluster name
- jobClusterName := job.Labels["cluster"]
- if jobClusterName != clusterName {
- t.Fatalf("Job cluster Name is wrong")
- }
-
-
- // Test 3: Check that the right error is produced when host with MAC address does not exist
- req = simulateRequest(provisioning2)
- _, err = r.Reconcile(req)
- expectedErr := "Host with MAC Address " + macAddress2 + " not found\n"
- if err.Error() != expectedErr {
- t.Fatalf("Failed, Unexpected error occured %v\n", err)
- }
-
- // Test 4: Check that the right error is produced when MAC address is not found in the DHCP lease file
- req = simulateRequest(provisioning3)
- _, err = r.Reconcile(req)
- expectedErr = "IP address not found for host with MAC address " + macAddress3 + " \n"
- if err.Error() != expectedErr {
- t.Fatalf("Failed, Unexpected error occured %v\n", err)
- }
-
- // Delete Fake DHCP file and cluster directories
- err = os.Remove("/var/lib/dhcp/dhcpd.leases")
- if err != nil {
- t.Logf("\nUnable to delete fake DHCP file\n")
- }
- err = os.RemoveAll("/multi-cluster/" + clusterName)
- if err != nil {
- t.Logf("\nUnable to delete cluster directory %s\n", clusterName)
- }
- err = os.RemoveAll("/multi-cluster/" + clusterName2)
- if err != nil {
- t.Logf("\nUnable to delete cluster directory %s\n", clusterName2)
- }
- err = os.RemoveAll("/multi-cluster/" + clusterName3)
- if err != nil {
- t.Logf("\nUnable to delete cluster directory %s\n", clusterName3)
- }
+ logf.SetLogger(logf.ZapLogger(true))
+ bpaName1 := "bpa-test-cr"
+ bpaName2 := "bpa-test-2"
+ bpaName3 := "bpa-test-3"
+ namespace := "default"
+ clusterName := "test-cluster"
+ clusterName2 := "test-cluster-2"
+ clusterName3 := "test-cluster-3"
+ macAddress1 := "08:00:27:00:ab:2c"
+ macAddress2 := "08:00:27:00:ab:3d"
+ macAddress3 := "08:00:27:00:ab:1c"
+
+ // Create Fake DHCP file
+ err := createFakeDHCP()
+ if err != nil {
+ t.Fatalf("Cannot create Fake DHCP file for testing\n")
+ }
+
+ // Create Fake baremetalhost
+ bmhList := newBMList()
+
+ // Create Fake Provisioning CR
+ provisioning := newBPA(bpaName1, namespace, clusterName, macAddress1)
+ provisioning2 := newBPA(bpaName2, namespace, clusterName2, macAddress2)
+ provisioning3 := newBPA(bpaName3, namespace, clusterName3, macAddress3)
+
+ // Objects to track in the fake Client
+ objs := []runtime.Object{provisioning, provisioning2, provisioning3}
+
+ // Register operator types with the runtime scheme
+ sc := scheme.Scheme
+
+ sc.AddKnownTypes(bpav1alpha1.SchemeGroupVersion, provisioning, provisioning2, provisioning3)
+
+ // Create Fake Clients and Clientset
+ fakeClient := fake.NewFakeClient(objs...)
+ fakeDyn := fakedynamic.NewSimpleDynamicClient(sc, bmhList)
+ fakeClientSet := fakeclientset.NewSimpleClientset()
+
+ r := &ReconcileProvisioning{client: fakeClient, scheme: sc, clientset: fakeClientSet, bmhClient: fakeDyn}
+
+ // Mock request to simulate Reconcile() being called on an event for a watched resource
+ req := simulateRequest(provisioning)
+ _, err = r.Reconcile(req)
+ if err != nil {
+ t.Fatalf("reconcile: (%v)", err)
+ }
+
+ // Test 1: Check the job was created with the expected name
+ jobClient := r.clientset.BatchV1().Jobs(namespace)
+ job, err := jobClient.Get("kud-test-cluster", metav1.GetOptions{})
+
+ if err != nil {
+ t.Fatalf("Error occured while getting job: (%v)", err)
+ }
+
+ // Test 2: Check that cluster name metadata in job is the expected cluster name
+ jobClusterName := job.Labels["cluster"]
+ if jobClusterName != clusterName {
+ t.Fatalf("Job cluster Name is wrong")
+ }