Commit a1f2c95f authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'gitlab_keys_return_values' of /home/git/repositories/gitlab/gitlab-shell

parents 098e5a68 d7e1deb1
...@@ -31,6 +31,7 @@ class GitlabKeys ...@@ -31,6 +31,7 @@ class GitlabKeys
$logger.info "Adding key #{@key_id} => #{@key.inspect}" $logger.info "Adding key #{@key_id} => #{@key.inspect}"
auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell #{@key_id}\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty #{@key}" auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell #{@key_id}\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty #{@key}"
open(auth_file, 'a') { |file| file.puts(auth_line) } open(auth_file, 'a') { |file| file.puts(auth_line) }
true
end end
def rm_key def rm_key
...@@ -44,9 +45,11 @@ class GitlabKeys ...@@ -44,9 +45,11 @@ class GitlabKeys
temp.close temp.close
FileUtils.cp(temp.path, auth_file) FileUtils.cp(temp.path, auth_file)
end end
true
end end
def clear def clear
open(auth_file, 'w') { |file| file.puts '# Managed by gitlab-shell' } open(auth_file, 'w') { |file| file.puts '# Managed by gitlab-shell' }
true
end end
end end
...@@ -14,46 +14,65 @@ describe GitlabKeys do ...@@ -14,46 +14,65 @@ describe GitlabKeys do
it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' } it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' }
end end
context "file writing tests" do
before do
FileUtils.mkdir_p(File.dirname(tmp_authorized_keys_path))
open(tmp_authorized_keys_path, 'w') { |file| file.puts('existing content') }
gitlab_keys.stub(auth_file: tmp_authorized_keys_path)
end
describe :add_key do describe :add_key do
let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') } let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
it "adds a line at the end of the file" do it "adds a line at the end of the file" do
gitlab_keys.send :add_key create_authorized_keys_fixture
auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E" gitlab_keys.send :add_key
File.read(tmp_authorized_keys_path).should == "existing content\n#{auth_line}\n" auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E"
end File.read(tmp_authorized_keys_path).should == "existing content\n#{auth_line}\n"
end
context "without file writing" do
before { gitlab_keys.stub(:open) }
it "should log an add-key event" do it "should log an add-key event" do
$logger.should_receive(:info).with('Adding key key-741 => "ssh-rsa AAAAB3NzaDAxx2E"') $logger.should_receive(:info).with('Adding key key-741 => "ssh-rsa AAAAB3NzaDAxx2E"')
gitlab_keys.stub(:open)
gitlab_keys.send :add_key gitlab_keys.send :add_key
end end
it "should return true" do
gitlab_keys.send(:add_key).should be_true
end
end end
end
describe :rm_key do describe :rm_key do
let(:gitlab_keys) { build_gitlab_keys('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') } let(:gitlab_keys) { build_gitlab_keys('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
it "removes the right line" do it "removes the right line" do
other_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-742\",options ssh-rsa AAAAB3NzaDAxx2E" create_authorized_keys_fixture
open(tmp_authorized_keys_path, 'a') do |auth_file| other_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-742\",options ssh-rsa AAAAB3NzaDAxx2E"
auth_file.puts "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",options ssh-rsa AAAAB3NzaDAxx2E" open(tmp_authorized_keys_path, 'a') do |auth_file|
auth_file.puts other_line auth_file.puts "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",options ssh-rsa AAAAB3NzaDAxx2E"
end auth_file.puts other_line
gitlab_keys.send :rm_key
File.read(tmp_authorized_keys_path).should == "existing content\n#{other_line}\n"
end end
gitlab_keys.send :rm_key
File.read(tmp_authorized_keys_path).should == "existing content\n#{other_line}\n"
end
context "without file writing" do
before { Tempfile.stub(:open) }
it "should log an rm-key event" do it "should log an rm-key event" do
$logger.should_receive(:info).with('Removing key key-741') $logger.should_receive(:info).with('Removing key key-741')
gitlab_keys.send :rm_key gitlab_keys.send :rm_key
end end
it "should return true" do
gitlab_keys.send(:rm_key).should be_true
end
end
end
describe :clear do
let(:gitlab_keys) { build_gitlab_keys('clear') }
it "should return true" do
gitlab_keys.stub(:open)
gitlab_keys.send(:clear).should be_true
end end
end end
...@@ -95,6 +114,12 @@ describe GitlabKeys do ...@@ -95,6 +114,12 @@ describe GitlabKeys do
end end
end end
def create_authorized_keys_fixture
FileUtils.mkdir_p(File.dirname(tmp_authorized_keys_path))
open(tmp_authorized_keys_path, 'w') { |file| file.puts('existing content') }
gitlab_keys.stub(auth_file: tmp_authorized_keys_path)
end
def tmp_authorized_keys_path def tmp_authorized_keys_path
File.join(ROOT_PATH, 'tmp', 'authorized_keys') File.join(ROOT_PATH, 'tmp', 'authorized_keys')
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment