vagrant-simple_cloud 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. metadata +5 -45
  3. data/.gitignore +0 -11
  4. data/Gemfile +0 -10
  5. data/LICENSE +0 -373
  6. data/Rakefile +0 -22
  7. data/lib/vagrant-simple_cloud/actions/check_state.rb +0 -19
  8. data/lib/vagrant-simple_cloud/actions/create.rb +0 -94
  9. data/lib/vagrant-simple_cloud/actions/destroy.rb +0 -30
  10. data/lib/vagrant-simple_cloud/actions/modify_provision_path.rb +0 -38
  11. data/lib/vagrant-simple_cloud/actions/power_off.rb +0 -35
  12. data/lib/vagrant-simple_cloud/actions/power_on.rb +0 -48
  13. data/lib/vagrant-simple_cloud/actions/rebuild.rb +0 -49
  14. data/lib/vagrant-simple_cloud/actions/reload.rb +0 -45
  15. data/lib/vagrant-simple_cloud/actions/setup_key.rb +0 -58
  16. data/lib/vagrant-simple_cloud/actions/setup_sudo.rb +0 -48
  17. data/lib/vagrant-simple_cloud/actions/setup_user.rb +0 -66
  18. data/lib/vagrant-simple_cloud/actions/shut_down.rb +0 -35
  19. data/lib/vagrant-simple_cloud/actions.rb +0 -164
  20. data/lib/vagrant-simple_cloud/commands/list.rb +0 -93
  21. data/lib/vagrant-simple_cloud/commands/rebuild.rb +0 -29
  22. data/lib/vagrant-simple_cloud/config.rb +0 -69
  23. data/lib/vagrant-simple_cloud/errors.rb +0 -37
  24. data/lib/vagrant-simple_cloud/helpers/client.rb +0 -106
  25. data/lib/vagrant-simple_cloud/helpers/client_service.rb +0 -81
  26. data/lib/vagrant-simple_cloud/helpers/result.rb +0 -40
  27. data/lib/vagrant-simple_cloud/plugin.rb +0 -31
  28. data/lib/vagrant-simple_cloud/provider.rb +0 -102
  29. data/lib/vagrant-simple_cloud/version.rb +0 -5
  30. data/lib/vagrant-simple_cloud.rb +0 -20
  31. data/locales/en.yml +0 -92
  32. data/test/Vagrantfile +0 -14
  33. data/test/scripts/provision.sh +0 -3
  34. data/test/test.sh +0 -10
  35. data/test/test_id_rsa +0 -27
  36. data/test/test_id_rsa.pub +0 -1
  37. data/vagrant-simple_cloud.gemspec +0 -21
