Skip to content

Commit

Permalink
Changing Ansible to point to our fork
Browse files Browse the repository at this point in the history
Change-Id: I5ad6ecf1344621cb40d4123dfc80cc5861c28c8d
  • Loading branch information
rambleraptor committed May 3, 2018
1 parent a27c7b5 commit 5efed2f
Show file tree
Hide file tree
Showing 11 changed files with 67 additions and 42 deletions.
3 changes: 2 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@
url = git@github.com:GoogleCloudPlatform/chef-google-logging
[submodule "build/ansible"]
path = build/ansible
url = git@github.com:ansible/ansible.git
url = git@github.com:modular-magician/ansible
branch = devel
[submodule "build/terraform"]
path = build/terraform
url = git@github.com:terraform-providers/terraform-provider-google.git
Expand Down
33 changes: 19 additions & 14 deletions products/compute/ansible.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,30 @@ manifest: !ruby/object:Provider::Ansible::Manifest
# This is where custom code would be defined eventually.
overrides: !ruby/object:Provider::ResourceOverrides
BackendService: !ruby/object:Provider::Ansible::ResourceOverride
aliases:
timeoutSec:
- timeout_seconds
properties:
timeoutSec: !ruby/object:Provider::Ansible::PropertyOverride
aliases:
- timeout_seconds
Disk: !ruby/object:Provider::Ansible::ResourceOverride
editable: false
HealthCheck: !ruby/object:Provider::Ansible::ResourceOverride
aliases:
timeoutSec:
- timeout_seconds
properties:
timeoutSec: !ruby/object:Provider::Ansible::PropertyOverride
aliases:
- timeout_seconds
HttpHealthCheck: !ruby/object:Provider::Ansible::ResourceOverride
aliases:
timeoutSec:
- timeout_seconds
checkIntervalSec:
- check_interval_seconds
properties:
timeoutSec: !ruby/object:Provider::Ansible::PropertyOverride
aliases:
- timeout_seconds
checkIntervalSec: !ruby/object:Provider::Ansible::PropertyOverride
aliases:
- check_interval_seconds
HttpsHealthCheck: !ruby/object:Provider::Ansible::ResourceOverride
aliases:
timeoutSec:
- timeout_seconds
properties:
timeoutSec: !ruby/object:Provider::Ansible::PropertyOverride
aliases:
- timeout_seconds
Instance: !ruby/object:Provider::Ansible::ResourceOverride
provider_helpers:
- 'products/compute/helpers/provider_instance.py'
Expand Down
8 changes: 7 additions & 1 deletion products/dns/puppet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

