barruun 0.1.1 → 0.1.5
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +3 -1
- data/lib/barruun/cli.rb +12 -4
- data/lib/barruun/configurations/bigquery/dataset.rb +19 -0
- data/lib/barruun/{logging/sink/config.rb → configurations/logging/sink.rb} +10 -4
- data/lib/barruun/{storage/bucket/config.rb → configurations/storage/bucket.rb} +3 -3
- data/lib/barruun/managers/bigquery/dataset.rb +20 -0
- data/lib/barruun/managers/logging/sink.rb +20 -0
- data/lib/barruun/managers/storage/bucket.rb +20 -0
- data/lib/barruun/managers/utils.rb +32 -0
- data/lib/barruun/version.rb +1 -1
- metadata +8 -6
- data/lib/barruun/logging/sink.rb +0 -15
- data/lib/barruun/storage/bucket.rb +0 -18
- data/lib/barruun/utils.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9decd7dacebba1fb4656151f53f93ffb9eb40e50d11cf2857d94f8c39a91dcb3
|
4
|
+
data.tar.gz: 288089cad737ee2aeab66e9ca916b0b06d8cc2418da2b9fe2a0560016b2a7be2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80b36585f4e4b397208992ea82ed2ab90ed98147b5a37535f419ddb5b24f06ce619be1533dfae3fffa0fe9da0f76986eca1a6769d3ca0a76dac33374bc75da41
|
7
|
+
data.tar.gz: e7b8efa49ae874feb0f6e72f3fbc45dff60923209a072a60dc74724972b65ec79d42e6c1f2bd1a4ade594b2651fa89e2e1185d631a0143e19d799c10f0c590d6
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -37,9 +37,11 @@ Commands:
|
|
37
37
|
|
38
38
|
#### Sink
|
39
39
|
|
40
|
+
Please set project id to `PROJECT_ID`.
|
41
|
+
|
40
42
|
```yaml
|
41
43
|
name: foobar
|
42
|
-
destination: bigquery.googleapis.com/projects
|
44
|
+
destination: bigquery.googleapis.com/projects/:PROJECT_ID/datasets/test
|
43
45
|
log-filter: 'jsonPayload."event-data":*'
|
44
46
|
```
|
45
47
|
|
data/lib/barruun/cli.rb
CHANGED
@@ -2,16 +2,23 @@ require "thor"
|
|
2
2
|
|
3
3
|
module Barruun
|
4
4
|
class StorageCommand < Thor
|
5
|
-
desc "bucket [FILEPATH]", "Create
|
5
|
+
desc "bucket [FILEPATH]", "Create bucket"
|
6
6
|
def bucket(file_path)
|
7
|
-
Barruun::Storage::Bucket.new(file_path).call
|
7
|
+
Barruun::Managers::Storage::Bucket.new(file_path).call
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
11
|
class LoggingCommand < Thor
|
12
|
-
desc "sink [FILEPATH]", "Create
|
12
|
+
desc "sink [FILEPATH]", "Create sink"
|
13
13
|
def sink(file_path)
|
14
|
-
Barruun::Logging::Sink.new(file_path).call
|
14
|
+
Barruun::Managers::Logging::Sink.new(file_path).call
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class BigqueryCommand < Thor
|
19
|
+
desc "dataset [FILEPATH]", "Create dataset"
|
20
|
+
def sink(file_path)
|
21
|
+
Barruun::Managers::Bigquery::Dataset.new(file_path).call
|
15
22
|
end
|
16
23
|
end
|
17
24
|
|
@@ -22,5 +29,6 @@ module Barruun
|
|
22
29
|
|
23
30
|
register(StorageCommand, 'storage', 'storage <command>', 'Manage Cloud Storage')
|
24
31
|
register(LoggingCommand, 'logging', 'logging <command>', 'Manage Cloud Logging')
|
32
|
+
register(BigqueryCommand, 'bigquery', 'bigquery <command>', 'Manage BigQuery')
|
25
33
|
end
|
26
34
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Barruun
|
2
|
+
module Configurations
|
3
|
+
module Bigquery
|
4
|
+
class Dataset
|
5
|
+
def initialize(hash)
|
6
|
+
@hash = hash
|
7
|
+
end
|
8
|
+
|
9
|
+
def name
|
10
|
+
@hash["name"]
|
11
|
+
end
|
12
|
+
|
13
|
+
def options
|
14
|
+
@hash.reject { |k| ["name"].include?(k) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,10 +1,16 @@
|
|
1
1
|
module Barruun
|
2
|
-
module
|
3
|
-
|
4
|
-
class
|
2
|
+
module Configurations
|
3
|
+
module Logging
|
4
|
+
class Sink
|
5
|
+
class ProjectIDNotProvidedError < RuntimeError; end
|
6
|
+
|
5
7
|
def initialize(hash, project_id = ENV["PROJECT_ID"])
|
6
8
|
@hash = hash
|
7
9
|
@project_id = project_id
|
10
|
+
|
11
|
+
if @project_id.nil?
|
12
|
+
raise ProjectIDNotProvidedError, "Project ID not provided"
|
13
|
+
end
|
8
14
|
end
|
9
15
|
|
10
16
|
def name
|
@@ -12,7 +18,7 @@ module Barruun
|
|
12
18
|
end
|
13
19
|
|
14
20
|
def destination
|
15
|
-
@hash["destination"].gsub("
|
21
|
+
@hash["destination"].gsub(":PROJECT_ID", @project_id)
|
16
22
|
end
|
17
23
|
|
18
24
|
def options
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../../configurations/bigquery/dataset"
|
2
|
+
require_relative "../utils"
|
3
|
+
|
4
|
+
module Barruun
|
5
|
+
module Managers
|
6
|
+
module Bigquery
|
7
|
+
class Dataset
|
8
|
+
include Barruun::Managers::Utils
|
9
|
+
|
10
|
+
def create
|
11
|
+
`bq #{location_string} mk --dataset #{options_string(@config.options)} #{@config.name}`
|
12
|
+
end
|
13
|
+
|
14
|
+
def exist?
|
15
|
+
`bq ls`.include?(@config.name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../../configurations/logging/sink"
|
2
|
+
require_relative "../utils"
|
3
|
+
|
4
|
+
module Barruun
|
5
|
+
module Managers
|
6
|
+
module Logging
|
7
|
+
class Sink
|
8
|
+
include Barruun::Managers::Utils
|
9
|
+
|
10
|
+
def create
|
11
|
+
`gcloud logging sinks create #{@config.name} #{@config.destination} #{options_string(@config.options)}`
|
12
|
+
end
|
13
|
+
|
14
|
+
def exist?
|
15
|
+
`gcloud logging sinks list --filter='name: #{@config.name}'`.include?(@config.name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../../configurations/storage/bucket"
|
2
|
+
require_relative "../utils"
|
3
|
+
|
4
|
+
module Barruun
|
5
|
+
module Managers
|
6
|
+
module Storage
|
7
|
+
class Bucket
|
8
|
+
include Barruun::Managers::Utils
|
9
|
+
|
10
|
+
def create
|
11
|
+
`gcloud alpha storage buckets create #{options_string(@config.options)} #{@config.name}`
|
12
|
+
end
|
13
|
+
|
14
|
+
def exist?
|
15
|
+
`gcloud alpha storage buckets list --filter='name: #{@config.name}'`.include?(@config.name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "yaml"
|
2
|
+
|
3
|
+
module Barruun
|
4
|
+
module Managers
|
5
|
+
module Utils
|
6
|
+
def self.included(obj)
|
7
|
+
obj.const_set('ConfigFileLoadError', Class.new(RuntimeError))
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(file_path, config_klass = Object.const_get("#{self.class.name.gsub("Managers", "Configurations")}"))
|
11
|
+
@file_path = file_path
|
12
|
+
if !File.exists?(@file_path)
|
13
|
+
raise self.class::ConfigFileLoadError, "Error loading config file: #{file_path}"
|
14
|
+
end
|
15
|
+
@config = config_klass.new(YAML.load_file(file_path))
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
if exist?
|
20
|
+
puts "#{self.class.name} #{@config.name} already exists. Nothing to do."
|
21
|
+
else
|
22
|
+
puts "#{self.class.name} #{@config.name} not found."
|
23
|
+
create
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def options_string(options)
|
28
|
+
options.map { |k, v| "--#{k}=#{v}" }.compact.join(" ")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/barruun/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barruun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cc-kawakami
|
@@ -60,11 +60,13 @@ files:
|
|
60
60
|
- exe/barruun
|
61
61
|
- lib/barruun.rb
|
62
62
|
- lib/barruun/cli.rb
|
63
|
-
- lib/barruun/
|
64
|
-
- lib/barruun/logging/sink
|
65
|
-
- lib/barruun/storage/bucket.rb
|
66
|
-
- lib/barruun/
|
67
|
-
- lib/barruun/
|
63
|
+
- lib/barruun/configurations/bigquery/dataset.rb
|
64
|
+
- lib/barruun/configurations/logging/sink.rb
|
65
|
+
- lib/barruun/configurations/storage/bucket.rb
|
66
|
+
- lib/barruun/managers/bigquery/dataset.rb
|
67
|
+
- lib/barruun/managers/logging/sink.rb
|
68
|
+
- lib/barruun/managers/storage/bucket.rb
|
69
|
+
- lib/barruun/managers/utils.rb
|
68
70
|
- lib/barruun/version.rb
|
69
71
|
homepage:
|
70
72
|
licenses: []
|
data/lib/barruun/logging/sink.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Barruun
|
2
|
-
module Logging
|
3
|
-
class Sink
|
4
|
-
include Barruun::Utils
|
5
|
-
|
6
|
-
def create
|
7
|
-
`gcloud logging sinks create #{@config.name} #{@config.destination} #{options_string}`
|
8
|
-
end
|
9
|
-
|
10
|
-
def exist?
|
11
|
-
`gcloud logging sinks list --filter='name: #{@config.name}'`.include?(@config.name)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require "yaml"
|
2
|
-
require_relative "./bucket/config"
|
3
|
-
|
4
|
-
module Barruun
|
5
|
-
module Storage
|
6
|
-
class Bucket
|
7
|
-
include Barruun::Utils
|
8
|
-
|
9
|
-
def create
|
10
|
-
system("gcloud alpha storage buckets create #{options_string} #{@config.name}")
|
11
|
-
end
|
12
|
-
|
13
|
-
def exist?
|
14
|
-
`gcloud alpha storage buckets list --filter='name: #{@config.name}'`.include?(@config.name)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/lib/barruun/utils.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Barruun
|
2
|
-
module Utils
|
3
|
-
def initialize(file_path, config_klass = self.class::Config)
|
4
|
-
@file_path = file_path
|
5
|
-
@config = config_klass.new(YAML.load_file(file_path))
|
6
|
-
end
|
7
|
-
|
8
|
-
def call
|
9
|
-
if exist?
|
10
|
-
puts "#{self.class.name} #{@config.name} already exists. Nothing to do."
|
11
|
-
else
|
12
|
-
puts "#{self.class.name} #{@config.name} not found."
|
13
|
-
create
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def options_string
|
18
|
-
@config.options.map { |k, v| "--#{k}=#{v}" }.compact.join(" ")
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|