rhc 0.97.17 → 0.98.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/rhc +9 -9
- data/bin/rhc-port-forward +3 -0
- data/bin/rhc-sshkey +3 -0
- data/features/README.md +163 -35
- data/features/application.feature +24 -0
- data/features/cartridge.feature +24 -0
- data/features/client.feature +11 -0
- data/features/domain.feature +29 -0
- data/features/lib/rhc_helper.rb +14 -0
- data/features/lib/rhc_helper/app.rb +2 -8
- data/features/lib/rhc_helper/cartridge.rb +1 -7
- data/features/lib/rhc_helper/commandify.rb +37 -6
- data/features/lib/rhc_helper/domain.rb +5 -1
- data/features/lib/rhc_helper/httpify.rb +124 -60
- data/features/lib/rhc_helper/loggable.rb +0 -2
- data/features/lib/rhc_helper/persistable.rb +12 -2
- data/features/lib/rhc_helper/sshkey.rb +29 -0
- data/features/multiple_cartridge.feature +17 -0
- data/features/sshkey.feature +58 -0
- data/features/step_definitions/application_steps.rb +60 -52
- data/features/step_definitions/cartridge_steps.rb +22 -24
- data/features/step_definitions/client_steps.rb +9 -2
- data/features/step_definitions/domain_steps.rb +4 -0
- data/features/step_definitions/sshkey_steps.rb +56 -0
- data/features/support/assumptions.rb +37 -0
- data/features/support/before_hooks.rb +25 -0
- data/features/support/env.rb +84 -39
- data/features/support/key1 +27 -0
- data/features/support/key1.pub +1 -0
- data/features/support/key2 +27 -0
- data/features/support/key2.pub +1 -0
- data/features/support/key3.pub +1 -0
- data/features/support/ssh.sh +2 -0
- data/features/verify.feature +18 -159
- data/lib/rhc-common.rb +8 -21
- data/lib/rhc.rb +9 -5
- data/lib/rhc/autocomplete.rb +68 -0
- data/lib/rhc/autocomplete_templates/rhc.erb +33 -0
- data/lib/rhc/cli.rb +9 -6
- data/lib/rhc/command_runner.rb +108 -0
- data/lib/rhc/commands.rb +66 -132
- data/lib/rhc/commands/base.rb +95 -24
- data/lib/rhc/commands/domain.rb +33 -50
- data/lib/rhc/commands/port-forward.rb +81 -0
- data/lib/rhc/commands/setup.rb +1 -1
- data/lib/rhc/commands/sshkey.rb +95 -0
- data/lib/rhc/config.rb +108 -103
- data/lib/rhc/context_helper.rb +19 -0
- data/lib/rhc/coverage_helper.rb +1 -1
- data/lib/rhc/exceptions.rb +55 -4
- data/lib/rhc/help_formatter.rb +2 -3
- data/lib/rhc/helpers.rb +31 -23
- data/lib/{rhc-rest.rb → rhc/rest.rb} +95 -23
- data/lib/{rhc-rest → rhc/rest}/application.rb +1 -1
- data/lib/{rhc-rest → rhc/rest}/cartridge.rb +1 -1
- data/lib/{rhc-rest → rhc/rest}/client.rb +40 -9
- data/lib/{rhc-rest → rhc/rest}/domain.rb +1 -1
- data/lib/{rhc-rest → rhc/rest}/key.rb +11 -1
- data/lib/{rhc-rest → rhc/rest}/user.rb +1 -1
- data/lib/rhc/ssh_key_helpers.rb +10 -1
- data/lib/rhc/targz.rb +7 -8
- data/lib/rhc/usage_templates/command_help.erb +7 -6
- data/lib/rhc/usage_templates/help.erb +6 -9
- data/lib/rhc/usage_templates/missing_help.erb +1 -0
- data/lib/rhc/version.rb +2 -2
- data/lib/rhc/wizard.rb +4 -9
- data/spec/coverage_helper.rb +2 -2
- data/spec/rest_spec_helper.rb +66 -16
- data/spec/rhc/cli_spec.rb +16 -5
- data/spec/rhc/command_spec.rb +61 -6
- data/spec/rhc/commands/domain_spec.rb +50 -27
- data/spec/rhc/commands/port-forward_spec.rb +133 -0
- data/spec/rhc/commands/setup_spec.rb +2 -2
- data/spec/rhc/commands/sshkey_spec.rb +141 -0
- data/spec/rhc/common_spec.rb +1 -1
- data/spec/rhc/config_spec.rb +6 -4
- data/spec/rhc/helpers_spec.rb +0 -21
- data/spec/rhc/rest_application_spec.rb +7 -7
- data/spec/rhc/rest_client_spec.rb +87 -24
- data/spec/rhc/rest_spec.rb +36 -36
- data/spec/rhc/wizard_spec.rb +3 -3
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +3 -3
- metadata +61 -31
- data/lib/rhc-rest/exceptions/exceptions.rb +0 -75
- data/test/functional/application_test.rb +0 -71
- data/test/functional/domain_test.rb +0 -123
- data/test/functional/test_credentials.rb +0 -5
- data/test/sample-usage.rb +0 -122
- data/test/support/server.rb +0 -14
- data/test/support/testcase.rb +0 -3
- data/test/test_helper.rb +0 -4
- data/test/unit/command_test.rb +0 -19
@@ -7,36 +7,34 @@ When /^the (.+) cartridge is added$/ do |name|
|
|
7
7
|
@app.add_cartridge name
|
8
8
|
end
|
9
9
|
|
10
|
-
When /^the (.+) cartridge is stopped$/ do |name|
|
11
|
-
@app.cartridge(name).stop
|
12
|
-
end
|
13
|
-
|
14
|
-
When /^the (.+) cartridge is restarted$/ do |name|
|
15
|
-
@app.cartridge(name).restart
|
16
|
-
end
|
17
|
-
|
18
|
-
When /^the (.+) cartridge is started$/ do |name|
|
19
|
-
@app.cartridge(name).start
|
20
|
-
end
|
21
|
-
|
22
10
|
When /^the (.+) cartridge is removed$/ do |name|
|
23
11
|
@app.remove_cartridge name
|
24
12
|
end
|
25
13
|
|
26
|
-
|
27
|
-
|
14
|
+
When /^the (.+) cartridge is (stopped|(?:re)?started)$/ do |name,command|
|
15
|
+
cmd = case command.to_sym
|
16
|
+
when :stopped
|
17
|
+
'stop'
|
18
|
+
when :started
|
19
|
+
'start'
|
20
|
+
when :restarted
|
21
|
+
'restart'
|
22
|
+
end
|
23
|
+
@app.cartridge(name).send(cmd)
|
24
|
+
end
|
25
|
+
|
26
|
+
Then /^the (.+) cartridge should be (.*)$/ do |name,status|
|
27
|
+
expected = case status.to_sym
|
28
|
+
when :running
|
29
|
+
"RESULT:\n(.+) is running|RESULT:\n(\n|.)+Uptime:"
|
30
|
+
when :stopped
|
31
|
+
"RESULT:\n(.+) stopped"
|
32
|
+
when :removed
|
33
|
+
"Response code was 400"
|
34
|
+
end
|
35
|
+
@app.cartridge(name).status.should match(expected)
|
28
36
|
end
|
29
37
|
|
30
|
-
Then /^the (.+) cartridge should be stopped$/ do |name|
|
31
|
-
@app.cartridge(name).status.should match("RESULT:\n(.+) stopped")
|
32
|
-
end
|
33
|
-
|
34
|
-
Then /^the (.+) cartridge should be removed$/ do |name|
|
35
|
-
# look for response code 400
|
36
|
-
@app.cartridge(name).status.should match("Response code was 400")
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
38
|
Then /^adding the (.+) cartridge should fail$/ do |name|
|
41
39
|
@app.add_cartridge(name).should == 154
|
42
40
|
end
|
@@ -28,7 +28,14 @@ When /^the setup wizard is run$/ do
|
|
28
28
|
RHC::Config.initialize
|
29
29
|
end
|
30
30
|
|
31
|
-
Then /^the client tools should be setup
|
32
|
-
RHC::
|
31
|
+
Then /^the client tools should be setup( if needed)?$/ do |setup|
|
32
|
+
configured = (RHC::Config.has_local_config? or RHC::Config.has_opts_config?)
|
33
|
+
|
34
|
+
if !configured && setup
|
35
|
+
Then 'the setup wizard is run'
|
36
|
+
configured = (RHC::Config.has_local_config? or RHC::Config.has_opts_config?)
|
37
|
+
end
|
38
|
+
|
39
|
+
configured.should be_true, "Wizard still thinks it needs to be run"
|
33
40
|
end
|
34
41
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
include RHCHelper
|
2
|
+
|
3
|
+
Before do
|
4
|
+
Sshkey.remove "key1"
|
5
|
+
Sshkey.remove "key2"
|
6
|
+
end
|
7
|
+
|
8
|
+
When /^'rhc sshkey (\S+)( .*?)?'(?: command)? is run$/ do |subcommand, rest|
|
9
|
+
if subcommand =~ /^(list|show|add|remove|delete|update)$/
|
10
|
+
Sshkey.send subcommand.to_sym, rest
|
11
|
+
@sshkey_output = Sshkey.sshkey_output
|
12
|
+
@exitcode = Sshkey.exitcode
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Given /^the SSH key "(.*?)" does not exist$/ do |key|
|
17
|
+
Sshkey.remove "key"
|
18
|
+
end
|
19
|
+
|
20
|
+
Given /^the SSH key "(.*?)" already exists$/ do |key|
|
21
|
+
keyfile = File.join(File.dirname(__FILE__), '..', 'support', key + '.pub')
|
22
|
+
step "'rhc sshkey add #{key} #{keyfile}' is run"
|
23
|
+
end
|
24
|
+
|
25
|
+
Given /^an SSH key "(.*?)" with the same content as "(.*?)" exists$/ do |existing_key, new_key|
|
26
|
+
keyfile = File.join(File.dirname(__FILE__), '..', 'support', new_key + '.pub')
|
27
|
+
step "a new SSH key \"#{keyfile}\" is added as \"#{existing_key}\""
|
28
|
+
end
|
29
|
+
|
30
|
+
When /^a new SSH key "(.*?)" is added as "(.*)"$/ do |keyfile, name|
|
31
|
+
step "'rhc sshkey add #{name} #{keyfile}' is run"
|
32
|
+
end
|
33
|
+
|
34
|
+
Then /^the output includes the key information for "(.*?)"$/ do |key|
|
35
|
+
@sshkey_output.should match /Name: #{key}/
|
36
|
+
end
|
37
|
+
|
38
|
+
Then /^the key "(.*?)" should exist$/ do |key|
|
39
|
+
Sshkey.show "#{key}"
|
40
|
+
Sshkey.sshkey_output.should =~ /Name: #{key}/
|
41
|
+
end
|
42
|
+
|
43
|
+
Then /^the SSH key "(.*?)" is deleted$/ do |key|
|
44
|
+
Sshkey.show "#{key}"
|
45
|
+
Sshkey.sshkey_output.should_not =~ /Name: #{key}/
|
46
|
+
end
|
47
|
+
|
48
|
+
Then /^the output includes the key information$/ do
|
49
|
+
@sshkey_output.should match /Name:.*Type:.*Fingerprint:/m
|
50
|
+
end
|
51
|
+
|
52
|
+
Then /^the command exits with status code (\d+)$/ do |arg1|
|
53
|
+
code = arg1.to_i
|
54
|
+
@exitcode.should == code
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Given 'we have the client tools setup' do
|
2
|
+
step 'the libra client tools'
|
3
|
+
step 'the client tools should be setup if needed'
|
4
|
+
end
|
5
|
+
|
6
|
+
Given 'we have an existing domain' do
|
7
|
+
step 'we have the client tools setup'
|
8
|
+
step 'a new domain is needed and created'
|
9
|
+
end
|
10
|
+
|
11
|
+
Given /^we have a (.*) (.*) cartridge$/ do |status,type|
|
12
|
+
cmd = case status
|
13
|
+
when "running"
|
14
|
+
"started"
|
15
|
+
else
|
16
|
+
status
|
17
|
+
end
|
18
|
+
|
19
|
+
# Ensure the cartridge is in the right state for the tests
|
20
|
+
# only try once
|
21
|
+
retried = false
|
22
|
+
begin
|
23
|
+
step "the #{type} cartridge should be #{status}"
|
24
|
+
rescue Spec::Expectations::ExpectationNotMetError
|
25
|
+
step "the #{type} cartridge is #{cmd}"
|
26
|
+
(retried = true && retry) unless retried
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Given /^we have a (stopped|running) application$/ do |state|
|
31
|
+
begin
|
32
|
+
step "the application should not be accessible"
|
33
|
+
step "the application is started" if state == "running"
|
34
|
+
rescue Spec::Expectations::ExpectationNotMetError
|
35
|
+
step "the application is stopped" if state == "stopped"
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Defined the required hooks first so we make sure we have everything we need
|
2
|
+
Before('@domain_required') do
|
3
|
+
step 'we have an existing domain'
|
4
|
+
end
|
5
|
+
|
6
|
+
Before('@client_tools_required') do
|
7
|
+
step 'we have the client tools setup'
|
8
|
+
end
|
9
|
+
|
10
|
+
Before('@single_cartridge','@init') do
|
11
|
+
step 'an existing or new php-5.3 application without an embedded cartridge'
|
12
|
+
end
|
13
|
+
|
14
|
+
# These assumptions help to ensure any steps that are run independently have the same state as after the @init step
|
15
|
+
{
|
16
|
+
:application => 'an existing or new php-5.3 application without an embedded cartridge',
|
17
|
+
:domain => 'we have an existing domain',
|
18
|
+
:client => 'we have the client tools setup',
|
19
|
+
:single_cartridge => 'an existing or new php-5.3 application with an embedded mysql-5.1 cartridge',
|
20
|
+
:multiple_cartridge => 'an existing or new php-5.3 application with embedded mysql-5.1 and phpmyadmin-3.4 cartridges',
|
21
|
+
}.each do |tag,assumption|
|
22
|
+
Before("@#{tag}",'~@init') do
|
23
|
+
step assumption
|
24
|
+
end
|
25
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -4,72 +4,116 @@ require 'rhc/coverage_helper'
|
|
4
4
|
SimpleCov.at_exit{ SimpleCov.result.format! } if defined? SimpleCov
|
5
5
|
|
6
6
|
require 'rhc_helper'
|
7
|
-
require 'rhc
|
7
|
+
require 'rhc/rest'
|
8
8
|
require 'rhc/config'
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
def set_path
|
11
|
+
ENV["PATH"] = "#{ENV['RHC_LOCAL_PATH']}:#{ENV['PATH']}" if ENV['RHC_LOCAL_PATH']
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_creds
|
15
|
+
# Get the value from the file
|
16
|
+
def from_file(filename)
|
17
|
+
value = File.exists?(filename) ? File.read(filename) : ""
|
18
|
+
value.empty? ? nil : value
|
19
|
+
end
|
13
20
|
|
14
|
-
|
21
|
+
# If NO_CLEAN is specified, reuse the variables if specified
|
22
|
+
if ENV['NO_CLEAN']
|
23
|
+
ENV['RHC_USERNAME'] ||= from_file('/tmp/rhc/username')
|
24
|
+
ENV['RHC_NAMESPACE'] ||= from_file('/tmp/rhc/namespace')
|
25
|
+
end
|
15
26
|
|
16
|
-
# Generate a random username
|
17
|
-
|
27
|
+
# Generate a random username in case one isn't set
|
28
|
+
chars = ("1".."9").to_a
|
29
|
+
random_username = "test" + Array.new(8, '').collect{chars[rand(chars.size)]}.join + "@example.com"
|
18
30
|
|
19
|
-
#
|
20
|
-
$
|
31
|
+
# Generate a random username if one isn't specified (for unauthenticated systems)
|
32
|
+
$username = ENV['RHC_USERNAME'] || random_username
|
21
33
|
|
22
|
-
#
|
23
|
-
|
24
|
-
default_domain = ENV['RHC_USERNAME'] ? "rhcloud.com" : "dev.rhcloud.com"
|
25
|
-
$domain = ENV['RHC_DOMAIN'] || default_domain
|
34
|
+
# Use a generic password if one isn't specific (for unauthenticated systems)
|
35
|
+
$password = ENV['RHC_PASSWORD'] || 'test'
|
26
36
|
|
27
|
-
# Default the
|
28
|
-
|
37
|
+
# Default the domain to production unless a random username is used.
|
38
|
+
# In that case, use dev.rhcloud.com for the development DNS namespace
|
39
|
+
default_domain = ENV['RHC_USERNAME'] ? "rhcloud.com" : "dev.rhcloud.com"
|
40
|
+
$domain = ENV['RHC_DOMAIN'] || default_domain
|
29
41
|
|
30
|
-
# Don't default the namespace to anything - the existance if checked to
|
31
|
-
# determine how the setup wizard is run
|
32
|
-
$namespace = ENV['RHC_NAMESPACE']
|
42
|
+
# Don't default the namespace to anything - the existance if checked to
|
43
|
+
# determine how the setup wizard is run
|
44
|
+
$namespace = ENV['RHC_NAMESPACE']
|
45
|
+
end
|
46
|
+
|
47
|
+
def set_endpoint
|
48
|
+
# Use either the ENV variable, our libra_server, or prod
|
49
|
+
ENV['RHC_SERVER'] ||= (ENV['RHC_DEV'] ? RHC::Config['libra_server'] : 'openshift.redhat.com')
|
50
|
+
# Format the endpoint properly
|
51
|
+
ENV['RHC_ENDPOINT'] ||= "https://%s/broker/rest/api" % ENV['RHC_SERVER']
|
52
|
+
$end_point = ENV['RHC_ENDPOINT']
|
53
|
+
end
|
54
|
+
|
55
|
+
# This env variable needs to be set so the git commands can bypass host key authenticity checking
|
56
|
+
def set_ssh
|
57
|
+
ENV['GIT_SSH'] ||= File.expand_path(File.join(File.dirname(__FILE__),'ssh.sh'))
|
58
|
+
end
|
59
|
+
|
60
|
+
### Run initialization commands
|
61
|
+
# Set the PATH env variable
|
62
|
+
set_path
|
63
|
+
# Set the username,password,etc based on env variables or defaults
|
64
|
+
set_creds
|
65
|
+
# Set the endpoint to test against
|
66
|
+
set_endpoint
|
67
|
+
# Set the ssh env variable
|
68
|
+
set_ssh
|
33
69
|
|
34
70
|
raise "Username not found in environment (RHC_USERNAME)" unless $username
|
35
71
|
raise "Password not found in environment (RHC_PASSWORD)" unless $password
|
36
72
|
|
37
|
-
|
38
|
-
puts
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
73
|
+
def _log(msg)
|
74
|
+
puts msg unless ENV['QUIET']
|
75
|
+
end
|
76
|
+
|
77
|
+
_log "\n\n"
|
78
|
+
_log "--------------------------------------------------------------------------------------------------"
|
79
|
+
_log " Test Information"
|
80
|
+
_log "--------------------------------------------------------------------------------------------------"
|
81
|
+
_log " REST End Point: #{$end_point}"
|
82
|
+
_log " Domain: #{$domain}"
|
83
|
+
_log " Username: #{$username}"
|
84
|
+
_log " Creating New Namespace: #{$namespace.nil?}"
|
85
|
+
_log "--------------------------------------------------------------------------------------------------"
|
86
|
+
_log "\n\n"
|
47
87
|
|
48
88
|
unless ENV['NO_CLEAN']
|
49
|
-
|
50
|
-
|
51
|
-
|
89
|
+
_log "--------------------------------------------------------------------------------------------------"
|
90
|
+
_log " Resetting environment"
|
91
|
+
_log "--------------------------------------------------------------------------------------------------"
|
92
|
+
# Ensure the directory for local_config_path exists
|
93
|
+
config_dir = File.dirname(RHC::Config::local_config_path)
|
94
|
+
Dir::mkdir(config_dir) unless File.exists?(config_dir)
|
95
|
+
|
52
96
|
# Start with a clean config
|
53
|
-
|
97
|
+
_log " Replacing express.conf with the specified libra_server"
|
54
98
|
File.open(RHC::Config::local_config_path, 'w') {|f| f.write("libra_server=#{URI.parse($end_point).host}") }
|
55
99
|
|
56
|
-
|
100
|
+
_log " Cleaning up test applications..."
|
57
101
|
FileUtils.rm_rf RHCHelper::TEMP_DIR
|
58
102
|
|
59
103
|
# Cleanup all test applications
|
60
|
-
client =
|
104
|
+
client = RHC::Rest::Client.new($end_point, $username, $password)
|
61
105
|
client.domains.each do |domain|
|
62
106
|
domain.applications.each do |app|
|
63
107
|
if app.name.start_with?("test")
|
64
|
-
|
108
|
+
_log " Deleting application #{app.name}"
|
65
109
|
app.delete
|
66
110
|
end
|
67
111
|
end
|
68
112
|
end
|
69
113
|
|
70
|
-
|
71
|
-
|
72
|
-
|
114
|
+
_log " Application cleanup complete"
|
115
|
+
_log "--------------------------------------------------------------------------------------------------"
|
116
|
+
_log "\n\n"
|
73
117
|
end
|
74
118
|
|
75
119
|
AfterConfiguration do |config|
|
@@ -83,6 +127,7 @@ AfterConfiguration do |config|
|
|
83
127
|
logger = Logger.new(File.join(RHCHelper::TEMP_DIR, "cucumber.log"))
|
84
128
|
logger.level = Logger::DEBUG
|
85
129
|
RHCHelper::Loggable.logger = logger
|
130
|
+
$logger = logger
|
86
131
|
|
87
132
|
# Setup performance monitor logger
|
88
133
|
perf_logger = Logger.new(File.join(RHCHelper::TEMP_DIR, "perfmon.log"))
|
@@ -90,7 +135,7 @@ AfterConfiguration do |config|
|
|
90
135
|
RHCHelper::Loggable.perf_logger = perf_logger
|
91
136
|
end
|
92
137
|
|
93
|
-
After do |s|
|
138
|
+
After do |s|
|
94
139
|
# Tell Cucumber to quit after this scenario is done - if it failed.
|
95
140
|
Cucumber.wants_to_quit = true if s.failed?
|
96
141
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEA35G7DJsH3ycfxThXsq/4mYxnjOZixpV0pMQYklQJPBBSfSP/
|
3
|
+
6jAczpjQC2WP/mMTxxJO3KeAojWT7vd+6zqSWJVl7Jvjb9Vmnkq6HGqFYr4iex+g
|
4
|
+
aA87wF316b5ejNHmx7o1Ly6WH+KYOPMfJ0iEqqWd0MYUEvut+sKwra+dgF+alG5d
|
5
|
+
juRu0xJBjQedHPBmU96R2lyfTkdejhzsCiPOOzbO2XRXoFUdTGKaDsXdzCt1kwXU
|
6
|
+
9rR/Pl43nKRvzBlqk/XTr8JzvpAvm8Z138QlezyAhi5gMSYmvvMacZeZqMrwbEbo
|
7
|
+
JdpIruoEa1dIVzJyPnU08k+OzHGIo2zlF4A+uQIDAQABAoIBACGBl8T13yIknPBT
|
8
|
+
12DiWqG4lzRYuukEMS0Ybo5Ppeqoj5RNtucEOu0Dnfp3SDNZ6fbl2YfcWrz0xq0D
|
9
|
+
zrO2XYSFL3dcjaOPGggTLv1fQYpg8I3/WWz/C3dzHY3giA8Wzj2UvK/LjZhNv36Z
|
10
|
+
gUvD5I4msBY/+XY23gY883m0XiiE48Nb2sTVYDyq8ubBKLUGE2yTnbaCAzXPifSp
|
11
|
+
8fczmNKCKS9kgHyGtfryVaaLAIKmNacIQlsmGoUy77KG43dG3rvlsQxcYjPg6ccO
|
12
|
+
1XnTodLtFJwPKcdKWvRM2lM7vYNNMOOnwITLh01Oeyuam9xt8ReUSPGqoJxkJNfc
|
13
|
+
TV4bezkCgYEA+RWWDN71DHHLD1HqFnVTEE+TP34YAgE5hgorKI9net2TnypwsOTj
|
14
|
+
QjUeZ8EdyTKPDMrW/CmAB0hqMWAN3b7Lyu5Rct9qt4Sioj1PblQ0W0/PIgIpy0Z/
|
15
|
+
8eGKpDdeqtv/GLfhTOqnq9k93Ra+SbAO7xe7oV2LPFl+kcPjXvcJtTMCgYEA5cbK
|
16
|
+
mitsGTD6DuVdCCK4YPJVyrhv8Kh3g9q9aSoAP2XmcHAn/NIW081J6j1gKy41cuoe
|
17
|
+
3AyHQZwL+tWsJtITwurosXRMuLoU0D/0R2J0vpUrze91mWNFCKSyrPWe0se4tOnP
|
18
|
+
rpvKF/22W7d9btttmTa+kS87orML9Bw8f8GsJGMCgYEAr1UWjnDTJbNkMKCEmtJz
|
19
|
+
aePZzrO/yol6KHQ39REc0kvugfep45r6rbwebwJtKRdBwst1kYLU8Et1FNR8bj7D
|
20
|
+
zVD8XFQQFqZypKlrpEn5oN0I/PNw3/n8ThNpODcRmEvLwWaOXUpARKNi/KHpyIz5
|
21
|
+
tiuKlAf43r5QbeLpxgs29ikCgYBJKv03DJ62gt8NwUHXpl66GFDzZbnXk33DUfNA
|
22
|
+
uqwrhAJWSZCiNDAqr9NasMKf3W4Nsrmy7pZfcRZrgID6N6ktR2pjn5oStMaN7d+W
|
23
|
+
n6Z3Tb8OK7Nx7ad88h0ncGtryUdq7I1Cl79J1nOsTwi1NVB4GnOifbzquUMUL62g
|
24
|
+
LQbo6wKBgDaUSWYHiA4bA2/oKh0ioSvY2r1FmO2tifJBy/Up+GRaTPV8vnlrWZzk
|
25
|
+
1HtYkv6l/LeNyvBy4SPaIhAIk9/uO41dR4WuchpPETzDTFHF4h7eu6XPrGJk9IUv
|
26
|
+
HtwXUAe0zk20MZApW+ZEYahV7g9XUfLG8iXr4ucYkIH+K+iboJU5
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfkbsMmwffJx/FOFeyr/iZjGeM5mLGlXSkxBiSVAk8EFJ9I//qMBzOmNALZY/+YxPHEk7cp4CiNZPu937rOpJYlWXsm+Nv1WaeSrocaoViviJ7H6BoDzvAXfXpvl6M0ebHujUvLpYf4pg48x8nSISqpZ3QxhQS+636wrCtr52AX5qUbl2O5G7TEkGNB50c8GZT3pHaXJ9OR16OHOwKI847Ns7ZdFegVR1MYpoOxd3MK3WTBdT2tH8+XjecpG/MGWqT9dOvwnO+kC+bxnXfxCV7PICGLmAxJia+8xpxl5moyvBsRugl2kiu6gRrV0hXMnI+dTTyT47McYijbOUXgD65 asari@strokkur.local
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpQIBAAKCAQEA3RxTJUAMgKZvL76RfhhW798dDjCYk5dCiV0Yb4Sex8uKhd/9
|
3
|
+
Wmm7MW2wQuEnREh4VhQp+m4Qoq1u0FSY6agANRTbelEYT7TRvLDPjxfQoJR90eN+
|
4
|
+
dUXGZ0sivGLKPytEYoCGJIcdY7o4qXAYXac3YIdpjgDgkRtVs3R8agSDjDGFdVcO
|
5
|
+
T+WI9aceAC5/ZbGjHkAtdMIFJCMxkmeG1jfft2yMId7fpmNKC8UQfykgJbspWioH
|
6
|
+
7oWzdR+RbNXzYkiR/FZEka3ZoAMf72O5CwoSIXj76C+Xso+QeXpC3qqNHAmdtsjh
|
7
|
+
MLivuZUeyYA1zCfq+SgH/E9u+HYSatmsYXN9ZwIDAQABAoIBADSJimgLc+0NntWl
|
8
|
+
XkSr29xbEzhP67EF+9VPvYKh7GhkwKFWu4hEHyp7eaoqfX4ICi/J0r+ib2l39CCk
|
9
|
+
OUErngD+17eUlUY7HKrNCERj0DqXjd3VRDLxRVc9zx8cChpAWZteFoGPaThNAzGf
|
10
|
+
ZOq71Lim9Dm9k55m9FITl4xJTkh8+q9vksTQGdgq8nABTAdtt+ZNGFpTrKMTQBeJ
|
11
|
+
4LgAiwTalMC99MMgXwQSoiTVmzWYiydMSfSJdlo/aSyErA5Uw0z0jUicFooo1lm0
|
12
|
+
kAo+vKvSvbG+Vj7s0DZNk+q+CewI/sD9RDp0NNcLtu568DjE/3uyQm1ltS93ZPjt
|
13
|
+
uQiQ50ECgYEA9U/bKrlkz6CqfW0gw4jl/FP6+tUlZmC6qTbdOgy+vADhASc88TcG
|
14
|
+
X9PQts4wRwuSsOUlzhQfT4WyQHBOJIzAGsmLF63z6GviLz0/AFfq7hqVgPBMEwpQ
|
15
|
+
qnKrlj3oNCPAk1uhMFK7HAvUqdZPgFdvOaQPuUJlJuCmmOH++aI+QZ8CgYEA5r6I
|
16
|
+
rQBku5A5BFkf0SgPl3fKxsnDTbP08SG0pQE3VK47r1rb+M6hEmPau9ADspSbAq9r
|
17
|
+
cnVFqR5ZmSATZ6yu6GhCGL+JS2Namj8mEt/9SuoHsEp7Sk7lBSUomKHHd0Atgd+X
|
18
|
+
6+xidn52P4R8ro5Y8YB3n4y8iV9Yxb54KK5XfzkCgYEAj4h8ClGTpNCzMNRLWV2e
|
19
|
+
g7d3oJBaY76xORU6+B5A86vn+07EH7c8aZF8C5o1MTyaRhqtthicAWGO3JlZf5VD
|
20
|
+
SeknE2Ha1uFY5J8HX+IROeQgGeN//5wHetPBhhUO6oMIyK/Sbn3ZsR1S/1TAC64d
|
21
|
+
DDLsaE9q9AZ6M/X3xISjvK0CgYEAw9FUagTYd7hoOsFr1/M4cCGQK21UWh/rMaua
|
22
|
+
AyHqE+oc6q6f2SF53gJxwUtBqA6nEftOov7U1DXWcbWf4i7Q7Jh150y8tgamABqx
|
23
|
+
M/l0mlvLlJdQ0/nqL5ieQBGjFheXxwy6f9PGp6qgrTzBFt3kq2aLnhIweiA5VO9U
|
24
|
+
R6nUxTkCgYEA4wKf697PE0rgDJnFZDSfbITD/CAdoJvr1usnKL3FLZVPscU7hICT
|
25
|
+
d7htmwyJnAejgNBWYukTLpmuypkScooyb1/FSAJPIE8+KXdil8PiT78COHzS819Q
|
26
|
+
zfU9TFW9zgilH/6uYLMGPA43JKRKSTKs5R5NkPfpXZgbh4/QmFtcaQY=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdHFMlQAyApm8vvpF+GFbv3x0OMJiTl0KJXRhvhJ7Hy4qF3/1aabsxbbBC4SdESHhWFCn6bhCirW7QVJjpqAA1FNt6URhPtNG8sM+PF9CglH3R4351RcZnSyK8Yso/K0RigIYkhx1jujipcBhdpzdgh2mOAOCRG1WzdHxqBIOMMYV1Vw5P5Yj1px4ALn9lsaMeQC10wgUkIzGSZ4bWN9+3bIwh3t+mY0oLxRB/KSAluylaKgfuhbN1H5Fs1fNiSJH8VkSRrdmgAx/vY7kLChIhePvoL5eyj5B5ekLeqo0cCZ22yOEwuK+5lR7JgDXMJ+r5KAf8T274dhJq2axhc31n asari@strokkur.local
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAQDuwb0v02Eu8TDI1TzGV4dFK7qUgwegENLbR+amPS1tP38Ulv3p4CeqmFY+hAGacjFnZWK2LEF/iJBjIbFg1MeUmQHOaGhexNTtomkWzuDt5rINeGhmcCbIu822yCMBjF4usdZVMgwJiyc5HcawmVNUAP9mgjyJ0TSjU51CVU8jh+1EeGv5VINixzOj1wYQuqJ2n5Xu72MRqOOMchOagZHEFfBgvZHJhg9T5fmUqwjZpY93TZNOVCESTkMUuS9UCGPtO1jZmRKNggMymcx7P60dnzH80Y9ZeWaC7GwyizG9wuNJavHfiSzIx+qnI07FejrEbwln/WriD2VDMQTvmyRz asari@strokkur.local
|