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 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