souls 0.25.4 → 0.25.8
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/exe/souls +6 -17
- data/lib/souls.rb +1 -1
- data/lib/souls/gcloud.rb +1 -0
- data/lib/souls/gcloud/compute.rb +4 -39
- data/lib/souls/gcloud/iam.rb +9 -14
- data/lib/souls/gcloud/methods.rb +52 -0
- data/lib/souls/gcloud/pubsub.rb +13 -8
- data/lib/souls/version.rb +1 -1
- data/lib/souls/versions/.souls_api_version +1 -1
- data/lib/souls/versions/.souls_worker_version +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96b1f939b0fbf60c8ff2c91072274a89798066d4fbb36e60d1d6114bf316b1f6
|
4
|
+
data.tar.gz: 4dde839b87723d20ffc0cbc5e273585c2ff7d75a73b2e72122867fbdaf8727d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 678ceff976d6b7c93dc8d86787b63949eea97c43d262b839b14720d62721281963a09818160982e80e28cfc94791bb32c4b0b07de251220fd7761d7e3ddd8ba2
|
7
|
+
data.tar.gz: 3dea6712b0561a33e6ef5e11f18f8b4e1dcef06f017df566b259fcbbb74384407152b23e8658f2c38a9d62013a936e4dc0eae8ac533ed5dddfdd52b7711bb0e2
|
data/exe/souls
CHANGED
@@ -61,26 +61,11 @@ begin
|
|
61
61
|
send_method = ARGV[1]
|
62
62
|
Souls.public_send(send_method)
|
63
63
|
when "gcloud"
|
64
|
+
args = ARGV
|
64
65
|
status = Paint["Running Gcloud Commands...", :yellow]
|
65
66
|
Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
|
66
67
|
Whirly.status = status
|
67
|
-
|
68
|
-
|
69
|
-
case send_method
|
70
|
-
when "create_pubsub_topic"
|
71
|
-
topic_name = ARGV[2]
|
72
|
-
args = { topic_name: topic_name }
|
73
|
-
Souls::Gcloud.public_send(send_method, args)
|
74
|
-
when "create_pubsub_subscription"
|
75
|
-
project_id = Souls.configuration.project_id
|
76
|
-
topic_name = ARGV[2]
|
77
|
-
service_account = "#{Souls.configuration.app}@#{project_id}iam.gserviceaccount.com"
|
78
|
-
endpoint = Souls.configuration.endpoint
|
79
|
-
args = { project_id: project_id, topic_name: topic_name, service_account: service_account, endpoint: endpoint }
|
80
|
-
Souls::Gcloud.public_send(send_method, args)
|
81
|
-
else
|
82
|
-
Souls::Gcloud.public_send(send_method)
|
83
|
-
end
|
68
|
+
Souls::Gcloud.return_method(args)
|
84
69
|
Whirly.status = "Done!"
|
85
70
|
end
|
86
71
|
when "-v", "--version"
|
@@ -93,6 +78,10 @@ begin
|
|
93
78
|
Whirly.status = "Done!"
|
94
79
|
end
|
95
80
|
when "release"
|
81
|
+
`gem uninstall -x --force`
|
82
|
+
sleep(1)
|
83
|
+
system("gem install souls")
|
84
|
+
sleep(1)
|
96
85
|
current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
|
97
86
|
prompt = TTY::Prompt.new
|
98
87
|
choices = [
|
data/lib/souls.rb
CHANGED
@@ -245,7 +245,7 @@ module Souls
|
|
245
245
|
when "gem"
|
246
246
|
return Souls::VERSION.split(".").map(&:to_i)
|
247
247
|
when "api", "worker", "console", "admin", "media"
|
248
|
-
file_path = "#{Gem.
|
248
|
+
file_path = "#{Gem.dir}/gems/souls-#{Souls::VERSION}/lib/souls/versions/.souls_#{service_name}_version"
|
249
249
|
else
|
250
250
|
raise(StandardError, "You are at wrong directory!")
|
251
251
|
end
|
data/lib/souls/gcloud.rb
CHANGED
data/lib/souls/gcloud/compute.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
module Souls
|
2
2
|
module Gcloud
|
3
3
|
class << self
|
4
|
-
def auth_login
|
5
|
-
project_id = Souls.configuration.project_id
|
4
|
+
def auth_login(project_id: "souls-app")
|
6
5
|
system("gcloud config set project #{project_id}")
|
7
6
|
system("gcloud auth login")
|
8
7
|
end
|
@@ -26,44 +25,10 @@ module Souls
|
|
26
25
|
puts("Operating permission to run.googleapis.com")
|
27
26
|
end
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
network = Souls.configuration.app
|
33
|
-
system("gcloud compute networks create #{network}")
|
34
|
-
rescue StandardError => e
|
35
|
-
raise(StandardError, e)
|
36
|
-
end
|
37
|
-
|
38
|
-
def create_firewall(ip_range: "10.140.0.0/20")
|
39
|
-
network = Souls.configuration.app
|
40
|
-
system(
|
41
|
-
"gcloud compute firewall-rules create #{network}
|
42
|
-
--network #{network}
|
43
|
-
--allow tcp,udp,icmp
|
44
|
-
--source-ranges #{ip_range}"
|
45
|
-
)
|
46
|
-
system("gcloud compute firewall-rules create #{network}-ssh --network #{network} --allow tcp:22,tcp:3389,icmp")
|
47
|
-
end
|
48
|
-
|
49
|
-
def create_private_access
|
50
|
-
network = Souls.configuration.app
|
51
|
-
project_id = Souls.configuration.project_id
|
52
|
-
system(
|
53
|
-
"gcloud compute addresses create #{network}-my-network \
|
54
|
-
--global \
|
55
|
-
--purpose=VPC_PEERING \
|
56
|
-
--prefix-length=16 \
|
57
|
-
--description='peering range for SOULs' \
|
58
|
-
--network=#{network} \
|
59
|
-
--project=#{project_id}"
|
60
|
-
)
|
61
|
-
end
|
62
|
-
|
63
|
-
def create_sql_instance(root_pass: "Postgre123!", zone: "asia-northeast1-b")
|
64
|
-
app = "#{Souls.configuration.app}-db"
|
28
|
+
|
29
|
+
def create_sql_instance(instance_name: "souls-db", root_pass: "Postgre123!", zone: "asia-northeast1-b")
|
65
30
|
system(
|
66
|
-
"gcloud sql instances create #{
|
31
|
+
"gcloud sql instances create #{instance_name}
|
67
32
|
--database-version=POSTGRES_13 --cpu=2 --memory=7680MB --zone=#{zone}
|
68
33
|
--root-password='#{root_pass}' --database-flags cloudsql.iam_authentication=on"
|
69
34
|
)
|
data/lib/souls/gcloud/iam.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
module Souls
|
2
2
|
module Gcloud
|
3
3
|
class << self
|
4
|
-
def create_service_account(
|
5
|
-
service_account = args[:service_account] || "souls-app"
|
4
|
+
def create_service_account(service_account: "souls-app")
|
6
5
|
system(
|
7
6
|
"gcloud iam service-accounts create #{service_account} \
|
8
7
|
--description='Souls Service Account' \
|
@@ -10,26 +9,22 @@ module Souls
|
|
10
9
|
)
|
11
10
|
end
|
12
11
|
|
13
|
-
def create_service_account_key(
|
14
|
-
service_account = args[:service_account] || "souls-app"
|
15
|
-
project_id = args[:project_id] || "souls-app"
|
12
|
+
def create_service_account_key(service_account: "souls-app", project_id: "souls-app")
|
16
13
|
system(
|
17
14
|
"gcloud iam service-accounts keys create ./config/keyfile.json \
|
18
15
|
--iam-account #{service_account}@#{project_id}.iam.gserviceaccount.com"
|
19
16
|
)
|
20
17
|
end
|
21
18
|
|
22
|
-
def add_service_account_role(
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
--role="#{role}"`
|
19
|
+
def add_service_account_role(service_account: "souls-app", project_id: "souls-app", role: "roles/firebase.admin")
|
20
|
+
system(
|
21
|
+
"gcloud projects add-iam-policy-binding #{project_id} \
|
22
|
+
--member='serviceAccount:#{service_account}@#{project_id}.iam.gserviceaccount.com' \
|
23
|
+
--role=#{role}"
|
24
|
+
)
|
29
25
|
end
|
30
26
|
|
31
|
-
def add_permissions(
|
32
|
-
service_account = args[:service_account] || "souls-app"
|
27
|
+
def add_permissions(service_account: "souls-app")
|
33
28
|
roles = [
|
34
29
|
"roles/cloudsql.serviceAgent",
|
35
30
|
"roles/containerregistry.ServiceAgent",
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Souls
|
2
|
+
module Gcloud
|
3
|
+
class << self
|
4
|
+
def return_method(args)
|
5
|
+
method = args[1]
|
6
|
+
case method
|
7
|
+
when "auth_login"
|
8
|
+
project_id = Souls.configuration.project_id
|
9
|
+
Souls::Gcloud.auth_login(project_id: project_id)
|
10
|
+
when "enable_permissions"
|
11
|
+
Souls::Gcloud.enable_permissions
|
12
|
+
when "create_pubsub_topic"
|
13
|
+
topic_name = args[2] || "send-user-mail"
|
14
|
+
Souls::Gcloud.create_pubsub_topic(topic_name: topic_name)
|
15
|
+
when "create_pubsub_subscription"
|
16
|
+
project_id = Souls.configuration.project_id
|
17
|
+
topic_name = args[2] || "send-user-mail"
|
18
|
+
service_account = "#{Souls.configuration.app}@#{project_id}.iam.gserviceaccount.com"
|
19
|
+
endpoint = Souls.configuration.worker_endpoint
|
20
|
+
Souls::Gcloud.create_pubsub_subscription(
|
21
|
+
topic_name: topic_name,
|
22
|
+
project_id: project_id,
|
23
|
+
service_account: service_account,
|
24
|
+
endpoint: endpoint
|
25
|
+
)
|
26
|
+
when "create_sql_instance"
|
27
|
+
instance_name = "#{Souls.configuration.app}-db"
|
28
|
+
root_pass = args[2] || "password"
|
29
|
+
zone = args[3] || "asia-northeast1-b"
|
30
|
+
Souls::Gcloud.create_sql_instance(instance_name: instance_name, root_pass: root_pass, zone: zone)
|
31
|
+
when "create_service_account"
|
32
|
+
service_account = Souls.configuration.app
|
33
|
+
Souls::Gcloud.create_service_account(service_account: service_account)
|
34
|
+
when "create_service_account_key"
|
35
|
+
service_account = Souls.configuration.app
|
36
|
+
project_id = Souls.configuration.project_id
|
37
|
+
Souls::Gcloud.create_service_account_key(service_account: service_account, project_id: project_id)
|
38
|
+
when "add_service_account_role"
|
39
|
+
service_account = Souls.configuration.app
|
40
|
+
project_id = Souls.configuration.project_id
|
41
|
+
role = args[2] || "roles/firebase.admin"
|
42
|
+
Souls::Gcloud.add_service_account_role(service_account: service_account, project_id: project_id, role: role)
|
43
|
+
when "add_permissions"
|
44
|
+
service_account = Souls.configuration.app
|
45
|
+
Souls::Gcloud.add_permissions(service_account: service_account)
|
46
|
+
else
|
47
|
+
raise(StandardError, "Wrong Method!")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/souls/gcloud/pubsub.rb
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
module Souls
|
2
2
|
module Gcloud
|
3
3
|
class << self
|
4
|
-
def create_pubsub_topic(
|
5
|
-
system("gcloud pubsub topics create #{
|
4
|
+
def create_pubsub_topic(topic_name: "send-user-mail")
|
5
|
+
system("gcloud pubsub topics create #{topic_name}")
|
6
6
|
end
|
7
7
|
|
8
|
-
def create_pubsub_subscription(
|
8
|
+
def create_pubsub_subscription(
|
9
|
+
topic_name: "send-user-mail",
|
10
|
+
project_id: "souls-app",
|
11
|
+
service_account: "souls-app",
|
12
|
+
endpoint: "https:://test.com"
|
13
|
+
)
|
9
14
|
system(
|
10
|
-
"gcloud pubsub subscriptions create #{
|
11
|
-
--topic #{
|
12
|
-
--topic-project #{
|
13
|
-
--push-auth-service-account #{
|
14
|
-
--push-endpoint #{
|
15
|
+
"gcloud pubsub subscriptions create #{topic_name}-sub \
|
16
|
+
--topic #{topic_name} \
|
17
|
+
--topic-project #{project_id} \
|
18
|
+
--push-auth-service-account #{service_account} \
|
19
|
+
--push-endpoint #{endpoint} \
|
15
20
|
--expiration-period never
|
16
21
|
"
|
17
22
|
)
|
data/lib/souls/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.11
|
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.11
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: souls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.25.
|
4
|
+
version: 0.25.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- POPPIN-FUMI
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-07-
|
13
|
+
date: 2021-07-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: paint
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/souls/gcloud.rb
|
76
76
|
- lib/souls/gcloud/compute.rb
|
77
77
|
- lib/souls/gcloud/iam.rb
|
78
|
+
- lib/souls/gcloud/methods.rb
|
78
79
|
- lib/souls/gcloud/pubsub.rb
|
79
80
|
- lib/souls/generate.rb
|
80
81
|
- lib/souls/generate/application.rb
|