foreman_google 0.0.2 → 1.0.0
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/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
|