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 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