aws_pocketknife 0.1.15 → 0.1.16
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/README.md +6 -4
- data/lib/aws_pocketknife/cli/ecs.rb +19 -0
- data/lib/aws_pocketknife/ecs.rb +27 -1
- data/lib/aws_pocketknife/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db1bec7416632cbd8cd54bf6af1adc7209fd49d7
|
4
|
+
data.tar.gz: 249ea4be3391a5500cada3d825c47fe26b04910d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db5068777a8776af1c501b6c3682f47fdc75248c64ce39f2f96d48855820ab90bb3b28dfcf8608d15c62fcb2e5061207ca49ce9b74da9880cf00fe15c2465756
|
7
|
+
data.tar.gz: af50ff9246c1557772e439fb715ae6e52174626246ed3c68509f949f12746e5faa7b82eb5ba83af237886f6b6121b9903fbc49718442719cdf7564ea1837c291
|
data/README.md
CHANGED
@@ -116,10 +116,12 @@ Commands:
|
|
116
116
|
|
117
117
|
```
|
118
118
|
Commands:
|
119
|
-
pocketknife ecs
|
120
|
-
pocketknife ecs
|
121
|
-
pocketknife ecs
|
122
|
-
pocketknife ecs
|
119
|
+
pocketknife ecs clone_service CLUSTER_NAME, SERVICE_NAME # creates a copy of an existing service
|
120
|
+
pocketknife ecs desc_service CLUSTER_NAME, SERVICE_NAME # describe service for a given cluster
|
121
|
+
pocketknife ecs help [COMMAND] # Describe subcommands or one specific subcommand
|
122
|
+
pocketknife ecs list_clusters # list clustes
|
123
|
+
pocketknife ecs list_instances for CLUSTER_NAME # list instances for a given cluster
|
124
|
+
pocketknife ecs list_services CLUSTER_NAME # list services for a given cluster
|
123
125
|
```
|
124
126
|
|
125
127
|
## Development
|
@@ -62,6 +62,25 @@ module AwsPocketknife
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
desc "desc_service CLUSTER_NAME, SERVICE_NAME", "describe service for a given cluster"
|
66
|
+
def desc_service(cluster, service_name)
|
67
|
+
service = AwsPocketknife::Ecs.describe_services cluster: cluster, name: service_name
|
68
|
+
if service.nil?
|
69
|
+
puts "service #{service_name} not found"
|
70
|
+
else
|
71
|
+
AwsPocketknife::Ecs.nice_print(object: service.to_h)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
desc "clone_service CLUSTER_NAME, SERVICE_NAME", "creates a copy of an existing service"
|
76
|
+
def clone_service(cluster, service_name)
|
77
|
+
resp = AwsPocketknife::Ecs.clone_service cluster: cluster, name: service_name
|
78
|
+
puts ""
|
79
|
+
puts "Response: "
|
80
|
+
puts ""
|
81
|
+
AwsPocketknife::Ecs.nice_print(object: resp.to_h)
|
82
|
+
end
|
83
|
+
|
65
84
|
desc "list_instances for CLUSTER_NAME", "list instances for a given cluster"
|
66
85
|
def list_instances(cluster)
|
67
86
|
instances = AwsPocketknife::Ecs.list_container_instances cluster: cluster
|
data/lib/aws_pocketknife/ecs.rb
CHANGED
@@ -2,6 +2,7 @@ require 'aws_pocketknife'
|
|
2
2
|
require 'base64'
|
3
3
|
require 'openssl'
|
4
4
|
require 'retryable'
|
5
|
+
require 'date'
|
5
6
|
require 'recursive-open-struct'
|
6
7
|
|
7
8
|
module AwsPocketknife
|
@@ -92,7 +93,32 @@ module AwsPocketknife
|
|
92
93
|
def describe_services(name: '', cluster: '')
|
93
94
|
ecs_client.describe_services({cluster: cluster, services: [name]}).services.first
|
94
95
|
end
|
95
|
-
|
96
|
+
|
97
|
+
def create_service(payload: {})
|
98
|
+
ecs_client.create_service(payload)
|
99
|
+
end
|
100
|
+
|
101
|
+
def clone_service(name: '', cluster: '')
|
102
|
+
d = DateTime.now
|
103
|
+
date_fmt = d.strftime("%d%m%Y_%H%M%S")
|
104
|
+
current_service = describe_services name: name, cluster: cluster
|
105
|
+
new_name = "#{name}-clone-#{date_fmt}"
|
106
|
+
payload = {
|
107
|
+
cluster: cluster,
|
108
|
+
service_name: new_name,
|
109
|
+
task_definition: current_service.task_definition,
|
110
|
+
load_balancers: current_service.load_balancers.to_a,
|
111
|
+
desired_count: current_service.desired_count,
|
112
|
+
role: current_service.role_arn,
|
113
|
+
deployment_configuration: current_service.deployment_configuration.to_h,
|
114
|
+
placement_constraints: current_service.placement_constraints.to_a,
|
115
|
+
placement_strategy: current_service.placement_strategy.to_a,
|
116
|
+
}
|
117
|
+
puts "Cloned service payload:"
|
118
|
+
AwsPocketknife::Ecs.nice_print(object: payload.to_h)
|
119
|
+
create_service payload: payload
|
120
|
+
end
|
121
|
+
|
96
122
|
def list_services(cluster: '', max_results: 50)
|
97
123
|
services_list = []
|
98
124
|
responses = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws_pocketknife
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Soares Souza
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|