summaryrefslogtreecommitdiff
path: root/doc/todo/type_level_port_conflict_detection.mdwn
diff options
context:
space:
mode:
authorJoey Hess2016-03-31 02:20:55 -0400
committerJoey Hess2016-03-31 02:20:55 -0400
commit800bf046b6817ae4f1a0fe4104a22f99c997be51 (patch)
tree7400d9906f0a1b3a22666525fab896c5a892c6fb /doc/todo/type_level_port_conflict_detection.mdwn
parentf03ba9aa382baa0f6394ad9125573f0ee7b7af2f (diff)
update
Diffstat (limited to 'doc/todo/type_level_port_conflict_detection.mdwn')
-rw-r--r--doc/todo/type_level_port_conflict_detection.mdwn25
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/todo/type_level_port_conflict_detection.mdwn b/doc/todo/type_level_port_conflict_detection.mdwn
index 47d5f0cf..b89ad239 100644
--- a/doc/todo/type_level_port_conflict_detection.mdwn
+++ b/doc/todo/type_level_port_conflict_detection.mdwn
@@ -8,3 +8,28 @@ I have a `resourceconflict` branch that adds this in Propellor.Resources,
but it is not yet integrated into the Property types. --[[Joey]]
[[!tag user/joey]]
+
+> On `typed-os-requirements` branch, I have the UsingPort 80 singleton
+> implemented. As soon as I tried to apply it to some apache properties
+> though, I realized a problem -- If multiple apache vhosts are defined
+> each as its own property, then each of those properties can't have
+> UsingPort 80. Because the idea is to not allow combining 2 properties
+> that use the same pprt.
+>
+> Similarly, Apache.installed can't have UsingPort 80, because each of the
+> vhost properties requires that, and would inherit it.
+>
+> So, this could be used for non-vhost stuff, like simple web servers, tor
+> nodes, etc. But how to handle vhosts?
+>
+> Of course, there could be a single property that defines all of a host's
+> apache vhosts, and it could then have UsingPort 80. But that loses the
+> flexible composition of properties.
+>
+> I suppose we could include the server: `UsingPort 80 Apache`
+> (or `UsingPort 80 "apache"` to avoid needing a data type with all the
+> servers. Or even write it `"apache" '> 80`)
+> And allow combining properties that have the same server on the same
+> port. Don't allow combining `UsingPort 80 Apache` with `UsingPort 80 Ngnix`
+>
+> --[[Joey]]