diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-25 09:06:04 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-25 09:06:04 +0000 |
commit | 1cfd8874ee6702184d5608f533b30bab722b4f9d (patch) | |
tree | 4921070efdc0ad2d1c3c7d8a3a60c73928b57d25 /qa/qa/service | |
parent | fbcb36880cda3a29cfa4ebed4d080701c302256b (diff) | |
download | gitlab-ce-1cfd8874ee6702184d5608f533b30bab722b4f9d.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa/qa/service')
-rw-r--r-- | qa/qa/service/ldap.rb | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/qa/qa/service/ldap.rb b/qa/qa/service/ldap.rb new file mode 100644 index 00000000000..7a02cebeb8f --- /dev/null +++ b/qa/qa/service/ldap.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +module QA + module Service + class LDAP + include Service::Shellout + + def initialize(volume) + @image = 'osixia/openldap:latest' + @name = 'ldap-server' + @network = Runtime::Scenario.attributes[:network] || 'test' + @volume = volume + end + + def network + shell "docker network inspect #{@network}" + rescue CommandError + 'bridge' + else + @network + end + + def pull + shell "docker pull #{@image}" + end + + def host_name + "#{@name}.#{network}" + end + + def register! + shell <<~CMD.tr("\n", ' ') + docker run -d --rm + --network #{network} + --hostname #{host_name} + --name #{@name} + -p 389:389 + --volume #{volume_or_fixture(@volume)}:/container/service/slapd/assets/config/bootstrap/ldif/custom + #{@image} --copy-service + CMD + end + + def remove! + shell "docker rm -f #{@name}" if running? + end + + def running? + `docker ps -f name=#{@name}`.include?(@name) + end + + def volume_or_fixture(volume_name) + if volume_exists?(volume_name) + volume_name + else + File.expand_path("../fixtures/ldap/#{volume_name}", __dir__) + end + end + + def volume_exists?(volume_name) + `docker volume ls -q -f name=#{volume_name}`.include?(volume_name) + end + end + end +end |