fhcap-cli 0.4.14 → 0.4.15
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/fhcap/cluster.rb +11 -0
- data/lib/fhcap/provider.rb +1 -0
- data/lib/fhcap/tasks/cluster/promote_cookbooks.rb +17 -0
- data/lib/fhcap/tasks/provider/add.rb +37 -35
- data/lib/fhcap/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7acbc771765e2bf82cb5755b32bb7631800182b3
|
4
|
+
data.tar.gz: cd859f19e646cf1ea6a2c4d43c5c0cd71030ed60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26a99632444a62d7563339f8e4d1e785804030c6d1305043ca1ab1edeced32ce135ef3b26685cfca58b121961a91a43b881fa89a2456fdaa8d0107d6ec46bb32
|
7
|
+
data.tar.gz: 40aedf8f607a33e9e6009d07a1fdf770e305ec98d70271b3176f192e5209253bd79f126d87c55d72df1202f2f409c56ecf2a01a9048c4040ecba61ce17bdc4b1
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.4.15
|
4
|
+
|
5
|
+
* [RHMAP-17998] - Add remote-query option to provider add. Allows skipping querying the remote provider for config data.
|
6
|
+
* [RHMAP-16288] - Expose cluster cookbook promote task as CLI method
|
7
|
+
|
3
8
|
## 0.4.14
|
4
9
|
|
5
10
|
* [RHMAP-16161] - Adding S3 support for RHMAP component validation as part of list_artifacts task
|
data/lib/fhcap/cluster.rb
CHANGED
@@ -202,6 +202,17 @@ module Fhcap
|
|
202
202
|
Tasks::Cluster::UpdateEnvironmentAttributes.new(task_options(options.dup)).run
|
203
203
|
end
|
204
204
|
|
205
|
+
desc "promote_cookbooks", "[ADVANCED USAGE] Promote Chef environment cookbook versions "
|
206
|
+
|
207
|
+
shared_options :verbose
|
208
|
+
|
209
|
+
method_option 'name', :type => :string, :required => true, :desc => 'Cluster name'
|
210
|
+
|
211
|
+
def promote_cookbooks
|
212
|
+
require 'fhcap/tasks/cluster/promote_cookbooks'
|
213
|
+
Tasks::Cluster::PromoteCookbooks.new(task_options(options.dup)).run
|
214
|
+
end
|
215
|
+
|
205
216
|
end
|
206
217
|
end
|
207
218
|
end
|
data/lib/fhcap/provider.rb
CHANGED
@@ -15,6 +15,7 @@ module Fhcap
|
|
15
15
|
desc "add", "Add a provider"
|
16
16
|
|
17
17
|
shared_options :verbose, :name, :type, :credentials, :interactive, :'provider-config'
|
18
|
+
method_option :'remote-query', :desc => 'Run remote query against provider to gather configuration data.', :type => :boolean, :required => false, :default => true
|
18
19
|
|
19
20
|
def add
|
20
21
|
require "fhcap/tasks/provider/add"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'fhcap/tasks/cluster/cluster_task_base'
|
2
|
+
require 'fhcap/tasks/chef/environments/promote_cookbooks'
|
3
|
+
|
4
|
+
module Fhcap
|
5
|
+
module Tasks
|
6
|
+
module Cluster
|
7
|
+
class PromoteCookbooks < ClusterTaskBase
|
8
|
+
|
9
|
+
def run
|
10
|
+
thor.say "Cluster::PromoteCookbooks: name = #{name}", :yellow
|
11
|
+
Chef::Environments::PromoteCookbooks.new(@options.dup.merge({:environments => cluster_environments}.merge(chef_task_options))).run
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -14,6 +14,7 @@ module Fhcap
|
|
14
14
|
|
15
15
|
def initialize(options)
|
16
16
|
super
|
17
|
+
@remote_query = options[:'remote-query']
|
17
18
|
@options_provider_config = options[:'provider-config'] || {}
|
18
19
|
@name = options[:name]
|
19
20
|
@type = options[:type]
|
@@ -73,47 +74,48 @@ module Fhcap
|
|
73
74
|
def aws_compute(cfg)
|
74
75
|
creds = cfg[:credentials]
|
75
76
|
cfg[:regions] = {}
|
76
|
-
|
77
|
-
region: 'eu-west-1',
|
78
|
-
access_key_id: creds[:'aws-access-key'],
|
79
|
-
secret_access_key: creds[:'aws-secret-key']
|
80
|
-
)
|
81
|
-
|
82
|
-
resp = ec2.describe_regions
|
83
|
-
thor.say "Found #{resp.regions.length} regions for this AWS account: #{resp.regions.collect{|r|r.region_name}}"
|
84
|
-
resp.regions.each do |region|
|
85
|
-
thor.say "Configure #{region.region_name}", :yellow
|
77
|
+
if @remote_query
|
86
78
|
ec2 = Aws::EC2::Client.new(
|
87
|
-
region:
|
79
|
+
region: 'eu-west-1',
|
88
80
|
access_key_id: creds[:'aws-access-key'],
|
89
81
|
secret_access_key: creds[:'aws-secret-key']
|
90
82
|
)
|
91
83
|
|
92
|
-
resp = ec2.
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
84
|
+
resp = ec2.describe_regions
|
85
|
+
thor.say "Found #{resp.regions.length} regions for this AWS account: #{resp.regions.collect { |r| r.region_name }}"
|
86
|
+
resp.regions.each do |region|
|
87
|
+
thor.say "Configure #{region.region_name}", :yellow
|
88
|
+
ec2 = Aws::EC2::Client.new(
|
89
|
+
region: region.region_name,
|
90
|
+
access_key_id: creds[:'aws-access-key'],
|
91
|
+
secret_access_key: creds[:'aws-secret-key']
|
92
|
+
)
|
93
|
+
|
94
|
+
resp = ec2.describe_images({
|
95
|
+
filters: [
|
96
|
+
{
|
97
|
+
name: "tag:fhcap-base",
|
98
|
+
values: ["true"],
|
99
|
+
},
|
100
|
+
],
|
101
|
+
})
|
102
|
+
if resp.images.empty?
|
103
|
+
thor.say "Could not determine valid base image, tag an appropriate image with \"fhcap-base:true\", and re-run this command to add this region!"
|
104
|
+
next
|
105
|
+
end
|
106
|
+
cfg[:regions][region.region_name.to_sym] = {}
|
107
|
+
|
108
|
+
base_image = resp.images.first.image_id
|
109
|
+
thor.say "Adding Base Image: #{base_image}"
|
110
|
+
cfg[:regions][region.region_name.to_sym][:base_image] = base_image
|
111
|
+
|
112
|
+
resp = ec2.describe_availability_zones
|
113
|
+
zones = resp.availability_zones.collect do |az|
|
114
|
+
az.zone_name
|
115
|
+
end
|
116
|
+
thor.say "Adding #{zones.length} Availability Zones: #{zones}"
|
117
|
+
cfg[:regions][region.region_name.to_sym][:availability_zones] = zones
|
103
118
|
end
|
104
|
-
cfg[:regions][region.region_name.to_sym] = {}
|
105
|
-
|
106
|
-
base_image = resp.images.first.image_id
|
107
|
-
thor.say "Adding Base Image: #{base_image}"
|
108
|
-
cfg[:regions][region.region_name.to_sym][:base_image] = base_image
|
109
|
-
|
110
|
-
resp = ec2.describe_availability_zones
|
111
|
-
zones = resp.availability_zones.collect do |az|
|
112
|
-
az.zone_name
|
113
|
-
end
|
114
|
-
thor.say "Adding #{zones.length} Availability Zones: #{zones}"
|
115
|
-
cfg[:regions][region.region_name.to_sym][:availability_zones] = zones
|
116
|
-
|
117
119
|
end
|
118
120
|
cfg[:provides] << 'compute'
|
119
121
|
cfg[:provides].uniq!
|
data/lib/fhcap/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fhcap-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Nairn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -553,6 +553,7 @@ files:
|
|
553
553
|
- lib/fhcap/tasks/cluster/generate.rb
|
554
554
|
- lib/fhcap/tasks/cluster/info.rb
|
555
555
|
- lib/fhcap/tasks/cluster/list.rb
|
556
|
+
- lib/fhcap/tasks/cluster/promote_cookbooks.rb
|
556
557
|
- lib/fhcap/tasks/cluster/provision.rb
|
557
558
|
- lib/fhcap/tasks/cluster/status.rb
|
558
559
|
- lib/fhcap/tasks/cluster/test.rb
|