<IfModule proxy_module>
    ProxyPreserveHost on

    # Map /fabric to the onos instance that is controlling the leaf
    #     spine fabric
    <Location /fabric/>
        ProxyPass http://onos-fabric:8181/
        ProxyPassReverse http://onos-fabric:8181/
        ProxyPassReverseCookiePath  "/"  "/fabric/"
        Header edit Location "(^http[s]?://[^/]*)(\.*)" "$1/fabric$2"
    </Location>
    <Location /fabric/onos/ui/websock/>
        ProxyPass "ws://onos-fabric:8181/onos/ui/websock/" disablereuse=on
    </Location>

    # kibana/elasticsearch
    <Location /kibana>
      ProxyPass http://localhost:5601
      ProxyPassReverse http://localhost:5601
    </Location>

    # Map /vtn to the onos instance that is controller the cordvtn
    #     application
    <Location /vtn/>
        ProxyPass http://onos-cord:8182/
        ProxyPassReverse http://onos-cord:8182/
        ProxyPassReverseCookiePath  "/"  "/vtn/"
        Header edit Location "(^http[s]?://[^/]*)(\.*)" "$1/vtn$2"
    </Location>

    <Location /vtn/onos/ui/websock/>
        ProxyPass "ws://onos-cord:8182/onos/ui/websock/" disablereuse=on
    </Location>

    # Cord SPA and rest-gw
    ProxyPass /spa http://xos-spa-gui:4000
    ProxyPass /spa/socket.io http://xos-rest-gw:3000/socket.io
    ProxyPass /socket.io http://xos-rest-gw:3000/socket.io
    <Location /socket.io>
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
        RewriteRule .* ws://xos-rest-gw:3000%{REQUEST_URI} [P]
    </Location>
    
    # Map the various XOS roots to the XOS instance
    ProxyPass /xos http://xos:9000
    ProxyPass /xos/ http://xos:9000/
    ProxyPassMatch /(api)$ http://xos:9000/$1/
    ProxyPass /api/ http://xos:9000/api/
    ProxyPass /login http://xos:9000/login
    ProxyPass /admin/ http://xos:9000/admin/
    ProxyPass /static/ http://xos:9000/static/
    ProxyPass /loggedin/ http://xos:9000/loggedin/
    ProxyPass /serviceGrid/ http://xos:9000/serviceGrid/

    ProxyPass /xosapi/ http://xos-chameleon:9101/xosapi/
</IfModule>

<IfModule rewrite_module>
    RewriteEngine On
    # Redirect (permanently) requests for /MAAS to /MAAS/.
    RewriteRule ^/MAAS$ %{REQUEST_URI}/ [R=301,L]
</IfModule>

# Redirects so that basic URLs entered go the right place
Redirect /fabric /fabric/onos/ui
Redirect /vtn /vtn/onos/ui
