Skip to content
This repository has been archived by the owner on Jul 14, 2022. It is now read-only.

Commit

Permalink
Make the server names associated with an endpoint a list rather than …
Browse files Browse the repository at this point in the history
…a singleton

Reviewers: jeeva

Subscribers: #helix_omniscient

Differential Revision: http://phab.helixta.com.au/D22288
  • Loading branch information
timbod7 committed Feb 18, 2019
1 parent 43a24d8 commit cb5b8dc
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 15 deletions.
2 changes: 1 addition & 1 deletion adl/config.adl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ union MachineLabel {
// A proxy exposed endpoint
struct EndPoint {
EndPointLabel label;
String serverName;
Vector<String> serverNames;
EndPointType etype;
};

Expand Down
10 changes: 5 additions & 5 deletions src/ADL/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -85,26 +85,26 @@ instance AdlValue DeployMode where

data EndPoint = EndPoint
{ ep_label :: ADL.Types.EndPointLabel
, ep_serverName :: T.Text
, ep_serverNames :: [T.Text]
, ep_etype :: EndPointType
}
deriving (Prelude.Eq,Prelude.Ord,Prelude.Show)

mkEndPoint :: ADL.Types.EndPointLabel -> T.Text -> EndPointType -> EndPoint
mkEndPoint label serverName etype = EndPoint label serverName etype
mkEndPoint :: ADL.Types.EndPointLabel -> [T.Text] -> EndPointType -> EndPoint
mkEndPoint label serverNames etype = EndPoint label serverNames etype

instance AdlValue EndPoint where
atype _ = "config.EndPoint"

jsonGen = genObject
[ genField "label" ep_label
, genField "serverName" ep_serverName
, genField "serverNames" ep_serverNames
, genField "etype" ep_etype
]

jsonParser = EndPoint
<$> parseField "label"
<*> parseField "serverName"
<*> parseField "serverNames"
<*> parseField "etype"

data EndPointType
Expand Down
4 changes: 2 additions & 2 deletions src/Commands/ProxyMode.hs
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ showStatus showSlaves = do
T.putStrLn "Endpoints:"
for_ (pmEndPoints pm) $ \ep -> do
let etype = case ep_etype ep of
Ep_httpOnly -> "(" <> ep_serverName ep <> ":80)"
Ep_httpsWithRedirect _ -> "(" <> ep_serverName ep <> ":80,443)"
Ep_httpOnly -> "(" <> T.intercalate ", " [sn <> ":80" |sn <- ep_serverNames ep ] <> ")"
Ep_httpsWithRedirect _ -> "(" <> T.intercalate ", " [sn <> ":80,443" |sn <- ep_serverNames ep ] <> ")"
let connected = case SM.lookup (ep_label ep) (s_connections state) of
Nothing -> "(not connected)"
Just deployLabel -> deployLabel
Expand Down
14 changes: 7 additions & 7 deletions src/Commands/ProxyMode/LocalState.hs
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ generateLocalSslCertificate = do
tcfg <- getToolConfig
pm <- getProxyModeConfig
proxyDir <- getProxyDir
let serverNames = [serverName |
EndPoint{ep_serverName=serverName,ep_etype=Ep_httpsWithRedirect Scm_generated} <- M.elems (SM.toMap (pm_endPoints pm))]
let serverNames = concat [serverNames |
EndPoint{ep_serverNames=serverNames,ep_etype=Ep_httpsWithRedirect Scm_generated} <- M.elems (SM.toMap (pm_endPoints pm))]
ledir = tc_letsencryptPrefixDir tcfg
lewwwdir = tc_letsencryptWwwDir tcfg
certbotCmd = T.intercalate " " (
Expand Down Expand Up @@ -271,7 +271,7 @@ writeNginxConfig tcfg path eps = T.writeFile path (T.intercalate "\n" lines)
serverBlock (ep@EndPoint{ep_etype=Ep_httpOnly},Just d) =
[ " server {"
, " listen 80;"
, " server_name " <> ep_serverName ep <> ";"
, " server_name " <> T.intercalate " " (ep_serverNames ep) <> ";"
, " location / {"
, " proxy_set_header Host $host;"
, " proxy_pass http://localhost:" <> showText (d_port d) <> "/;"
Expand All @@ -281,14 +281,14 @@ writeNginxConfig tcfg path eps = T.writeFile path (T.intercalate "\n" lines)
serverBlock (ep@EndPoint{ep_etype=Ep_httpOnly},Nothing) =
[ " server {"
, " listen 80;"
, " server_name " <> ep_serverName ep <> ";"
, " server_name " <> T.intercalate " " (ep_serverNames ep) <> ";"
, " return 503;"
, " }"
]
serverBlock (ep@EndPoint{ep_etype=Ep_httpsWithRedirect certMode},Just d) =
[ " server {"
, " listen 80;"
, " server_name " <> ep_serverName ep <> ";"
, " server_name " <> T.intercalate " " (ep_serverNames ep) <> ";"
, " location '/.well-known/acme-challenge' {"
, " default_type \"text/plain\";"
, " alias " <> tc_letsencryptWwwDir tcfg <> "/.well-known/acme-challenge;"
Expand All @@ -299,7 +299,7 @@ writeNginxConfig tcfg path eps = T.writeFile path (T.intercalate "\n" lines)
, " }"
, " server {"
, " listen 443 ssl;"
, " server_name " <> ep_serverName ep <> ";"
, " server_name " <> T.intercalate " " (ep_serverNames ep) <> ";"
, " ssl_certificate " <> sslCertPath certMode <> ";"
, " ssl_certificate_key " <> sslCertKeyPath certMode <> ";"
, " location / {"
Expand All @@ -311,7 +311,7 @@ writeNginxConfig tcfg path eps = T.writeFile path (T.intercalate "\n" lines)
serverBlock (ep@EndPoint{ep_etype=Ep_httpsWithRedirect certMode},Nothing) =
[ " server {"
, " listen 80;"
, " server_name " <> ep_serverName ep <> ";"
, " server_name " <> T.intercalate " " (ep_serverNames ep) <> ";"
, " location '/.well-known/acme-challenge' {"
, " default_type \"text/plain\";"
, " alias " <> tc_letsencryptWwwDir tcfg <> "/.well-known/acme-challenge;"
Expand Down

0 comments on commit cb5b8dc

Please sign in to comment.