aws_pocketknife 0.1.15 → 0.1.16

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
  SHA1:
3
- metadata.gz: 047374890ec1620d7fa03d2dcc10920a6589cf55
4
- data.tar.gz: 9e8957c32ab921c8d22c4c5f167cc81989a869f9
3
+ metadata.gz: db1bec7416632cbd8cd54bf6af1adc7209fd49d7
4
+ data.tar.gz: 249ea4be3391a5500cada3d825c47fe26b04910d
5
5
  SHA512:
6
- metadata.gz: 713d9abdb2330fec96222a33e828d33de7840532b8c07108a45597f10e2691ad9b24268023e65c4af596ab30fa61662cc80250987c42f25c0eb3a76ff40dc003
7
- data.tar.gz: 3026fd8acaa1fa65b215bd671f360d9f68eca9ef727fb698ee0de5f0f5dfa7235615ac74c6832d8cb8598fa2384db4393eb7d4a043e4ef83a10637dee7406210
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 help [COMMAND] # Describe subcommands or one specific subcommand
120
- pocketknife ecs list_clusters # list clustes
121
- pocketknife ecs list_instances for CLUSTER_NAME # list instances for a given cluster
122
- pocketknife ecs list_services CLUSTER_NAME # list services for a given cluster
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
@@ -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 = []
@@ -1,3 +1,3 @@
1
1
  module AwsPocketknife
2
- VERSION = "0.1.15"
2
+ VERSION = "0.1.16"
3
3
  end
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.15
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 00:00:00.000000000 Z
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