apmate 0.3.1 → 0.6.2

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
- SHA1:
3
- metadata.gz: 0031cde482f550f6b997f8fbf388bc0eabeb9194
4
- data.tar.gz: 41a47c5deea8f532404a2ac467f15ba2e31ab7a8
2
+ SHA256:
3
+ metadata.gz: c6507f70059c24dfb3709eb473070445d1ad8d0b32534b411476946faa31ffd3
4
+ data.tar.gz: 4f2f14f931aaeef2ed276dd19fdb3b9ad2b2a2a609355b1d9c925dde186845aa
5
5
  SHA512:
6
- metadata.gz: f121e15934f41a58de8c44054d9141898327ee43d976059be4d0e8544c1e8bcf808e22b14c95a730b24186112df8f187c29ccf0be6a629335f31bbea0f7e28db
7
- data.tar.gz: 714eb3c8cb9ac4cf5507458a1813ddb0dec77df1a8acac8a9e6cbf96bfbbb56c0a931eacbffd31a4d6ee8a46a72d1eb27f181babe965b9a05e69590fa920a985
6
+ metadata.gz: cfbd1626ed4fc6f4e271de92665b18c338bc650d74191854b6386234bd9d3855555205cbb2e721c938b9d0072a65b956df086be31bc0903e758e7430fb4186af
7
+ data.tar.gz: 8b83961996bc60aa77c022daee964706ff0e8371744b6e19c8f1270eaa59627c485a87f2c0816f9d1275ded4f5930e2398aaca8168e2c8ead8f5b82406d7de51
data/lib/apmate.rb CHANGED
@@ -9,5 +9,7 @@ require 'apmate/commands/get/artifact'
9
9
  require 'apmate/commands/get/artifact_environment'
10
10
  require 'apmate/commands/get/artifact_name'
11
11
  require 'apmate/commands/apply'
12
+ require 'apmate/commands/mass_promote'
12
13
  require 'apmate/commands/promote'
13
14
  require 'apmate/commands/execution'
15
+ require 'apmate/commands/publish_artifact'
data/lib/apmate/cli.rb CHANGED
@@ -17,8 +17,10 @@ class Apmate::CLI
17
17
  get_artifact_environment: '/api/artifacts/environment',
18
18
  get_artifact: '/api/artifacts',
19
19
  get_artifact_name: '/api/artifacts/name',
20
+ mass_promote_environment: '/api/applications/mass_promote',
20
21
  promote_environment: '/api/environments/promote',
21
- create_execution: '/api/executions'
22
+ create_execution: '/api/executions',
23
+ publish_artifact: '/api/artifacts/publish'
22
24
  }
23
25
 
24
26
  def self.apply_file(file, opts)
@@ -106,23 +108,43 @@ class Apmate::CLI
106
108
  log_output(output, opts)
107
109
  end
108
110
 
109
- def self.apmate_promote(env_from, env_to, opts)
111
+ def self.apmate_mass_promote(env_from, env_to, opts)
112
+ Apmate::Logger.logger.debug "Beginning post request for mass promote."
113
+
114
+ uri = URI("#{Apmate::CLI::APMATE_URL}#{ENDPOINTS[:mass_promote_environment]}")
115
+ Apmate::Logger.logger.debug "uri: #{uri}"
116
+
117
+ payload = { env_from: env_from, env_to: env_to }
118
+ Apmate::Logger.logger.debug "payload: #{payload}"
119
+
120
+ apmate_post uri, payload, opts
121
+ end
122
+
123
+ def self.apmate_promote(env_from, env_to, artifact, opts)
110
124
  Apmate::Logger.logger.debug "Beginning post request."
111
125
 
112
126
  uri = URI("#{Apmate::CLI::APMATE_URL}#{ENDPOINTS[:promote_environment]}")
113
127
  Apmate::Logger.logger.debug "uri: #{uri}"
114
128
 
115
- payload = { environment_from: env_from, environment_to: env_to }
129
+ payload = { environment_from: env_from, environment_to: env_to, artifact: artifact }
116
130
  Apmate::Logger.logger.debug "payload: #{payload}"
117
131
 
118
- request = Net::HTTP::Post.new(uri)
119
- request.content_type = 'application/json'
120
- request.body = payload.to_json
121
- response = Net::HTTP.start(uri.hostname, uri.port) do |http|
122
- http.request(request)
132
+ apmate_post uri, payload, opts
133
+ end
134
+
135
+ def self.publish_artifact(name, environment_name, opts)
136
+ Apmate::Logger.logger.debug "Beginning to publish artifact."
137
+
138
+ uri = URI("#{Apmate::CLI::APMATE_URL}#{ENDPOINTS[:publish_artifact]}")
139
+ Apmate::Logger.logger.debug "uri: #{uri}"
140
+
141
+ payload = { artifact: { name: name, environment_name: environment_name } }
142
+ opts.each do |opt, value|
143
+ payload[:artifact][opt] = value
123
144
  end
124
- output = JSON.pretty_generate(JSON.parse(response.body))
125
- log_output(output, opts)
145
+ Apmate::Logger.logger.debug "payload: #{payload}"
146
+
147
+ apmate_post uri, payload, opts
126
148
  end
127
149
 
128
150
  def self.log_output(output, opts)
@@ -152,8 +174,10 @@ class Apmate::CLI
152
174
  Command::HELP,
153
175
  Command::APPLY,
154
176
  get_command,
177
+ Command::MASS_PROMOTE,
155
178
  Command::PROMOTE,
156
- Command::CREATE_EXECUTION
179
+ Command::CREATE_EXECUTION,
180
+ Command::PUBLISH_ARTIFACT
157
181
  ].each do |cmd|
