foreman_google 0.0.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/foreman/controller/parameters/compute_resource_extension.rb +21 -0
- data/app/controllers/foreman_google/api/v2/apipie_extensions.rb +16 -0
- data/app/controllers/foreman_google/api/v2/compute_resources_extensions.rb +22 -0
- data/app/models/foreman_google/gce.rb +5 -1
- data/lib/foreman_google/engine.rb +5 -5
- data/lib/foreman_google/version.rb +1 -1
- metadata +5 -3
- data/app/controllers/concerns/foreman_google/temporary_prepend_path.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea94c8410bd480a5d037871dfdbcc479c4a6b241ae0c02ab47f506f4b52215e4
|
4
|
+
data.tar.gz: a0f2fc8d3b5eac53bde9bbf0cf263feccc2e15e142ba5a0acb27383ad8b77872
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bbfeec72844bb5dbb055c912552c5929e0ac758d09ff53065d24b29ae2bfc3ae830724fcf79fc9a9f3d1302041dd315775935ca739e4b8caf5916233846cd62
|
7
|
+
data.tar.gz: 885348d92eb06c1cc78c14d98b9826e6591683dd1ae561c42ad8d91ec2d1859db6d2b4b4509d908b16d63e8eca0f6eacf861908b764fcb40d9caa396e89cb69a
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Foreman
|
2
|
+
module Controller
|
3
|
+
module Parameters
|
4
|
+
module ComputeResourceExtension
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
class_methods do
|
8
|
+
def compute_resource_params_filter
|
9
|
+
super.tap do |filter|
|
10
|
+
filter.permit :email,
|
11
|
+
:key_pair,
|
12
|
+
:key_path,
|
13
|
+
:project,
|
14
|
+
:zone
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ForemanGoogle
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
module ApipieExtensions
|
5
|
+
extend Apipie::DSL::Concern
|
6
|
+
|
7
|
+
update_api(:create, :update) do
|
8
|
+
param :compute_resource, Hash do
|
9
|
+
param :key_path, String, desc: N_('Certificate path, for GCE only')
|
10
|
+
param :zone, String, desc: N_('Zone, for GCE only')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module ForemanGoogle
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
module ComputeResourcesExtensions
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
# rubocop:disable Rails/LexicallyScopedActionFilter
|
8
|
+
included do
|
9
|
+
before_action :read_key, only: [:create]
|
10
|
+
end
|
11
|
+
# rubocop:enable Rails/LexicallyScopedActionFilter
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def read_key
|
16
|
+
return unless compute_resource_params['provider'] == 'GCE'
|
17
|
+
params[:compute_resource][:password] = File.read(params['compute_resource'].delete('key_path'))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -85,10 +85,14 @@ module ForemanGoogle
|
|
85
85
|
true
|
86
86
|
end
|
87
87
|
|
88
|
-
def available_images(filter:
|
88
|
+
def available_images(filter: filter_for_images)
|
89
89
|
client.images(filter: filter)
|
90
90
|
end
|
91
91
|
|
92
|
+
def filter_for_images
|
93
|
+
@filter_for_images ||= nil
|
94
|
+
end
|
95
|
+
|
92
96
|
def self.model_name
|
93
97
|
ComputeResource.model_name
|
94
98
|
end
|
@@ -24,13 +24,13 @@ module ForemanGoogle
|
|
24
24
|
# Include concerns in this config.to_prepare block
|
25
25
|
config.to_prepare do
|
26
26
|
require 'google/cloud/compute/v1'
|
27
|
-
Google::Cloud::Compute::V1::AttachedDisk.include GoogleExtensions::AttachedDisk
|
28
27
|
|
29
|
-
::ComputeResourcesController.include ForemanGoogle::TemporaryPrependPath
|
30
|
-
::ComputeResourcesVmsController.include ForemanGoogle::TemporaryPrependPath
|
31
|
-
::ImagesController.include ForemanGoogle::TemporaryPrependPath
|
32
|
-
::HostsController.include ForemanGoogle::TemporaryPrependPath
|
33
28
|
::Host::Managed.include ForemanGoogle::HostManagedExtensions
|
29
|
+
::Api::V2::ComputeResourcesController.include ForemanGoogle::Api::V2::ComputeResourcesExtensions
|
30
|
+
::Api::V2::ComputeResourcesController.include ForemanGoogle::Api::V2::ApipieExtensions
|
31
|
+
::Api::V2::ComputeResourcesController.include Foreman::Controller::Parameters::ComputeResourceExtension
|
32
|
+
::ComputeResourcesController.include Foreman::Controller::Parameters::ComputeResourceExtension
|
33
|
+
Google::Cloud::Compute::V1::AttachedDisk.include GoogleExtensions::AttachedDisk
|
34
34
|
rescue StandardError => e
|
35
35
|
Rails.logger.warn "ForemanGoogle: skipping engine hook (#{e})"
|
36
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Foreman Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-apis-compute_v1
|
@@ -62,7 +62,9 @@ files:
|
|
62
62
|
- LICENSE
|
63
63
|
- README.md
|
64
64
|
- Rakefile
|
65
|
-
- app/controllers/concerns/
|
65
|
+
- app/controllers/concerns/foreman/controller/parameters/compute_resource_extension.rb
|
66
|
+
- app/controllers/foreman_google/api/v2/apipie_extensions.rb
|
67
|
+
- app/controllers/foreman_google/api/v2/compute_resources_extensions.rb
|
66
68
|
- app/lib/foreman_google/google_compute_adapter.rb
|
67
69
|
- app/lib/google_cloud_compute/compute_attributes.rb
|
68
70
|
- app/lib/google_cloud_compute/compute_collection.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module ForemanGoogle
|
2
|
-
# This module prepends core paths so view for gce takes precedence over core ones
|
3
|
-
# This module NEEDS to get deleted once the core support for gce is dropped.
|
4
|
-
# or this plugin is merged to core
|
5
|
-
module TemporaryPrependPath
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
included do
|
9
|
-
before_action :prepare_views
|
10
|
-
end
|
11
|
-
|
12
|
-
def prepare_views
|
13
|
-
prepend_view_path ForemanGoogle::Engine.root.join('app', 'views')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|