idlc-sdk-deploy 1.0.1 → 1.0.2

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
  SHA256:
3
- metadata.gz: ea8424f4a8f6aa83bd86e90c41dea5042fd62d552d5f193fe230607ed0618e3a
4
- data.tar.gz: 19eed5e3abe75babc9af5d7b58ba8906e0ee81b9e0cb3a93adefa38b1ede19dc
3
+ metadata.gz: b1df6f007c0c69a1479eef7ffd90292a637db1ec8b540561174f16d468a615c4
4
+ data.tar.gz: 1cfc825a82f9f330e640a979f0bcc83ced3c6a51b3c22e16cf585c730fe8d87e
5
5
  SHA512:
6
- metadata.gz: ebe1a8ce4304605d51ffa2b8f3aebbb6e3f4f2e39d405b1192c56c1fd80fa6ee49c70bb8c25cdcf4ddda50bc46b7a3477434b7d347e31424cd35a714c5a49e51
7
- data.tar.gz: fc70e4c67f31956872524df248bd90af1c273fc19d7e83152bcd966fdeee2992cf271290641a39c3138330d21217dc9c5a161784f26a1651b52d93bc0946cb2d
6
+ metadata.gz: 09bc22072385e7634ab9cda68b828224a10414cfba401e3fbfb8fa07fe0b7599de8f551c054b8973d6a136c7411a38772cffc75f69a6635a1371b218dd88e865
7
+ data.tar.gz: 47ba5805035ffa58399f89a25cc64cf797898a05558132bee075023d4559276699ff859e76a8a2aaf38821e608c899d9c4c2f50b6f692d280a6fa46aa6b2bb8f
@@ -34,6 +34,7 @@ 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'
37
38
  spec.add_runtime_dependency 'aws-sigv4'
38
39
  spec.add_runtime_dependency 'net-telnet'
39
40
  spec.add_runtime_dependency 'sshkey'
@@ -23,23 +23,41 @@ module Idlc
23
23
  end
24
24
 
25
25
  def get_env_metadata(env_key)
26
- client = Idlc::Deploy::AWSRestClient.new()
26
+ client = Idlc::Deploy::AWSLambdaProxy.new()
27
27
 
28
28
  request = {
29
29
  service: 'deploy',
30
30
  method: 'GET',
31
- path: "/metadata/#{env_key}",
31
+ lambda: 'metadata',
32
+ pathParameters: {
33
+ jobName: env_key
34
+ }
32
35
  }
33
- metadata = client.fetch(request.to_json)['deployments'].first
36
+ metadata = client.fetch(request)['deployments'].first
34
37
 
35
38
  request = {
36
39
  service: 'config',
37
40
  method: 'GET',
38
- path: "/account/#{metadata['environment']['account_alias']}",
41
+ lambda: "accounts",
42
+ pathParameters: {
43
+ accountName: metadata['environment']['account_alias']
44
+ }
39
45
  }
40
- account = client.fetch(request.to_json)
46
+ account = client.fetch(request)
41
47
 
42
48
  metadata['account'] = account
49
+
50
+ request = {
51
+ service: 'config',
52
+ method: 'GET',
53
+ lambda: "applications",
54
+ pathParameters: {
55
+ appName: metadata['environment']['application_name'].downcase
56
+ }
57
+ }
58
+ application = client.fetch(request)
59
+
60
+ metadata['application'] = application
43
61
  metadata
44
62
  end
45
63
  end
@@ -1,15 +1,39 @@
1
1
  require 'aws-sigv4'
2
2
  require 'json'
3
3
  require 'net/http'
4
+ require 'aws-sdk-lambda'
4
5
 
5
6
  # Service Definitions
6
- $config = {
7
- 'config_svc_endpoint' => 'https://un0t03st4m.execute-api.us-east-1.amazonaws.com/dev',
8
- 'deploy_svc_endpoint' => 'https://dwervfhpxe.execute-api.us-east-1.amazonaws.com/dev'
7
+ $services = {
8
+ 'config' => {
9
+ 'endpoint' => 'un0t03st4m.execute-api.us-east-1.amazonaws.com',
10
+ 'stage' => 'dev'
11
+ },
12
+ 'deploy' => {
13
+ 'endpoint' => 'dwervfhpxe.execute-api.us-east-1.amazonaws.com',
14
+ 'stage' => 'dev'
15
+ }
9
16
  }
10
17
 
11
18
  module Idlc
12
19
  module Deploy
20
+ class AWSLambdaProxy
21
+ def fetch(request)
22
+ client = Aws::Lambda::Client.new()
23
+
24
+ request[:function] = "#{request[:service]}-" + $services[request[:service]]['stage'] + "-#{request[:lambda]}"
25
+ request[:httpMethod] = request[:method]
26
+
27
+ resp = client.invoke({
28
+ function_name: "service-deploy-lambda-proxy",
29
+ invocation_type: "RequestResponse",
30
+ log_type: "None",
31
+ payload: request.to_json,
32
+ })
33
+
34
+ JSON.parse(JSON.parse(JSON.parse(resp.payload.string)['Payload'])['body'])
35
+ end
36
+ end
13
37
  class AWSRestClient
14
38
  def initialize(credentials= {
15
39
  access_key_id: ENV['AWS_ACCESS_KEY_ID'],
@@ -25,7 +49,7 @@ module Idlc
25
49
  def fetch(request)
26
50
  request = JSON.parse(request)
27
51
 
28
- endpoint = $config["#{request['service']}_svc_endpoint"]
52
+ endpoint = 'https://' + $config["#{request['service']}_svc"]['endpoint'] + $config["#{request['service']}"]['stage']
29
53
 
30
54
  body = ''
31
55
  body = request['body'].to_json if request['body']
@@ -1,5 +1,5 @@
1
1
  module Idlc
2
2
  module Deploy
3
- VERSION = '1.0.1'.freeze
3
+ VERSION = '1.0.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idlc-sdk-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Cazell
@@ -122,6 +122,20 @@ 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'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: aws-sigv4
127
141
  requirement: !ruby/object:Gem::Requirement