Permalink
Browse files

Imported Upstream version 2.7.8

  • Loading branch information...
1 parent 643c2d9 commit fba805b1cc7177a721947ec448bcb8dd85270c1a @haus haus committed Dec 9, 2011
View
66 CHANGELOG
@@ -1,5 +1,23 @@
-2.7.7
+2.7.8
===
+3eff60a Readying for 2.7.8rc release
+e4ee794 (#10739) Provide default subjectAltNames while bootstrapping master
+2dedee6 (#2744) Don't automatically enable show_diff in noop mode
+ef78358 Give variables more descriptive names
+cd3d4ea maint: Rename xgenerate to add_dynamically_generated_resources
+000a2d8 (#6907) Prefetch unsuitable providers
+70114e9 (#6907) Allow providers to be selected in the run they become suitable
+a0ee5c7 maint: Fix incorrect whitespace
+4e8a73c Fix description in service provider test for FreeBSD
+a2eab4f (#6697) Set service provider default path to /etc/rc.d on Archlinux
+da75795 (#6335) Allow optional trailing comma in argument lists.
+47c786e Update CHANGELOG and packaging for 2.7.7 final
+8030428 (#8255) Always use string modes when creating resources from FileSetting settings
+c804346 (#7274) Output 4-digit file modes in File type
+220f2ba (#10799) Regexp escaping too much
+4462eb5 Merged 2.6.x into 2.7x
+67e048b Updated CHANGELOG for 2.7.7rc2
+93aca5a maint: Fix failing specs for Windows exec provider
7f3a1bb (#9617) Use an RbTreeMap to store ready resources
9eff0f4 (#9671) Implement RbTreeMap#each recursively, and #first/#last explicitly
5f7f467 (#9671) Return nodes from internal RbTreeMap recursion
@@ -18,8 +36,15 @@ ad4316a (#9671) Use Array#concat rather than +=
c9ee5a0 (#10614) Fix setting and clearing read-only attribute on Windows
ed27a90 (#10614) Fix error checking for Windows BOOL return values
7f0756d (#10727) Don't rely on Kernel#Pathname
+23379d0 (#10614) Detect when trying to managing ACLs on a non-ACL volume
+374fee5 (#10614) Provide default metadata values for Windows ACLs
+f60e889 (#10614) Add method for detecting Windows volumes that support ACLs
+1371dbd (#10614) Fix setting and clearing read-only attribute on Windows
+7eb0197 (#10614) Fix error checking for Windows BOOL return values
+9dfd011 (#5617) Puppet queue logging
0a34697 (#2744) Display file diffs through the Puppet log system.
0c28238 (#9508) Be explicit is setting `auth any` for default ACLs.
+f140eca Updated CHANGELOG for 2.7.7rc1
057cda6 (#9508) Default ACL of `auth any` makes sense where we had `auth no`
78670ed (#9983) Checksum file in binary mode when storing to filebucket
da11a78 (#9983) Serve file content in binary mode
@@ -34,8 +59,11 @@ fd747cc (#10365) Add pending test when file overwrites an executable directory
fe30d8f (#10315) Add pending tests when following symlinks
a22c7aa Maint: Fix test breakage
8576e86 (#10269) Search bit not set on newly created directories
+a91cfa1 maint: Fix failing spec on old version of rspec
428e08c Stub File.open to not touch the disk
+aa2a762 (#10289) Add an ext script to upload facts to inventory server
a97337f (#10346) Fix storeconfigs spec failures when run alone
+5129d38 (#10289) Add a safe alternative to REST for inventory service
5c4daa4 (#7601) Use definition lists in indirection references
7df46a2 (#7601) Use definition lists in type references
ad97dc9 (#7601) Add markdown_definitionlist method to reference.rb
@@ -47,7 +75,43 @@ a6957ac (#7601) Rename "h" method to "markdown_header"
5a2952c (maint) Fix CA-related specs failing on Windows
42fb76e Fix typo in report debug message
eab5965 missing includes in network XML-RPC handlers
+7514d32 missing includes in network XML-RPC handlers
614526a (#10244) Restore Mongrel XMLRPC functionality
+397a506 (#10244) Restore Mongrel XMLRPC functionality
+fcaf7c5 Updated CHANGELOG for 2.6.12
+f51d221 Improve the error message when a CSR is rejected
+d551747 Allow a master to bootstrap itself with dns_alt_names and autosign
+0405196 (maint) Remove ssl dir before starting a master with DNS alt names
+3ed6499 Backport Enumerable#count to Rubies < 1.8.7
+5f44c23 More 1.8.5 compatibility fixes.
+ef1b960 Better 1.8.5 compatible implementation of `lines`.
+246e875 (#2848) Config options require '_', not '-'.
+3bdeb3a Ruby 1.8.5 compatibility changes in tests and code.
+6866d4b Add `lines` alias for `each_line` in Ruby 1.8.5.
+2f9ec3c s/not_to/should_not/ for older versions of RSpec 2.
+56320ea (#2848) Eliminate redundant `master_dns_alt_names`.
+de19861 (#2848) Remove the legacy SSLCertificates code
+cf008a6 (#2848) Rework the xmlrpc CA handler to use the modern SSL code
+32be180 (#2848) Remove unused xmlrpc code
+5f2a44d (#2848) Consistent return values from `subject_alt_names` accessors.
+5e507f2 (#2848) Consistently use `subject_alt_names` as accessor name.
+5ac2417 (#2848) Don't strip the subjectAltName label when listing.
+44cf3a2 (#2848) Don't enable `emailProtection` for server keys.
+d66def9 (#2848) Only mark `subjectAltName` critical if `subject` is empty.
+8174047 (#2848) Migrate `dns-alt-names` back to settings.
+f18df2b Wire up the `setbycli` slot in Puppet settings.
+efa61f2 (#2848) rename subject-alt-name option to dns-alt-names
+f103b20 (#2848) Rename `certdnsnames` to match new behaviour.
+363b47b (#2848) Use `certdnsnames` when bootstrapping a local master.
+49334ff (#2848) CSR subjectAltNames handling while signing.
+5f2af93 (#2848) List subject alt names in output of puppet cert --list
+bb475ec (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names
+bab9310 (#2848) Rewrite SSL Certificate Factory, fixing `subjectAltName` leak.
+fca1ff0 (#2848) Reject unknown (== all) extensions on the CSR.
+443a756 (#2848) extract the subjectAltName value from the CSR.
+66101f1 (#2848) Set `certdnsnames` values into the CSR.
+77b814f (#6928) Don't blow up when the method is undefined...
+5427f1e (#6928) backport Symbol#to_proc for Ruby < 1.8.7
6ef1d3a (#6371) Update lastchg field in shadow file on Solaris.
c343615 (#10161) Parenthesize method arguments
5721ab9 Maint: Remove duplicate path extension code
View
11 conf/redhat/puppet.spec
@@ -5,13 +5,16 @@
%global confdir conf/redhat
Name: puppet
-Version: 2.7.7
+Version: 2.7.8
+#Release: 0.1rc1%{?dist}
Release: 1%{?dist}
Summary: A network tool for managing many disparate systems
License: ASL 2.0
URL: http://puppetlabs.com
Source0: http://puppetlabs.com/downloads/%{name}/%{name}-%{version}.tar.gz
+#Source0: http://puppetlabs.com/downloads/%{name}/%{name}-%{version}rc1.tar.gz
Source1: http://puppetlabs.com/downloads/%{name}/%{name}-%{version}.tar.gz.asc
+#Source1: http://puppetlabs.com/downloads/%{name}/%{name}-%{version}rc1.tar.gz.asc
Group: System Environment/Base
@@ -282,6 +285,12 @@ fi
rm -rf %{buildroot}
%changelog
+* Thu Dec 8 2011 Matthaus Litteken <matthaus@puppetlabs.com> - 2.7.8-1
+- Update for 2.7.8
+
+* Wed Nov 30 2011 Michael Stahnke <stahnma@puppetlabs.com> - 2.7.8-0.1rc1
+- Update for 2.7.8rc1
+
* Mon Nov 21 2011 Michael Stahnke <stahnma@puppetlabs.com> - 2.7.7-1
- Relaese 2.7.7
View
2 conf/solaris/pkginfo
@@ -1,6 +1,6 @@
PKG=CSWpuppet
NAME=puppet - System Automation Framework
-VERSION=2.7.7
+VERSION=2.7.8
CATEGORY=application
VENDOR=http://projects.puppetlabs.com/projects/puppet
EMAIL=info@puppetlabs.com
View
11 conf/suse/puppet.spec
@@ -4,13 +4,13 @@
Summary: A network tool for managing many disparate systems
Name: puppet
-Version: 2.7.7
-Release: 1%{?dist}
+Version: 2.7.8
+Release: 0.1rc1%{?dist}
License: Apache 2.0
Group: Productivity/Networking/System
URL: http://puppetlabs.com/projects/puppet/
-Source0: http://puppetlabs.com/downloads/puppet/%{name}-%{version}.tar.gz
+Source0: http://puppetlabs.com/downloads/puppet/%{name}-%{version}rc1.tar.gz
PreReq: %{insserv_prereq} %{fillup_prereq}
Requires: ruby >= 1.8.2
@@ -35,7 +35,7 @@ Provides the central puppet server daemon which provides manifests to clients.
The server can also function as a certificate authority and file server.
%prep
-%setup -q
+%setup -q -n %{name}-%{version}rc1
%build
for f in bin/* sbin/*; do
@@ -136,6 +136,9 @@ find %{buildroot}%{ruby_sitelibdir} -type f -perm +ugo+x -exec chmod a-x '{}' \;
%{__rm} -rf %{buildroot}
%changelog
+* Wed Nov 30 2011 Michael Stahnke <stahnma@puppetlabs.com> - 2.7.8-0.1rc1
+- Update for 2.7.8rc1
+
* Mon Nov 21 2011 Michael Stahnke <stahnma@puppetlabs.com> - 2.7.7-1
- Release 2.7.7
View
120 ext/upload_facts.rb
@@ -0,0 +1,120 @@
+#!/usr/bin/env ruby
+
+require 'net/https'
+require 'openssl'
+require 'openssl/x509'
+require 'optparse'
+require 'pathname'
+require 'yaml'
+
+require 'puppet'
+require 'puppet/network/http_pool'
+
+class Puppet::Application::UploadFacts < Puppet::Application
+ should_parse_config
+ run_mode :master
+
+ option('--debug', '-d')
+ option('--verbose', '-v')
+
+ option('--logdest DEST', '-l DEST') do |arg|
+ Puppet::Util::Log.newdestination(arg)
+ options[:setdest] = true
+ end
+
+ option('--minutes MINUTES', '-m MINUTES') do |minutes|
+ options[:time_limit] = 60 * minutes.to_i
+ end
+
+ def help
+ print <<HELP
+== Synopsis
+
+Upload cached facts to the inventory service.
+
+= Usage
+
+ upload_facts [-d|--debug] [-v|--verbose] [-m|--minutes <minutes>]
+ [-l|--logdest syslog|<file>|console]
+
+= Description
+
+This command will read YAML facts from the puppet master's YAML directory, and
+save them to the configured facts_terminus. It is intended to be used with the
+facts_terminus set to inventory_service, in order to ensure facts which have
+been cached locally due to a temporary failure are still uploaded to the
+inventory service.
+
+= Usage Notes
+
+upload_facts is intended to be run from cron, with the facts_terminus set to
+inventory_service. The +--minutes+ argument should be set to the length of time
+between upload_facts runs. This will ensure that only new YAML files are
+uploaded.
+
+= Options
+
+Note that any configuration parameter that's valid in the configuration file
+is also a valid long argument. For example, 'server' is a valid configuration
+parameter, so you can specify '--server <servername>' as an argument.
+
+See the configuration file documentation at
+http://docs.puppetlabs.com/references/stable/configuration.html for
+the full list of acceptable parameters. A commented list of all
+configuration options can also be generated by running puppet agent with
+'--genconfig'.
+
+minutes::
+ Limit the upload only to YAML files which have been added within the last n
+ minutes.
+HELP
+
+ exit
+ end
+
+ def setup
+ # Handle the logging settings.
+ if options[:debug] or options[:verbose]
+ if options[:debug]
+ Puppet::Util::Log.level = :debug
+ else
+ Puppet::Util::Log.level = :info
+ end
+
+ Puppet::Util::Log.newdestination(:console) unless options[:setdest]
+ end
+
+ exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
+ end
+
+ def main
+ dir = Pathname.new(Puppet[:yamldir]) + 'facts'
+
+ cutoff = options[:time_limit] ? Time.now - options[:time_limit] : Time.at(0)
+
+ files = dir.children.select do |file|
+ file.extname == '.yaml' && file.mtime > cutoff
+ end
+
+ failed = false
+
+ terminus = Puppet::Node::Facts.indirection.terminus
+
+ files.each do |file|
+ facts = YAML.load_file(file)
+
+ request = Puppet::Indirector::Request.new(:facts, :save, facts)
+
+ # The terminus warns for us if we fail.
+ if terminus.save(request)
+ Puppet.info "Uploaded facts for #{facts.name} to inventory service"
+ else
+ failed = true
+ end
+ end
+
+ exit !failed
+ end
+end
+
+Puppet::Application::UploadFacts.new.run
View
27 install.rb
@@ -423,11 +423,17 @@ def install_binfile(from, op_file, target)
if not installed_wrapper
tmp_file2 = File.join(tmp_dir, '_tmp_wrapper')
cwn = File.join(Config::CONFIG['bindir'], op_file)
- regex_safe_ruby = Regexp.escape(ruby.gsub(%r{/}) { "\\" })
- regex_safe_cwn = Regexp.escape(cwn.gsub(%r{/}) { "\\" })
-
- cwv = CMD_WRAPPER.gsub('<ruby>', regex_safe_ruby).gsub('<command>', regex_safe_cwn)
- File.open(tmp_file2, "wb") { |cw| cw.puts cwv }
+ cwv = <<-EOS
+@echo off
+if "%OS%"=="Windows_NT" goto WinNT
+#{ruby} -x "#{cwn}" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto done
+:WinNT
+#{ruby} -x "#{cwn}" %*
+goto done
+:done
+EOS
+ File.open(tmp_file2, "w") { |cw| cw.puts cwv }
FileUtils.install(tmp_file2, File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true)
File.unlink(tmp_file2)
@@ -438,17 +444,6 @@ def install_binfile(from, op_file, target)
File.unlink(tmp_file)
end
-CMD_WRAPPER = <<-EOS
-@echo off
-if "%OS%"=="Windows_NT" goto WinNT
-<ruby> -x "<command>" %1 %2 %3 %4 %5 %6 %7 %8 %9
-goto done
-:WinNT
-<ruby> -x "<command>" %*
-goto done
-:done
-EOS
-
check_prereqs
prepare_installation
View
2 lib/puppet.rb
@@ -24,7 +24,7 @@
# it's also a place to find top-level commands like 'debug'
module Puppet
- PUPPETVERSION = '2.7.7'
+ PUPPETVERSION = '2.7.8'
def Puppet.version
PUPPETVERSION
View
3 lib/puppet/application/agent.rb
@@ -423,9 +423,6 @@ def setup
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
- # If noop is set, then also enable diffs
- Puppet[:show_diff] = true if Puppet[:noop]
-
args[:Server] = Puppet[:server]
if options[:fqdn]
args[:FQDN] = options[:fqdn]
View
3 lib/puppet/application/apply.rb
@@ -231,9 +231,6 @@ def main
def setup
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
- # If noop is set, then also enable diffs
- Puppet[:show_diff] = true if Puppet[:noop]
-
Puppet::Util::Log.newdestination(:console) unless options[:logset]
client = nil
server = nil
View
22 lib/puppet/application/queue.rb
@@ -10,7 +10,6 @@ def preinit
require 'puppet/daemon'
@daemon = Puppet::Daemon.new
@daemon.argv = ARGV.dup
- Puppet::Util::Log.newdestination(:console)
# Do an initial trap, so that cancels don't get a stack trace.
@@ -109,6 +108,26 @@ def help
HELP
end
+ option("--logdest DEST", "-l DEST") do |arg|
+ begin
+ Puppet::Util::Log.newdestination(arg)
+ options[:setdest] = true
+ rescue => detail
+ puts detail.backtrace if Puppet[:debug]
+ $stderr.puts detail.to_s
+ end
+ end
+
+ option("--logdest DEST", "-l DEST") do |arg|
+ begin
+ Puppet::Util::Log.newdestination(arg)
+ options[:setdest] = true
+ rescue => detail
+ puts detail.backtrace if Puppet[:debug]
+ $stderr.puts detail.to_s
+ end
+ end
+
def main
require 'puppet/indirector/catalog/queue' # provides Puppet::Indirector::Queue.subscribe
Puppet.notice "Starting puppetqd #{Puppet.version}"
@@ -139,6 +158,7 @@ def setup_logs
Puppet::Util::Log.level = :info
end
end
+ Puppet::Util::Log.newdestination(:syslog) unless options[:setdest]
end
def setup
View
10 lib/puppet/defaults.rb
@@ -109,8 +109,9 @@ module Puppet
},
:diff_args => ["-u", "Which arguments to pass to the diff command when printing differences between files."],
:diff => ["diff", "Which diff command to use when printing differences between files."],
- :show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff
- is printed on stdout, so this option is meaningless unless you are running Puppet interactively.
+ :show_diff => [false, "Whether to log and report a contextual diff when files are being replaced. This causes
+ partial file contents to pass through Puppet's normal logging and reporting system, so this setting should be
+ used with caution if you are sending Puppet's reports to an insecure destination.
This feature currently requires the `diff/lcs` Ruby library."],
:daemonize => {
:default => (Puppet.features.microsoft_windows? ? false : true),
@@ -135,7 +136,8 @@ module Puppet
:desc => "The node facts terminus.",
:hook => proc do |value|
require 'puppet/node/facts'
- if value.to_s == "rest"
+ # Cache to YAML if we're uploading facts away
+ if %w[rest inventory_service].include? value.to_s
Puppet::Node::Facts.indirection.cache_class = :yaml
end
end
@@ -617,7 +619,7 @@ module Puppet
it with the `--no-client` option."],
:listen => [false, "Whether puppet agent should listen for
connections. If this is true, then puppet agent will accept incoming
- REST API requests, subject to the default ACLs and the ACLs set in
+ REST API requests, subject to the default ACLs and the ACLs set in
the `rest_authconfig` file. Puppet agent can respond usefully to
requests on the `run`, `facts`, `certificate`, and `resource` endpoints."],
:ca_server => ["$server", "The server to use for certificate
View
20 lib/puppet/indirector/facts/inventory_service.rb
@@ -0,0 +1,20 @@
+require 'puppet/node/facts'
+require 'puppet/indirector/rest'
+
+class Puppet::Node::Facts::InventoryService < Puppet::Indirector::REST
+ desc "Find and save facts about nodes using a remote inventory service."
+ use_server_setting(:inventory_server)
+ use_port_setting(:inventory_port)
+
+ # We don't want failing to upload to the inventory service to cause any
+ # failures, so we just suppress them and warn.
+ def save(request)
+ begin
+ super
+ true
+ rescue => e
+ Puppet.warning "Could not upload facts for #{request.key} to inventory service: #{e.to_s}"
+ false
+ end
+ end
+end
View
2 lib/puppet/parser/grammar.ra
@@ -648,7 +648,7 @@ argumentlist: nil
| LPAREN nothing RPAREN {
result = nil
}
- | LPAREN arguments RPAREN {
+ | LPAREN arguments endcomma RPAREN {
result = val[1]
result = [result] unless result[0].is_a?(Array)
}
View
710 lib/puppet/parser/parser.rb
@@ -34,88 +34,89 @@ class Parser < Racc::Parser
##### State transition tables begin ###
clist = [
-'222,221,209,61,62,249,204,209,127,323,192,317,322,184,179,109,214,251',
-'301,330,126,106,180,182,181,183,126,329,184,179,302,206,245,244,335',
-'245,244,180,182,181,183,195,126,210,106,186,185,334,85,173,174,176,175',
-'177,178,275,171,172,276,105,186,185,107,170,173,174,176,175,177,178',
-'308,171,172,61,62,157,81,94,170,95,80,71,105,61,62,107,162,94,77,95',
-'73,161,309,61,62,93,157,94,81,95,-106,-157,114,76,71,93,70,162,288,34',
-'63,59,161,287,68,93,70,311,60,92,63,59,58,151,68,91,70,75,60,92,63,59',
-'58,71,68,91,157,151,60,92,61,62,58,71,94,91,95,162,314,288,61,62,161',
-'71,287,-106,-106,-106,-106,248,61,62,93,157,94,81,95,247,81,80,106,208',
-'80,70,162,341,34,63,59,161,81,68,93,70,80,60,92,63,225,58,151,68,91',
-'70,132,138,77,63,59,58,71,68,-170,61,62,60,92,64,105,58,71,107,91,61',
-'62,61,62,94,323,95,71,322,324,61,62,44,152,94,242,95,71,245,244,61,62',
-'93,70,94,81,95,63,59,114,320,68,93,70,299,60,34,63,59,58,195,68,93,70',
-'73,60,92,63,59,58,71,68,91,70,198,60,92,63,59,58,71,68,91,61,62,60,92',
-'214,212,58,71,117,91,61,62,295,85,94,201,95,71,211,201,61,62,83,84,94',
-'292,95,291,171,172,61,62,93,70,94,170,95,63,225,171,172,68,93,70,-156',
-'138,170,63,59,58,-154,68,93,70,125,60,92,63,59,58,71,68,91,70,-153,60',
-'92,63,59,58,71,68,91,214,346,60,92,61,62,58,71,94,91,95,-155,-151,-150',
-'61,62,-152,71,94,124,95,283,117,333,61,62,93,274,94,97,95,214,224,336',
-'61,62,93,70,94,250,337,63,59,214,251,68,93,70,338,60,92,63,59,58,127',
-'68,91,70,277,60,92,63,59,58,71,68,91,70,208,60,92,63,59,58,71,68,91',
-'305,236,60,238,61,62,58,71,94,239,95,238,349,-152,61,62,97,71,94,-150',
-'95,86,352,-151,61,62,93,223,94,303,95,214,224,214,251,353,93,70,82,355',
-'-153,63,59,125,72,68,93,70,43,60,92,63,59,58,361,68,91,70,362,60,92',
-'63,59,58,71,68,91,238,-204,60,92,61,62,58,71,94,91,95,38,39,40,41,209',
-'117,71,176,175,71,61,62,171,172,94,93,95,71,35,170,38,39,40,41,369,370',
-'70,,61,62,63,59,93,122,68,327,,,60,92,,,58,70,,91,,63,59,,,68,,71,,60',
-'92,61,62,58,,70,91,228,,63,225,,,68,71,,,138,61,62,,58,94,,95,176,175',
-',,,171,172,71,,70,,,170,63,225,93,,68,61,62,,138,94,,95,58,70,,,,63',
-'59,,,68,,71,,60,92,93,,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,,60',
-'92,93,218,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,61',
-'62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,61,62,91,,94,,,,70',
-',71,,63,59,,,68,,,,60,92,,,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,61',
-'62,,60,,93,,58,,61,62,,,94,,95,70,,71,,63,59,,,68,,,,60,92,,93,58,70',
-',91,,63,225,,,68,70,71,,138,63,59,,58,68,,61,62,60,92,94,,58,,71,91',
-'61,62,,,94,,95,71,,,61,62,,,94,131,95,,,,61,62,93,70,94,,95,63,225,',
-',68,93,70,,138,,63,59,58,,68,93,70,,60,92,63,59,58,71,68,91,70,,60,92',
-'63,59,58,71,68,91,61,62,60,92,,,58,71,,91,61,62,,,94,,,71,,,61,62,,',
-'94,,95,,,,61,62,,70,94,,95,63,225,,,68,93,70,,138,,63,137,58,,68,93',
-'70,,138,,63,59,58,71,68,,70,,60,92,63,59,58,71,68,91,252,,60,92,,,58',
-'71,,91,184,179,-24,-24,-24,-24,,71,,180,182,181,183,,,173,174,176,175',
-',61,62,171,172,94,131,95,,,170,,,186,185,,,173,174,176,175,177,178,93',
-'171,172,61,62,,,94,170,95,,70,,,,63,59,,,68,,,,60,92,93,,58,61,62,91',
-',94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,61,62,91,,94,,95,,70,,71',
-',63,59,,,68,,,,60,92,93,,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,',
-'60,92,93,,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,61',
-'62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,61,62,91,,94,,95,',
-'70,,71,,63,59,,,68,,,,60,92,93,,58,61,62,91,,94,,95,,70,,71,,63,59,',
-',68,,,,60,92,93,,58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93',
-',58,61,62,91,,94,,95,,70,,71,,63,59,,,68,,,,60,92,93,,58,,,91,-22,-22',
-'-22,-22,,70,,71,,63,59,,,68,,,169,60,92,,,58,,,91,184,179,,,,,197,71',
-',180,182,181,183,,,184,179,,,,,,,,180,182,181,183,,,,,186,185,,,173',
-'174,176,175,177,178,,171,172,,,186,185,,170,173,174,176,175,177,178',
-',171,172,184,179,,,,170,,,,180,182,181,183,,,184,179,,,,,,,,180,182',
-'181,183,,,,,186,185,,,173,174,176,175,177,178,,171,172,,,186,185,,170',
-'173,174,176,175,177,178,,171,172,184,179,,,,170,,,,180,182,181,183,',
-',184,179,,,,,,,,180,182,181,183,,,,,186,185,,,173,174,176,175,177,178',
-',171,172,,,186,185,,170,173,174,176,175,177,178,,171,172,184,179,,,',
-'170,,,273,180,182,181,183,,,184,179,,,,,,,,180,182,181,183,,,,,186,185',
-',,173,174,176,175,177,178,,171,172,,,186,185,,170,173,174,176,175,177',
-'178,,171,172,184,179,,,,170,,,,180,182,181,183,,,184,179,,,,,,,,180',
-'182,181,183,,,,,186,185,,,173,174,176,175,177,178,,171,172,,,186,185',
-',170,173,174,176,175,177,178,,171,172,184,179,,,,170,,,,180,182,181',
-'183,,,184,179,,,,,,,,180,182,181,183,,,,,186,185,,,173,174,176,175,177',
-'178,,171,172,,,,,,170,173,174,176,175,177,178,,171,172,184,179,,,,170',
-',,,180,182,181,183,,,184,179,,,,,,,,180,182,181,183,,,,,,,,,173,174',
-'176,175,177,178,,171,172,,,186,185,,170,173,174,176,175,177,178,,171',
-'172,184,179,,,,170,,,,180,182,181,183,,,184,179,,,,,,,,180,182,181,183',
-',,,,,,,,173,174,176,175,177,178,,171,172,,,,185,,170,173,174,176,175',
-'177,178,,171,172,184,179,,,,170,,,,180,182,181,183,,,,179,,,,,,,,180',
-',,,,,,,186,185,179,,173,174,176,175,177,178,180,171,172,,,,,179,170',
-'173,174,176,175,177,178,180,171,172,,,,,,170,,179,,173,174,176,175,177',
-'178,180,171,172,,,,,,170,173,174,176,175,177,178,,171,172,,332,,,,170',
-',,,173,174,176,175,177,178,,171,172,,360,,,28,170,30,31,,26,32,,33,',
-'21,,29,368,25,,,34,28,,30,31,,26,32,,33,,21,367,29,,25,,28,34,30,31',
-',26,32,,33,,21,343,29,,25,,28,34,30,31,,26,32,,33,,21,255,29,,25,,28',
-'34,30,31,,26,32,,33,,21,365,29,,25,,28,34,30,31,,26,32,,33,,21,,29,',
-'25,,28,34,30,31,,26,32,,33,,21,,29,28,25,30,31,34,26,32,,33,,21,,29',
-'28,25,30,31,34,26,32,,33,,21,,29,28,25,30,31,34,26,32,,33,,21,,29,,25',
-',,34,173,174,176,175,177,178,,171,172,,,,,,170,173,174,176,175,177,178',
-',171,172,173,174,176,175,,170,,171,172,,,,,,170' ]
- racc_action_table = arr = Array.new(2065, nil)
+'255,256,225,47,228,48,221,222,175,73,78,342,207,189,193,145,338,211',
+'49,343,331,227,184,186,190,192,174,221,243,73,78,215,216,73,78,336,201',
+'98,334,101,147,244,45,232,-154,185,188,197,302,195,196,179,180,182,183',
+'95,187,191,73,78,221,356,98,181,101,120,72,197,73,78,86,88,215,216,93',
+'219,118,309,79,96,95,124,89,218,60,103,73,78,60,225,98,72,207,63,35',
+'86,88,211,36,93,120,72,174,79,96,86,250,89,35,93,103,118,36,154,187',
+'191,124,89,63,72,132,181,64,86,88,66,64,93,63,66,52,79,73,78,120,89',
+'98,311,101,50,51,142,73,78,63,118,63,171,63,231,124,120,73,78,95,262',
+'98,35,101,35,35,114,118,36,114,72,316,124,11,86,88,11,317,93,95,72,170',
+'79,96,86,250,89,132,93,103,72,-170,154,322,86,88,89,63,93,323,324,325',
+'79,96,73,78,89,63,98,103,101,174,35,167,73,78,36,63,98,288,101,-153',
+'287,11,73,78,95,52,98,330,101,47,187,191,73,78,95,72,98,181,-106,86',
+'88,-152,-150,93,95,72,-151,79,96,86,88,89,205,93,103,72,299,79,96,86',
+'88,89,63,93,103,72,298,79,96,86,88,89,63,93,103,73,78,79,296,85,-157',
+'89,63,214,73,78,215,216,98,-155,101,144,63,-106,-106,-106,-106,76,48',
+'60,336,73,78,334,109,98,95,101,72,142,223,295,86,88,221,222,93,72,105',
+'333,79,86,88,95,89,93,289,266,212,79,96,221,260,89,72,63,103,64,86,88',
+'66,175,93,63,63,132,79,96,73,78,89,261,98,103,101,221,260,128,142,63',
+'63,63,179,180,345,73,78,187,191,98,95,101,-156,225,181,348,195,196,179',
+'180,109,72,227,187,191,86,88,95,349,93,181,332,231,79,96,221,222,89',
+'72,105,103,233,86,88,67,352,93,227,63,237,79,96,73,78,89,239,98,103',
+'101,-153,229,195,196,179,180,63,57,360,187,191,189,193,179,180,95,181',
+'170,187,191,184,186,190,192,-152,181,72,362,53,240,86,88,44,364,93,-204',
+'-150,38,79,96,-151,370,89,185,188,103,371,195,196,179,180,182,183,63',
+'187,191,73,78,,,98,181,101,,,,73,78,,,98,,101,,,,73,78,95,,98,,101,-22',
+'-22,-22,-22,,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79',
+'96,86,88,89,63,93,103,,,79,96,73,78,89,63,,103,,341,,,73,78,,63,98,',
+'101,,,,73,78,,,98,,101,,,,73,78,95,72,98,,101,86,250,,,93,95,72,,154',
+',86,88,89,,93,95,72,,79,96,86,88,89,63,93,103,72,,79,96,86,88,89,63',
+'93,103,,,79,96,73,78,89,63,,103,252,,,,73,78,,63,98,,101,,,,73,78,,',
+'98,,101,,,,73,78,95,72,98,,101,86,250,,,93,95,72,,154,,86,88,89,,93',
+'95,72,,79,96,86,88,89,63,93,103,72,,79,96,86,88,89,63,93,103,,,79,96',
+'73,78,89,63,98,103,101,,,,73,78,,63,98,,101,,,,73,78,95,,98,173,101',
+'41,42,43,39,,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79',
+'96,86,88,89,63,93,103,,,79,96,73,78,89,63,98,103,101,,,,73,78,,63,98',
+'-24,-24,-24,-24,,73,78,95,,98,,101,41,42,43,39,,,72,,,,86,88,,,93,95',
+'72,,79,96,86,158,89,,93,103,72,,154,,86,88,89,63,93,,,,79,96,73,78,89',
+'63,98,103,101,,,,73,78,,63,98,,101,,,,,,95,,,,,,,,,,95,72,,,,86,88,',
+',93,,72,,79,96,86,88,89,,93,103,329,,79,96,,,89,63,,103,189,193,,,,',
+',63,,184,186,190,192,,,,,,,,73,78,,,98,,101,,,,,,185,188,,,195,196,179',
+'180,182,183,95,187,191,73,78,,,98,181,101,,72,,73,78,86,88,,,93,,,,79',
+'96,95,165,89,,,103,73,78,,,98,72,101,63,,86,88,,,93,,72,,79,96,86,250',
+'89,95,93,103,73,78,154,,98,,89,63,72,,,,86,88,,,93,63,,,79,96,,,89,73',
+'78,103,,98,,101,,72,,63,,86,250,,,93,73,78,,154,98,95,101,89,,,,,,,',
+',72,,63,,86,88,95,,93,,,,79,96,,,89,72,,103,,86,88,,,93,,63,,79,96,73',
+'78,89,,98,103,101,,,,73,78,,63,98,173,101,,,,73,78,95,,98,,101,,,,73',
+'78,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79,96,86,88',
+'89,63,93,103,72,,79,96,86,250,89,63,93,103,,,154,,73,78,89,63,98,,101',
+',,,73,78,,63,98,,101,,,,73,78,95,,98,,101,,,,,,95,72,,,,86,88,,,93,95',
+'72,,79,96,86,88,89,,93,103,72,,79,96,86,88,89,63,93,103,,,79,96,73,78',
+'89,63,98,103,101,,,,73,78,,63,98,,101,,,,73,78,95,,98,,101,,,,,,95,72',
+',,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79,96,86,88,89,63,93',
+'103,,194,79,96,,,89,63,,103,189,193,,,,,204,63,,184,186,190,192,,,189',
+'193,,,,,,,,184,186,190,192,,,,,185,188,,,195,196,179,180,182,183,,187',
+'191,,,185,188,,181,195,196,179,180,182,183,,187,191,189,193,,,,181,',
+',,184,186,190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188,,,195',
+'196,179,180,182,183,,187,191,,,185,188,,181,195,196,179,180,182,183',
+',187,191,189,193,,,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186',
+'190,192,,,,,185,188,,,195,196,179,180,182,183,,187,191,,,185,188,,181',
+'195,196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186,190,192,',
+',189,193,,,,,,,265,184,186,190,192,,,,,185,188,,,195,196,179,180,182',
+'183,,187,191,,,185,188,,181,195,196,179,180,182,183,,187,191,189,193',
+',,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188',
+',,195,196,179,180,182,183,,187,191,,,,188,,181,195,196,179,180,182,183',
+',187,191,189,193,,,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186',
+'190,192,,,,,185,188,,,195,196,179,180,182,183,,187,191,,,,,,181,195',
+'196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186,190,192,,,189',
+'193,,,,,,,,184,186,190,192,,,,,,,,,195,196,179,180,182,183,,187,191',
+',,,,,181,195,196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186',
+'190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188,,,195,196,179,180',
+'182,183,,187,191,,,185,188,,181,195,196,179,180,182,183,,187,191,189',
+'193,,,,181,,,,184,186,190,192,,,,193,,,,,,,,184,,,,,,,,185,188,193,',
+'195,196,179,180,182,183,184,187,191,,,,,193,181,195,196,179,180,182',
+'183,184,187,191,,,,,,181,,193,,195,196,179,180,182,183,184,187,191,',
+',,,,181,195,196,179,180,182,183,,187,191,,284,,,,181,,,,195,196,179',
+'180,182,183,,187,191,,369,,,26,181,32,1,,8,12,,18,,24,,29,319,2,,,11',
+'26,,32,1,,8,12,,18,,24,367,29,,2,,26,11,32,1,,8,12,,18,,24,301,29,,2',
+',26,11,32,1,,8,12,,18,,24,363,29,,2,,26,11,32,1,,8,12,,18,,24,351,29',
+',2,,26,11,32,1,,8,12,,18,,24,,29,,2,,26,11,32,1,,8,12,,18,,24,,29,26',
+'2,32,1,11,8,12,,18,,24,,29,26,2,32,1,11,8,12,,18,,24,,29,26,2,32,1,11',
+'8,12,,18,,24,,29,,2,,,11,195,196,179,180,182,183,,187,191,,,,,,181,195',
+'196,179,180,182,183,,187,191,,,,,,181' ]
+ racc_action_table = arr = Array.new(2074, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -125,94 +126,95 @@ class Parser < Racc::Parser
end
clist = [
-'129,129,117,95,95,163,102,137,59,255,95,246,255,129,129,35,217,217,216',
-'280,137,33,129,129,129,129,59,280,216,216,217,102,163,163,285,246,246',
-'216,216,216,216,95,225,117,204,129,129,285,70,129,129,129,129,129,129',
-'191,129,129,191,33,216,216,33,129,216,216,216,216,216,216,229,216,216',
-'170,170,243,31,170,216,170,31,33,204,173,173,204,243,173,23,173,23,243',
-'235,174,174,170,157,174,37,174,223,67,37,23,204,173,170,157,201,37,170',
-'170,157,201,170,174,173,237,170,170,173,173,170,238,173,170,174,23,173',
-'173,174,174,173,170,174,173,75,239,174,174,175,175,174,173,175,174,175',
-'75,240,335,345,345,75,174,335,223,223,223,223,158,176,176,175,76,176',
-'24,176,158,291,24,206,241,291,175,76,291,24,175,175,76,32,175,176,345',
-'32,175,175,345,345,175,73,345,175,176,66,345,65,176,176,345,175,176',
-'60,21,21,176,176,21,206,176,345,206,176,337,337,276,276,337,320,337',
-'176,320,276,177,177,21,74,177,153,177,206,153,153,336,336,337,21,336',
-'42,336,21,21,42,254,21,177,337,212,21,42,337,337,21,276,337,336,177',
-'78,337,337,177,177,337,21,177,337,336,99,177,177,336,336,177,337,336',
-'177,330,330,336,336,121,121,336,177,208,336,178,178,207,26,178,100,178',
-'336,121,101,322,322,26,26,322,203,322,202,261,261,28,28,178,330,28,261',
-'28,330,330,262,262,330,322,178,57,330,262,178,178,330,56,178,28,322',
-'54,178,178,322,322,178,330,322,178,28,52,322,322,28,28,322,178,28,322',
-'306,306,28,28,29,29,28,322,29,28,29,50,49,48,179,179,47,28,179,45,179',
-'199,43,284,180,180,29,190,180,198,180,190,190,287,308,308,179,29,308',
-'164,288,29,29,164,164,29,180,179,289,29,29,179,179,29,114,179,29,180',
-'194,179,179,180,180,179,29,180,179,308,116,180,180,308,308,180,179,308',
-'180,224,133,308,134,181,181,308,180,181,135,181,313,315,139,182,182',
-'30,308,182,140,182,27,323,141,183,183,181,130,183,219,183,130,130,219',
-'219,329,182,181,25,331,143,181,181,145,22,181,183,182,20,181,181,182',
-'182,181,342,182,181,183,344,182,182,183,183,182,181,183,182,150,346',
-'183,183,184,184,183,182,184,183,184,19,19,19,19,151,152,183,260,260',
-'172,44,44,260,260,44,184,44,171,1,260,18,18,18,18,364,366,184,,278,278',
-'184,184,44,44,184,278,,,184,184,,,184,44,,184,,44,44,,,44,,184,,44,44',
-'132,132,44,,278,44,132,,278,278,,,278,44,,,278,277,277,,278,277,,277',
-'259,259,,,,259,259,278,,132,,,259,132,132,277,,132,185,185,,132,185',
-',185,132,277,,,,277,277,,,277,,132,,277,277,185,,277,126,126,277,,126',
-',126,,185,,277,,185,185,,,185,,,,185,185,126,126,185,127,127,185,,127',
-',127,,126,,185,,126,126,,,126,,,,126,126,127,,126,125,125,126,,125,',
-'125,,127,,126,,127,127,,,127,,,,127,127,125,,127,124,124,127,,124,,',
-',125,,127,,125,125,,,125,,,,125,125,,,125,186,186,125,,186,,186,,124',
-',125,,124,124,,,124,197,197,,124,,186,,124,,248,248,,,248,,248,186,',
-'124,,186,186,,,186,,,,186,186,,248,186,197,,186,,197,197,,,197,248,186',
-',197,248,248,,197,248,,236,236,248,248,236,,248,,197,248,62,62,,,62',
-',62,248,,,64,64,,,64,64,64,,,,247,247,62,236,247,,247,236,236,,,236',
-'64,62,,236,,62,62,236,,62,247,64,,62,62,64,64,62,236,64,62,247,,64,64',
-'247,247,64,62,247,64,228,228,247,247,,,247,64,,247,72,72,,,72,,,247',
-',,209,209,,,209,,209,,,,222,222,,228,222,,222,228,228,,,228,209,72,',
-'228,,72,72,228,,72,222,209,,72,,209,209,72,228,209,,222,,209,209,222',
-'222,209,72,222,209,167,,222,222,,,222,209,,222,167,167,7,7,7,7,,222',
-',167,167,167,167,,,263,263,263,263,,94,94,263,263,94,94,94,,,263,,,167',
-'167,,,167,167,167,167,167,167,94,167,167,77,77,,,77,167,77,,94,,,,94',
-'94,,,94,,,,94,94,77,,94,210,210,94,,210,,210,,77,,94,,77,77,,,77,,,',
-'77,77,210,,77,83,83,77,,83,,83,,210,,77,,210,210,,,210,,,,210,210,83',
-',210,84,84,210,,84,,84,,83,,210,,83,83,,,83,,,,83,83,84,,83,85,85,83',
-',85,,85,,84,,83,,84,84,,,84,,,,84,84,85,,84,86,86,84,,86,,86,,85,,84',
-',85,85,,,85,,,,85,85,86,,85,91,91,85,,91,,91,,86,,85,,86,86,,,86,,,',
-'86,86,91,,86,92,92,86,,92,,92,,91,,86,,91,91,,,91,,,,91,91,92,,91,93',
-'93,91,,93,,93,,92,,91,,92,92,,,92,,,,92,92,93,,92,213,213,92,,213,,213',
-',93,,92,,93,93,,,93,,,,93,93,213,,93,,,93,5,5,5,5,,213,,93,,213,213',
-',,213,,,88,213,213,,,213,,,213,88,88,,,,,96,213,,88,88,88,88,,,96,96',
-',,,,,,,96,96,96,96,,,,,88,88,,,88,88,88,88,88,88,,88,88,,,96,96,,88',
-'96,96,96,96,96,96,,96,96,300,300,,,,96,,,,300,300,300,300,,,166,166',
-',,,,,,,166,166,166,166,,,,,300,300,,,300,300,300,300,300,300,,300,300',
-',,166,166,,300,166,166,166,166,166,166,,166,166,165,165,,,,166,,,,165',
-'165,165,165,,,168,168,,,,,,,,168,168,168,168,,,,,165,165,,,165,165,165',
-'165,165,165,,165,165,,,168,168,,165,168,168,168,168,168,168,,168,168',
-'189,189,,,,168,,,189,189,189,189,189,,,358,358,,,,,,,,358,358,358,358',
-',,,,189,189,,,189,189,189,189,189,189,,189,189,,,358,358,,189,358,358',
-'358,358,358,358,,358,358,357,357,,,,358,,,,357,357,357,357,,,123,123',
-',,,,,,,123,123,123,123,,,,,357,357,,,357,357,357,357,357,357,,357,357',
-',,123,123,,357,123,123,123,123,123,123,,123,123,326,326,,,,123,,,,326',
-'326,326,326,,,319,319,,,,,,,,319,319,319,319,,,,,326,326,,,326,326,326',
-'326,326,326,,326,326,,,,,,326,319,319,319,319,319,319,,319,319,318,318',
-',,,319,,,,318,318,318,318,,,298,298,,,,,,,,298,298,298,298,,,,,,,,,318',
-'318,318,318,318,318,,318,318,,,298,298,,318,298,298,298,298,298,298',
-',298,298,271,271,,,,298,,,,271,271,271,271,,,272,272,,,,,,,,272,272',
-'272,272,,,,,,,,,271,271,271,271,271,271,,271,271,,,,272,,271,272,272',
-'272,272,272,272,,272,272,297,297,,,,272,,,,297,297,297,297,,,,269,,',
-',,,,,269,,,,,,,,297,297,268,,297,297,297,297,297,297,268,297,297,,,',
-',267,297,269,269,269,269,269,269,267,269,269,,,,,,269,,270,,268,268',
-'268,268,268,268,270,268,268,,,,,,268,267,267,267,267,267,267,,267,267',
-',283,,,,267,,,,270,270,270,270,270,270,,270,270,,338,,,283,270,283,283',
-',283,283,,283,,283,,283,359,283,,,283,338,,338,338,,338,338,,338,,338',
-'353,338,,338,,359,338,359,359,,359,359,,359,,359,292,359,,359,,353,359',
-'353,353,,353,353,,353,,353,169,353,,353,,292,353,292,292,,292,292,,292',
-',292,352,292,,292,,169,292,169,169,,169,169,,169,,169,,169,,169,,352',
-'169,352,352,,352,352,,352,,352,,352,0,352,0,0,352,0,0,,0,,0,,0,253,0',
-'253,253,0,253,253,,253,,253,,253,2,253,2,2,253,2,2,,2,,2,,2,,2,,,2,266',
-'266,266,266,266,266,,266,266,,,,,,266,265,265,265,265,265,265,,265,265',
-'264,264,264,264,,265,,264,264,,,,,,264' ]
- racc_action_check = arr = Array.new(2065, nil)
+'169,169,142,6,134,6,263,263,88,287,287,292,298,169,169,59,287,298,6',
+'292,263,164,169,169,169,169,88,166,166,101,101,134,134,50,50,333,101',
+'50,333,50,59,166,6,142,83,169,169,287,213,169,169,169,169,169,169,50',
+'169,169,170,170,327,327,170,169,170,217,50,101,357,357,50,50,213,213',
+'50,127,217,226,50,50,170,217,50,127,18,50,171,171,147,158,171,170,109',
+'50,12,170,170,109,12,170,49,357,158,170,170,357,357,170,1,357,170,49',
+'1,357,268,268,49,357,170,171,227,268,18,171,171,18,147,171,357,147,8',
+'171,174,174,120,171,174,230,174,8,8,231,342,342,18,120,171,82,147,220',
+'120,45,175,175,174,174,175,108,175,233,40,108,45,233,40,174,233,45,108',
+'174,174,40,235,174,175,342,81,174,174,342,342,174,239,342,174,175,79',
+'342,241,175,175,342,174,175,242,243,247,175,175,179,179,175,342,179',
+'175,179,250,13,77,180,180,13,175,180,199,180,75,199,13,334,334,179,72',
+'334,260,334,70,267,267,325,325,180,179,325,267,261,179,179,90,91,179',
+'334,180,94,179,179,180,180,179,107,180,179,334,211,180,180,334,334,180',
+'179,334,180,325,209,334,334,325,325,334,180,325,334,24,24,325,208,24',
+'69,325,334,122,26,26,122,122,26,68,26,57,325,261,261,261,261,24,55,145',
+'284,181,181,284,54,181,26,181,24,53,129,207,24,24,129,129,24,26,205',
+'283,24,26,26,181,24,26,202,178,111,26,26,178,178,26,181,24,26,145,181',
+'181,145,114,181,191,26,48,181,181,29,29,181,172,29,181,29,172,172,46',
+'128,145,187,181,285,285,297,182,182,285,285,182,29,182,87,132,285,300',
+'270,270,270,270,37,29,133,270,270,29,29,182,306,29,270,264,139,29,29',
+'264,264,29,182,32,29,143,182,182,23,318,182,320,29,146,182,182,183,183',
+'182,150,183,182,183,152,137,271,271,271,271,182,15,336,271,271,137,137',
+'286,286,183,271,155,286,286,137,137,137,137,159,286,183,343,9,160,183',
+'183,5,355,183,356,161,2,183,183,162,366,183,137,137,183,368,137,137',
+'137,137,137,137,183,137,137,299,299,,,299,137,299,,,,44,44,,,44,,44',
+',,,295,295,299,,295,,295,28,28,28,28,,44,299,,,,299,299,,,299,295,44',
+',299,299,44,44,299,,44,299,295,,44,44,295,295,44,299,295,44,,,295,295',
+'290,290,295,44,,295,,290,,,47,47,,295,47,,47,,,,289,289,,,289,,289,',
+',,184,184,47,290,184,,184,290,290,,,290,289,47,,290,,47,47,290,,47,184',
+'289,,47,47,289,289,47,290,289,47,184,,289,289,184,184,289,47,184,289',
+',,184,184,167,167,184,289,,184,167,,,,51,51,,184,51,,51,,,,52,52,,,52',
+',52,,,,185,185,51,167,185,,185,167,167,,,167,52,51,,167,,51,51,167,',
+'51,185,52,,51,51,52,52,51,167,52,51,185,,52,52,185,185,52,51,185,52',
+',,185,185,186,186,185,52,186,185,186,,,,188,188,,185,188,,188,,,,98',
+'98,186,,98,98,98,33,33,33,33,,188,186,,,,186,186,,,186,98,188,,186,186',
+'188,188,186,,188,186,98,,188,188,98,98,188,186,98,188,,,98,98,190,190',
+'98,188,190,98,190,,,,67,67,,98,67,34,34,34,34,,192,192,190,,192,,192',
+'3,3,3,3,,,190,,,,190,190,,,190,192,67,,190,190,67,67,190,,67,190,192',
+',67,,192,192,67,190,192,,,,192,192,193,193,192,67,193,192,193,,,,195',
+'195,,192,195,,195,,,,,,193,,,,,,,,,,195,193,,,,193,193,,,193,,195,,193',
+'193,195,195,193,,195,193,258,,195,195,,,195,193,,195,258,258,,,,,,195',
+',258,258,258,258,,,,,,,,255,255,,,255,,255,,,,,,258,258,,,258,258,258',
+'258,258,258,255,258,258,76,76,,,76,258,76,,255,,252,252,255,255,,,255',
+',,,255,255,76,76,255,,,255,78,78,,,78,76,78,255,,76,76,,,76,,252,,76',
+'76,252,252,76,78,252,76,240,240,252,,240,,252,76,78,,,,78,78,,,78,252',
+',,78,78,,,78,196,196,78,,196,,196,,240,,78,,240,240,,,240,232,232,,240',
+'232,196,232,240,,,,,,,,,196,,240,,196,196,232,,196,,,,196,196,,,196',
+'232,,196,,232,232,,,232,,196,,232,232,225,225,232,,225,232,225,,,,85',
+'85,,232,85,85,85,,,,224,224,225,,224,,224,,,,204,204,85,225,,,,225,225',
+',,225,224,85,,225,225,85,85,225,,85,225,224,,85,85,224,224,85,225,224',
+'85,204,,224,224,204,204,224,85,204,224,,,204,,219,219,204,224,219,,219',
+',,,218,218,,204,218,,218,,,,103,103,219,,103,,103,,,,,,218,219,,,,219',
+'219,,,219,103,218,,219,219,218,218,219,,218,219,103,,218,218,103,103',
+'218,219,103,218,,,103,103,95,95,103,218,95,103,95,,,,96,96,,103,96,',
+'96,,,,189,189,95,,189,,189,,,,,,96,95,,,,95,95,,,95,189,96,,95,95,96',
+'96,95,,96,95,189,,96,96,189,189,96,95,189,96,,99,189,189,,,189,96,,189',
+'99,99,,,,,104,189,,99,99,99,99,,,104,104,,,,,,,,104,104,104,104,,,,',
+'99,99,,,99,99,99,99,99,99,,99,99,,,104,104,,99,104,104,104,104,104,104',
+',104,104,308,308,,,,104,,,,308,308,308,308,,,344,344,,,,,,,,344,344',
+'344,344,,,,,308,308,,,308,308,308,308,308,308,,308,308,,,344,344,,308',
+'344,344,344,344,344,344,,344,344,339,339,,,,344,,,,339,339,339,339,',
+',313,313,,,,,,,,313,313,313,313,,,,,339,339,,,339,339,339,339,339,339',
+',339,339,,,313,313,,339,313,313,313,313,313,313,,313,313,347,347,,,',
+'313,,,,347,347,347,347,,,176,176,,,,,,,176,176,176,176,176,,,,,347,347',
+',,347,347,347,347,347,347,,347,347,,,176,176,,347,176,176,176,176,176',
+'176,,176,176,117,117,,,,176,,,,117,117,117,117,,,273,273,,,,,,,,273',
+'273,273,273,,,,,117,117,,,117,117,117,117,117,117,,117,117,,,,273,,117',
+'273,273,273,273,273,273,,273,273,307,307,,,,273,,,,307,307,307,307,',
+',305,305,,,,,,,,305,305,305,305,,,,,307,307,,,307,307,307,307,307,307',
+',307,307,,,,,,307,305,305,305,305,305,305,,305,305,276,276,,,,305,,',
+',276,276,276,276,,,304,304,,,,,,,,304,304,304,304,,,,,,,,,276,276,276',
+'276,276,276,,276,276,,,,,,276,304,304,304,304,304,304,,304,304,130,130',
+',,,304,,,,130,130,130,130,,,136,136,,,,,,,,136,136,136,136,,,,,130,130',
+',,130,130,130,130,130,130,,130,130,,,136,136,,130,136,136,136,136,136',
+'136,,136,136,135,135,,,,136,,,,135,135,135,135,,,,280,,,,,,,,280,,,',
+',,,,135,135,274,,135,135,135,135,135,135,274,135,135,,,,,278,135,280',
+'280,280,280,280,280,278,280,280,,,,,,280,,277,,274,274,274,274,274,274',
+'277,274,274,,,,,,274,278,278,278,278,278,278,,278,278,,194,,,,278,,',
+',277,277,277,277,277,277,,277,277,,362,,,194,277,194,194,,194,194,,194',
+',194,,194,237,194,,,194,362,,362,362,,362,362,,362,,362,360,362,,362',
+',237,362,237,237,,237,237,,237,,237,212,237,,237,,360,237,360,360,,360',
+'360,,360,,360,350,360,,360,,212,360,212,212,,212,212,,212,,212,317,212',
+',212,,350,212,350,350,,350,350,,350,,350,,350,,350,,317,350,317,317',
+',317,317,,317,,317,,317,0,317,0,0,317,0,0,,0,,0,,0,17,0,17,17,0,17,17',
+',17,,17,,17,282,17,282,282,17,282,282,,282,,282,,282,,282,,,282,281',
+'281,281,281,281,281,,281,281,,,,,,281,272,272,272,272,272,272,,272,272',
+',,,,,272' ]
+ racc_action_check = arr = Array.new(2074, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -222,210 +224,218 @@ class Parser < Racc::Parser
end
racc_action_pointer = [
- 1952, 522, 1978, nil, nil, 1188, nil, 892, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 461, 441,
- 466, 201, 462, 82, 129, 420, 283, 432, 304, 351,
- 440, 40, 144, 19, nil, 15, nil, 62, nil, nil,
- nil, nil, 202, 331, 512, 356, nil, 342, 339, 338,
- 337, nil, 317, nil, 324, nil, 303, 297, nil, 2,
- 196, nil, 805, nil, 815, 190, 171, 78, nil, nil,
- 42, nil, 878, 150, 218, 112, 139, 996, 249, nil,
- nil, nil, nil, 1046, 1071, 1096, 1121, nil, 1259, nil,
- nil, 1146, 1171, 1196, 971, 1, 1274, nil, nil, 255,
- 267, 271, -6, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 397, nil, 405, -9, nil, nil,
- nil, 269, nil, 1514, 701, 676, 626, 651, nil, -4,
- 446, nil, 559, 386, 417, 415, nil, -4, nil, 416,
- 422, 426, nil, 443, nil, 463, nil, nil, nil, nil,
- 481, 497, 469, 182, nil, nil, nil, 72, 141, nil,
- nil, nil, nil, -17, 381, 1379, 1334, 936, 1394, 1923,
- 71, 459, 451, 81, 91, 138, 158, 221, 284, 361,
- 371, 428, 438, 448, 495, 601, 726, nil, nil, 1439,
- 369, 46, nil, nil, 396, nil, nil, 743, 376, 362,
- nil, 73, 266, 293, 42, nil, 168, 279, 244, 888,
- 1021, nil, 222, 1221, nil, nil, 11, 5, nil, 448,
- nil, nil, 898, 92, 419, 18, nil, nil, 868, 59,
- nil, nil, nil, nil, nil, 83, 795, 108, 83, 97,
- 139, 159, nil, 51, nil, nil, -14, 825, 752, nil,
- nil, nil, nil, 1965, 234, -22, nil, nil, nil, 530,
- 456, 244, 255, 915, 1997, 1988, 1973, 1787, 1772, 1754,
- 1805, 1679, 1694, nil, nil, nil, 213, 576, 530, nil,
- 7, nil, nil, 1841, 347, 22, nil, 367, 374, 389,
- nil, 132, 1907, nil, nil, nil, nil, 1739, 1634, nil,
- 1319, nil, nil, nil, nil, nil, 338, nil, 381, nil,
- nil, nil, nil, 425, nil, 429, nil, nil, 1619, 1574,
- 187, nil, 294, 440, nil, nil, 1559, nil, nil, 453,
- 274, 456, nil, nil, nil, 114, 231, 211, 1859, nil,
- nil, nil, 471, nil, 475, 148, 485, nil, nil, nil,
- nil, nil, 1939, 1891, nil, nil, nil, 1499, 1454, 1875,
- nil, nil, nil, nil, 519, nil, 520, nil, nil, nil,
- nil ]
+ 1970, 72, 409, 724, nil, 433, -3, nil, 124, 436,
+ nil, nil, 58, 171, nil, 423, nil, 1983, 82, nil,
+ nil, nil, nil, 393, 270, nil, 279, nil, 436, 343,
+ nil, nil, 394, 657, 712, nil, nil, 353, nil, nil,
+ 124, nil, nil, nil, 480, 127, 346, 547, 302, 76,
+ 31, 624, 634, 266, 277, 287, nil, 288, nil, 3,
+ nil, nil, nil, nil, nil, nil, nil, 768, 263, 254,
+ 220, nil, 216, nil, nil, 193, 933, 185, 961, 180,
+ nil, 170, 135, 21, nil, 1085, nil, 346, 2, nil,
+ 215, 216, nil, nil, 220, 1219, 1229, nil, 711, 1277,
+ nil, 27, nil, 1172, 1292, nil, nil, 237, 121, 57,
+ nil, 317, nil, nil, 332, nil, nil, 1517, nil, nil,
+ 110, nil, 234, nil, nil, nil, nil, 57, 315, 300,
+ 1697, nil, 359, 367, -18, 1757, 1712, 410, nil, 377,
+ nil, nil, -9, 361, nil, 294, 398, 86, nil, nil,
+ 392, nil, 393, nil, nil, 427, nil, nil, 78, 417,
+ 404, 429, 433, nil, 9, nil, 16, 614, nil, -4,
+ 56, 84, 341, nil, 130, 150, 1472, nil, 317, 197,
+ 207, 296, 360, 407, 567, 644, 691, 295, 701, 1239,
+ 758, 278, 778, 825, 1859, 835, 1011, nil, nil, 205,
+ nil, nil, 312, nil, 1105, 313, nil, 293, 250, 251,
+ nil, 238, 1925, 23, nil, nil, nil, 41, 1162, 1152,
+ 137, nil, nil, nil, 1095, 1075, 68, 80, nil, nil,
+ 128, 101, 1028, 123, nil, 164, nil, 1893, nil, 142,
+ 986, 179, 185, 170, nil, nil, nil, 185, nil, nil,
+ 182, nil, 943, nil, nil, 908, nil, nil, 873, nil,
+ 217, 227, nil, -5, 381, nil, nil, 167, 54, nil,
+ 320, 365, 2006, 1532, 1790, nil, 1637, 1823, 1805, nil,
+ 1772, 1991, 1996, 307, 266, 304, 374, 7, nil, 557,
+ 537, nil, -1, nil, nil, 490, nil, 336, -23, 470,
+ 363, nil, nil, nil, 1652, 1592, 376, 1577, 1337, nil,
+ nil, nil, nil, 1412, nil, nil, nil, 1957, 393, nil,
+ 392, nil, nil, nil, nil, 227, nil, 49, nil, nil,
+ nil, nil, nil, 4, 217, nil, 416, nil, nil, 1397,
+ nil, nil, 140, 435, 1352, nil, nil, 1457, nil, nil,
+ 1941, nil, nil, nil, nil, 440, 442, 66, nil, nil,
+ 1909, nil, 1877, nil, nil, nil, 448, nil, 453, nil,
+ nil, nil ]
racc_action_default = [
- -180, -217, -1, -2, -3, -6, -7, -8, -9, -10,
- -11, -12, -13, -14, -15, -16, -17, -18, -19, -217,
- -23, -171, -217, -217, -217, -53, -217, -217, -217, -217,
- -217, -217, -172, -217, -170, -217, -4, -217, -25, -26,
- -27, -28, -217, -95, -217, -32, -33, -37, -38, -39,
- -40, -41, -42, -43, -44, -45, -46, -47, -75, -76,
- -77, -100, -217, -105, -217, -217, -217, -215, -158, -159,
- -197, -205, -88, -88, -56, -180, -180, -217, -217, -52,
- -171, -172, -54, -217, -217, -217, -217, -108, -217, -115,
- -116, -217, -217, -217, -217, -217, -217, -160, -161, -163,
- -180, -180, -180, -173, -175, -176, -177, -178, -179, 371,
- -21, -22, -23, -24, -171, -20, -203, -217, -93, -94,
- -96, -217, -31, -35, -217, -217, -217, -217, -101, -217,
- -217, -200, -217, -73, -203, -217, -71, -76, -77, -78,
- -79, -80, -81, -82, -83, -84, -89, -154, -155, -156,
- -203, -217, -95, -217, -59, -60, -62, -180, -217, -68,
- -69, -76, -197, -217, -217, -85, -87, -217, -86, -217,
+ -180, -217, -53, -217, -9, -217, -217, -10, -217, -23,
+ -11, -170, -172, -217, -12, -217, -13, -1, -217, -14,
+ -2, -15, -3, -217, -171, -16, -217, -17, -6, -217,
+ -18, -7, -217, -19, -8, -172, -171, -180, -54, -28,
+ -217, -25, -26, -27, -217, -180, -56, -217, -88, -180,
+ -217, -217, -217, -95, -180, -217, -52, -217, -4, -180,
+ -177, -173, -175, -205, -176, -179, -178, -88, -40, -215,
+ -217, -41, -197, -100, -45, -42, -217, -217, -217, -77,
+ -43, -44, -32, -46, -33, -217, -105, -47, -76, -75,
+ -37, -38, -159, -158, -39, -217, -217, -115, -217, -217,
+ -108, -217, -116, -217, -217, -160, -161, -163, -217, -181,
+ -182, -217, -20, -23, -171, -22, -24, -86, -197, -68,
+ -180, -59, -217, -60, -76, -62, -69, -217, -95, -217,
+ -35, -89, -217, -203, -217, -85, -87, -217, -93, -203,
+ -94, -96, -217, -180, 372, -217, -217, -217, -191, -155,
+ -217, -81, -82, -83, -77, -84, -154, -156, -76, -78,
+ -73, -79, -80, -71, -203, -31, -217, -217, -101, -217,
+ -217, -217, -217, -200, -217, -217, -217, -133, -217, -217,
-217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
- -217, -217, -217, -217, -217, -217, -217, -126, -133, -217,
- -217, -217, -208, -209, -217, -212, -213, -217, -217, -217,
- -182, -181, -180, -217, -217, -191, -217, -217, -204, -217,
- -217, -29, -202, -217, -201, -34, -217, -217, -99, -217,
- -102, -103, -217, -198, -202, -76, -144, -145, -217, -217,
- -150, -151, -152, -153, -157, -217, -74, -217, -204, -88,
- -217, -203, -57, -217, -64, -65, -217, -217, -217, -58,
- -107, -202, -214, -5, -217, -111, -117, -118, -119, -120,
- -121, -122, -123, -124, -125, -127, -128, -129, -130, -131,
- -132, -134, -135, -136, -198, -206, -217, -217, -217, -138,
- -217, -142, -162, -217, -217, -217, -185, -188, -190, -217,
- -193, -217, -217, -174, -192, -51, -97, -91, -92, -30,
- -36, -216, -98, -106, -104, -199, -203, -147, -217, -48,
- -72, -49, -90, -203, -50, -217, -61, -63, -66, -67,
- -111, -110, -217, -217, -207, -210, -211, -137, -139, -217,
- -217, -217, -165, -183, -184, -217, -217, -217, -217, -194,
- -195, -196, -217, -169, -217, -217, -202, -149, -70, -55,
- -109, -112, -217, -217, -143, -164, -186, -187, -189, -217,
- -167, -168, -146, -148, -217, -114, -217, -141, -166, -113,
- -140 ]
+ -217, -217, -217, -217, -217, -217, -217, -212, -213, -217,
+ -209, -208, -217, -126, -217, -217, -21, -190, -217, -203,
+ -185, -188, -217, -217, -57, -65, -64, -217, -217, -217,
+ -203, -201, -202, -107, -217, -217, -217, -204, -58, -214,
+ -217, -204, -217, -217, -193, -217, -174, -217, -192, -88,
+ -74, -217, -217, -202, -29, -157, -153, -217, -144, -145,
+ -76, -152, -217, -150, -151, -217, -103, -102, -217, -34,
+ -202, -198, -99, -217, -217, -136, -198, -123, -122, -117,
+ -124, -125, -128, -135, -130, -118, -134, -132, -129, -119,
+ -131, -127, -5, -217, -111, -120, -121, -217, -206, -217,
+ -217, -138, -217, -142, -162, -217, -183, -217, -204, -217,
+ -217, -165, -63, -61, -66, -67, -217, -36, -91, -50,
+ -90, -51, -97, -92, -195, -194, -196, -217, -217, -169,
+ -203, -72, -48, -49, -30, -217, -147, -203, -104, -216,
+ -199, -98, -106, -111, -217, -110, -217, -210, -207, -211,
+ -139, -137, -217, -217, -189, -184, -186, -187, -164, -55,
+ -217, -167, -168, -70, -149, -217, -202, -217, -109, -112,
+ -217, -143, -217, -166, -146, -148, -217, -114, -217, -141,
+ -113, -140 ]
racc_goto_table = [
- 23, 36, 23, 27, 2, 27, 46, 87, 20, 193,
- 20, 139, 149, 103, 148, 140, 108, 98, 160, 160,
- 100, 101, 227, 286, 78, 3, 279, 229, 145, 146,
- 146, 128, 134, 150, 196, 116, 207, 23, 321, 110,
- 153, 163, 23, 113, 115, 112, 121, 133, 113, 79,
- 112, 278, 136, 220, 237, 235, 88, 96, 37, 42,
- 254, 226, 111, 296, 142, 144, 130, 111, 199, 202,
- 240, 232, 149, 306, 148, 230, 345, 99, 316, 164,
- 289, 102, 203, 74, 294, 284, 285, 45, 339, 191,
- 129, 1, 281, nil, nil, nil, 190, nil, nil, nil,
- 160, nil, nil, 350, nil, nil, nil, 328, nil, 215,
- nil, 165, 166, 167, 168, nil, nil, nil, 307, 187,
- 188, 189, 246, 229, nil, 200, 200, 205, 217, 219,
- nil, nil, nil, 147, 141, 234, 232, 149, nil, 148,
- 230, nil, nil, nil, 241, nil, nil, nil, nil, nil,
- nil, nil, nil, 216, 257, 258, nil, 356, nil, nil,
- nil, 315, nil, nil, nil, nil, nil, 232, 149, 23,
- 148, 230, 27, 281, 331, 139, 149, 20, 148, 140,
- nil, nil, nil, 342, 293, 282, 160, 108, nil, 108,
- 325, 304, 145, 147, 231, 312, 146, nil, 256, 313,
- 234, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 196, 310, 232, 149, 143,
- 148, 230, 159, 159, nil, 354, 344, 290, 142, 144,
- nil, 234, nil, 348, nil, 363, nil, 297, 298, nil,
- 229, 300, nil, 364, 366, nil, nil, nil, nil, nil,
- 129, nil, 36, 23, nil, nil, 27, nil, 147, 231,
- nil, 20, nil, nil, nil, nil, nil, nil, nil, 232,
- 149, nil, 148, 230, nil, 318, 319, nil, nil, 233,
- 340, 234, nil, 23, 232, 149, 27, 148, 230, 147,
- 231, 20, 23, 347, nil, 27, nil, 147, 141, nil,
- 20, 351, nil, nil, 159, 326, nil, nil, nil, nil,
+ 6, 5, 58, 17, 9, 100, 84, 119, 133, 138,
+ 249, 119, 126, 55, 37, 210, 126, 6, 5, 168,
+ 106, 9, 129, 283, 162, 54, 20, 164, 151, 152,
+ 163, 61, 291, 157, 161, 149, 139, 156, 153, 226,
+ 6, 300, 247, 200, 113, 230, 122, 56, 155, 116,
+ 134, 166, 112, 335, 111, 159, 40, 248, 290, 257,
+ 172, 65, 241, 110, 160, 312, 318, 327, 357, 107,
+ 242, 143, 82, 178, 115, 235, 59, 146, 303, 293,
+ 110, 238, 119, 208, 138, 148, 108, 126, 209, 198,
+ 46, 315, 199, 15, nil, 326, nil, nil, nil, nil,
+ nil, nil, 358, nil, nil, nil, nil, nil, 6, nil,
+ nil, 220, 113, nil, nil, 297, nil, 116, 340, nil,
+ 206, 213, nil, nil, 254, nil, 306, 247, nil, 246,
+ nil, nil, nil, 157, 253, 149, nil, 156, nil, nil,
+ nil, nil, 115, nil, nil, nil, nil, nil, nil, 263,
+ 264, nil, nil, 259, nil, 251, nil, nil, 236, nil,
+ nil, 254, nil, nil, nil, 293, 246, nil, 245, 234,
+ 157, 253, 149, nil, 156, nil, nil, nil, nil, 119,
+ nil, nil, nil, 310, 126, nil, nil, 138, 65, 366,
+ 65, 368, 251, 294, 6, 5, 328, 162, 9, 320,
+ 365, 151, 152, 321, 346, 245, 157, 161, 149, 254,
+ 156, 153, 6, 5, 246, nil, 9, 361, 157, 253,
+ 149, 155, 156, nil, 99, nil, 353, 104, 159, 337,
+ 275, nil, 247, 355, 279, nil, nil, 6, 5, nil,
+ 251, 9, 117, nil, nil, nil, 314, 254, 135, 136,
+ 137, nil, 246, 245, nil, nil, 157, 253, 149, nil,
+ 156, nil, nil, nil, nil, nil, nil, 58, nil, nil,
+ nil, nil, nil, nil, nil, 198, 169, nil, 251, nil,
+ nil, nil, 6, 5, nil, nil, 9, nil, nil, nil,
+ nil, 245, nil, 176, 177, nil, nil, nil, nil, 254,
+ nil, 203, nil, nil, 246, nil, nil, 354, 157, 253,
+ 149, nil, 156, 359, 254, nil, nil, 6, 5, 246,
+ 350, 9, nil, 157, 253, 149, nil, 156, nil, nil,
+ 251, nil, nil, nil, nil, 58, nil, nil, nil, nil,
+ nil, nil, nil, 245, nil, 251, nil, nil, nil, nil,
+ 6, 5, nil, nil, 9, nil, nil, nil, 245, nil,
+ 6, 5, 6, 5, 9, nil, 9, nil, 258, nil,
+ nil, nil, nil, nil, nil, nil, nil, 267, 268, 269,
+ 270, 271, 272, 273, 274, nil, 276, 277, 278, nil,
+ 280, 281, nil, 285, 286, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 304, 305, nil, nil,
+ nil, nil, 307, 308, nil, nil, nil, nil, nil, nil,
+ 313, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 234, nil, nil, nil, nil, 23, 147,
- 231, 27, 359, nil, 233, nil, 20, nil, 234, nil,
- 88, nil, 23, 23, nil, 27, 27, nil, 36, 23,
- 20, 20, 27, nil, 357, 358, nil, 20, nil, nil,
- nil, nil, nil, nil, nil, 233, nil, nil, nil, nil,
- nil, nil, nil, 143, nil, nil, nil, nil, nil, nil,
- 159, 147, 231, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 147, 231, nil, nil,
+ nil, nil, nil, 169, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 233, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 339, nil, nil,
+ nil, nil, nil, 344, nil, nil, nil, 347, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 233, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 233 ]
+ nil, nil, 99 ]
racc_goto_check = [
- 43, 4, 43, 54, 2, 54, 25, 60, 22, 84,
- 22, 28, 37, 77, 31, 29, 63, 71, 29, 29,
- 38, 38, 69, 81, 43, 3, 65, 67, 35, 55,
- 55, 58, 41, 41, 28, 44, 42, 43, 61, 20,
- 47, 47, 43, 8, 20, 22, 23, 39, 8, 6,
- 22, 64, 52, 59, 42, 40, 26, 26, 21, 21,
- 5, 68, 6, 57, 32, 34, 23, 6, 73, 73,
- 42, 28, 37, 70, 31, 29, 27, 72, 48, 23,
- 74, 75, 76, 46, 78, 79, 80, 24, 82, 83,
- 26, 1, 67, nil, nil, nil, 23, nil, nil, nil,
- 29, nil, nil, 61, nil, nil, nil, 65, nil, 25,
- nil, 26, 26, 26, 26, nil, nil, nil, 69, 26,
- 26, 26, 47, 67, nil, 3, 3, 3, 23, 23,
- nil, nil, nil, 36, 30, 54, 28, 37, nil, 31,
- 29, nil, nil, nil, 44, nil, nil, nil, nil, nil,
- nil, nil, nil, 26, 63, 63, nil, 81, nil, nil,
- nil, 42, nil, nil, nil, nil, nil, 28, 37, 43,
- 31, 29, 54, 67, 5, 28, 37, 22, 31, 29,
- nil, nil, nil, 5, 77, 71, 29, 63, nil, 63,
- 84, 58, 35, 36, 30, 55, 55, nil, 26, 41,
- 54, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 28, 52, 28, 37, 33,
- 31, 29, 33, 33, nil, 67, 42, 3, 32, 34,
- nil, 54, nil, 42, nil, 69, nil, 26, 26, nil,
- 67, 26, nil, 5, 5, nil, nil, nil, nil, nil,
- 26, nil, 4, 43, nil, nil, 54, nil, 36, 30,
- nil, 22, nil, nil, nil, nil, nil, nil, nil, 28,
- 37, nil, 31, 29, nil, 26, 26, nil, nil, 33,
- 38, 54, nil, 43, 28, 37, 54, 31, 29, 36,
- 30, 22, 43, 25, nil, 54, nil, 36, 30, nil,
- 22, 60, nil, nil, 33, 26, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ 43, 54, 4, 2, 22, 60, 25, 33, 41, 55,
+ 69, 33, 29, 43, 38, 81, 29, 43, 54, 58,
+ 71, 22, 23, 5, 30, 38, 3, 41, 32, 33,
+ 52, 77, 65, 37, 29, 31, 44, 36, 34, 42,
+ 43, 5, 67, 84, 22, 42, 47, 6, 35, 8,
+ 47, 23, 20, 61, 73, 28, 21, 68, 64, 59,
+ 23, 63, 40, 3, 39, 57, 5, 70, 27, 72,
+ 42, 73, 24, 23, 6, 74, 75, 76, 48, 67,
+ 3, 78, 33, 79, 55, 3, 21, 29, 80, 28,
+ 46, 82, 83, 1, nil, 69, nil, nil, nil, nil,
+ nil, nil, 61, nil, nil, nil, nil, nil, 43, nil,
+ nil, 44, 22, nil, nil, 42, nil, 8, 65, nil,
+ 20, 47, nil, nil, 30, nil, 42, 67, nil, 33,
+ nil, nil, nil, 37, 29, 31, nil, 36, nil, nil,
+ nil, nil, 6, nil, nil, nil, nil, nil, nil, 23,
+ 23, nil, nil, 25, nil, 28, nil, nil, 77, nil,
+ nil, 30, nil, nil, nil, 67, 33, nil, 54, 3,
+ 37, 29, 31, nil, 36, nil, nil, nil, nil, 33,
+ nil, nil, nil, 55, 29, nil, nil, 55, 63, 5,
+ 63, 5, 28, 71, 43, 54, 58, 30, 22, 41,
+ 69, 32, 33, 52, 81, 54, 37, 29, 31, 30,
+ 36, 34, 43, 54, 33, nil, 22, 67, 37, 29,
+ 31, 35, 36, nil, 26, nil, 42, 26, 28, 84,
+ 63, nil, 67, 42, 63, nil, nil, 43, 54, nil,
+ 28, 22, 26, nil, nil, nil, 38, 30, 26, 26,
+ 26, nil, 33, 54, nil, nil, 37, 29, 31, nil,
+ 36, nil, nil, nil, nil, nil, nil, 4, nil, nil,
+ nil, nil, nil, nil, nil, 28, 26, nil, 28, nil,
+ nil, nil, 43, 54, nil, nil, 22, nil, nil, nil,
+ nil, 54, nil, 26, 26, nil, nil, nil, nil, 30,
+ nil, 26, nil, nil, 33, nil, nil, 25, 37, 29,
+ 31, nil, 36, 60, 30, nil, nil, 43, 54, 33,
+ 2, 22, nil, 37, 29, 31, nil, 36, nil, nil,
+ 28, nil, nil, nil, nil, 4, nil, nil, nil, nil,
+ nil, nil, nil, 54, nil, 28, nil, nil, nil, nil,
+ 43, 54, nil, nil, 22, nil, nil, nil, 54, nil,
+ 43, 54, 43, 54, 22, nil, 22, nil, 26, nil,
+ nil, nil, nil, nil, nil, nil, nil, 26, 26, 26,
+ 26, 26, 26, 26, 26, nil, 26, 26, 26, nil,
+ 26, 26, nil, 26, 26, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 54, nil, nil, nil, nil, 43, 36,
- 30, 54, 2, nil, 33, nil, 22, nil, 54, nil,
- 26, nil, 43, 43, nil, 54, 54, nil, 4, 43,
- 22, 22, 54, nil, 26, 26, nil, 22, nil, nil,
- nil, nil, nil, nil, nil, 33, nil, nil, nil, nil,
- nil, nil, nil, 33, nil, nil, nil, nil, nil, nil,
- 33, 36, 30, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 36, 30, nil, nil,
+ nil, nil, nil, nil, nil, nil, 26, 26, nil, nil,
+ nil, nil, 26, 26, nil, nil, nil, nil, nil, nil,
+ 26, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 33, nil, nil, nil, nil,
+ nil, nil, nil, 26, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 26, nil, nil,
+ nil, nil, nil, 26, nil, nil, nil, 26, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 33, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 33 ]
+ nil, nil, 26 ]
racc_goto_pointer = [
- nil, 91, 4, 25, -1, -109, 25, nil, 6, nil,
+ nil, 93, 3, 26, -15, -171, 34, nil, 9, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 2, 40, 8, 2, 66, -15, 28, -230, -61, -57,
- 62, -58, -8, 147, -7, -44, 61, -60, -11, -25,
- -78, -40, -80, 0, -8, nil, 60, -35, -165, nil,
- nil, nil, -20, nil, 3, -43, nil, -145, -31, -76,
- -21, -217, nil, -17, -146, -171, nil, -105, -71, -110,
- -155, -13, 47, -32, -122, 48, -20, -20, -122, -116,
- -115, -178, -203, -6, -86, nil ]
+ 12, 53, 4, -25, 48, -18, 198, -259, -12, -33,
+ -43, -32, -39, -38, -29, -19, -30, -34, 13, -3,
+ -98, -40, -94, 0, -17, nil, 84, 1, -139, nil,
+ nil, nil, -37, nil, 1, -44, nil, -166, -59, -110,
+ -21, -231, nil, 43, -146, -172, nil, -125, -110, -157,
+ -185, -12, 37, 17, -68, 58, 18, 13, -66, -26,
+ -21, -94, -142, -9, -58, nil ]
racc_goto_default = [
- nil, nil, 253, 154, 4, nil, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, nil, 55, nil, nil, 89, 123, 213, 47, 48,
- 49, 50, 51, 52, 53, 54, 56, 57, 22, nil,
- nil, nil, nil, 65, nil, 24, nil, nil, 155, 243,
- 156, 158, nil, 135, 67, 118, 119, 120, nil, nil,
- nil, nil, 90, 69, nil, nil, 280, 66, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 104, nil,
- nil, nil, nil, nil, nil, 194 ]
+ nil, nil, 282, 121, 22, nil, 28, 31, 34, 4,
+ 7, 10, 14, 16, 19, 21, 25, 27, 30, 33,
+ 3, nil, 74, nil, nil, 97, 130, 224, 90, 91,
+ 94, 68, 71, 75, 80, 81, 83, 87, 23, nil,
+ nil, nil, nil, 70, nil, 13, nil, nil, 123, 217,
+ 125, 127, nil, 150, 69, 131, 140, 141, nil, nil,
+ nil, nil, 102, 92, nil, nil, 292, 77, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 62, nil,
+ nil, nil, nil, nil, nil, 202 ]
racc_reduce_table = [
0, 0, :racc_error,
@@ -612,7 +622,7 @@ class Parser < Racc::Parser
0, 147, :_reduce_181,
1, 141, :_reduce_none,
3, 141, :_reduce_183,
- 3, 141, :_reduce_184,
+ 4, 141, :_reduce_184,
1, 148, :_reduce_none,
3, 148, :_reduce_186,
3, 149, :_reduce_187,
@@ -648,7 +658,7 @@ class Parser < Racc::Parser
racc_reduce_n = 217
-racc_shift_n = 371
+racc_shift_n = 372
racc_token_table = {
false => 0,
View
2 lib/puppet/provider/service/init.rb
@@ -12,6 +12,8 @@ class << self
@defpath = ["/etc/rc.d", "/usr/local/etc/rc.d"]
when "HP-UX"
@defpath = "/sbin/init.d"
+ when "Archlinux"
+ @defpath = "/etc/rc.d"
else
@defpath = "/etc/init.d"
end
View
5 lib/puppet/provider/sshkey/parsed.rb
@@ -8,11 +8,10 @@
end
- Puppet::Type.type(:sshkey).provide(
- :parsed,
+Puppet::Type.type(:sshkey).provide(
+ :parsed,
:parent => Puppet::Provider::ParsedFile,
:default_target => known,
-
:filetype => :flat
) do
desc "Parse and generate host-wide known hosts files for SSH."
View
6 lib/puppet/reference/providers.rb
@@ -35,11 +35,7 @@
functional = false
notes = []
- begin
- default = type.defaultprovider.name
- rescue Puppet::DevError
- default = "none"
- end
+ default = type.defaultprovider ? type.defaultprovider.name : 'none'
type.providers.sort { |a,b| a.to_s <=> b.to_s }.each do |pname|
data = []
table_data[pname] = data
View
2 lib/puppet/ssl/host.rb
@@ -173,6 +173,8 @@ def generate_certificate_request(options = {})
# ...add our configured dns_alt_names
if Puppet[:dns_alt_names] and Puppet[:dns_alt_names] != ''
options[:dns_alt_names] ||= Puppet[:dns_alt_names]
+ elsif Puppet::SSL::CertificateAuthority.ca? and fqdn = Facter.value(:fqdn) and domain = Facter.value(:domain)
+ options[:dns_alt_names] = "puppet, #{fqdn}, puppet.#{domain}"
end
end
View
157 lib/puppet/transaction.rb
@@ -92,7 +92,7 @@ def eval_resource(resource, ancestor = nil)
# collects all of the changes, executes them, and responds to any
# necessary events.
def evaluate
- prepare
+ add_dynamically_generated_resources
Puppet.info "Applying configuration version '#{catalog.version}'" if catalog.version
@@ -220,9 +220,7 @@ def generate_additional_resources(resource)
end
end
- # Collect any dynamically generated resources. This method is called
- # before the transaction starts.
- def xgenerate
+ def add_dynamically_generated_resources
@catalog.vertices.each { |resource| generate_additional_resources(resource) }
end
@@ -241,41 +239,56 @@ def initialize(catalog, report = nil)
@event_manager = Puppet::Transaction::EventManager.new(self)
@resource_harness = Puppet::Transaction::ResourceHarness.new(self)
+
+ @prefetched_providers = Hash.new { |h,k| h[k] = {} }
end
- # Prefetch any providers that support it. We don't support prefetching
- # types, just providers.
- def prefetch
- prefetchers = {}
- @catalog.vertices.each do |resource|
- if provider = resource.provider and provider.class.respond_to?(:prefetch)
- prefetchers[provider.class] ||= {}
- prefetchers[provider.class][resource.name] = resource
- end
- end
+ def resources_by_provider(type_name, provider_name)
+ unless @resources_by_provider
+ @resources_by_provider = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = {} } }
- # Now call prefetch, passing in the resources so that the provider instances can be replaced.
- prefetchers.each do |provider, resources|
- Puppet.debug "Prefetching #{provider.name} resources for #{provider.resource_type.name}"
- begin
- provider.prefetch(resources)
- rescue => detail
- puts detail.backtrace if Puppet[:trace]
- Puppet.err "Could not prefetch #{provider.resource_type.name} provider '#{provider.name}': #{detail}"
+ @catalog.vertices.each do |resource|
+ if resource.class.attrclass(:provider)
+ prov = resource.provider && resource.provider.class.name
+ @resources_by_provider[resource.type][prov][resource.name] = resource
+ end
end
end
+
+ @resources_by_provider[type_name][provider_name] || {}
end
- # Prepare to evaluate the resources in a transaction.
- def prepare
- # Now add any dynamically generated resources
- xgenerate
+ def prefetch_if_necessary(resource)
+ provider_class = resource.provider.class
+ return unless provider_class.respond_to?(:prefetch) and !prefetched_providers[resource.type][provider_class.name]
- # Then prefetch. It's important that we generate and then prefetch,
- # so that any generated resources also get prefetched.
- prefetch
+ resources = resources_by_provider(resource.type, provider_class.name)
+
+ if provider_class == resource.class.defaultprovider
+ providerless_resources = resources_by_provider(resource.type, nil)
+ providerless_resources.values.each {|res| res.provider = provider_class.name}
+ resources.merge! providerless_resources
+ end
+
+ prefetch(provider_class, resources)
end
+ attr_reader :prefetched_providers
+
+ # Prefetch any providers that support it, yo. We don't support prefetching
+ # types, just providers.
+ def prefetch(provider_class, resources)
+ type_name = provider_class.resource_type.name
+ return if @prefetched_providers[type_name][provider_class.name]
+ Puppet.debug "Prefetching #{provider_class.name} resources for #{type_name}"
+ begin
+ provider_class.prefetch(resources)
+ rescue => detail
+ puts detail.backtrace if Puppet[:trace]
+ Puppet.err "Could not prefetch #{type_name} provider '#{provider_class.name}': #{detail}"
+ end
+ @prefetched_providers[type_name][provider_class.name] = true
+ end
# We want to monitor changes in the relationship graph of our
# catalog but this is complicated by the fact that the catalog
@@ -303,6 +316,7 @@ def initialize(real_graph,transaction)
@done = {}
@blockers = {}
@unguessable_deterministic_key = Hash.new { |h,k| h[k] = Digest::SHA1.hexdigest("NaCl, MgSO4 (salts) and then #{k.ref}") }
+ @providerless_types = []
vertices.each do |v|
blockers[v] = direct_dependencies_of(v).length
enqueue(v) if blockers[v] == 0
@@ -321,39 +335,86 @@ def add_edge(f,t,label=nil)
real_graph.add_edge(f,t,label)
end
- # Decrement the blocker count for resource r by 1. If the number of
+ # Decrement the blocker count for the resource by 1. If the number of
# blockers is unknown, count them and THEN decrement by 1.
- def unblock(r)
- blockers[r] ||= direct_dependencies_of(r).select { |r2| !done[r2] }.length
- if blockers[r] > 0
- blockers[r] -= 1
+ def unblock(resource)
+ blockers[resource] ||= direct_dependencies_of(resource).select { |r2| !done[r2] }.length
+ if blockers[resource] > 0
+ blockers[resource] -= 1
else
- r.warning "appears to have a negative number of dependencies"
+ resource.warning "appears to have a negative number of dependencies"
end
- blockers[r] <= 0
+ blockers[resource] <= 0
end
- def enqueue(r)
- key = unguessable_deterministic_key[r]
- ready[key] = r
+ def enqueue(*resources)
+ resources.each do |resource|
+ key = unguessable_deterministic_key[resource]
+ ready[key] = resource
+ end
+ end
+ def finish(resource)
+ direct_dependents_of(resource).each do |v|
+ enqueue(v) if unblock(v)
+ end
+ done[resource] = true
end
def next_resource
ready.delete_min
end
def traverse(&block)
real_graph.report_cycles_in_graph
- while (r = next_resource) && !transaction.stop_processing?
- # If we generated resources, we don't know what they are now
- # blocking, so we opt to recompute it, rather than try to track every
- # change that would affect the number.
- blockers.clear if transaction.eval_generate(r)
+ deferred_resources = []
+
+ while (resource = next_resource) && !transaction.stop_processing?
+ if resource.suitable?
+ made_progress = true
+
+ transaction.prefetch_if_necessary(resource)
+
+ # If we generated resources, we don't know what they are now
+ # blocking, so we opt to recompute it, rather than try to track every
+ # change that would affect the number.
+ blockers.clear if transaction.eval_generate(resource)
+
+ yield resource
+
+ finish(resource)
+ else
+ deferred_resources << resource
+ end
- yield r
+ if ready.empty? and deferred_resources.any?
+ if made_progress
+ enqueue(*deferred_resources)
+ else
+ fail_unsuitable_resources(deferred_resources)
+ end
- direct_dependents_of(r).each do |v|
- enqueue(v) if unblock(v)
+ made_progress = false
+ deferred_resources = []
end
- done[r] = true
+ end
+
+ # Just once per type. No need to punish the user.
+ @providerless_types.uniq.each do |type|
+ Puppet.err "Could not find a suitable provider for #{type}"
+ end
+ end
+
+ def fail_unsuitable_resources(resources)
+ resources.each do |resource|
+ # We don't automatically assign unsuitable providers, so if there
+ # is one, it must have been selected by the user.
+ if resource.provider
+ resource.err "Provider #{resource.provider.class.name} is not functional on this host"
+ else
+ @providerless_types << resource.type
+ end
+
+ transaction.resource_status(resource).failed = true
+
+ finish(resource)
end
end
end
View
55 lib/puppet/type.rb
@@ -1383,33 +1383,25 @@ class << self
# Find the default provider.
def self.defaultprovider
- unless @defaultprovider
- suitable = suitableprovider
+ return @defaultprovider if @defaultprovider
- # Find which providers are a default for this system.
- defaults = suitable.find_all { |provider| provider.default? }
+ suitable = suitableprovider
- # If we don't have any default we use suitable providers
- defaults = suitable if defaults.empty?
- max = defaults.collect { |provider| provider.specificity }.max
- defaults = defaults.find_all { |provider| provider.specificity == max }
+ # Find which providers are a default for this system.
+ defaults = suitable.find_all { |provider| provider.default? }
- retval = nil
- if defaults.length > 1
- Puppet.warning(
- "Found multiple default providers for #{self.name}: #{defaults.collect { |i| i.name.to_s }.join(", ")}; using #{defaults[0].name}"
- )
- retval = defaults.shift
- elsif defaults.length == 1
- retval = defaults.shift
- else
- raise Puppet::DevError, "Could not find a default provider for #{self.name}"
- end
+ # If we don't have any default we use suitable providers
+ defaults = suitable if defaults.empty?
+ max = defaults.collect { |provider| provider.specificity }.max
+ defaults = defaults.find_all { |provider| provider.specificity == max }
- @defaultprovider = retval
+ if defaults.length > 1
+ Puppet.warning(
+ "Found multiple default providers for #{self.name}: #{defaults.collect { |i| i.name.to_s }.join(", ")}; using #{defaults[0].name}"
+ )
end
- @defaultprovider
+ @defaultprovider = defaults.shift unless defaults.empty?
end
def self.provider_hash_by_type(type)
@@ -1516,7 +1508,8 @@ def self.doc
end
defaultto {
- @resource.class.defaultprovider.name
+ prov = @resource.class.defaultprovider
+ prov.name if prov
}
validate do |provider_class|
@@ -1560,6 +1553,24 @@ def self.suitableprovider
}.reject { |p| p.name == :fake } # For testing
end
+ def suitable?
+ # If we don't use providers, then we consider it suitable.
+ return true unless self.class.paramclass(:provider)
+
+ # We have a provider and it is suitable.
+ return true if provider && provider.class.suitable?
+
+ # We're using the default provider and there is one.
+ if !provider and self.class.defaultprovider
+ self.provider = self.class.defaultprovider.name
+ return true
+ end
+
+ # We specified an unsuitable provider, or there isn't any suitable
+ # provider.
+ false
+ end
+
def provider=(name)
if name.is_a?(Puppet::Provider)
@provider = name
View
9 lib/puppet/type/file/mode.rb
@@ -73,6 +73,13 @@ def retrieve
super
end
+
+ def should_to_s(should_value)
+ should_value.rjust(4,"0")
+ end
+
+ def is_to_s(currentvalue)
+ currentvalue.rjust(4,"0")
+ end
end
end
-
View
16 lib/puppet/util/settings/file_setting.rb
@@ -91,7 +91,20 @@ def to_resource
resource = Puppet::Resource.new(:file, path)
if Puppet[:manage_internal_file_permissions]
- resource[:mode] = self.mode if self.mode
+ if self.mode
+ # This ends up mimicking the munge method of the mode
+ # parameter to make sure that we're always passing the string
+ # version of the octal number. If we were setting the
+ # 'should' value for mode rather than the 'is', then the munge
+ # method would be called for us automatically. Normally, one
+ # wouldn't need to call the munge method manually, since
+ # 'should' gets set by the provider and it should be able to
+ # provide the data in the appropriate format.
+ mode = self.mode
+ mode = mode.to_i(8) if mode.is_a?(String)
+ mode = mode.to_s(8)
+ resource[:mode] = mode
+ end
# REMIND fails on Windows because chown/chgrp functionality not supported yet
if Puppet.features.root? and !Puppet.features.microsoft_windows?
@@ -122,4 +135,3 @@ def validate(value)
}
end
end
-
View
10 spec/integration/provider/service/init_spec.rb
@@ -5,7 +5,7 @@
describe provider, :'fails_on_ruby_1.9.2' => true do
describe "when running on FreeBSD", :if => (Facter.value(:operatingsystem) == "FreeBSD") do
- it "should set its default path to include /etc/init.d and /usr/local/etc/init.d" do
+ it "should set its default path to include /etc/rc.d and /usr/local/etc/rc.d" do
provider.defpath.should == ["/etc/rc.d", "/usr/local/etc/rc.d"]
end
end
@@ -16,7 +16,13 @@
end
end
- describe "when not running on FreeBSD or HP-UX", :if => (! %w{HP-UX FreeBSD}.include?(Facter.value(:operatingsystem))) do
+ describe "when running on Archlinux", :if => (Facter.value(:operatingsystem) == "Archlinux") do
+ it "should set its default path to include /etc/rc.d" do
+ provider.defpath.should == "/etc/rc.d"
+ end
+ end
+
+ describe "when not running on FreeBSD, HP-UX or Archlinux", :if => (! %w{HP-UX FreeBSD Archlinux}.include?(Facter.value(:operatingsystem))) do
it "should set its default path to include /etc/init.d" do
provider.defpath.should == "/etc/init.d"
end
View
2 spec/integration/reference/providers_spec.rb
@@ -11,6 +11,6 @@
end
it "should be able to be rendered as markdown" do
- lambda { reference.to_markdown }.should_not raise_error
+ reference.to_markdown
end
end
View
9 spec/unit/application/apply_spec.rb
@@ -66,15 +66,6 @@
@apply.options.stubs(:[]).with(any_parameters)
end
- it "should set show_diff on --noop" do
- Puppet[:noop] = true
- Puppet[:show_diff] = false
-
- @apply.setup
-
- Puppet[:show_diff].should == true
- end
-
it "should set console as the log destination if logdest option wasn't provided" do
Puppet::Log.expects(:newdestination).with(:console)
View
22 spec/unit/indirector/facts/inventory_service_spec.rb
@@ -0,0 +1,22 @@
+#!/usr/bin/env rspec
+require 'spec_helper'
+
+require 'puppet/indirector/facts/inventory_service'
+
+describe Puppet::Node::Facts::InventoryService do
+ it "should suppress failures and warn when saving facts" do
+ facts = Puppet::Node::Facts.new('foo')
+ request = Puppet::Indirector::Request.new(:facts, :save, facts)
+
+ Net::HTTP.any_instance.stubs(:put).raises(Errno::ECONNREFUSED)
+
+ Puppet.expects(:warning).with do |msg|
+ msg =~ /Could not upload facts for foo to inventory service/
+ end
+
+ expect {
+ subject.save(request)
+ }.should_not raise_error
+ end
+end
+
View
4 spec/unit/parser/parser_spec.rb
@@ -369,6 +369,10 @@
@parser.parse("class foobar { $var = val }").code[0].code.should_not be_nil
end
+ it "should accept parametrized classes with trailing comma" do
+ @parser.parse("class foobar ($var1 = 0,) { $var = val }").code[0].code.should_not be_nil
+ end
+
it "should define parameters when provided" do
foobar = @parser.parse("class foobar($biz,$baz) {}").code[0].instantiate('')[0]
foobar.arguments.should == {"biz" => nil, "baz" => nil}
View
1 spec/unit/provider/exec/windows_spec.rb
@@ -9,6 +9,7 @@
let(:provider) { described_class.new(resource) }
before :each do
+ Facter.stubs(:value).with(:operatingsystem).returns 'Windows'
Puppet.features.stubs(:microsoft_windows?).returns(true)
Puppet.features.stubs(:posix?).returns(false)
end