rhc 0.97.17 → 0.98.16
Sign up to get free protection for your applications and to get access to all the features.
- 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
|