bako 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.travis.yml +13 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +6 -0
- data/bako.gemspec +30 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/example/hello/hello.rb +32 -0
- data/exe/bako +17 -0
- data/lib/bako.rb +17 -0
- data/lib/bako/cli.rb +14 -0
- data/lib/bako/cli/run.rb +38 -0
- data/lib/bako/common_helper.rb +37 -0
- data/lib/bako/compute_environment.rb +3 -0
- data/lib/bako/dsl.rb +8 -0
- data/lib/bako/dsl/context.rb +38 -0
- data/lib/bako/dsl/context/job.rb +53 -0
- data/lib/bako/dsl/context/job_definition.rb +39 -0
- data/lib/bako/error.rb +4 -0
- data/lib/bako/models/job.rb +57 -0
- data/lib/bako/models/job_definition.rb +57 -0
- data/lib/bako/version.rb +3 -0
- metadata +152 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e72cd255a4ab160b87b7f384d827c3e57df305e6
|
4
|
+
data.tar.gz: ccd782ee6f831fffa2dac9283ad4f76b066da12a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eee8684dbc45c6de12a22efe4dacad56ee875c07c597598276cdefbcac6c805eed508b080b87c3e09efc2513155d764e9c13cff5387dcf06648f7e98e4b7f7c8
|
7
|
+
data.tar.gz: 15e61930ed78e3b3d444c69857729a77a5feb5901561529a696d0842094611772afe1ee7d5aacd72f10725ca6fef872b9213b2a06db542bad705e6dca3068d7c
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.3.3
|
5
|
+
before_install: gem install bundler -v 1.14.6
|
6
|
+
deploy:
|
7
|
+
provider: rubygems
|
8
|
+
api_key:
|
9
|
+
secure: bVmhqQi0lR5UjoAPJsnhZPFcBYggOmQIlVZLV515US0qEwP7lDdOLY9arWLOubfd0Kr7UXp15a2JS5IiSMw9TcAKIiAeTAm9sbtha2R0qaPGJTnmE4pkn07aef3u/zg6zXdT8kj52142sket+fp//mJgKGPrlN41Tx+3xBC5+tZWQFOciUTKSz4+rpY9xgI6RECp+P5TLoopowCPvZpC3z4N5XVzzlvL+JMVnBEEc6+qXRNieasrwxzhOkY7qTj3x/tSDMjMnv+CMDUZrxVrwARZv1MJRL1alN/pCTsQr6e6iL7iBfvLL2Iy02GX1gRCi61MCJltjdPhQWm7mjV8+G4AwGVkrkJwMD5yBgt9g79lahLv9v0KIf8sxK7cMg0jYKW+apl8/hctZnkI9dy8eSw500F2obCg/iEznz3+t16NiMoBtD8Dk7Etg6DSnuiPzCGlRAq5zDIx5YRzl+1NyAmnGSgcmQkF82dKEkOyKUVLqWGJ9J+O0sFMnAOk0Lw5TaYjd2+1CzuXPmXnN+wgRxnCQKtZdVZ77PhL+NXihcvRHew8nkW0DRLe7k2qI1AQzQrSk0v13LE4mlm8ZhcOTDxbFqGn9+p7HmzWZX3dbxBb3dsuBUbhf1JBBvcbiar1CUf59LUzlJ8xADOOqbbb4uo4Z/TGb1y5UAXYSRuMpnQ=
|
10
|
+
gem: bako
|
11
|
+
on:
|
12
|
+
tags: true
|
13
|
+
repo: ayemos/bako
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Bako
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/bako`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'bako'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install bako
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/bako.
|
36
|
+
|
data/Rakefile
ADDED
data/bako.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'bako/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "bako"
|
8
|
+
spec.version = Bako::VERSION
|
9
|
+
spec.authors = ["Yuichiro Someya"]
|
10
|
+
spec.email = ["ayemos.y@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{AWS Batch DSL and a set of cli tool.}
|
13
|
+
spec.description = %q{AWS Batch DSL and a set of cli tool.}
|
14
|
+
spec.homepage = "https://github.com/ayemos/bako"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
+
spec.add_development_dependency "awesome_print"
|
27
|
+
|
28
|
+
spec.add_dependency "aws-sdk", "~> 2"
|
29
|
+
spec.add_dependency "thor", "~> 0.19"
|
30
|
+
end
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "bako"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
preproc_jd = job_definition 'preproc-inception' do
|
2
|
+
command ['sleep', '10']
|
3
|
+
type 'container'
|
4
|
+
image 'busybox'
|
5
|
+
end
|
6
|
+
|
7
|
+
preproc_jobs = []
|
8
|
+
|
9
|
+
[*1..2].each do |i|
|
10
|
+
preproc_job = job "preproc-inception-#{i}" do
|
11
|
+
job_definition preproc_jd
|
12
|
+
|
13
|
+
param({
|
14
|
+
foo: 'bar'
|
15
|
+
})
|
16
|
+
end
|
17
|
+
|
18
|
+
preproc_jobs << preproc_job
|
19
|
+
end
|
20
|
+
|
21
|
+
train_jd = job_definition 'train-inception' do
|
22
|
+
command ['python', '/tensorflow/tensorflow/examples/learn/mnist.py']
|
23
|
+
type 'container'
|
24
|
+
memory 1024
|
25
|
+
vcpus 16
|
26
|
+
image 'tensorflow/tensorflow:latest-devel'
|
27
|
+
end
|
28
|
+
|
29
|
+
job 'train-inception' do
|
30
|
+
job_definition train_jd
|
31
|
+
#depends_on preproc_jobs
|
32
|
+
end
|
data/exe/bako
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
retried = false
|
4
|
+
begin
|
5
|
+
require 'bako'
|
6
|
+
require 'bako/cli'
|
7
|
+
rescue LoadError
|
8
|
+
$:.unshift File.expand_path(File.join(__dir__, '..', 'lib'))
|
9
|
+
if retried
|
10
|
+
raise
|
11
|
+
else
|
12
|
+
retried = true
|
13
|
+
retry
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Bako::CLI.start(ARGV)
|
data/lib/bako.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "bako/version"
|
2
|
+
require 'bako/common_helper'
|
3
|
+
|
4
|
+
module Bako
|
5
|
+
def Bako.logger
|
6
|
+
@logger ||= Logger.new(STDOUT)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'bako/dsl'
|
11
|
+
require 'bako/dsl/context'
|
12
|
+
require 'bako/dsl/context/job'
|
13
|
+
require 'bako/dsl/context/job_definition'
|
14
|
+
|
15
|
+
require 'bako/models/job'
|
16
|
+
require 'bako/models/job_definition'
|
17
|
+
|
data/lib/bako/cli.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Bako
|
4
|
+
class CLI < Thor
|
5
|
+
class_option :verbose, aliases: '-v', type: :boolean
|
6
|
+
map '--version' => :print_version
|
7
|
+
|
8
|
+
desc 'run', 'run job'
|
9
|
+
def runjob(path)
|
10
|
+
require 'bako/cli/run'
|
11
|
+
Bako::CLI::Run.new(path, options, self).run
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/bako/cli/run.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
module Bako
|
2
|
+
class CLI::Run
|
3
|
+
include Bako::CommonHelper
|
4
|
+
|
5
|
+
def initialize(path, options, thor)
|
6
|
+
@options = options
|
7
|
+
@thor = thor
|
8
|
+
@path = path
|
9
|
+
end
|
10
|
+
|
11
|
+
def run
|
12
|
+
dsl.job_definitions.each do |_, jd_context|
|
13
|
+
jd = Bako::Models::JobDefinition.from_context(jd_context)
|
14
|
+
|
15
|
+
if jd.remote_exists?
|
16
|
+
y_or_n = @thor.ask("JobDefinition #{jd.name} seems to exist on remote. would you like to update it? (y/n)")
|
17
|
+
next unless y_or_n =~ /y/i
|
18
|
+
end
|
19
|
+
|
20
|
+
jd.register
|
21
|
+
end
|
22
|
+
|
23
|
+
jobs_to_be_run.each do |job|
|
24
|
+
Bako::Models::Job.from_context(job).start
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def jobs_to_be_run
|
31
|
+
dsl.jobs.values - dsl.jobs.values.map{|j| j.depends_on_b}.flatten
|
32
|
+
end
|
33
|
+
|
34
|
+
def dsl
|
35
|
+
@dsl ||= Bako::DSL.parse(File.read(@path))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
|
3
|
+
module Bako
|
4
|
+
module CommonHelper
|
5
|
+
DEFAULTS = {
|
6
|
+
vcpus: 1,
|
7
|
+
memory: 128
|
8
|
+
}
|
9
|
+
def batch_client
|
10
|
+
@batch_client ||= Aws::Batch::Client.new
|
11
|
+
end
|
12
|
+
def remote_resource(arn)
|
13
|
+
end
|
14
|
+
|
15
|
+
def remote_job_definition(name_or_arn, status=nil)
|
16
|
+
remote_job_definitions(status).find{|jd|
|
17
|
+
jd.name == name_or_arn || (jd.arn || jd.arn == name_or_arn)
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def remote_job_definitions(status=nil)
|
22
|
+
batch_client.describe_job_definitions({
|
23
|
+
status: status
|
24
|
+
}).job_definitions.map do |jd|
|
25
|
+
Bako::Models::JobDefinition.new(
|
26
|
+
jd.job_definition_name,
|
27
|
+
jd.container_properties&.command,
|
28
|
+
jd.container_properties&.image,
|
29
|
+
jd.container_properties&.job_role_arn,
|
30
|
+
jd.type,
|
31
|
+
jd.container_properties&.memory,
|
32
|
+
jd.container_properties&.vcpus
|
33
|
+
)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/bako/dsl.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
class Bako::DSL::Context
|
2
|
+
attr_reader :jobs, :job_definitions
|
3
|
+
|
4
|
+
def self.eval(dsl)
|
5
|
+
new do
|
6
|
+
eval(dsl)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(&block)
|
11
|
+
@jobs = {}
|
12
|
+
@job_definitions = {}
|
13
|
+
|
14
|
+
instance_eval(&block)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def job(name, &block)
|
20
|
+
name = name.to_s
|
21
|
+
|
22
|
+
if @jobs[name]
|
23
|
+
raise "Job `#{name}` is already defined"
|
24
|
+
end
|
25
|
+
|
26
|
+
@jobs[name] = Bako::DSL::Context::Job.new(name, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
def job_definition(name, &block)
|
30
|
+
name = name.to_s
|
31
|
+
|
32
|
+
if @job_definitions[name]
|
33
|
+
raise "JobDefinition `#{name}` is already defined"
|
34
|
+
end
|
35
|
+
|
36
|
+
@job_definitions[name] = Bako::DSL::Context::JobDefinition.new(name, &block)
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Bako
|
2
|
+
class DSL::Context::Job
|
3
|
+
attr_reader :name, :param_b, :job_definition_b, :depends_on_b, :memory_b, :vcpus_b
|
4
|
+
|
5
|
+
def initialize(name, &block)
|
6
|
+
@name = name
|
7
|
+
@param_b = {}
|
8
|
+
|
9
|
+
instance_eval(&block)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def job_definition(jd)
|
15
|
+
if jd.nil?
|
16
|
+
raise InvalidArgumentError.new('JobDefinition must be set')
|
17
|
+
end
|
18
|
+
|
19
|
+
@job_definition_b =
|
20
|
+
if jd.is_a?(Bako::DSL::Context::JobDefinition)
|
21
|
+
jd
|
22
|
+
elsif jd.is_a?(String)
|
23
|
+
remote_job_definition(jd)
|
24
|
+
else
|
25
|
+
raise InvalidArgumentError.new('JobDefinition must be String or Bako::DSL::Context::JobDefinition')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def depends_on(jobs)
|
30
|
+
@depends_on_b = jobs&.map do |job|
|
31
|
+
if job.is_a?(Bako::DSL::Context::Job)
|
32
|
+
job
|
33
|
+
elsif job.is_a?(String)
|
34
|
+
remote_job(job)
|
35
|
+
else
|
36
|
+
raise InvalidArgumentError.new('Job must be String or Bako::DSL::Context::Job')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def param(h)
|
42
|
+
@param_b = h
|
43
|
+
end
|
44
|
+
|
45
|
+
def memory(memory_b)
|
46
|
+
@memory_b = memory_b
|
47
|
+
end
|
48
|
+
|
49
|
+
def vcpus(vcpus_b)
|
50
|
+
@vcpus_b = vcpus_b
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module Bako
|
3
|
+
class DSL::Context::JobDefinition
|
4
|
+
attr_reader :name, :type_b, :image_b, :command_b, :role_arn_b, :memory_b, :vcpus_b
|
5
|
+
|
6
|
+
def initialize(name, &block)
|
7
|
+
@name = name
|
8
|
+
@type_b = 'container'
|
9
|
+
|
10
|
+
instance_eval(&block)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def type(job_type)
|
16
|
+
@type_b = job_type
|
17
|
+
end
|
18
|
+
|
19
|
+
def image(image_b)
|
20
|
+
@image_b = image_b
|
21
|
+
end
|
22
|
+
|
23
|
+
def command(command_b)
|
24
|
+
@command_b = command_b
|
25
|
+
end
|
26
|
+
|
27
|
+
def role_arn(role_arn_b)
|
28
|
+
@role_arn_b = role_arn_b
|
29
|
+
end
|
30
|
+
|
31
|
+
def memory(memory_b)
|
32
|
+
@memory_b = memory_b
|
33
|
+
end
|
34
|
+
|
35
|
+
def vcpus(vcpus_b)
|
36
|
+
@vcpus_b = vcpus_b
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/bako/error.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'pathname'
|
3
|
+
|
4
|
+
module Bako
|
5
|
+
module Models
|
6
|
+
class Job
|
7
|
+
include Bako::CommonHelper
|
8
|
+
|
9
|
+
attr_reader :name, :job_definition, :depends_on, :param, :id, :memory, :vcpus
|
10
|
+
|
11
|
+
def self.from_context(context)
|
12
|
+
new(
|
13
|
+
context.name,
|
14
|
+
context.job_definition_b,
|
15
|
+
context.depends_on_b&.map{|job_context|
|
16
|
+
Bako::Models::Job.from_context(job_context)
|
17
|
+
},
|
18
|
+
context.param_b,
|
19
|
+
context.memory_b,
|
20
|
+
context.vcpus_b
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(name, job_definition, depends_on, param, memory, vcpus)
|
25
|
+
@name = name
|
26
|
+
@job_definition = job_definition
|
27
|
+
@depends_on = depends_on
|
28
|
+
@param = param
|
29
|
+
@memory = memory
|
30
|
+
@vcpus = vcpus
|
31
|
+
end
|
32
|
+
|
33
|
+
def start
|
34
|
+
# start 'depends_on' jobs first
|
35
|
+
d_ids = []
|
36
|
+
|
37
|
+
@depends_on&.each do |job|
|
38
|
+
d_ids << job.start.job_id
|
39
|
+
end
|
40
|
+
|
41
|
+
# start job
|
42
|
+
resp = batch_client.submit_job({
|
43
|
+
job_definition: @job_definition.name,
|
44
|
+
job_name: @name,
|
45
|
+
job_queue: 'ayemos-batche-queue-002',
|
46
|
+
depends_on: @depends_on&.map{|j| [[:job_id, j.id]].to_h},
|
47
|
+
parameters: @param
|
48
|
+
})
|
49
|
+
|
50
|
+
@id = resp.job_id
|
51
|
+
Bako.logger.info("Submitted job #{@name} (id: #{@id})")
|
52
|
+
|
53
|
+
resp
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'pathname'
|
3
|
+
|
4
|
+
module Bako
|
5
|
+
module Models
|
6
|
+
class JobDefinition
|
7
|
+
include Bako::CommonHelper
|
8
|
+
|
9
|
+
attr_reader :name, :command, :role_arn, :image, :type, :arn, :memory, :vcpus
|
10
|
+
|
11
|
+
def self.from_context(context)
|
12
|
+
new(
|
13
|
+
context.name,
|
14
|
+
context.command_b,
|
15
|
+
context.image_b,
|
16
|
+
context.role_arn_b,
|
17
|
+
context.type_b,
|
18
|
+
context.memory_b,
|
19
|
+
context.vcpus_b
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize(name, command, image, role_arn, type, memory, vcpus)
|
24
|
+
@name = name
|
25
|
+
@command = command
|
26
|
+
@image = image
|
27
|
+
@role_arn = role_arn
|
28
|
+
@type = type
|
29
|
+
@memory = memory
|
30
|
+
@vcpus = vcpus
|
31
|
+
end
|
32
|
+
|
33
|
+
def register
|
34
|
+
Bako.logger.info("Registering JobDefinition #{@name}")
|
35
|
+
|
36
|
+
resp = batch_client.register_job_definition({
|
37
|
+
type: @type,
|
38
|
+
container_properties: {
|
39
|
+
command: @command,
|
40
|
+
image: @image,
|
41
|
+
memory: @memory || DEFAULTS[:memory],
|
42
|
+
vcpus: @vcpus || DEFAULTS[:vcpus],
|
43
|
+
},
|
44
|
+
job_definition_name: @name
|
45
|
+
})
|
46
|
+
|
47
|
+
@arn = resp.job_definition_arn
|
48
|
+
@revision = resp.revision
|
49
|
+
Bako.logger.info("Registered JobDefinition #{@name}:#{@revision} (arn: #{@arn})")
|
50
|
+
end
|
51
|
+
|
52
|
+
def remote_exists?
|
53
|
+
!remote_job_definition(@name, 'ACTIVE').nil?
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/bako/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bako
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yuichiro Someya
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.14'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: awesome_print
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: aws-sdk
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: thor
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.19'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.19'
|
97
|
+
description: AWS Batch DSL and a set of cli tool.
|
98
|
+
email:
|
99
|
+
- ayemos.y@gmail.com
|
100
|
+
executables:
|
101
|
+
- bako
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- ".rspec"
|
107
|
+
- ".travis.yml"
|
108
|
+
- Gemfile
|
109
|
+
- README.md
|
110
|
+
- Rakefile
|
111
|
+
- bako.gemspec
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- example/hello/hello.rb
|
115
|
+
- exe/bako
|
116
|
+
- lib/bako.rb
|
117
|
+
- lib/bako/cli.rb
|
118
|
+
- lib/bako/cli/run.rb
|
119
|
+
- lib/bako/common_helper.rb
|
120
|
+
- lib/bako/compute_environment.rb
|
121
|
+
- lib/bako/dsl.rb
|
122
|
+
- lib/bako/dsl/context.rb
|
123
|
+
- lib/bako/dsl/context/job.rb
|
124
|
+
- lib/bako/dsl/context/job_definition.rb
|
125
|
+
- lib/bako/error.rb
|
126
|
+
- lib/bako/models/job.rb
|
127
|
+
- lib/bako/models/job_definition.rb
|
128
|
+
- lib/bako/version.rb
|
129
|
+
homepage: https://github.com/ayemos/bako
|
130
|
+
licenses: []
|
131
|
+
metadata: {}
|
132
|
+
post_install_message:
|
133
|
+
rdoc_options: []
|
134
|
+
require_paths:
|
135
|
+
- lib
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
requirements: []
|
147
|
+
rubyforge_project:
|
148
|
+
rubygems_version: 2.5.2
|
149
|
+
signing_key:
|
150
|
+
specification_version: 4
|
151
|
+
summary: AWS Batch DSL and a set of cli tool.
|
152
|
+
test_files: []
|