idlc-sdk-deploy 1.0.9 → 1.0.10

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