lib/specinfra/command/base.rb in specinfra-2.0.0.beta5 vs lib/specinfra/command/base.rb in specinfra-2.0.0.beta6
- old
+ new
@@ -78,11 +78,11 @@
def check_user(user)
"id #{escape(user)}"
end
def check_group(group)
- "getent group | grep -wq -- #{escape(group)}"
+ "getent group #{escape(group)}"
end
def check_installed(package, version=nil)
raise NotImplementedError.new
end
@@ -93,18 +93,19 @@
def check_service_start_mode(service, mode)
raise NotImplementedError.new
end
- def check_listening(port)
- regexp = ":#{port} "
- "netstat -tunl | grep -- #{escape(regexp)}"
+ def check_listening(port, options = {})
+ pattern = ":#{port}"
+ pattern = " #{options[:local_address]}#{pattern}" if options[:local_address]
+ pattern = "^#{options[:protocol]} .*#{pattern}" if options[:protocol]
+ "netstat -tunl | grep -- #{escape(pattern)}"
end
def check_listening_with_protocol(port, protocol)
- regexp = "^#{protocol} .*:#{port} "
- "netstat -tunl | grep -- #{escape(regexp)}"
+ check_listening port, {:protocol => protocol}
end
def check_running(service)
"service #{escape(service)} status"
end
@@ -198,10 +199,10 @@
regexp = "^#{group}$"
"stat -c %G #{escape(file)} | grep -- #{escape(regexp)}"
end
def check_cron_entry(user, entry)
- entry_escaped = entry.gsub(/\*/, '\\*')
+ entry_escaped = entry.gsub(/\*/, '\\*').gsub(/\[/, '\\[').gsub(/\]/, '\\]')
if user.nil?
"crontab -l | grep -v \"#\" -- | grep -- #{escape(entry_escaped)}"
else
"crontab -u #{escape(user)} -l | grep -v \"#\" | grep -- #{escape(entry_escaped)}"
end