File: Makefile

package info (click to toggle)
rabbitmq-server 4.0.5-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,972 kB
  • sloc: erlang: 257,835; javascript: 22,466; sh: 3,037; makefile: 2,517; python: 1,966; xml: 646; cs: 335; java: 244; ruby: 212; php: 100; perl: 63; awk: 13
file content (101 lines) | stat: -rw-r--r-- 2,944 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
PLATFORM := $(shell uname)

ifeq ($(PLATFORM),Darwin)
HOST_DOCKER := host.docker.internal
endif

ifeq ($(PLATFORM),Linux)
HOST_DOCKER := $(shell ip addr show docker0 | grep -Po 'inet \K[\d.]+')
endif

.DEFAULT_GOAL = test

.PHONY: run-uaa
run-uaa:
	docker exec uaa /bin/echo \
	|| docker run \
		--detach \
		--name uaa \
		--publish 8080:8080 \
		--mount type=bind,source=$(CURDIR)/uaa,target=/etc/uaa \
		--env JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom" \
		pkuryloski/uaa:74.15.0

.PHONY: run-rabbitmq
run-rabbitmq: run-uaa
	docker exec rabbitmq /bin/echo \
	|| docker run \
		--detach \
		--name rabbitmq \
		--publish 5672:5672 \
		--publish 15672:15672 \
		--mount type=bind,source="$(CURDIR)"/rabbitmq,target=/etc/rabbitmq \
		rabbitmq:3.8-management

.PHONY: wait-rabbitmq
wait-rabbitmq: run-rabbitmq
	docker exec rabbitmq rabbitmq-diagnostics ping -q \
	|| (sleep 15; docker exec rabbitmq rabbitmq-diagnostics ping -q)

.PHONY: vhosts
vhosts: wait-rabbitmq
	docker exec rabbitmq rabbitmqctl add_vhost uaa_vhost
	docker exec rabbitmq rabbitmqctl add_vhost other_vhost
	docker exec rabbitmq rabbitmqctl set_permissions -p uaa_vhost admin '.*' '.*' '.*'
	docker exec rabbitmq rabbitmqctl set_permissions -p other_vhost admin '.*' '.*' '.*'

.PHONY: uaac-bunny-image
uaac-bunny-image:
	docker images | grep "^uaac\s" \
	|| docker run --name uaac ruby:2.5 gem install cf-uaac bunny
	docker images | grep "^uaac\s" \
	|| (docker commit $$(docker ps -aqf "name=^uaac$$") uaac:latest \
		&& docker rm uaac)

.PHONY: queues
queues: vhosts uaac-bunny-image
	docker run -it --rm \
		--name declare-queues \
		--mount type=bind,source="$(CURDIR)"/../declare_queues.rb,target=/workspace/declare_queues.rb \
		-w /workspace \
		uaac \
		/bin/bash -c "BUNNY_HOST=$(HOST_DOCKER) \
					BUNNY_USER=admin \
					BUNNY_PASS=rabo2 \
				ruby declare_queues.rb \
					uaa_vhost/some_queue \
					uaa_vhost/other_queue \
					other_vhost/some_queue \
					other_vhost/other_queue"

.PHONY: tokens
tokens: queues uaac-bunny-image
	docker run -it --rm \
		--name fetch-tokens \
		uaac \
		/bin/bash -c " \
		uaac target http://$(HOST_DOCKER):8080/uaa \
		&& uaac signing key \
		&& uaac token owner get rabbit_client rabbit_super -s rabbit_secret -p rabbit_super \
		&& uaac token owner get rabbit_client rabbit_nosuper -s rabbit_secret -p rabbit_nosuper \
		&& uaac context rabbit_nosuper \
		&& uaac context rabbit_super"

.PHONY: check-token
check-token: queues uaac-bunny-image
	docker run -it --rm \
		--name check-token \
		--mount type=bind,source="$(CURDIR)"/check_token.rb,target=/workspace/check_token.rb \
		uaac \
		/bin/bash -c " \
		uaac target http://$(HOST_DOCKER):8080/uaa \
		&& uaac token owner get rabbit_client rabbit_super -s rabbit_secret -p rabbit_super \
		&& BUNNY_HOST=$(HOST_DOCKER) ruby /workspace/check_token.rb"

.PHONY: test
test: check-token

.PHONY: cleanup
cleanup:
	docker stop rabbitmq uaa
	docker rm rabbitmq uaa