aws_minecraft 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d6276eb43e3e3d747a509a61cbc3626084fc806f8697563cdc281aa99c3c817c
4
- data.tar.gz: 5368e300bb28a07a780b02e3f5a864936c1e0b5321c2ee37c74d6af012d6d428
3
+ metadata.gz: 943506dfdf5fea9a018a5fcd112a707a81a6e9c9cd306df3a440a12bdd3e2b71
4
+ data.tar.gz: 7c9300442cd09d69f7ddedf675cf01da479e480982b5b1e5648e710b63b9eba0
5
5
  SHA512:
6
- metadata.gz: 8ceb5ba3fa12f2be2f499465a1fcf72a5669d31db8e5b15791c2b7f537e641526bf49d8a5d7a062c37a24adf8c658df38b774d912e03205d4e16ca1b9ba46dc1
7
- data.tar.gz: e606683cf5183c19017919aa85a2536e87826f8a0ed9ed6b45b84e785d2a36a92b162b47508f78bbc5a10a8cb196ea9f0874a1537ff22d81f0b710cec70e3e74
6
+ metadata.gz: 96c1b4e7ec19fe1933bb968effa4000602ac609a985b6ad0e4309aa023d9809872ef02d2d265f1198e36c441521e5a2ce47a6484c50452c9e24c45dbbcee7b13
7
+ data.tar.gz: ecc49d6f593d97fa792f46098ebceef03cb19bada204d3a7a4cad4649bb0f3466aa15b739c35a48a2a68e6271823ecc9a8268fa951702b2f28a2891ccc61f125
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ drop/*
5
5
  .DS_Store
6
6
  cfg/minecraft.key
7
7
  coverage
8
+ *.gem
@@ -3,4 +3,4 @@ rvm:
3
3
  - 2.6
4
4
  - 2.7
5
5
  env:
6
- - AWS_REGION=eu-central-1
6
+ - AWS_REGION=us-east-1
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.email = 'skarlso777@gmail.com'
14
14
  s.extra_rdoc_files = ['README.md']
15
15
  s.files = `git ls-files`.split("\n")
16
+ s.files << './cfg/minecraft.key'
16
17
  s.homepage = 'https://github.com/Skarlso/aws_minecraft'
17
18
  s.rdoc_options = ['--charset=UTF-8']
18
19
  s.require_paths = ['lib']
@@ -62,7 +62,8 @@ module AWSMine
62
62
  @logger.info('WARNING! Terminating an instance will result in dataloss. Make ' \
63
63
  'sure everything is backed up. Do you want to continue? (Y/n):')
64
64
  answer = $stdin.gets.chomp
65
- return if answer == 'n'
65
+ return unless answer == 'Y'
66
+
66
67
  ip, id = @db_helper.instance_details
67
68
  @logger.info("Terminating instance #{ip} | #{id}.")
68
69
  @aws_helper.terminate_ec2(id)
@@ -8,6 +8,7 @@ module AWSMine
8
8
  # Main wrapper for AWS commands
9
9
  class AWSHelper
10
10
  attr_accessor :ec2_client, :ec2_resource
11
+
11
12
  def initialize
12
13
  # region: AWS_REGION
13
14
  # Credentials are loaded from environment properties
@@ -15,7 +16,7 @@ module AWSMine
15
16
  credentials = Aws::SharedCredentials.new(profile_name: config.profile)
16
17
  @ec2_client = Aws::EC2::Client.new(credentials: credentials)
17
18
  @ec2_resource = Aws::EC2::Resource.new(client: @ec2_client)
18
- @logger = Logger.new(STDOUT)
19
+ @logger = Logger.new($stdout)
19
20
  @logger.level = Logger.const_get(config.loglevel)
20
21
  end
21
22
 
@@ -109,7 +110,10 @@ module AWSMine
109
110
  end
110
111
 
111
112
  def import_keypair
112
- key = Base64.decode64(File.read(File.join(__dir__, '../../cfg/minecraft.key')))
113
+ file = File.join(__dir__, '../../cfg/minecraft.key')
114
+ raise 'key not found. make sure cfg/minecraft.key exists in the gem' unless File.exist?(file)
115
+
116
+ key = Base64.decode64(File.read(file))
113
117
  begin
114
118
  @ec2_client.describe_key_pairs(key_names: ['minecraft_keys'])
115
119
  key_exists = true
@@ -117,6 +121,7 @@ module AWSMine
117
121
  key_exists = false
118
122
  end
119
123
  return if key_exists
124
+
120
125
  resp = @ec2_client.import_key_pair(dry_run: false,
121
126
  key_name: 'minecraft_keys',
122
127
  public_key_material: key)
@@ -14,6 +14,7 @@ module AWSMine
14
14
  SELECT name FROM sqlite_master WHERE type='table' AND name='#{table}';
15
15
  SQL
16
16
  return false if retrieved.nil? || retrieved.empty?
17
+
17
18
  retrieved.first.first == table
18
19
  end
19
20
 
@@ -4,6 +4,7 @@ module AWSMine
4
4
  # MineConfig is a configuration loader
5
5
  class MineConfig
6
6
  attr_reader :loglevel, :profile, :upload_path
7
+
7
8
  def initialize
8
9
  config = YAML.load_file(File.join(__dir__, '../../cfg/config.yml'))
9
10
  @loglevel = config['loglevel']
@@ -6,7 +6,7 @@ module AWSMine
6
6
  class SSHHelper
7
7
  def initialize
8
8
  config = MineConfig.new
9
- @logger = Logger.new(STDOUT)
9
+ @logger = Logger.new($stdout)
10
10
  @logger.level = Logger.const_get(config.loglevel)
11
11
  end
12
12
 
@@ -33,10 +33,8 @@ module AWSMine
33
33
  channel = ssh.open_channel do |ch|
34
34
  @logger.info('Channel opened. Opening pty.')
35
35
  ch.request_pty do |c, success|
36
- unless success
37
- @logger.info('Failed to request channel.')
38
- raise
39
- end
36
+ raise 'Failed to request channel' unless success
37
+
40
38
  c.on_data do |_, data|
41
39
  puts "Received data: #{data}."
42
40
  end
@@ -1,5 +1,5 @@
1
1
  module AWSMine
2
2
  class AWSMine
3
- VERSION = '0.2.0'.freeze
3
+ VERSION = '0.2.1'.freeze
4
4
  end
5
5
  end
@@ -62,7 +62,7 @@ describe AWSMine::AWSMine, fakefs: true do
62
62
  describe '#terminate_instance' do
63
63
  it 'should terminate an instance if it exists and delete it from the db' do
64
64
  expect(db).to receive(:instance_exists?).and_return(true)
65
- allow($stdin).to receive(:gets) { 'y' }
65
+ allow($stdin).to receive(:gets) { 'Y' }
66
66
  expect(db).to receive(:instance_details).and_return(['1.2.3.4', 'i-asdf'])
67
67
  expect(aws).to receive(:terminate_ec2).with('i-asdf')
68
68
  expect(db).to receive(:remove_instance)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_minecraft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gergely Brautigam
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-25 00:00:00.000000000 Z
11
+ date: 2020-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -74,6 +74,7 @@ extensions: []
74
74
  extra_rdoc_files:
75
75
  - README.md
76
76
  files:
77
+ - "./cfg/minecraft.key"
77
78
  - ".gitignore"
78
79
  - ".rspec"
79
80
  - ".travis.yml"