func TestGetSelfHost(t *testing.T) {

	clientIP1 := "10.42.73.81"
	mc1, err := metadata.NewClientWithIPAndWait(metadataURL1, clientIP1)
	logrus.Debugf("mc1: %v", mc1)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}
	selfHost1, err := mc1.GetSelfHost()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	expectedSelfHost1Name := "aa-leo-tmp-10acre-1"
	if selfHost1.Name != expectedSelfHost1Name {
		t.Error("expected: %s, actual: %s", expectedSelfHost1Name, selfHost1.Name)
	}

	logrus.Debugf("selfHost1: %v", selfHost1)

	clientIP2 := "10.42.128.187"
	mc2, err := metadata.NewClientWithIPAndWait(metadataURL2, clientIP2)
	logrus.Debugf("mc2: %v", mc2)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}
	selfHost2, err := mc2.GetSelfHost()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	expectedSelfHost2Name := "aa-leo-tmp-10acre-2"
	if selfHost2.Name != expectedSelfHost2Name {
		t.Error("expected: %s, actual: %s", expectedSelfHost2Name, selfHost2.Name)
	}
}
func TestGetSelfContainer(t *testing.T) {

	clientIP1 := "10.42.73.81"
	mc1, err := metadata.NewClientWithIPAndWait(metadataURL1, clientIP1)
	logrus.Debugf("mc1: %v", mc1)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}
	c1, err := mc1.GetSelfContainer()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	logrus.Debugf("c1: %v", c1)

	clientIP2 := "10.42.128.187"
	mc2, err := metadata.NewClientWithIPAndWait(metadataURL2, clientIP2)
	logrus.Debugf("mc2: %v", mc2)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}
	c2, err := mc2.GetSelfContainer()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	if c2.PrimaryIp != clientIP2 {
		t.Error("expected: %s, actual: %c", clientIP2, c2.PrimaryIp)
	}
	logrus.Debugf("c2: %+v", c2)
}
func TestGetContainers(t *testing.T) {

	clientIP1 := "10.42.73.81"

	mc1, err := metadata.NewClientWithIPAndWait(metadataURL1, clientIP1)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}

	containers, err := mc1.GetContainers()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	expectedContainersLength := 12
	actualContainersLength := len(containers)
	if actualContainersLength != expectedContainersLength {
		t.Error("expectedContainersLength: %v actualContainersLength: %v", expectedContainersLength, actualContainersLength)
	}

}
func TestGetServices(t *testing.T) {

	clientIP1 := "10.42.73.81"
	mc1, err := metadata.NewClientWithIPAndWait(metadataURL1, clientIP1)
	logrus.Debugf("mc1: %v", mc1)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}

	services, err := mc1.GetServices()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}

	expectedServicesLength := 9
	actualServicesLength := len(services)
	if actualServicesLength != expectedServicesLength {
		t.Error("expectedServicesLength: %v actualServicesLength: %v", expectedServicesLength, actualServicesLength)
	}
}
func TestGetSelfService(t *testing.T) {

	clientIP1 := "10.42.73.81"
	mc1, err := metadata.NewClientWithIPAndWait(metadataURL1, clientIP1)
	logrus.Debugf("mc1: %v", mc1)
	if err != nil {
		logrus.Errorf("couldn't create metadata client")
	}

	selfService, err := mc1.GetSelfService()
	if err != nil {
		t.Error("not expecting error, got: %v", err)
	}
	logrus.Debugf("selfService: %+v", selfService)

	actualNumOfServiceContainers := len(selfService.Containers)
	expectedNumOfServiceContainers := 1
	if actualNumOfServiceContainers != expectedNumOfServiceContainers {
		t.Error("expected %v got %v", expectedNumOfServiceContainers, actualNumOfServiceContainers)
	}
}