diff --git a/.travis.yml b/.travis.yml index 9baf2cb..75d2d36 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,15 +6,16 @@ go: - 1.7 env: matrix: - - BUILD_DIR=registry - - BUILD_DIR=rackhd + - TARGET=test-proxy + - TARGET=test-reg global: - secure: YjrmJs3//Dsa6G02WeIC+l2rRwMNk7ADQ5WbV0N1WdKMYEz/7rudfFrgkC4kMmjPYLQdvs+Iri9Zva/SU9oEBNC8Jv52kXsYXXwMc1UwutmAyp3jSTZEl/1ffQXU/UlSBOJ7KDrrMvGgn4WirUZ6U98piIyvN3kUSnOVuo2gJzZ9xw/3sqQTnhRcuX57FEKJVXug45RPWVR3pyI0yplVSkCAs1QbDV4B5XkMJyCyxZhqi0I2ljdHQe85fXZb+798h2oxN5WYyc67UO9WcLoWg/F417HMyRHxYgV8lRYZZCEQXZZOy8dScGUjhT6FObyUhJNwYoblAa230CcPhQ4QPmzUYcBp72AJYVpURy5DNz88S+l5sGBej6XQkaP2UX8Ho4gGbTKHG48I8aRPaeqg8KvYVrMV4BLc6HraEHvELNugNTay50XnUcWnqbpOFXqRsHRc8MZN2nB2UhqOA7qQlXonNrwLOUaDRC601bWAhBHSnacOhDyCfzHRyRTNGum/RXPSktNA39aElYos191K7fgwD/V0cx+YlZNmMkx32Pmf3waRkaMT9tJfIDB2YFeTbbP5Xf7hStOmoA20cAk3g1GP5dUbm9utFdZCDj4jG5adqLvklMuU2QmZdmSvdnwPAbaRPx6WDRU00UAlkNnVPKT1VN8kHUjVh9ToClBFT3Y= - secure: OYDVEVJOfG2HZZ3m+OkaBEXonl/Pe3QXcdkhFJenmdPoyzCaRehK5YRy/Glog0R48fOMcV4//w3pOhzalP48wJjK+N+uK+C5bsPAjM7xMIEyN26TYuDfFzUzWLdtdN1FYOmL+taGOf6I4ne7fxQrVNCGVBgxvFyX7l5dxyDis19Qm7psm3ueMPikEjUfce3wT4rhWGiEQxymNtDQpYKpO8PDu0jXgROiEUK7mwkmKJYeKRUCordWBuw1Xjclx1/PL4u4arAqz3IDhLk1Hb2tbalgdnPJUUiXa/M5JA5gKMW/K4cQuEiep+iMM71FrIHR7195oTcP7RUvalak7SGXk7WkET0YgHsKrck47KeX3TPLtXk29axJqcSk3FqktqXrUr2OsIBxgZVfRMtiDCVxcH0SaZfMLfQfGAMNnl02M8YX6y6dNWXOJfvxarUpaNEYGPnHCufJ2B6433p4OpxecdKT0sHQFcKEAV9aX2p+iIrVRmuc7MnUlJEX7UwdenS+hYTgV8Xsap86kd08QpP3FEmt6T6VJgOnzyhhT6QBObosQYRxT4hGmy6r6SJDwPvIJKbMEEFrEveFYimZyH02UZP0XE/HZJd9RsV8uCFxQal6VYIKo4uz26uYLyk352XVrm+ilmPBczBGsds2g5GdjZP13qNj7Ek1BDcxO04a2OQ= before_install: - echo -e "machine github.com\n login $GITHUB_USER\n password $GITHUB_PASS" >> ~/.netrc script: -- cd $BUILD_DIR && make + - make deps + - make $TARGET after_success: - make coveralls notifications: diff --git a/Makefile b/Makefile index a80cd05..bf324b4 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,49 @@ ORGANIZATION = RackHD PROJECT = neighborhood-manager +PROXY = rackhd +REGISTRY = registry + TTY = $(shell if [ -t 0 ]; then echo "-ti"; fi) -PROJECT_DIR = /go/src/github.com/${ORGANIZATION}/${PROJECT} -DOCKER_DIR = ${PROJECT_DIR} +DOCKER_DIR = /go/src/github.com/${ORGANIZATION}/${PROJECT} DOCKER_IMAGE = rackhd/golang:1.7.0-wheezy -DOCKER_CMD = docker run --rm -v ${PWD}:${PROJECT_DIR} ${TTY} -w ${DOCKER_DIR} ${DOCKER_IMAGE} +DOCKER_CMD = docker run --rm -v ${PWD}:${DOCKER_DIR} ${TTY} -w ${DOCKER_DIR} ${DOCKER_IMAGE} + + +# variable definitions +COMMITHASH = $(shell git describe --tags --always --dirty) +BUILDDATE = $(shell date -u) +BUILDER = $(shell echo "`git config user.name` <`git config user.email`>") +GOVERSION = $(shell go version) +OSARCH = $(shell uname -sm) +RELEASEVERSION = 0.1 + + + +#Flags to pass to main.go +PROXYFLAGS = -ldflags "-X 'main.binaryName=${PROXY}' \ + -X 'main.buildDate=${BUILDDATE}' \ + -X 'main.buildUser=${BUILDER}' \ + -X 'main.commitHash=${COMMITHASH}' \ + -X 'main.goVersion=${GOVERSION}' \ + -X 'main.osArch=${OSARCH}' \ + -X 'main.releaseVersion=${RELEASEVERSION}' " + +REGFLAGS = -ldflags "-X 'main.binaryName=${REGISTRY}' \ + -X 'main.buildDate=${BUILDDATE}' \ + -X 'main.buildUser=${BUILDER}' \ + -X 'main.commitHash=${COMMITHASH}' \ + -X 'main.goVersion=${GOVERSION}' \ + -X 'main.osArch=${OSARCH}' \ + -X 'main.releaseVersion=${RELEASEVERSION}' " + +#Some tests need to run for 5+ seconds, which trips Ginkgo Slow Test warning +SLOWTEST = 10 -noop: - @echo Neighborhood Manager +.PHONY: shell deps deps-local build build-local lint lint-local test test-local release + +default: deps test build coveralls: @go get github.com/mattn/goveralls @@ -17,3 +51,73 @@ coveralls: @go get golang.org/x/tools/cmd/cover @gover @goveralls -coverprofile=gover.coverprofile -service=travis-ci + +shell: + @${DOCKER_CMD} /bin/bash + +consul-shell: + @docker run --rm -ti --net nmregistry_default -v ${PWD}:${DOCKER_DIR} -w ${DOCKER_DIR} ${DOCKER_IMAGE} /bin/bash + +clean: + @${DOCKER_CMD} make clean-local + +clean-local: + @rm -rf bin vendor + +deps: + @${DOCKER_CMD} make deps-local + +deps-local: + @if ! [ -f glide.yaml ]; then glide init --non-interactive; fi + @glide install + +build: + @make build-proxy + @make build-reg + +build-proxy: + @${DOCKER_CMD} make build-proxy-local + +build-proxy-local: lint-local + @go build -o bin/${PROXY} ${PROXYFLAGS} rackhd/cmd/rackhd/*.go + @go build -o bin/endpoint rackhd/cmd/utils/*.go + +build-reg: + @${DOCKER_CMD} make build-reg-local + +build-reg-local: lint-local + @go build -o bin/${REGISTRY} ${REGFLAGS} registry/cmd/registry/*.go + @go build -o registry/cmd/ssdpspoofer/bin/ssdpspoofer registry/cmd/ssdpspoofer/*.go + +lint: + @${DOCKER_CMD} make lint-local + +lint-local: + @gometalinter --vendor --fast --disable=dupl --disable=gotype --skip=grpc ./... +test: + @make test-proxy + @make test-reg + +test-proxy: + @${DOCKER_CMD} make test-proxy-local + @make build-proxy + +test-proxy-local: lint-local + @ginkgo -r -race -trace -cover -randomizeAllSpecs --slowSpecThreshold=${SLOWTEST} ${PROXY} + +test-reg: + @${DOCKER_CMD} make test-reg-local + @make build-reg + +test-reg-local: lint-local + @ginkgo -r -race -trace -cover -randomizeAllSpecs --slowSpecThreshold=${SLOWTEST} ${REGISTRY} + +release: deps build + @docker build -t rackhd/${PROXY} rackhd + @docker build -t rackhd/endpoint rackhd/cmd/utils/ + @docker build -t rackhd/${REGISTRY} registry + @docker build -t rackhd/ssdpspoofer registry/cmd/ssdpspoofer/ + + +run: release + @docker-compose up --force-recreate diff --git a/registry/glide.lock b/glide.lock similarity index 71% rename from registry/glide.lock rename to glide.lock index 4f16369..b5f53a3 100644 --- a/registry/glide.lock +++ b/glide.lock @@ -1,8 +1,6 @@ -hash: c33e119fd04580064386aaa82f48b9e9982d44fc439fe75682970eed39f9bbef -updated: 2016-08-19T17:46:59.09304741Z +hash: 1430ace24aa0f5928da1786bae12d7db3fff57f1b4878448245da0fbda724509 +updated: 2016-08-22T17:27:50.804668522Z imports: -- name: github.com/BurntSushi/toml - version: 99064174e013895bbd9b025c31100bd1d9b590ca - name: github.com/fsnotify/fsnotify version: f12c6236fe7b5cf6bcf30e5935d08cb079d78334 - name: github.com/hashicorp/consul @@ -12,7 +10,7 @@ imports: - name: github.com/hashicorp/go-cleanhttp version: ad28ea4487f05916463e2423a55166280e8254b5 - name: github.com/hashicorp/hcl - version: d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1 + version: bc40da04e8303cb7406e9ed1a2b742d636c5d960 subpackages: - hcl/ast - hcl/parser @@ -34,19 +32,16 @@ imports: version: 61b492c03cf472e0c6419be5899b8e0dc28b1b88 - name: github.com/mitchellh/mapstructure version: ca63d7c062ee3c9f34db231e352b60012b4fd0c1 +- name: github.com/pelletier/go-buffruneio + version: df1e16fde7fc330a0ca68167c23bf7ed6ac31d6d +- name: github.com/pelletier/go-toml + version: 0049ab3dc4c4c70a9eee23087437b69c0dde2130 - name: github.com/pkg/errors - version: a22138067af1c4942683050411a841ade67fe1eb + version: 17b591df37844cde689f4d5813e5cea0927d8dd2 - name: github.com/pkg/sftp version: a71e8f580e3b622ebff585309160b1cc549ef4d2 -- name: github.com/RackHD/neighborhood-manager - version: b851dd1fe65be18a313133ed5db60ce508832898 - subpackages: - - libreg - - libreg/registry - - libreg/registry/consul - - registry - name: github.com/spf13/afero - version: b28a7effac979219c2a2ed6205a4d70e4b1bcd02 + version: 20500e2abd0d1f4564a499e83d11d6c73cd58c27 subpackages: - mem - sftp @@ -55,18 +50,18 @@ imports: - name: github.com/spf13/jwalterweatherman version: 33c24e77fb80341fe7130ee7c594256ff08ccc46 - name: github.com/spf13/pflag - version: 6454a84b6da0ea8b628d5d8a26759f62c6c161b4 + version: 103ce5cd2042f2fe629c1957abb64ab3e7f50235 - name: github.com/spf13/viper - version: 654fc7bb54d0c138ef80405ff577391f79c0c32d + version: 7fb2782df3d83e0036cc89f461ed0422628776f4 - name: golang.org/x/crypto - version: 88d0005bf4c3ec17306ecaca4281a8d8efd73e91 + version: 7e016f1856e33d687a3a722085e249982e673aff subpackages: - ssh - curve25519 - ed25519 - ed25519/internal/edwards25519 - name: golang.org/x/net - version: 07b51741c1d6423d4a6abab1c49940ec09cb1aaf + version: 7394c112eae4dba7e96bfcfe738e6373d61772b4 subpackages: - ipv4 - bpf diff --git a/glide.yaml b/glide.yaml new file mode 100644 index 0000000..0a9d060 --- /dev/null +++ b/glide.yaml @@ -0,0 +1,7 @@ +package: github.com/RackHD/neighborhood-manager +import: +- package: github.com/hashicorp/consul + subpackages: + - api +- package: github.com/king-jam/gossdp +- package: github.com/spf13/viper diff --git a/rackhd/Makefile b/rackhd/Makefile deleted file mode 100644 index c864282..0000000 --- a/rackhd/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -ORGANIZATION = RackHD -PROJECT = neighborhood-manager -APPLICATION = rackhd - -TTY = $(shell if [ -t 0 ]; then echo "-ti"; fi) - -PROJECT_DIR = /go/src/github.com/${ORGANIZATION}/${PROJECT} -DOCKER_DIR = ${PROJECT_DIR}/${APPLICATION} -DOCKER_IMAGE = rackhd/golang:1.7.0-wheezy -DOCKER_CMD = docker run --rm -v $(shell dirname $(shell pwd -L)):${PROJECT_DIR} ${TTY} -w ${DOCKER_DIR} ${DOCKER_IMAGE} - -MAIN_PATH = cmd/${APPLICATION} - -# variable definitions -SHELL = /bin/bash -COMMITHASH = $(shell git describe --tags --always --dirty) -BUILDDATE = $(shell date -u) -BUILDER = $(shell echo "`git config user.name` <`git config user.email`>") -GOVERSION = $(shell go version) -OSARCH = $(shell uname -sm) -RELEASEVERSION = 0.1 - -#Flags to pass to main.go -LDFLAGS = -ldflags "-X 'main.binaryName=${APPLICATION}' \ - -X 'main.buildDate=${BUILDDATE}' \ - -X 'main.buildUser=${BUILDER}' \ - -X 'main.commitHash=${COMMITHASH}' \ - -X 'main.goVersion=${GOVERSION}' \ - -X 'main.osArch=${OSARCH}' \ - -X 'main.releaseVersion=${RELEASEVERSION}' " - -#Some tests need to run for 5+ seconds, which trips Ginkgo Slow Test warning -SLOWTEST = 10 - -.PHONY: shell deps deps-local build build-local lint lint-local test test-local release - -default: deps test build - -shell: - @${DOCKER_CMD} /bin/bash - -clean: - @${DOCKER_CMD} make clean-local - -clean-local: - @rm -rf bin vendor - -deps: - @${DOCKER_CMD} make deps-local - -deps-local: - @if ! [ -f glide.yaml ]; then glide init; fi - @glide install - -build: - @${DOCKER_CMD} make build-local - -build-local: lint-local - @go build -o bin/${APPLICATION} ${LDFLAGS} ${MAIN_PATH}/*.go - @go build -o bin/endpoint cmd/utils/*.go - -lint: - @${DOCKER_CMD} make lint-local - -lint-local: - @gometalinter --vendor --fast --disable=dupl --disable=gotype --skip=grpc ./... - -test: - @${DOCKER_CMD} make test-local - -test-local: lint-local - @ginkgo -race -trace -randomizeAllSpecs -r -cover - -release: deps build - @docker build -t rackhd/${APPLICATION} . - @docker build -t rackhd/endpoint cmd/utils/ - -run: release - @docker-compose up --force-recreate diff --git a/rackhd/glide.lock b/rackhd/glide.lock deleted file mode 100644 index e7710a6..0000000 --- a/rackhd/glide.lock +++ /dev/null @@ -1,23 +0,0 @@ -hash: 1bcd3ce3df9fcbd14e715bf399f7e5164732a9322a6f2cefe2101b1221b787af -updated: 2016-08-19T17:43:00.092331808Z -imports: -- name: github.com/hashicorp/consul - version: 36dc9201f2e006d4b5db1f0446b17357811297bf - subpackages: - - api -- name: github.com/hashicorp/go-cleanhttp - version: ad28ea4487f05916463e2423a55166280e8254b5 -- name: github.com/hashicorp/serf - version: 9432bc08aa8d486e497e27f84878ebbe8c1eab66 - subpackages: - - coordinate -- name: github.com/RackHD/neighborhood-manager - version: b851dd1fe65be18a313133ed5db60ce508832898 - subpackages: - - libreg - - libreg/registry - - libreg/registry/consul - - rackhd/proxy - - rackhd/cmd/utils/api - - rackhd/watcher -testImports: [] diff --git a/rackhd/glide.yaml b/rackhd/glide.yaml deleted file mode 100644 index 0da7722..0000000 --- a/rackhd/glide.yaml +++ /dev/null @@ -1,7 +0,0 @@ -package: github.com/RackHD/neighborhood-manager/rackhd -import: -- package: github.com/RackHD/neighborhood-manager - subpackages: - - libreg - - libreg/registry - - libreg/registry/consul diff --git a/registry/Makefile b/registry/Makefile deleted file mode 100644 index d6f6fba..0000000 --- a/registry/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -ORGANIZATION = RackHD -PROJECT = neighborhood-manager -APPLICATION = registry - -SHELL = /bin/bash - -TTY = $(shell if [ -t 0 ]; then echo "-ti"; fi) - -PROJECT_DIR = /go/src/github.com/${ORGANIZATION}/${PROJECT} -DOCKER_DIR = ${PROJECT_DIR}/${APPLICATION} -DOCKER_IMAGE = rackhd/golang:1.7.0-wheezy -DOCKER_CMD = docker run --rm -v $(shell dirname $(shell pwd -L)):${PROJECT_DIR} ${TTY} -w ${DOCKER_DIR} ${DOCKER_IMAGE} - -MAIN_PATH = cmd/${APPLICATION} - -# variable definitions -COMMITHASH = $(shell git describe --tags --always --dirty) -BUILDDATE = $(shell date -u) -BUILDER = $(shell echo "`git config user.name` <`git config user.email`>") -GOVERSION = $(shell go version) -OSARCH = $(shell uname -sm) -RELEASEVERSION = 0.1 - - - -#Flags to pass to main.go -LDFLAGS = -ldflags "-X 'main.binaryName=${APPLICATION}' \ - -X 'main.buildDate=${BUILDDATE}' \ - -X 'main.buildUser=${BUILDER}' \ - -X 'main.commitHash=${COMMITHASH}' \ - -X 'main.goVersion=${GOVERSION}' \ - -X 'main.osArch=${OSARCH}' \ - -X 'main.releaseVersion=${RELEASEVERSION}' " - -#Some tests need to run for 5+ seconds, which trips Ginkgo Slow Test warning -SLOWTEST = 10 - -.PHONY: shell deps deps-local build build-local lint lint-local test test-local release - -default: deps test build - -shell: - @${DOCKER_CMD} /bin/bash - -consul-shell: - @docker run --rm -ti --net nmregistry_default -v ${PWD}:${DOCKER_DIR} -w ${DOCKER_DIR} ${DOCKER_IMAGE} /bin/bash - -clean: - @${DOCKER_CMD} make clean-local - -clean-local: - @rm -rf bin vendor - -deps: - @${DOCKER_CMD} make deps-local - -deps-local: - @if ! [ -f glide.lock ]; then glide init --non-interactive; fi - @glide install - -build: - @${DOCKER_CMD} make build-local - -build-local: lint-local - @go build -o bin/${APPLICATION} ${LDFLAGS} ${MAIN_PATH}/*.go - @go build -o cmd/ssdpspoofer/bin/ssdpspoofer cmd/ssdpspoofer/*.go - -lint: - @${DOCKER_CMD} make lint-local - -lint-local: - @gometalinter --vendor --fast --disable=dupl --disable=gotype --skip=grpc ./... - -test: - @${DOCKER_CMD} make test-local - -test-local: lint-local - @ginkgo -r -race -trace -cover -randomizeAllSpecs --slowSpecThreshold=${SLOWTEST} - -release: deps build - @docker build -t rackhd/${APPLICATION} . - @docker build -t rackhd/ssdpspoofer cmd/ssdpspoofer/ - -run: release - @docker-compose up --force-recreate diff --git a/registry/glide.yaml b/registry/glide.yaml deleted file mode 100644 index 349fac9..0000000 --- a/registry/glide.yaml +++ /dev/null @@ -1,9 +0,0 @@ -package: github.com/RackHD/neighborhood-manager/registry -import: -- package: github.com/RackHD/neighborhood-manager - subpackages: - - libreg - - libreg/registry - - libreg/registry/consul -- package: github.com/king-jam/gossdp -- package: github.com/spf13/viper diff --git a/registry/nm_registry_suite_test.go b/registry/registry_suite_test.go similarity index 65% rename from registry/nm_registry_suite_test.go rename to registry/registry_suite_test.go index 09a750a..368ed76 100644 --- a/registry/nm_registry_suite_test.go +++ b/registry/registry_suite_test.go @@ -7,7 +7,7 @@ import ( "testing" ) -func TestNmRegistry(t *testing.T) { +func TestRegistry(t *testing.T) { RegisterFailHandler(Fail) - RunSpecs(t, "NmRegistry Suite") + RunSpecs(t, "Registry Suite") }