@@ -1,29 +0,0 @@
1
- require 'optparse'
2
-
3
- module VagrantPlugins
4
- module SimpleCloud
5
- module Commands
6
- class Rebuild < Vagrant.plugin('2', :command)
7
-
8
- # Show description when `vagrant list-commands` is triggered
9
- def self.synopsis
10
- "plugin: vagrant-simple_cloud: destroys and ups the vm with the same ip address"
11
- end
12
-
13
- def execute
14
- opts = OptionParser.new do |o|
15
- o.banner = 'Usage: vagrant rebuild [vm-name]'
16
- end
17
-
18
- argv = parse_options(opts)
19
-
20
- with_target_vms(argv) do |machine|
21
- machine.action(:rebuild)
22
- end
23
-
24
- 0
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,69 +0,0 @@
1
- module VagrantPlugins
2
- module SimpleCloud
3
- class Config < Vagrant.plugin('2', :config)
4
- attr_accessor :token
5
- attr_accessor :image
6
- attr_accessor :region
7
- attr_accessor :size
8
- attr_accessor :private_networking
9
- attr_accessor :ipv6
10
- attr_accessor :backups_enabled
11
- attr_accessor :ca_path
12
- attr_accessor :serviceaddr
13
- attr_accessor :ssh_key_name
14
- attr_accessor :setup
15
- attr_accessor :user_data
16
-
17
- alias_method :setup?, :setup
18
-
19
- def initialize
20
- @token = UNSET_VALUE
21
- @image = UNSET_VALUE
22
- @region = UNSET_VALUE
23
- @size = UNSET_VALUE
24
- @private_networking = UNSET_VALUE
25
- @ipv6 = UNSET_VALUE
26
- @backups_enable = UNSET_VALUE
27
- @ca_path = UNSET_VALUE
28
- @serviceaddr = UNSET_VALUE
29
- @ssh_key_name = UNSET_VALUE
30
- @setup = UNSET_VALUE
31
- @user_data = UNSET_VALUE
32
- end
33
-
34
- def finalize!
35
- @token = ENV['DO_TOKEN'] if @token == UNSET_VALUE
36
- @image = '26' if @image == UNSET_VALUE
37
- @region = 'miran' if @region == UNSET_VALUE
38
- @size = '1' if @size == UNSET_VALUE
39
- @private_networking = false if @private_networking == UNSET_VALUE
40
- @ipv6 = false if @ipv6 == UNSET_VALUE
41
- @backups_enabled = false if @backups_enabled == UNSET_VALUE
42
- @ca_path = nil if @ca_path == UNSET_VALUE
43
- @serviceaddr = nil if @serviceaddr == UNSET_VALUE
44
- @ssh_key_name = 'Vagrant' if @ssh_key_name == UNSET_VALUE
45
- @setup = true if @setup == UNSET_VALUE
46
- @user_data = nil if @user_data == UNSET_VALUE
47
- end
48
-
49
- def validate(machine)
50
- errors = []
51
- errors << I18n.t('vagrant_simple_cloud.config.token') if !@token
52
-
53
- errors << I18n.t('vagrant_simple_cloud.config.serviceaddr') if !@serviceaddr
54
-
55
- key = machine.config.ssh.private_key_path
56
- key = key[0] if key.is_a?(Array)
57
- if !key
58
- errors << I18n.t('vagrant_simple_cloud.config.private_key')
59
- elsif !File.file?(File.expand_path("#{key}.pub", machine.env.root_path))
60
- errors << I18n.t('vagrant_simple_cloud.config.public_key', {
61
- :key => "#{key}.pub"
62
- })
63
- end
64
-
65
- { 'SimpleCloud Provider' => errors }
66
- end
67
- end
68
- end
69
- end
@@ -1,37 +0,0 @@
1
- module VagrantPlugins
2
- module SimpleCloud
3
- module Errors
4
- class SimpleCloudError < Vagrant::Errors::VagrantError
5
- error_namespace("vagrant_simple_cloud.errors")
6
- end
7
-
8
- class APIStatusError < SimpleCloudError
9
- error_key(:api_status)
10
- end
11
-
12
- class JSONError < SimpleCloudError
13
- error_key(:json)
14
- end
15
-
16
- class ResultMatchError < SimpleCloudError
17
- error_key(:result_match)
18
- end
19
-
20
- class CertificateError < SimpleCloudError
21
- error_key(:certificate)
22
- end
23
-
24
- class LocalIPError < SimpleCloudError
25
- error_key(:local_ip)
26
- end
27
-
28
- class PublicKeyError < SimpleCloudError
29
- error_key(:public_key)
30
- end
31
-
32
- class RsyncError < SimpleCloudError
33
- error_key(:rsync)
34
- end
35
- end
36
- end
37
- end
@@ -1,106 +0,0 @@
1
- require 'vagrant-simple_cloud/helpers/result'
2
- require 'faraday'
3
- require 'json'
4
-
5
- module VagrantPlugins
6
- module SimpleCloud
7
- module Helpers
8
- module Client
9
- def client
10
- @client ||= ApiClient.new(@machine)
11
- end
12
- end
13
-
14
- class ApiClient
15
- include Vagrant::Util::Retryable
16
-
17
- def initialize(machine)
18
- @logger = Log4r::Logger.new('vagrant::simple_cloud::apiclient')
19
- @config = machine.provider_config
20
- @client = Faraday.new({
21
- :url => 'https://api.simplecloud.ru/',
22
- :ssl => {
23
- :ca_file => @config.ca_path
24
- }
25
- })
26
- end
27
-
28
- def delete(path, params = {}, method = :delete)
29
- @client.request :url_encoded
30
- request(path, params, :delete)
31
- end
32
-
33
- def post(path, params = {}, method = :post)
34
- @client.headers['Content-Type'] = 'application/json'
35
- request(path, params, :post)
36
- end
37
-
38
- def request(path, params = {}, method = :get)
39
- begin
40
- @logger.info "Request: #{path}"
41
- result = @client.send(method) do |req|
42
- req.url path
43
- req.headers['Authorization'] = "Bearer #{@config.token}"
44
- req.body = params.to_json
45
- end
46
- rescue Faraday::Error::ConnectionFailed => e
47
- # TODO this is suspect but because farady wraps the exception
48
- # in something generic there doesn't appear to be another
49
- # way to distinguish different connection errors :(
50
- if e.message =~ /certificate verify failed/
51
- raise Errors::CertificateError
52
- end
53
-
54
- raise e
55
- end
56
-
57
- unless method == :delete
58
- begin
59
- body = JSON.parse(result.body)
60
- @logger.info "Response: #{body}"
61
- next_page = body["links"]["pages"]["next"] rescue nil
62
- unless next_page.nil?
63
- uri = URI.parse(next_page)
64
- new_path = path.split("?")[0]
65
- next_result = self.request("#{new_path}?#{uri.query}")
66
- req_target = new_path.split("/")[-1]
67
- body["#{req_target}"].concat(next_result["#{req_target}"])
68
- end
69
- rescue JSON::ParserError => e
70
- raise(Errors::JSONError, {
71
- :message => e.message,
72
- :path => path,
73
- :params => params,
74
- :response => result.body
75
- })
76
- end
77
- end
78
-
79
- unless /^2\d\d$/ =~ result.status.to_s
80
- raise(Errors::APIStatusError, {
81
- :path => path,
82
- :params => params,
83
- :status => result.status,
84
- :response => body.inspect
85
- })
86
- end
87
-
88
- Result.new(body)
89
- end
90
-
91
- def wait_for_event(env, id)
92
- retryable(:tries => 120, :sleep => 10) do
93
- # stop waiting if interrupted
94
- next if env[:interrupted]
95
-
96
- # check action status
97
- result = self.request("/v2/actions/#{id}")
98
-
99
- yield result if block_given?
100
- raise 'not ready' if result['action']['status'] != 'completed'
101
- end
102
- end
103
- end
104
- end
105
- end
106
- end
@@ -1,81 +0,0 @@
1
- require 'vagrant-simple_cloud/helpers/result'
2
- require 'faraday'
3
- require 'json'
4
-
5
- module VagrantPlugins
6
- module SimpleCloud
7
- module Helpers
8
- module ClientService
9
- def clientservice
10
- @clientservice ||= ApiClientService.new(@machine)
11
- end
12
- end
13
-
14
- class ApiClientService
15
-
16
- def initialize(machine)
17
- @logger = Log4r::Logger.new('vagrant::simple_cloud::apiclientservice')
18
- @config = machine.provider_config
19
- @clientservice = Faraday.new({
20
- :url => @config.serviceaddr,
21
- :ssl => {
22
- :ca_file => @config.ca_path
23
- }
24
- })
25
- end
26
-
27
- def post(path, params = {}, method = :post)
28
- @clientservice.headers['Content-Type'] = 'application/json'
29
- begin
30
- @logger.info "Request: #{path}"
31
- result = @clientservice.send(method) do |req|
32
- req.url path
33
- req.headers['Authorization'] = "#{@config.token}"
34
- req.body = params.to_json
35
- end
36
- rescue Faraday::Error::ConnectionFailed => e
37
- # TODO this is suspect but because farady wraps the exception
38
- # in something generic there doesn't appear to be another
39
- # way to distinguish different connection errors :(
40
- if e.message =~ /certificate verify failed/
41
- raise Errors::CertificateError
42
- end
43
-
44
- raise e
45
- end
46
-
47
- begin
48
- body = JSON.parse(result.body)
49
- @logger.info "Response: #{body}"
50
- next_page = body["links"]["pages"]["next"] rescue nil
51
- unless next_page.nil?
52
- uri = URI.parse(next_page)
53
- new_path = path.split("?")[0]
54
- next_result = self.request("#{new_path}?#{uri.query}")
55
- req_target = new_path.split("/")[-1]
56
- body["#{req_target}"].concat(next_result["#{req_target}"])
57
- end
58
- rescue JSON::ParserError => e
59
- raise(Errors::JSONError, {
60
- :message => e.message,
61
- :path => path,
62
- :params => params,
63
- :response => result.body
64
- })
65
- end
66
-
67
- unless /^2\d\d$/ =~ result.status.to_s
68
- raise(Errors::APIStatusError, {
69
- :path => path,
70
- :params => params,
71
- :status => result.status,
72
- :response => body.inspect
73
- })
74
- end
75
-
76
- Result.new(body)
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,40 +0,0 @@
1
- module VagrantPlugins
2
- module SimpleCloud
3
- module Helpers
4
- class Result
5
- def initialize(body)
6
- @result = body
7
- end
8
-
9
- def [](key)
10
- @result[key.to_s]
11
- end
12
-
13
- def find_id(sub_obj, search) #:ssh_keys, {:name => 'ijin (vagrant)'}
14
- find(sub_obj, search)["id"]
15
- end
16
-
17
- def find(sub_obj, search)
18
- key = search.keys.first #:slug
19
- value = search[key].to_s #sfo1
20
- key = key.to_s #slug
21
-
22
- result = @result[sub_obj.to_s].inject(nil) do |result, obj|
23
- obj[key] == value ? obj : result
24
- end
25
-
26
- result || error(sub_obj, key, value)
27
- end
28
-
29
- def error(sub_obj, key, value)
30
- raise(Errors::ResultMatchError, {
31
- :key => key,
32
- :value => value,
33
- :collection_name => sub_obj.to_s,
34
- :sub_obj => @result[sub_obj.to_s]
35
- })
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,31 +0,0 @@
1
- module VagrantPlugins
2
- module SimpleCloud
3
- class Plugin < Vagrant.plugin('2')
4
- name 'SimpleCloud'
5
- description <<-DESC
6
- This plugin installs a provider that allows Vagrant to manage
7
- machines using SimpleCloud's API.
8
- DESC
9
-
10
- config(:simple_cloud, :provider) do
11
- require_relative 'config'
12
- Config
13
- end
14
-
15
- provider(:simple_cloud, parallel: false, defaultable: false) do
16
- require_relative 'provider'
17
- Provider
18
- end
19
-
20
- command(:rebuild) do
21
- require_relative 'commands/rebuild'
22
- Commands::Rebuild
23
- end
24
-
25
- command("simplecloud-list", primary: false) do
26
- require_relative 'commands/list'
27
- Commands::List
28
- end
29
- end
30
- end
31
- end
@@ -1,102 +0,0 @@
1
- require 'vagrant-simple_cloud/actions'
2
-
3
- module VagrantPlugins
4
- module SimpleCloud
5
- class Provider < Vagrant.plugin('2', :provider)
6
-
7
- # This class method caches status for all droplets within
8
- # the SimpleCloud account. A specific droplet's status
9
- # may be refreshed by passing :refresh => true as an option.
10
- def self.droplet(machine, opts = {})
11
- client = Helpers::ApiClient.new(machine)
12
-
13
- # load status of droplets if it has not been done before
14
- if !@droplets
15
- result = client.request('/v2/vps')
16
- @droplets = result['vps']
17
- end
18
-
19
- if opts[:refresh] && machine.id
20
- # refresh the droplet status for the given machine
21
- @droplets.delete_if { |d| d['id'].to_s == machine.id }
22
- result = client.request("/v2/vps/#{machine.id}")
23
- @droplets << droplet = result['vps']
24
- else
25
- # lookup droplet status for the given machine
26
- droplet = @droplets.find { |d| d['id'].to_s == machine.id }
27
- end
28
-
29
- # if lookup by id failed, check for a droplet with a matching name
30
- # and set the id to ensure vagrant stores locally
31
- # TODO allow the user to configure this behavior
32
- if !droplet
33
- name = machine.config.vm.hostname || machine.name
34
- droplet = @droplets.find { |d| d['name'] == name.to_s }
35
- machine.id = droplet['id'].to_s if droplet
36
- end
37
-
38
- droplet ||= {'status' => 'not_created'}
39
- end
40
-
41
- def initialize(machine)
42
- @machine = machine
43
- end
44
-
45
- def action(name)
46
- return Actions.send(name) if Actions.respond_to?(name)
47
- nil
48
- end
49
-
50
- # This method is called if the underying machine ID changes. Providers
51
- # can use this method to load in new data for the actual backing
52
- # machine or to realize that the machine is now gone (the ID can
53
- # become `nil`). No parameters are given, since the underlying machine
54
- # is simply the machine instance given to this object. And no
55
- # return value is necessary.
56
- def machine_id_changed
57
- end
58
-
59
- # This should return a hash of information that explains how to
60
- # SSH into the machine. If the machine is not at a point where
61
- # SSH is even possible, then `nil` should be returned.
62
- #
63
- # The general structure of this returned hash should be the
64
- # following:
65
- #
66
- # {
67
- # :host => "1.2.3.4",
68
- # :port => "22",
69
- # :username => "mitchellh",
70
- # :private_key_path => "/path/to/my/key"
71
- # }
72
- #
73
- # **Note:** Vagrant only supports private key based authenticatonion,
74
- # mainly for the reason that there is no easy way to exec into an
75
- # `ssh` prompt with a password, whereas we can pass a private key
76
- # via commandline.
77
- def ssh_info
78
- droplet = Provider.droplet(@machine)
79
-
80
- return nil if droplet['status'].to_sym != :active
81
-
82
- public_network = droplet['networks']['v4'].find { |network| network['type'] == 'public' }
83
-
84
- return {
85
- :host => public_network['ip_address'],
86
- :port => '22',
87
- :username => 'root',
88
- :private_key_path => nil
89
- }
90
- end
91
-
92
- # This should return the state of the machine within this provider.
93
- # The state must be an instance of {MachineState}. Please read the
94
- # documentation of that class for more information.
95
- def state
96
- state = Provider.droplet(@machine)['status'].to_sym
97
- long = short = state.to_s
98
- Vagrant::MachineState.new(state, short, long)
99
- end
100
- end
101
- end
102
- end
@@ -1,5 +0,0 @@
1
- module VagrantPlugins
2
- module SimpleCloud
3
- VERSION = '1.0.0'
4
- end
5
- end
@@ -1,20 +0,0 @@
1
- require 'vagrant-simple_cloud/version'
2
- require 'vagrant-simple_cloud/plugin'
3
- require 'vagrant-simple_cloud/errors'
4
-
5
- module VagrantPlugins
6
- module SimpleCloud
7
- def self.source_root
8
- @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
9
- end
10
-
11
- def self.public_key(private_key_path)
12
- File.read("#{private_key_path}.pub")
13
- rescue
14
- raise Errors::PublicKeyError, :path => "#{private_key_path}.pub"
15
- end
16
-
17
- I18n.load_path << File.expand_path('locales/en.yml', source_root)
18
- I18n.reload!
19
- end
20
- end
data/locales/en.yml DELETED
@@ -1,92 +0,0 @@
1
- en:
2
- vagrant_simple_cloud:
3
- info:
4
- off: "Droplet is off"
5
- not_created: "Droplet has not been created"
6
- already_active: "Droplet is already active"
7
- already_off: "Droplet is already off"
8
- creating: "Creating a new droplet..."
9
- droplet_ip: "Assigned IP address: %{ip}"
10
- droplet_private_ip: "Private IP address: %{ip}"
11
- destroying: "Destroying the droplet..."
12
- shutting_down: "Shutting down the droplet..."
13
- powering_off: "Powering off the droplet..."
14
- powering_on: "Powering on the droplet..."
15
- rebuilding: "Rebuilding the droplet..."
16
- reloading: "Rebooting the droplet..."
17
- creating_user: "Creating user account: %{user}..."
18
- late_sudo_install_deb8: "SimpleCloud's debian-8 image lacks sudo. Installing now."
19
- modifying_sudo: "Modifying sudoers file to remove tty requirement..."
20
- using_key: "Using existing SSH key: %{name}"
21
- creating_key: "Creating new SSH key: %{name}..."
22
- trying_rsync_install: "Rsync not found, attempting to install with yum..."
23
- rsyncing: "Rsyncing folder: %{hostpath} => %{guestpath}..."
24
- rsync_missing: "The rsync executable was not found in the current path."
25
- images: "Description Slug ID\n\n%{images}"
26
- images_with_regions: "Description Slug ID Regions\n\n%{images}"
27
- regions: "Description Slug\n\n%{regions}"
28
- sizes: "Memory CPUs Slug\n\n%{sizes}"
29
- list_error: 'Could not contact the SimpleCloud API: %{message}'
30
- config:
31
- token: "Token is required"
32
- serviceaddr: "Service address is required"
33
- private_key: "SSH private key path is required"
34
- public_key: "SSH public key not found: %{key}"
35
- errors:
36
- public_key: |-
37
- There was an issue reading the public key at:
38
-
39
- Path: %{path}
40
-
41
- Please check the file's permissions.
42
- api_status: |-
43
- There was an issue with the request made to the SimpleCloud
44
- API at:
45
-
46
- Path: %{path}
47
- URI Params: %{params}
48
-
49
- The response status from the API was:
50
-
51
- Status: %{status}
52
- Response: %{response}
53
- rsync: |-
54
- There was an error when attemping to rsync a share folder.
55
- Please inspect the error message below for more info.
56
-
57
- Host path: %{hostpath}
58
- Guest path: %{guestpath}
59
- Error: %{stderr}
60
- json: |-
61
- There was an issue with the JSON response from the SimpleCloud
62
- API at:
63
-
64
- Path: %{path}
65
- URI Params: %{params}
66
-
67
- The response JSON from the API was:
68
-
69
- Response: %{response}
70
- result_match: |-
71
- The result collection for %{collection_name}:
72
-
73
- %{sub_obj}
74
-
75
- Contained no object with the value "%{value}" for the the
76
- key "%{key}".
77
-
78
- Please ensure that the configured value exists in the collection.
79
- certificate: |-
80
- The secure connection to the SimpleCloud API has failed. Please
81
- ensure that your local certificates directory is defined in the
82
- provider config.
83
-
84
- config.vm.provider :simple_cloud do |vm|
85
- vm.ca_path = "/path/to/ssl/ca/cert.crt"
86
- end
87
-
88
- This is generally caused by the OpenSSL configuration associated
89
- with the Ruby install being unaware of the system specific ca
90
- certs.
91
- local_ip: |-
92
- The SimpleCloud provider was unable to determine the host's IP.
data/test/Vagrantfile DELETED
@@ -1,14 +0,0 @@
1
- Vagrant.require_plugin('vagrant-simple_cloud')
2
-
3
- Vagrant.configure('2') do |config|
4
- config.vm.define "test" do |t|
5
- t.vm.provider :simple_cloud do |provider, override|
6
- override.ssh.private_key_path = 'test_id_rsa'
7
- override.vm.box = 'simple_cloud'
8
- override.vm.hostname = 'test'
9
- override.vm.provision :shell, :path => 'scripts/provision.sh'
10
-
11
- provider.token = ENV['DO_TOKEN']
12
- end
13
- end
14
- end
@@ -1,3 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo 'Testing 1 2 3!'
data/test/test.sh DELETED
@@ -1,10 +0,0 @@
1
- cd test
2
-
3
- bundle exec vagrant up --provider=simple_cloud
4
- bundle exec vagrant up
5
- bundle exec vagrant provision
6
- bundle exec vagrant rebuild
7
- bundle exec vagrant halt
8
- bundle exec vagrant destroy
9
-
10
- cd ..
data/test/test_id_rsa DELETED
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEAmxZRyfvgXFxlPW9ivoxffdK9erqpCp1oitghUtDxbzPSCbNw
3
- qBoiJcnPVA/TuCxMnruUcNEXYgKfTL8lD3A1Hom8N1pTAhSed5m4qAGqTMubT15s
4
- cSR+SnDdriShErB/9YSb9LVn1aR0MsFS3H/+x1j4w5d6hBas8BhDfuVd16shvoaA
5
- OKy0ywy+NBuvGy/6Au3q3t7M9wdelODRnYLSWWqaLeYExRKxWWc7ape+oduQoe4r
6
- BNVwGmIOjWOM9aFPEPVHdLGO+LQyPExdeuS0rW96a39U4p8GjGzsrkNcKzVOGjM3
7
- pIsGs3qOi7RzJ3z48HiBj9NT8I2fFpGHERerbQIDAQABAoIBABXsIcObhyuHJAh7
8
- JkopLZZro70lhZ+qgIyf4JYEUxyVBqu4YcRhbVJKJLSNSDBQksQdX+5SoCuKk1oV
9
- 6vcztU6Lyb9JVVKF96CQajnVgm04msutXUbhEbkUG0Hyi5JIwM3D4QfGXNcmWAaU
10
- rVHeBfXH7eI4F2l0ix2lUGUvpwRFRDq9HgpOjXzyc57B4jeF7na/UTnt+Uoi4hzZ
11
- FjjQ7nSLqEJLXtQBqt4EnAZu6/9JlAApunyMOX2oTqRNn8XGmD0Rc+AouipHM+Mc
12
- 9/fN9oqVxxXw2MdJA6S/sEFLEDrbifmyyHOereuZtOjdWLqsCdZwewYl8nuBnYEU
13
- GjVzYgECgYEAx+efis7xma28HWqtW9GLvjBcFAD/f+MDDeqX9TKFwf+91tUq0QZi
14
- SqXvmIvCnpsO8I70WEskT+pPwJWReAbZBrCbCVDbH34KEkAHywH9sK6chWnB8OpU
15
- 0mp0gH89A4bq/tedKVHCQ2sAbKgbIc1zf3zpmMQiV+smMDQXU1fTg/kCgYEAxpst
16
- BD2cYftFjxFZE1v8fx6t6oHtzYRtNNFTYzfxzzRBaTTRRzdhSfh0tLFueyg/fcKR
17
- oCXUxbfCYRLk+zHP2p/AyyN9R5p2AMAc6lOZPpBj7u9kjjDVnk76DYnLDqP3Da2s
18
- i7b0DNYxm2gt1VSZfOuJHv7z85SLcJQsg+3ymBUCgYBrOpFX0d3Cw3COjvRitiox
19
- YJtjl411uf2fb2EHg4xAHcBlBn8rFDOROyUkPIOutBn1a5kh61yVCWiyMwiOy42K
20
- ixz+iEKhx+f7FiGYAX9lUKRg4/PGGMxa+gN4EchWpf5TqLCCw3pi03is0BeNsDjt
21
- /8EF0t9hLZ+UZ7zDVe79cQKBgGTPi5AlfeW2V96BHcfX31jfR8RLY1v4pj4zKrKo
22
- SRO2IKW4a6pMkBOuC/9UORJGocPCKY0y5sfduMrxfk2LQUhl4sS6JPNdkhxbZ9IB
23
- 0T2SqUc1OMN8QlJzIDYTBYFO9S56Q6U/nq2NY+zQesNYh/iCzj1viIDRm93vOJFX
24
- DNbpAoGBALlQvzzMsT3/fPYn8moQiUCJ9XRZ4X2qwYy5Q8J8QvutI+j9o9+pJBhc
25
- 3zSlB8HHa7asf27GUbYtv7oFDpqqcC6EFtvfp1OCiX/OjBIJA1YXTFG3YWC5ngC4
26
- JPxyTn4MdoX0enm8PRDg7CSZwa4AK1MIYetbiuJgWJ2wKXDFxuGH
27
- -----END RSA PRIVATE KEY-----
data/test/test_id_rsa.pub DELETED
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbFlHJ++BcXGU9b2K+jF990r16uqkKnWiK2CFS0PFvM9IJs3CoGiIlyc9UD9O4LEyeu5Rw0RdiAp9MvyUPcDUeibw3WlMCFJ53mbioAapMy5tPXmxxJH5KcN2uJKESsH/1hJv0tWfVpHQywVLcf/7HWPjDl3qEFqzwGEN+5V3XqyG+hoA4rLTLDL40G68bL/oC7ere3sz3B16U4NGdgtJZapot5gTFErFZZztql76h25Ch7isE1XAaYg6NY4z1oU8Q9Ud0sY74tDI8TF165LStb3prf1TinwaMbOyuQ1wrNU4aMzekiwazeo6LtHMnfPjweIGP01PwjZ8WkYcRF6tt simple_cloud provider test key