--- !ruby/object:Provider::Puppet::Config
manifest: !ruby/object:Provider::Puppet::Manifest
version: '0.1.1'
version: '0.1.3'
source: 'https://github.com/GoogleCloudPlatform/puppet-google-dns'
homepage: 'https://github.com/GoogleCloudPlatform/puppet-google-dns'
issues: 'https://github.com/GoogleCloudPlatform/puppet-google-dns/issues'
Expand Down Expand Up @@ -97,6 +97,12 @@ style:
exceptions:
- Metrics/MethodLength
changelog:
- !ruby/object:Provider::Config::Changelog
version: '0.1.3'
date: 2018-05-02T06:00:00-0700
fixes:
- Changed quota_* fields to a Hash. All quota_ fields must now be
keys in a hash named `quota`
- !ruby/object:Provider::Config::Changelog
version: '0.1.2'
date: 2018-02-14T06:00:00-0700
Expand Down
4 changes: 2 additions & 2 deletions products/pubsub/ansible.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ manifest: !ruby/object:Provider::Ansible::Manifest
# This is where custom code would be defined eventually.
overrides: !ruby/object:Provider::ResourceOverrides
Topic: !ruby/object:Provider::Ansible::ResourceOverride
encoder: encode_request
custom_encoder: encode_request
provider_helpers:
- 'products/pubsub/helpers/provider_topic.py'
Subscription: !ruby/object:Provider::Ansible::ResourceOverride
editable: false
encoder: encode_request
custom_encoder: encode_request
provider_helpers:
- 'products/pubsub/helpers/provider_subscription.py'
examples: !ruby/object:Api::Resource::HashArray
Expand Down
7 changes: 6 additions & 1 deletion provider/ansible/common~compile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,13 @@
'test/units/module_utils/gcp/test_gcp_utils.py': 'provider/ansible/test_gcp_utils.py'
<% unless config.nil? -%>
<%
# Overrides have not been assembled yet.
overrides = config.overrides
excludes = overrides.instance_variables
.select { |x| overrides.instance_variable_get(x).exclude }
.map { |x| x.to_s.tr(':@', '') }
object_names = api.objects
.select { |o| !o.exclude }
.select { |o| !excludes.include?(o.name) }
.map do |object|
["gcp_#{object.__product.prefix[1..-1]}",
Google::StringUtils.underscore(object.name)].join('_')
Expand Down
3 changes: 1 addition & 2 deletions provider/ansible/documentation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,7 @@ def minimal_doc_block(prop, object, spaces)
indent([
"required: #{prop.required ? 'true' : 'false'}",
('type: bool' if prop.is_a? Api::Type::Boolean),
("aliases: [#{object.aliases[prop.name].join(', ')}]" \
if object&.aliases&.keys&.include?(prop.name)),
("aliases: [#{prop.aliases.join(', ')}]" if prop.aliases),
(if prop.is_a? Api::Type::Enum
[
'choices:',
Expand Down
7 changes: 2 additions & 5 deletions provider/ansible/module.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,8 @@ def prop_options(prop, object, spaces)
(choices_enum(prop, spaces) if prop.is_a? Api::Type::Enum),
("elements=#{quote_string(python_type(prop.item_type))}" \
if prop.is_a? Api::Type::Array),
(if object&.aliases&.keys&.include?(prop.name)
"aliases=[#{object.aliases[prop.name].map do |x|
quote_string(x)
end.join(', ')}]"
end)
("aliases=[#{prop.aliases.map { |x| quote_string(x) }.join(', ')}]" \
if prop.aliases)
].compact
end
# rubocop:enable Metrics/AbcSize
Expand Down
6 changes: 6 additions & 0 deletions provider/ansible/property_override.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,17 @@ module Ansible
# Collection of fields allowed in the PropertyOverride section for
# Ansible. All fields should be `attr_reader :<property>`
module OverrideFields
attr_reader :aliases
end

# Ansible-specific overrides to api.yaml.
class PropertyOverride < Provider::PropertyOverride
include OverrideFields
def validate
super

check_optional_property :aliases, ::Array
end

private

Expand Down
18 changes: 13 additions & 5 deletions provider/ansible/resource_override.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,12 @@ module Ansible
# Ansible specific properties to be added to Api::Resource
module OverrideProperties
attr_reader :access_api_results
attr_reader :aliases
attr_reader :collection
attr_reader :create
attr_reader :custom_decoder
attr_reader :custom_encoder
attr_reader :custom_self_link
attr_reader :decoder
attr_reader :delete
attr_reader :encoder
attr_reader :exclude
attr_reader :editable
attr_reader :hidden
Expand All @@ -42,18 +41,27 @@ def validate
super

default_value_property :access_api_results, false
default_value_property :aliases, {}
default_value_property :decoder, false
default_value_property :exclude, false
default_value_property :editable, true
default_value_property :imports, []
default_value_property :provider_helpers, []

check_property :access_api_results, :boolean
check_property :aliases, ::Hash
check_optional_property :collection, ::String
check_optional_property :create, ::String
check_optional_property :custom_decoder, ::String
check_optional_property :custom_encoder, ::String
check_optional_property :custom_self_link, ::String
check_optional_property :delete, ::String
check_property :editable, :boolean
check_property :exclude, :boolean
check_optional_property :hidden, ::Array
check_optional_property :hidden, ::Array
check_property :imports, ::Array
check_property :provider_helpers, ::Array
check_optional_property :update, ::String
check_optional_property :version_added, ::String
end

private
Expand Down
2 changes: 0 additions & 2 deletions provider/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,6 @@ def self.parse(cfg_file, api = nil)
raise "Config #{cfg_file}(#{config.class}) is not a Provider::Config" \
unless config.class <= Provider::Config
# Config must be validated so items are properly setup for next compile
config.default_overrides
config.spread_api config, api, [], '' unless api.nil?
config.validate
# Compile step #2: Now that we have the target class, compile with that
# class features
Expand Down
18 changes: 9 additions & 9 deletions templates/ansible/resource.erb
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,11 @@ def resource_to_request(module):
<%
encoder_name = if object.encoder?
object.transport.encoder
else object.encoder
object.encoder
elsif object.custom_encoder
object.custom_encoder
end
-%>
<% if object.encoder? || object.encoder -%>
<% if object.encoder? || object.custom_encoder -%>
request = <%= encoder_name -%>(request, module)
<% end -%>
return_vals = {}
Expand Down Expand Up @@ -320,11 +320,11 @@ def resource_to_request(module):
<%
decoder_name = if object.decoder?
object.transport.decoder
else object.decoder
object.decoder
elsif object.custom_decoder
object.custom_decoder
end
-%>
<% if object.decoder? || object.decoder -%>
<% if object.decoder? || object.custom_decoder -%>
result = <%= decoder_name -%>(result, module)

<% end -%>
Expand All @@ -344,11 +344,11 @@ def is_different(module, response):
<%
decoder_name = if object.decoder?
object.transport.decoder
else object.decoder
object.decoder
elsif object.custom_decoder
object.custom_decoder
end
-%>
<% if object.decoder? || object.decoder -%>
<% if object.decoder? || object.custom_decoder -%>
request = <%= decoder_name -%>(request, module)
<% end -%>

Expand Down

0 comments on commit 5efed2f

Please sign in to comment.