158
182
  command.add_command cmd
159
183
  end
@@ -0,0 +1,26 @@
1
+ module Apmate::CLI::Command
2
+ MASS_PROMOTE = Cri::Command.define do
3
+ name 'mass_promote'
4
+ usage 'mass_promote <environment_from> <environment_to> [artifact]'
5
+ summary "Promotes all artifacts' environment values from one general environment to another environment."
6
+ description %q(
7
+ Promotes all artifacts' environment values from one general environment to another environment.
8
+ WARNING: Use with caution. There is no "undo" for this. Take a backup first.
9
+ )
10
+
11
+ flag :h, :help, 'show help for this command' do |value, cmd|
12
+ puts cmd.help
13
+ exit 0
14
+ end
15
+
16
+ run do |opts, args, cmd|
17
+ Apmate::Logger.log_level(opts)
18
+ Apmate::Logger.verbosity(opts)
19
+ Apmate::Logger.logger.debug "opts: #{opts}"
20
+ Apmate::Logger.logger.debug "args: #{args}"
21
+ Apmate::Logger.logger.debug "cmd: #{cmd.to_s}"
22
+ cmd.run(['-h']) unless (args.count == 2)
23
+ Apmate::CLI.apmate_mass_promote(args[0], args[1], opts)
24
+ end
25
+ end
26
+ end
@@ -1,9 +1,13 @@
1
1
  module Apmate::CLI::Command
2
2
  PROMOTE = Cri::Command.define do
3
3
  name 'promote'
4
- usage 'promote <environment_from> <environment_to>'
5
- summary 'Promotes values from one environment to another environment.'
6
- description 'Promotes values from one environment to another environment.'
4
+ usage 'promote <environment_from> <environment_to> [artifact]'
5
+ summary 'Promotes artifact environment values from one environment to another environment.'
6
+ description %q(
7
+ Promotes artifact environment values from one environment to another environment.
8
+ Default behavior promotes all artifact environment values from one environment to another environment.
9
+ Optionally, you may specify a single artifact to be promoted.
10
+ )
7
11
 
8
12
  flag :h, :help, 'show help for this command' do |value, cmd|
9
13
  puts cmd.help
@@ -16,8 +20,9 @@ module Apmate::CLI::Command
16
20
  Apmate::Logger.logger.debug "opts: #{opts}"
17
21
  Apmate::Logger.logger.debug "args: #{args}"
18
22
  Apmate::Logger.logger.debug "cmd: #{cmd.to_s}"
19
- cmd.run(['-h']) unless args.count == 2
20
- Apmate::CLI.apmate_promote(args[0], args[1], opts)
23
+ cmd.run(['-h']) unless (args.count == 2 || args.count == 3)
24
+ artifact = args[2] || nil
25
+ Apmate::CLI.apmate_promote(args[0], args[1], artifact, opts)
21
26
  end
22
27
  end
23
28
  end
@@ -0,0 +1,33 @@
1
+ module Apmate::CLI::Command
2
+ PUBLISH_ARTIFACT = Cri::Command.define do
3
+ name 'publish_artifact'
4
+ usage 'publish_artifact [options] <name> <environment_name>'
5
+ summary "Publishes artifact information to Apmate for each environment with environment_name."
6
+ description %q(
7
+ Publishes artifact information to Apmate for each environment with environment_name.
8
+ Must have at least one option specified.
9
+ WARNING: Use with caution. There is no "undo" for this. Take a backup first.
10
+ )
11
+
12
+ flag :h, :help, 'show help for this command' do |value, cmd|
13
+ puts cmd.help
14
+ exit 0
15
+ end
16
+
17
+ option nil, :version, 'set artifact version', argument: :required
18
+ option nil, :checksum, 'set artifact checksum (SHA256)', argument: :required
19
+ option nil, :repository, 'set artifact repository', argument: :required
20
+ option nil, :promote, 'mark artifact for promotion', argument: :required
21
+
22
+ run do |opts, args, cmd|
23
+ Apmate::Logger.log_level(opts)
24
+ Apmate::Logger.verbosity(opts)
25
+ Apmate::Logger.logger.debug "opts: #{opts}"
26
+ Apmate::Logger.logger.debug "args: #{args}"
27
+ Apmate::Logger.logger.debug "cmd: #{cmd.to_s}"
28
+ cmd.run(['-h']) unless (args.count == 2)
29
+ cmd.run(['-h']) unless (opts.count > 0)
30
+ Apmate::CLI.publish_artifact(args[0], args[1], opts)
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module Apmate
2
- VERSION = "0.3.1"
2
+ VERSION = "0.6.2"
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apmate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Baldridge
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-13 00:00:00.000000000 Z
11
+ date: 2021-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - "<="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.10'
19
+ version: 2.15.9
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - "<="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.10'
26
+ version: 2.15.9
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -85,7 +85,9 @@ files:
85
85
  - lib/apmate/commands/get/artifact_environment.rb
86
86
  - lib/apmate/commands/get/artifact_name.rb
87
87
  - lib/apmate/commands/help.rb
88
+ - lib/apmate/commands/mass_promote.rb
88
89
  - lib/apmate/commands/promote.rb
90
+ - lib/apmate/commands/publish_artifact.rb
89
91
  - lib/apmate/logger/logger.rb
90
92
  - lib/apmate/version.rb
91
93
  homepage:
@@ -108,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  version: '0'
109
111
  requirements: []
110
112
  rubyforge_project:
111
- rubygems_version: 2.6.11
113
+ rubygems_version: 2.7.7
112
114
  signing_key:
113
115
  specification_version: 4
114
116
  summary: A CLI interface for Apmate Environment Datastore.