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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 436414dce3da889d6bcd459132d3f00bb24fa5ea36afc99efa7987836a57b6a9
4
- data.tar.gz: 05026b5514e98aafe1dd2ccebd9bd52fd04be94af87a78222145b73269f2301f
3
+ metadata.gz: ea94c8410bd480a5d037871dfdbcc479c4a6b241ae0c02ab47f506f4b52215e4
4
+ data.tar.gz: a0f2fc8d3b5eac53bde9bbf0cf263feccc2e15e142ba5a0acb27383ad8b77872
5
5
  SHA512:
6
- metadata.gz: ecdf08325bc8ae14f1bb8d6f1af9b71adcdf702239c29f8fd84f80bc8f1266f3f1947a017430eda34dc20cc907a32ef4a51fe8799e5d40562e24c68c5723d8eb
7
- data.tar.gz: 2980cd7a4e569cdd46009d1560245f0864d05a8d9eab9e401ef7d3da90777326722dc41cf429ac43e1e9c4b87d5746a2bdef9e2354e5c215ae28377ad6be1a74
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: nil)
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
@@ -1,3 +1,3 @@
1
1
  module ForemanGoogle
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  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.2
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-10-06 00:00:00.000000000 Z
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/foreman_google/temporary_prepend_path.rb
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