예제 #1
0
package integration_test

import (
	"encoding/json"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/settings"
)

var _ = Describe("sync_dns", func() {
	var (
		agentClient      agentclient.AgentClient
		registrySettings settings.Settings
	)

	BeforeEach(func() {
		err := testEnvironment.StopAgent()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupDataDir()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupLogFile()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.SetupConfigDrive()
		Expect(err).ToNot(HaveOccurred())
예제 #2
0
	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/settings"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("DeleteARPEntries", func() {
	const (
		emptyMacAddress string = "<incomplete>"
		testMacAddress  string = "52:54:00:12:35:aa"
	)

	var (
		agentClient      agentclient.AgentClient
		registrySettings settings.Settings
		testIP           string
	)

	var getValidIP = func(gatewayIP string) string {
		ipParts := strings.Split(gatewayIP, ".")
		ipParts[3] = "100"
		return strings.Join(ipParts, ".")
	}

	var parseARPCacheIntoMap = func() (map[string]string, error) {
		ARPCache := map[string]string{}
		ARPResultsRegex := regexp.MustCompile(`.*\((.*)\)\ at\ (\S+).*`)
		lines, err := testEnvironment.RunCommand("arp -a")
		if err != nil {
			return ARPCache, err
예제 #3
0
	"errors"
	"net/http"

	. "github.com/cloudfoundry/bosh-agent/agentclient/http"

	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/agentclient/applyspec"
	fakehttpclient "github.com/cloudfoundry/bosh-utils/httpclient/fakes"
	boshlog "github.com/cloudfoundry/bosh-utils/logger"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("AgentClient", func() {
	var (
		fakeHTTPClient *fakehttpclient.FakeHTTPClient
		agentClient    agentclient.AgentClient
	)

	BeforeEach(func() {
		logger := boshlog.NewLogger(boshlog.LevelNone)
		fakeHTTPClient = fakehttpclient.NewFakeHTTPClient()
		toleratedErrorCount := 2
		agentClient = NewAgentClient("http://localhost:6305", "fake-uuid", 0, toleratedErrorCount, fakeHTTPClient, logger)
	})

	Describe("get_task", func() {
		Context("when the http client errors", func() {
			It("should retry", func() {
				fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil)
				fakeHTTPClient.SetPostBehavior("", 0, errors.New("connection reset by peer"))
				fakeHTTPClient.SetPostBehavior("", 0, errors.New("connection reset by peer"))
예제 #4
0
package integration_test

import (
	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/settings"

	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/ginkgo"
	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/gomega"
)

var _ = Describe("CertManager", func() {
	var (
		agentClient      agentclient.AgentClient
		registrySettings settings.Settings
	)

	BeforeEach(func() {
		err := testEnvironment.StopAgent()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupDataDir()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupLogFile()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.SetupConfigDrive()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.UpdateAgentConfig("config-drive-agent.json")
		Expect(err).ToNot(HaveOccurred())
예제 #5
0
package integration_test

import (
	"github.com/cloudfoundry/bosh-agent/agentclient"
	. "github.com/cloudfoundry/bosh-agent/agentclient/applyspec"
	boshsettings "github.com/cloudfoundry/bosh-agent/settings"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("TestApply", func() {
	var (
		registrySettings boshsettings.Settings
		agentClient      agentclient.AgentClient
		applySpec        ApplySpec
	)

	BeforeEach(func() {
		err := testEnvironment.StopAgent()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupDataDir()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupLogFile()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.SetupConfigDrive()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.UpdateAgentConfig("config-drive-agent.json")
예제 #6
0
package integration_test

import (
	"github.com/cloudfoundry/bosh-agent/agentclient"
	boshsettings "github.com/cloudfoundry/bosh-agent/settings"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("TestStart", func() {
	var (
		registrySettings boshsettings.Settings
		agentClient      agentclient.AgentClient
	)

	BeforeEach(func() {
		err := testEnvironment.StopAgent()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupDataDir()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupLogFile()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.SetupConfigDrive()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.UpdateAgentConfig("config-drive-agent.json")
		Expect(err).ToNot(HaveOccurred())
예제 #7
0
package integration_test

import (
	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/settings"

	"github.com/cloudfoundry/bosh-agent/agent/action"
	"github.com/cloudfoundry/bosh-agent/integration"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	"strings"
)

var _ = Describe("Instance Info", func() {
	var (
		agentClient      agentclient.AgentClient
		registrySettings settings.Settings
	)

	BeforeEach(func() {
		err := testEnvironment.StopAgent()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupDataDir()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupLogFile()
		Expect(err).ToNot(HaveOccurred())

		err = testEnvironment.CleanupSSH()
		Expect(err).ToNot(HaveOccurred())
예제 #8
0
	. "github.com/cloudfoundry/bosh-agent/agentclient/http"

	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/agentclient/applyspec"

	"github.com/cloudfoundry/bosh-agent/agent/action"
	fakehttpclient "github.com/cloudfoundry/bosh-utils/httpclient/fakes"
	boshlog "github.com/cloudfoundry/bosh-utils/logger"
)

var _ = Describe("AgentClient", func() {
	var (
		fakeHTTPClient *fakehttpclient.FakeHTTPClient
		agentClient    agentclient.AgentClient

		agentAddress        string
		agentEndpoint       string
		replyToAddress      string
		toleratedErrorCount int
	)

	BeforeEach(func() {
		logger := boshlog.NewLogger(boshlog.LevelNone)
		fakeHTTPClient = fakehttpclient.NewFakeHTTPClient()

		agentAddress = "http://localhost:6305"
		agentEndpoint = agentAddress + "/agent"
		replyToAddress = "fake-reply-to-uuid"

		getTaskDelay := time.Duration(0)
		toleratedErrorCount = 2
예제 #9
0
	"github.com/cloudfoundry/bosh-agent/agentclient"
	"github.com/cloudfoundry/bosh-agent/settings"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("DeleteFromARP", func() {
	const (
		emptyMacAddress string = "<incomplete>"
		testMacAddress  string = "52:54:00:12:35:aa"
	)

	var (
		agentClient      agentclient.AgentClient
		registrySettings settings.Settings
		testIP           string
	)

	var getValidIP = func(gatewayIP string) string {
		ipParts := strings.Split(gatewayIP, ".")
		ipParts[3] = "100"
		return strings.Join(ipParts, ".")
	}

	var parseARPCacheIntoMap = func() (map[string]string, error) {
		ARPCache := map[string]string{}
		ARPResultsRegex := regexp.MustCompile(`.*\((.*)\)\ at\ (\S+).*`)
		lines, err := testEnvironment.RunCommand("arp -a")
		if err != nil {
			return ARPCache, err