Fix memcached recipe for SUSE
Fix uid & gid substitution in rsyncd.conf.erb, remove duplicates

Signed-off-by: Tim Serong <tserong@suse.com>
Before applying the proposal, check there's at least one replica

If there's no replica, well, nothing can work since it means nothing is
ever saved. (And swift doesn't really like that ;-))

https://bugzilla.novell.com/show_bug.cgi?id=774316
Validate swift-storage nodes since they need an additional disk

By validating this early, we can get a clear error message instead of
the cryptic "Failed to apply proposal" message we get when applying the
proposal.

https://bugzilla.novell.com/show_bug.cgi?id=774314
Check that we have enough swift-storage nodes

We need at least as many swift-storage nodes as zones. This makes sense
to me, and this is what we say in the deployment guide.
swift-storage nodes cannot be ceph-storage/nova-multi-controller too

There's a conflict in how additional disks are used between all those
roles.

https://bugzilla.novell.com/show_bug.cgi?id=774317
Simplify error message

There's no need to mention the current value of replicas...
Use third validation step for proposals

We don't want destructive validation.

https://bugzilla.novell.com/show_bug.cgi?id=776375
Raise one exception with all errors for the validation

It's better to display all errors at once.
Fix validation now that we do all tests together

It could be that there's no swift-storage element at all, and we used to
raise an exception which made us stop all checks. Now that we continue
with all other checks, this could fail.
Use \n instead of <br/> in validation error message

We shouldn't assume HTML will be used.
Use log_level = INFO if node[:swift][:debug] is off.

This looks like nitpicking but actually is the only change to the
proxy config that I can make to test the conditional service
restart, bnc#776903.
Remove user/group from the barclamp template

The user/group is "hardcoded" by the OpenStack packages
anyway, it doesn't make sense to offer to change them
Set correct user/group name for SUSE

We prefix the username/group with openstack-
Include memcached recipie from proxy cookbook