idlc-sdk-deploy 1.0.9 → 1.0.10

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: 3b11ad2386e9d5f2395ebc919ce06060bc365826
4
- data.tar.gz: 9c8ccc86d7d731776f7d4435537a01f3dc702d2c
3
+ metadata.gz: efad69ddd41fe010a0b264e4faf8a2dc79053821
4
+ data.tar.gz: 29426ea51111ed95ceeb10603e3a0d07a8608e41
5
5
  SHA512:
6
- metadata.gz: 697f25aa4b2252a6151fd9441a9bd4e3bd0fb599b22dd8ba1a9e0823ca3a45f1be83622f4dbc6ac356828f3afa49c66b055235dec9f62a621f004070bf2bfe51
7
- data.tar.gz: 8d0d19008d5ded1d2ab83d992eb8a7e6c88156b315a8cb434a964e0533572a3820064291da258198bea352c70f7f1ecf9b813c9c75aa418095ff74de71d0cf16
6
+ metadata.gz: a8b15f8331731b199229c215c39fd969fc697fb1cde69530c671bee21722a719045943b55e29f6a9eb132bf58a17292872948568c89ecac57aeb1cc25435763a
7
+ data.tar.gz: b0b30261b9e9764a32bb78601b04f4ab9e59ab6375cd35c1ebce752585e6e4cdf402a8ae080aac8072fc0c8df55238adbb00392a4cbea32195eb82ee14daa2ef
@@ -34,8 +34,6 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_runtime_dependency 'idlc-sdk-core'
36
36
  spec.add_runtime_dependency 'aws-sdk-elasticsearchservice'
37
- spec.add_runtime_dependency 'aws-sdk-lambda'
38
- spec.add_runtime_dependency 'aws-sigv4'
39
37
  spec.add_runtime_dependency 'net-telnet'
40
38
  spec.add_runtime_dependency 'sshkey'
41
39
  spec.add_runtime_dependency 'terraform-binary'
@@ -18,6 +18,5 @@ require 'idlc-sdk-core'
18
18
  require 'idlc-sdk-deploy/config'
19
19
  require 'idlc-sdk-deploy/power'
20
20
  require 'idlc-sdk-deploy/keypair'
21
- require 'idlc-sdk-deploy/restclient'
22
21
 
23
22
  Idlc::Deploy::Config.load_tasks
@@ -23,7 +23,7 @@ module Idlc
23
23
  end
24
24
 
25
25
  def get_env_metadata(env_key)
26
- client = Idlc::Deploy::AWSLambdaProxy.new()
26
+ client = Idlc::AWSLambdaProxy.new()
27
27
 
28
28
  request = {
29
29
  service: 'deploy',
@@ -1,5 +1,5 @@
1
1
  module Idlc
2
2
  module Deploy
3
- VERSION = '1.0.9'.freeze
3
+ VERSION = '1.0.10'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idlc-sdk-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Cazell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-18 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,34 +122,6 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: aws-sdk-lambda
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: aws-sigv4
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
125
  - !ruby/object:Gem::Dependency
154
126
  name: net-telnet
155
127
  requirement: !ruby/object:Gem::Requirement
@@ -229,7 +201,6 @@ files:
229
201
  - lib/idlc-sdk-deploy/config.rb
230
202
  - lib/idlc-sdk-deploy/keypair.rb
231
203
  - lib/idlc-sdk-deploy/power.rb
232
- - lib/idlc-sdk-deploy/restclient.rb
233
204
  - lib/idlc-sdk-deploy/version.rb
234
205
  homepage: https://github.com/nathantcz/idlc-sdk
235
206
  licenses:
@@ -1,126 +0,0 @@
1
- require 'aws-sigv4'
2
- require 'json'
3
- require 'net/http'
4
- require 'aws-sdk-lambda'
5
-
6
- module Idlc
7
- module Deploy
8
- class AWSLambdaProxy
9
- def fetch(request)
10
- client = Aws::Lambda::Client.new()
11
-
12
- request[:function] = "#{request[:service]}-" + $services[request[:service]]['stage'] + "-#{request[:lambda]}"
13
- request[:httpMethod] = request[:method]
14
-
15
- resp = client.invoke({
16
- function_name: "service-lambda-proxy",
17
- invocation_type: "RequestResponse",
18
- log_type: "None",
19
- payload: request.to_json,
20
- })
21
-
22
- JSON.parse(JSON.parse(JSON.parse(resp.payload.string)['Payload'])['body'])
23
- end
24
- end
25
- class AWSRestClient
26
- def initialize(credentials= {
27
- access_key_id: ENV['AWS_ACCESS_KEY_ID'],
28
- secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
29
- },
30
- region=ENV['AWS_REGION']
31
- )
32
- @service_name = 'execute-api'
33
- @credentials = credentials
34
- @region = region
35
- end
36
-
37
- def fetch(request)
38
- request = JSON.parse(request)
39
-
40
- endpoint = 'https://' + $services[request['service']]['endpoint'] + '/' + $services[request['service']]['stage']
41
-
42
- body = ''
43
- body = request['body'].to_json if request['body']
44
-
45
- resp = send_signed_request(
46
- request['method'],
47
- "#{endpoint.strip}#{request['path']}",
48
- body
49
- )
50
-
51
- # if request has 'outfile' param, write response to file
52
- to_file(resp, request['outfile']) if request['outfile']
53
-
54
- # return response obj
55
- resp
56
- end
57
-
58
- def to_file(obj, filename)
59
- File.open(filename, 'w') do |f|
60
- f.write(obj.to_json)
61
- end
62
- end
63
-
64
- private
65
-
66
- def send_signed_request(method, url, payload)
67
- uri = URI.parse(url)
68
- https = Net::HTTP.new(uri.host, uri.port)
69
- https.use_ssl = true
70
- signature = sigv4_signature(method, url, payload)
71
- request = http_request(method, uri.path, signature, payload)
72
-
73
- response = https.request(request)
74
- JSON.parse(response.body)
75
- end
76
-
77
- def set_headers(request, signature)
78
- request.add_field 'host', signature.headers['host']
79
- request.add_field 'content-type', 'application/json'
80
- request.add_field 'x-amz-content-sha256', signature.headers['x-amz-content-sha256']
81
- request.add_field 'x-amz-date', signature.headers['x-amz-date']
82
- request.add_field 'authorization', signature.headers['authorization']
83
- end
84
-
85
- def http_request(method, path, signature, payload)
86
- case method.downcase
87
- when 'put'
88
- request = Net::HTTP::Put.new(path)
89
- when 'post'
90
- request = Net::HTTP::Post.new(path)
91
- when 'get'
92
- request = Net::HTTP::Get.new(path)
93
- when 'delete'
94
- request = Net::HTTP::Delete.new(path)
95
- else
96
- request = Net::HTTP::Put.new(path)
97
- end
98
-
99
- set_headers(request, signature)
100
- request.body = payload
101
-
102
- request
103
- end
104
-
105
- def signer
106
- Aws::Sigv4::Signer.new(
107
- service: @service_name,
108
- region: @region,
109
- access_key_id: @credentials[:access_key_id],
110
- secret_access_key: @credentials[:secret_access_key]
111
- )
112
- end
113
-
114
- def sigv4_signature(method, url, payload)
115
- signer.sign_request(
116
- http_method: method,
117
- url: url,
118
- headers: {
119
- 'content-type' => 'application/json'
120
- },
121
- body: payload
122
- )
123
- end
124
- end
125
- end
126
- end