From 03727e49416940e6ad5cf5269b6e3421adde9185 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Fri, 2 Oct 2020 11:48:10 +1000 Subject: [PATCH] tarballs.opendev.org: better redirects This matches the file, which got lost in my original script because I didn't quote a $. Also add some quotes for better grouping. Change-Id: I335e89616f093bdd2f0599b1ea1125ec642515ba --- .../static/files/50-tarballs.opendev.org.conf | 483 +++++++++--------- testinfra/test_static.py | 8 + 2 files changed, 250 insertions(+), 241 deletions(-) diff --git a/playbooks/roles/static/files/50-tarballs.opendev.org.conf b/playbooks/roles/static/files/50-tarballs.opendev.org.conf index 2aea78729e..c9e1e54a95 100644 --- a/playbooks/roles/static/files/50-tarballs.opendev.org.conf +++ b/playbooks/roles/static/files/50-tarballs.opendev.org.conf @@ -1,247 +1,248 @@ # Redirects from when OpenDev split out of OpenStack - RewriteRule ^openstack/afsmon/(.*)$ /opendev/afsmon/ [R=301,L] - RewriteRule ^openstack/airship-deckhand/(.*)$ /airship/deckhand/ [R=301,L] - RewriteRule ^openstack/almanach/(.*)$ /x/almanach/ [R=301,L] - RewriteRule ^openstack/ansible-role-tripleo-congress/(.*)$ /x/ansible-role-tripleo-congress/ [R=301,L] - RewriteRule ^openstack/apmec-horizon/(.*)$ /x/apmec-horizon/ [R=301,L] - RewriteRule ^openstack/apmec/(.*)$ /x/apmec/ [R=301,L] - RewriteRule ^openstack/ara/(.*)$ /recordsansible/ara/ [R=301,L] - RewriteRule ^openstack/bareon-allocator/(.*)$ /x/bareon-allocator/ [R=301,L] - RewriteRule ^openstack/bareon-ironic/(.*)$ /x/bareon-ironic/ [R=301,L] - RewriteRule ^openstack/bareon/(.*)$ /x/bareon/ [R=301,L] - RewriteRule ^openstack/bilean/(.*)$ /x/bilean/ [R=301,L] - RewriteRule ^openstack/bindep/(.*)$ /opendev/bindep/ [R=301,L] - RewriteRule ^openstack/browbeat/(.*)$ /x/browbeat/ [R=301,L] - RewriteRule ^openstack/ceilometer-zvm/(.*)$ /x/ceilometer-zvm/ [R=301,L] - RewriteRule ^openstack/cerberus-dashboard/(.*)$ /x/cerberus-dashboard/ [R=301,L] - RewriteRule ^openstack/cerberus/(.*)$ /x/cerberus/ [R=301,L] - RewriteRule ^openstack/cinder-fusioncompute/(.*)$ /x/cinder-fusioncompute/ [R=301,L] - RewriteRule ^openstack/cisco-ironic-contrib/(.*)$ /x/cisco-ironic-contrib/ [R=301,L] - RewriteRule ^openstack/ciwatch/(.*)$ /x/ciwatch/ [R=301,L] - RewriteRule ^openstack/cloudbase-init/(.*)$ /x/cloudbase-init/ [R=301,L] - RewriteRule ^openstack/cloud-init/(.*)$ /x/cloud-init/ [R=301,L] - RewriteRule ^openstack/cloudpulse/(.*)$ /x/cloudpulse/ [R=301,L] - RewriteRule ^openstack/cloudv-ostf-adapter/(.*)$ /x/cloudv-ostf-adapter/ [R=301,L] - RewriteRule ^openstack/collectd-openstack-plugins/(.*)$ /x/collectd-openstack-plugins/ [R=301,L] - RewriteRule ^openstack/compute-hyperv/(.*)$ /x/compute-hyperv/ [R=301,L] - RewriteRule ^openstack/conveyor/(.*)$ /x/conveyor/ [R=301,L] - RewriteRule ^openstack/craton-dashboard/(.*)$ /x/craton-dashboard/ [R=301,L] - RewriteRule ^openstack/cursive/(.*)$ /x/cursive/ [R=301,L] - RewriteRule ^openstack/delimiter/(.*)$ /x/delimiter/ [R=301,L] - RewriteRule ^openstack/distil-ui/(.*)$ /x/distil-ui/ [R=301,L] - RewriteRule ^openstack/distil/(.*)$ /x/distil/ [R=301,L] - RewriteRule ^openstack/doc8/(.*)$ /x/doc8/ [R=301,L] - RewriteRule ^openstack/downpour/(.*)$ /x/downpour/ [R=301,L] - RewriteRule ^openstack/dox/(.*)$ /x/dox/ [R=301,L] - RewriteRule ^openstack/driverlog/(.*)$ /x/driverlog/ [R=301,L] - RewriteRule ^openstack/ekko/(.*)$ /x/ekko/ [R=301,L] - RewriteRule ^openstack/evoque-dashboard/(.*)$ /x/evoque-dashboard/ [R=301,L] - RewriteRule ^openstack/evoque/(.*)$ /x/evoque/ [R=301,L] - RewriteRule ^openstack/fenix/(.*)$ /x/fenix/ [R=301,L] - RewriteRule ^openstack/fixtures-git/(.*)$ /x/fixtures-git/ [R=301,L] - RewriteRule ^openstack/flame/(.*)$ /x/flame/ [R=301,L] - RewriteRule ^openstack/fuel-ccp-entrypoint/(.*)$ /x/fuel-ccp-entrypoint/ [R=301,L] - RewriteRule ^openstack/fuel-ccp-installer/(.*)$ /x/fuel-ccp-installer/ [R=301,L] - RewriteRule ^openstack/fuel-ccp-tests/(.*)$ /x/fuel-ccp-tests/ [R=301,L] - RewriteRule ^openstack/fuel-ccp/(.*)$ /x/fuel-ccp/ [R=301,L] - RewriteRule ^openstack/gantt/(.*)$ /x/gantt/ [R=301,L] - RewriteRule ^openstack/gce-api/(.*)$ /x/gce-api/ [R=301,L] - RewriteRule ^openstack/gear/(.*)$ /opendev/gear/ [R=301,L] - RewriteRule ^openstack/germqtt/(.*)$ /opendev/germqtt/ [R=301,L] - RewriteRule ^openstack/gerritbot/(.*)$ /opendev/gerritbot/ [R=301,L] - RewriteRule ^openstack/gerrit-dash-creator/(.*)$ /x/gerrit-dash-creator/ [R=301,L] - RewriteRule ^openstack/gerritlib/(.*)$ /opendev/gerritlib/ [R=301,L] - RewriteRule ^openstack/gerrit/(.*)$ /opendev/gerrit/ [R=301,L] - RewriteRule ^openstack/gertty/(.*)$ /ttygroup/gertty/ [R=301,L] - RewriteRule ^openstack/giftwrap/(.*)$ /x/giftwrap/ [R=301,L] - RewriteRule ^openstack/git-nit/(.*)$ /x/git-nit/ [R=301,L] - RewriteRule ^openstack/git-os-job/(.*)$ /x/git-os-job/ [R=301,L] - RewriteRule ^openstack/git-restack/(.*)$ /opendev/git-restack/ [R=301,L] - RewriteRule ^openstack/git-upstream/(.*)$ /x/git-upstream/ [R=301,L] - RewriteRule ^openstack/glare/(.*)$ /x/glare/ [R=301,L] - RewriteRule ^openstack/glean/(.*)$ /opendev/glean/ [R=301,L] - RewriteRule ^openstack/gluon/(.*)$ /x/gluon/ [R=301,L] - RewriteRule ^openstack/grafyaml/(.*)$ /opendev/grafyaml/ [R=301,L] - RewriteRule ^openstack/group-based-policy-automation/(.*)$ /x/group-based-policy-automation/ [R=301,L] - RewriteRule ^openstack/group-based-policy-ui/(.*)$ /x/group-based-policy-ui/ [R=301,L] - RewriteRule ^openstack/group-based-policy/(.*)$ /x/group-based-policy/ [R=301,L] - RewriteRule ^openstack/groups/(.*)$ /osf/groups/ [R=301,L] - RewriteRule ^openstack/horizon-mellanox/(.*)$ /x/horizon-mellanox/ [R=301,L] - RewriteRule ^openstack/intel-nfv-ci-tests/(.*)$ /x/intel-nfv-ci-tests/ [R=301,L] - RewriteRule ^openstack/iotronic-lightning-rod/(.*)$ /x/iotronic-lightning-rod/ [R=301,L] - RewriteRule ^openstack/iotronic-ui/(.*)$ /x/iotronic-ui/ [R=301,L] - RewriteRule ^openstack/iotronic/(.*)$ /x/iotronic/ [R=301,L] - RewriteRule ^openstack/ironic-staging-drivers/(.*)$ /x/ironic-staging-drivers/ [R=301,L] - RewriteRule ^openstack/jenkins-job-builder/(.*)$ /jjb/jenkins-job-builder/ [R=301,L] - RewriteRule ^openstack/kayobe/(.*)$ /x/kayobe/ [R=301,L] - RewriteRule ^openstack/kingbird-dashboard/(.*)$ /x/kingbird-dashboard/ [R=301,L] - RewriteRule ^openstack/kingbird/(.*)$ /x/kingbird/ [R=301,L] - RewriteRule ^openstack/kite/(.*)$ /x/kite/ [R=301,L] - RewriteRule ^openstack/kloudbuster/(.*)$ /x/kloudbuster/ [R=301,L] - RewriteRule ^openstack/kolla-mesos/(.*)$ /x/kolla-mesos/ [R=301,L] - RewriteRule ^openstack/kosmos/(.*)$ /x/kosmos/ [R=301,L] - RewriteRule ^openstack/log_processor/(.*)$ /opendev/log_processor/ [R=301,L] - RewriteRule ^openstack/lpmqtt/(.*)$ /opendev/lpmqtt/ [R=301,L] - RewriteRule ^openstack/marshal/(.*)$ /x/marshal/ [R=301,L] - RewriteRule ^openstack/meteos-ui/(.*)$ /x/meteos-ui/ [R=301,L] - RewriteRule ^openstack/meteos/(.*)$ /x/meteos/ [R=301,L] - RewriteRule ^openstack/mitmstack/(.*)$ /x/mitmstack/ [R=301,L] - RewriteRule ^openstack/mixmatch/(.*)$ /x/mixmatch/ [R=301,L] - RewriteRule ^openstack/mogan-ui/(.*)$ /x/mogan-ui/ [R=301,L] - RewriteRule ^openstack/mogan/(.*)$ /x/mogan/ [R=301,L] - RewriteRule ^openstack/monitoring-for-openstack/(.*)$ /x/monitoring-for-openstack/ [R=301,L] - RewriteRule ^openstack/murano-plugin-networking-sfc/(.*)$ /x/murano-plugin-networking-sfc/ [R=301,L] - RewriteRule ^openstack/nemesis/(.*)$ /x/nemesis/ [R=301,L] - RewriteRule ^openstack/nerd-reviewer/(.*)$ /x/nerd-reviewer/ [R=301,L] - RewriteRule ^openstack/network-checker/(.*)$ /x/network-checker/ [R=301,L] - RewriteRule ^openstack/networking-6wind/(.*)$ /x/networking-6wind/ [R=301,L] - RewriteRule ^openstack/networking-ale-omniswitch/(.*)$ /x/networking-ale-omniswitch/ [R=301,L] - RewriteRule ^openstack/networking-ansible/(.*)$ /x/networking-ansible/ [R=301,L] - RewriteRule ^openstack/networking-arista/(.*)$ /x/networking-arista/ [R=301,L] - RewriteRule ^openstack/networking-bigswitch/(.*)$ /x/networking-bigswitch/ [R=301,L] - RewriteRule ^openstack/networking-brocade/(.*)$ /x/networking-brocade/ [R=301,L] - RewriteRule ^openstack/networking-cisco/(.*)$ /x/networking-cisco/ [R=301,L] - RewriteRule ^openstack/networking-cumulus/(.*)$ /x/networking-cumulus/ [R=301,L] - RewriteRule ^openstack/networking-dpm/(.*)$ /x/networking-dpm/ [R=301,L] - RewriteRule ^openstack/networking-edge-vpn/(.*)$ /x/networking-edge-vpn/ [R=301,L] - RewriteRule ^openstack/networking-extreme/(.*)$ /x/networking-extreme/ [R=301,L] - RewriteRule ^openstack/networking-fortinet/(.*)$ /x/networking-fortinet/ [R=301,L] - RewriteRule ^openstack/networking-fujitsu/(.*)$ /x/networking-fujitsu/ [R=301,L] - RewriteRule ^openstack/networking-gluon/(.*)$ /x/networking-gluon/ [R=301,L] - RewriteRule ^openstack/networking-h3c/(.*)$ /x/networking-h3c/ [R=301,L] - RewriteRule ^openstack/networking-hpe/(.*)$ /x/networking-hpe/ [R=301,L] - RewriteRule ^openstack/networking-huawei/(.*)$ /x/networking-huawei/ [R=301,L] - RewriteRule ^openstack/networking-infoblox/(.*)$ /x/networking-infoblox/ [R=301,L] - RewriteRule ^openstack/networking-lagopus/(.*)$ /x/networking-lagopus/ [R=301,L] - RewriteRule ^openstack/networking-mlnx/(.*)$ /x/networking-mlnx/ [R=301,L] - RewriteRule ^openstack/networking-nec/(.*)$ /x/networking-nec/ [R=301,L] - RewriteRule ^openstack/networking-omnipath/(.*)$ /x/networking-omnipath/ [R=301,L] - RewriteRule ^openstack/networking-opencontrail/(.*)$ /x/networking-opencontrail/ [R=301,L] - RewriteRule ^openstack/networking-ovs-dpdk/(.*)$ /x/networking-ovs-dpdk/ [R=301,L] - RewriteRule ^openstack/networking-plumgrid/(.*)$ /x/networking-plumgrid/ [R=301,L] - RewriteRule ^openstack/networking-spp/(.*)$ /x/networking-spp/ [R=301,L] - RewriteRule ^openstack/networking-vpp/(.*)$ /x/networking-vpp/ [R=301,L] - RewriteRule ^openstack/networking-vsphere/(.*)$ /x/networking-vsphere/ [R=301,L] - RewriteRule ^openstack/networking-zte/(.*)$ /x/networking-zte/ [R=301,L] - RewriteRule ^openstack/networking-zvm/(.*)$ /x/networking-zvm/ [R=301,L] - RewriteRule ^openstack/neutron-classifier/(.*)$ /x/neutron-classifier/ [R=301,L] - RewriteRule ^openstack/nfv-filters/(.*)$ /x/nfv-filters/ [R=301,L] - RewriteRule ^openstack/nodepool/(.*)$ /zuul/nodepool/ [R=301,L] - RewriteRule ^openstack/nova-docker/(.*)$ /x/nova-docker/ [R=301,L] - RewriteRule ^openstack/nova-dpm/(.*)$ /x/nova-dpm/ [R=301,L] - RewriteRule ^openstack/nova-fusioncompute/(.*)$ /x/nova-fusioncompute/ [R=301,L] - RewriteRule ^openstack/novajoin-tempest-plugin/(.*)$ /x/novajoin-tempest-plugin/ [R=301,L] - RewriteRule ^openstack/novajoin/(.*)$ /x/novajoin/ [R=301,L] - RewriteRule ^openstack/nova-lxd/(.*)$ /x/nova-lxd/ [R=301,L] - RewriteRule ^openstack/nova-mksproxy/(.*)$ /x/nova-mksproxy/ [R=301,L] - RewriteRule ^openstack/nova-solver-scheduler/(.*)$ /x/nova-solver-scheduler/ [R=301,L] - RewriteRule ^openstack/nova-zvm-virt-driver/(.*)$ /x/nova-zvm-virt-driver/ [R=301,L] - RewriteRule ^openstack/oaktreemodel/(.*)$ /x/oaktreemodel/ [R=301,L] - RewriteRule ^openstack/oaktree/(.*)$ /x/oaktree/ [R=301,L] - RewriteRule ^openstack/ooi/(.*)$ /x/ooi/ [R=301,L] - RewriteRule ^openstack/osc-summit-counter/(.*)$ /x/osc-summit-counter/ [R=301,L] - RewriteRule ^openstack/os-dpm/(.*)$ /x/os-dpm/ [R=301,L] - RewriteRule ^openstack/os-faults/(.*)$ /performa/os-faults/ [R=301,L] - RewriteRule ^openstack/os-log-merger/(.*)$ /x/os-log-merger/ [R=301,L] - RewriteRule ^openstack/ospurge/(.*)$ /x/ospurge/ [R=301,L] - RewriteRule ^openstack/os-xenapi/(.*)$ /x/os-xenapi/ [R=301,L] - RewriteRule ^openstack/packetary/(.*)$ /x/packetary/ [R=301,L] - RewriteRule ^openstack/packstack/(.*)$ /x/packstack/ [R=301,L] - RewriteRule ^openstack/pandaman/(.*)$ /x/pandaman/ [R=301,L] - RewriteRule ^openstack/performa/(.*)$ /x/performa/ [R=301,L] - RewriteRule ^openstack/poppy/(.*)$ /x/poppy/ [R=301,L] - RewriteRule ^openstack/proliantutils/(.*)$ /x/proliantutils/ [R=301,L] - RewriteRule ^openstack/promstat/(.*)$ /x/promstat/ [R=301,L] - RewriteRule ^openstack/pyeclib/(.*)$ /x/pyeclib/ [R=301,L] - RewriteRule ^openstack/pyghmi/(.*)$ /x/pyghmi/ [R=301,L] - RewriteRule ^openstack/pynotedb/(.*)$ /opendev/pynotedb/ [R=301,L] - RewriteRule ^openstack/pypi-mirror/(.*)$ /opendev/pypi-mirror/ [R=301,L] - RewriteRule ^openstack/python-almanachclient/(.*)$ /x/python-almanachclient/ [R=301,L] - RewriteRule ^openstack/python-apmecclient/(.*)$ /x/python-apmecclient/ [R=301,L] - RewriteRule ^openstack/python-bileanclient/(.*)$ /x/python-bileanclient/ [R=301,L] - RewriteRule ^openstack/python-cerberusclient/(.*)$ /x/python-cerberusclient/ [R=301,L] - RewriteRule ^openstack/python-cloudpulseclient/(.*)$ /x/python-cloudpulseclient/ [R=301,L] - RewriteRule ^openstack/python-cratonclient/(.*)$ /x/python-cratonclient/ [R=301,L] - RewriteRule ^openstack/python-distilclient/(.*)$ /x/python-distilclient/ [R=301,L] - RewriteRule ^openstack/python-don/(.*)$ /x/python-don/ [R=301,L] - RewriteRule ^openstack/python-evoqueclient/(.*)$ /x/python-evoqueclient/ [R=301,L] - RewriteRule ^openstack/python-fenixclient/(.*)$ /x/python-fenixclient/ [R=301,L] - RewriteRule ^openstack/python-glareclient/(.*)$ /x/python-glareclient/ [R=301,L] - RewriteRule ^openstack/python-group-based-policy-client/(.*)$ /x/python-group-based-policy-client/ [R=301,L] - RewriteRule ^openstack/python-hnvclient/(.*)$ /x/python-hnvclient/ [R=301,L] - RewriteRule ^openstack/python-iotronicclient/(.*)$ /x/python-iotronicclient/ [R=301,L] - RewriteRule ^openstack/python-jenkins/(.*)$ /jjb/python-jenkins/ [R=301,L] - RewriteRule ^openstack/python-k8sclient/(.*)$ /x/python-k8sclient/ [R=301,L] - RewriteRule ^openstack/python-kingbirdclient/(.*)$ /x/python-kingbirdclient/ [R=301,L] - RewriteRule ^openstack/python-kiteclient/(.*)$ /x/python-kiteclient/ [R=301,L] - RewriteRule ^openstack/python-meteosclient/(.*)$ /x/python-meteosclient/ [R=301,L] - RewriteRule ^openstack/python-moganclient/(.*)$ /x/python-moganclient/ [R=301,L] - RewriteRule ^openstack/python-oneviewclient/(.*)$ /x/python-oneviewclient/ [R=301,L] - RewriteRule ^openstack/python-redfish/(.*)$ /x/python-redfish/ [R=301,L] - RewriteRule ^openstack/python-rsdclient/(.*)$ /x/python-rsdclient/ [R=301,L] - RewriteRule ^openstack/python-scciclient/(.*)$ /x/python-scciclient/ [R=301,L] - RewriteRule ^openstack/python-sticksclient/(.*)$ /x/python-sticksclient/ [R=301,L] - RewriteRule ^openstack/python-storyboardclient/(.*)$ /opendev/python-storyboardclient/ [R=301,L] - RewriteRule ^openstack/python-surveilclient/(.*)$ /x/python-surveilclient/ [R=301,L] - RewriteRule ^openstack/python-tempestconf/(.*)$ /osf/python-tempestconf/ [R=301,L] - RewriteRule ^openstack/python-tuskarclient/(.*)$ /x/python-tuskarclient/ [R=301,L] - RewriteRule ^openstack/python-valenceclient/(.*)$ /x/python-valenceclient/ [R=301,L] - RewriteRule ^openstack/quark/(.*)$ /x/quark/ [R=301,L] - RewriteRule ^openstack/ranger-agent/(.*)$ /x/ranger-agent/ [R=301,L] - RewriteRule ^openstack/ranger/(.*)$ /x/ranger/ [R=301,L] - RewriteRule ^openstack/refstack-client/(.*)$ /osf/refstack-client/ [R=301,L] - RewriteRule ^openstack/refstack/(.*)$ /osf/refstack/ [R=301,L] - RewriteRule ^openstack/requests-mock/(.*)$ /x/requests-mock/ [R=301,L] - RewriteRule ^openstack/rsd-lib/(.*)$ /x/rsd-lib/ [R=301,L] - RewriteRule ^openstack/rsd-virt-for-nova/(.*)$ /x/rsd-virt-for-nova/ [R=301,L] - RewriteRule ^openstack/sardonic/(.*)$ /sardonic/sardonic/ [R=301,L] - RewriteRule ^openstack/scalpels/(.*)$ /x/scalpels/ [R=301,L] - RewriteRule ^openstack/shaker/(.*)$ /performa/shaker/ [R=301,L] - RewriteRule ^openstack/snap.openstack/(.*)$ /x/snap.openstack/ [R=301,L] - RewriteRule ^openstack/solar/(.*)$ /x/solar/ [R=301,L] - RewriteRule ^openstack/spanner/(.*)$ /x/spanner/ [R=301,L] - RewriteRule ^openstack/sqlalchemy-migrate/(.*)$ /x/sqlalchemy-migrate/ [R=301,L] - RewriteRule ^openstack/stackalytics/(.*)$ /x/stackalytics/ [R=301,L] - RewriteRule ^openstack/statusbot/(.*)$ /opendev/statusbot/ [R=301,L] - RewriteRule ^openstack/steth/(.*)$ /x/steth/ [R=301,L] - RewriteRule ^openstack/sticks-dashboard/(.*)$ /x/sticks-dashboard/ [R=301,L] - RewriteRule ^openstack/sticks/(.*)$ /x/sticks/ [R=301,L] - RewriteRule ^openstack/storyboard/(.*)$ /opendev/storyboard/ [R=301,L] - RewriteRule ^openstack/storyboard-webclient/(.*)$ /opendev/storyboard-webclient/ [R=301,L] - RewriteRule ^openstack/subunit2sql/(.*)$ /opendev/subunit2sql/ [R=301,L] - RewriteRule ^openstack/surveil/(.*)$ /x/surveil/ [R=301,L] - RewriteRule ^openstack/swauth/(.*)$ /x/swauth/ [R=301,L] - RewriteRule ^openstack/swift3/(.*)$ /x/swift3/ [R=301,L] - RewriteRule ^openstack/swiftonhpss/(.*)$ /x/swiftonhpss/ [R=301,L] - RewriteRule ^openstack/synergy-scheduler-manager/(.*)$ /x/synergy-scheduler-manager/ [R=301,L] - RewriteRule ^openstack/synergy-service/(.*)$ /x/synergy-service/ [R=301,L] - RewriteRule ^openstack/tap-as-a-service-dashboard/(.*)$ /x/tap-as-a-service-dashboard/ [R=301,L] - RewriteRule ^openstack/tap-as-a-service-tempest-plugin/(.*)$ /x/tap-as-a-service-tempest-plugin/ [R=301,L] - RewriteRule ^openstack/tap-as-a-service/(.*)$ /x/tap-as-a-service/ [R=301,L] - RewriteRule ^openstack/tc-as-a-service/(.*)$ /x/tc-as-a-service/ [R=301,L] - RewriteRule ^openstack/terracotta/(.*)$ /x/terracotta/ [R=301,L] - RewriteRule ^openstack/timmy/(.*)$ /x/timmy/ [R=301,L] - RewriteRule ^openstack/tobiko/(.*)$ /x/tobiko/ [R=301,L] - RewriteRule ^openstack/trio2o/(.*)$ /x/trio2o/ [R=301,L] - RewriteRule ^openstack/turbo-hipster/(.*)$ /x/turbo-hipster/ [R=301,L] - RewriteRule ^openstack/tuskar-ui/(.*)$ /x/tuskar-ui/ [R=301,L] - RewriteRule ^openstack/tuskar/(.*)$ /x/tuskar/ [R=301,L] - RewriteRule ^openstack/valence/(.*)$ /x/valence/ [R=301,L] - RewriteRule ^openstack/valet/(.*)$ /x/valet/ [R=301,L] - RewriteRule ^openstack/virtualpdu/(.*)$ /x/virtualpdu/ [R=301,L] - RewriteRule ^openstack/vmtp/(.*)$ /x/vmtp/ [R=301,L] - RewriteRule ^openstack/vmware-nsxlib/(.*)$ /x/vmware-nsxlib/ [R=301,L] - RewriteRule ^openstack/vmware-nsx-tempest-plugin/(.*)$ /x/vmware-nsx-tempest-plugin/ [R=301,L] - RewriteRule ^openstack/vmware-nsx/(.*)$ /x/vmware-nsx/ [R=301,L] - RewriteRule ^openstack/vmware-vspc/(.*)$ /x/vmware-vspc/ [R=301,L] - RewriteRule ^openstack/whitebox-tempest-plugin/(.*)$ /x/whitebox-tempest-plugin/ [R=301,L] - RewriteRule ^openstack/windmill/(.*)$ /windmill/windmill/ [R=301,L] - RewriteRule ^openstack/wsme/(.*)$ /x/wsme/ [R=301,L] - RewriteRule ^openstack/yaml2ical/(.*)$ /opendev/yaml2ical/ [R=301,L] - RewriteRule ^openstack/zuul-sphinx/(.*)$ /zuul/zuul-sphinx/ [R=301,L] - RewriteRule ^openstack/zuul/(.*)$ /zuul/zuul/ [R=301,L] + RewriteEngine On + RewriteRule "^/openstack/afsmon(.*?)$" "/opendev/afsmon$1" [R=301,L] + RewriteRule "^/openstack/airship-deckhand(.*?)$" "/airship/deckhand$1" [R=301,L] + RewriteRule "^/openstack/almanach(.*?)$" "/x/almanach$1" [R=301,L] + RewriteRule "^/openstack/ansible-role-tripleo-congress(.*?)$" "/x/ansible-role-tripleo-congress$1" [R=301,L] + RewriteRule "^/openstack/apmec-horizon(.*?)$" "/x/apmec-horizon$1" [R=301,L] + RewriteRule "^/openstack/apmec(.*?)$" "/x/apmec$1" [R=301,L] + RewriteRule "^/openstack/ara(.*?)$" "/recordsansible/ara$1" [R=301,L] + RewriteRule "^/openstack/bareon-allocator(.*?)$" "/x/bareon-allocator$1" [R=301,L] + RewriteRule "^/openstack/bareon-ironic(.*?)$" "/x/bareon-ironic$1" [R=301,L] + RewriteRule "^/openstack/bareon(.*?)$" "/x/bareon$1" [R=301,L] + RewriteRule "^/openstack/bilean(.*?)$" "/x/bilean$1" [R=301,L] + RewriteRule "^/openstack/bindep(.*?)$" "/opendev/bindep$1" [R=301,L] + RewriteRule "^/openstack/browbeat(.*?)$" "/x/browbeat$1" [R=301,L] + RewriteRule "^/openstack/ceilometer-zvm(.*?)$" "/x/ceilometer-zvm$1" [R=301,L] + RewriteRule "^/openstack/cerberus-dashboard(.*?)$" "/x/cerberus-dashboard$1" [R=301,L] + RewriteRule "^/openstack/cerberus(.*?)$" "/x/cerberus$1" [R=301,L] + RewriteRule "^/openstack/cinder-fusioncompute(.*?)$" "/x/cinder-fusioncompute$1" [R=301,L] + RewriteRule "^/openstack/cisco-ironic-contrib(.*?)$" "/x/cisco-ironic-contrib$1" [R=301,L] + RewriteRule "^/openstack/ciwatch(.*?)$" "/x/ciwatch$1" [R=301,L] + RewriteRule "^/openstack/cloudbase-init(.*?)$" "/x/cloudbase-init$1" [R=301,L] + RewriteRule "^/openstack/cloud-init(.*?)$" "/x/cloud-init$1" [R=301,L] + RewriteRule "^/openstack/cloudpulse(.*?)$" "/x/cloudpulse$1" [R=301,L] + RewriteRule "^/openstack/cloudv-ostf-adapter(.*?)$" "/x/cloudv-ostf-adapter$1" [R=301,L] + RewriteRule "^/openstack/collectd-openstack-plugins(.*?)$" "/x/collectd-openstack-plugins$1" [R=301,L] + RewriteRule "^/openstack/compute-hyperv(.*?)$" "/x/compute-hyperv$1" [R=301,L] + RewriteRule "^/openstack/conveyor(.*?)$" "/x/conveyor$1" [R=301,L] + RewriteRule "^/openstack/craton-dashboard(.*?)$" "/x/craton-dashboard$1" [R=301,L] + RewriteRule "^/openstack/cursive(.*?)$" "/x/cursive$1" [R=301,L] + RewriteRule "^/openstack/delimiter(.*?)$" "/x/delimiter$1" [R=301,L] + RewriteRule "^/openstack/distil-ui(.*?)$" "/x/distil-ui$1" [R=301,L] + RewriteRule "^/openstack/distil(.*?)$" "/x/distil$1" [R=301,L] + RewriteRule "^/openstack/doc8(.*?)$" "/x/doc8$1" [R=301,L] + RewriteRule "^/openstack/downpour(.*?)$" "/x/downpour$1" [R=301,L] + RewriteRule "^/openstack/dox(.*?)$" "/x/dox$1" [R=301,L] + RewriteRule "^/openstack/driverlog(.*?)$" "/x/driverlog$1" [R=301,L] + RewriteRule "^/openstack/ekko(.*?)$" "/x/ekko$1" [R=301,L] + RewriteRule "^/openstack/evoque-dashboard(.*?)$" "/x/evoque-dashboard$1" [R=301,L] + RewriteRule "^/openstack/evoque(.*?)$" "/x/evoque$1" [R=301,L] + RewriteRule "^/openstack/fenix(.*?)$" "/x/fenix$1" [R=301,L] + RewriteRule "^/openstack/fixtures-git(.*?)$" "/x/fixtures-git$1" [R=301,L] + RewriteRule "^/openstack/flame(.*?)$" "/x/flame$1" [R=301,L] + RewriteRule "^/openstack/fuel-ccp-entrypoint(.*?)$" "/x/fuel-ccp-entrypoint$1" [R=301,L] + RewriteRule "^/openstack/fuel-ccp-installer(.*?)$" "/x/fuel-ccp-installer$1" [R=301,L] + RewriteRule "^/openstack/fuel-ccp-tests(.*?)$" "/x/fuel-ccp-tests$1" [R=301,L] + RewriteRule "^/openstack/fuel-ccp(.*?)$" "/x/fuel-ccp$1" [R=301,L] + RewriteRule "^/openstack/gantt(.*?)$" "/x/gantt$1" [R=301,L] + RewriteRule "^/openstack/gce-api(.*?)$" "/x/gce-api$1" [R=301,L] + RewriteRule "^/openstack/gear(.*?)$" "/opendev/gear$1" [R=301,L] + RewriteRule "^/openstack/germqtt(.*?)$" "/opendev/germqtt$1" [R=301,L] + RewriteRule "^/openstack/gerritbot(.*?)$" "/opendev/gerritbot$1" [R=301,L] + RewriteRule "^/openstack/gerrit-dash-creator(.*?)$" "/x/gerrit-dash-creator$1" [R=301,L] + RewriteRule "^/openstack/gerritlib(.*?)$" "/opendev/gerritlib$1" [R=301,L] + RewriteRule "^/openstack/gerrit(.*?)$" "/opendev/gerrit$1" [R=301,L] + RewriteRule "^/openstack/gertty(.*?)$" "/ttygroup/gertty$1" [R=301,L] + RewriteRule "^/openstack/giftwrap(.*?)$" "/x/giftwrap$1" [R=301,L] + RewriteRule "^/openstack/git-nit(.*?)$" "/x/git-nit$1" [R=301,L] + RewriteRule "^/openstack/git-os-job(.*?)$" "/x/git-os-job$1" [R=301,L] + RewriteRule "^/openstack/git-restack(.*?)$" "/opendev/git-restack$1" [R=301,L] + RewriteRule "^/openstack/git-upstream(.*?)$" "/x/git-upstream$1" [R=301,L] + RewriteRule "^/openstack/glare(.*?)$" "/x/glare$1" [R=301,L] + RewriteRule "^/openstack/glean(.*?)$" "/opendev/glean$1" [R=301,L] + RewriteRule "^/openstack/gluon(.*?)$" "/x/gluon$1" [R=301,L] + RewriteRule "^/openstack/grafyaml(.*?)$" "/opendev/grafyaml$1" [R=301,L] + RewriteRule "^/openstack/group-based-policy-automation(.*?)$" "/x/group-based-policy-automation$1" [R=301,L] + RewriteRule "^/openstack/group-based-policy-ui(.*?)$" "/x/group-based-policy-ui$1" [R=301,L] + RewriteRule "^/openstack/group-based-policy(.*?)$" "/x/group-based-policy$1" [R=301,L] + RewriteRule "^/openstack/groups(.*?)$" "/osf/groups$1" [R=301,L] + RewriteRule "^/openstack/horizon-mellanox(.*?)$" "/x/horizon-mellanox$1" [R=301,L] + RewriteRule "^/openstack/intel-nfv-ci-tests(.*?)$" "/x/intel-nfv-ci-tests$1" [R=301,L] + RewriteRule "^/openstack/iotronic-lightning-rod(.*?)$" "/x/iotronic-lightning-rod$1" [R=301,L] + RewriteRule "^/openstack/iotronic-ui(.*?)$" "/x/iotronic-ui$1" [R=301,L] + RewriteRule "^/openstack/iotronic(.*?)$" "/x/iotronic$1" [R=301,L] + RewriteRule "^/openstack/ironic-staging-drivers(.*?)$" "/x/ironic-staging-drivers$1" [R=301,L] + RewriteRule "^/openstack/jenkins-job-builder(.*?)$" "/jjb/jenkins-job-builder$1" [R=301,L] + RewriteRule "^/openstack/kayobe(.*?)$" "/x/kayobe$1" [R=301,L] + RewriteRule "^/openstack/kingbird-dashboard(.*?)$" "/x/kingbird-dashboard$1" [R=301,L] + RewriteRule "^/openstack/kingbird(.*?)$" "/x/kingbird$1" [R=301,L] + RewriteRule "^/openstack/kite(.*?)$" "/x/kite$1" [R=301,L] + RewriteRule "^/openstack/kloudbuster(.*?)$" "/x/kloudbuster$1" [R=301,L] + RewriteRule "^/openstack/kolla-mesos(.*?)$" "/x/kolla-mesos$1" [R=301,L] + RewriteRule "^/openstack/kosmos(.*?)$" "/x/kosmos$1" [R=301,L] + RewriteRule "^/openstack/log_processor(.*?)$" "/opendev/log_processor$1" [R=301,L] + RewriteRule "^/openstack/lpmqtt(.*?)$" "/opendev/lpmqtt$1" [R=301,L] + RewriteRule "^/openstack/marshal(.*?)$" "/x/marshal$1" [R=301,L] + RewriteRule "^/openstack/meteos-ui(.*?)$" "/x/meteos-ui$1" [R=301,L] + RewriteRule "^/openstack/meteos(.*?)$" "/x/meteos$1" [R=301,L] + RewriteRule "^/openstack/mitmstack(.*?)$" "/x/mitmstack$1" [R=301,L] + RewriteRule "^/openstack/mixmatch(.*?)$" "/x/mixmatch$1" [R=301,L] + RewriteRule "^/openstack/mogan-ui(.*?)$" "/x/mogan-ui$1" [R=301,L] + RewriteRule "^/openstack/mogan(.*?)$" "/x/mogan$1" [R=301,L] + RewriteRule "^/openstack/monitoring-for-openstack(.*?)$" "/x/monitoring-for-openstack$1" [R=301,L] + RewriteRule "^/openstack/murano-plugin-networking-sfc(.*?)$" "/x/murano-plugin-networking-sfc$1" [R=301,L] + RewriteRule "^/openstack/nemesis(.*?)$" "/x/nemesis$1" [R=301,L] + RewriteRule "^/openstack/nerd-reviewer(.*?)$" "/x/nerd-reviewer$1" [R=301,L] + RewriteRule "^/openstack/network-checker(.*?)$" "/x/network-checker$1" [R=301,L] + RewriteRule "^/openstack/networking-6wind(.*?)$" "/x/networking-6wind$1" [R=301,L] + RewriteRule "^/openstack/networking-ale-omniswitch(.*?)$" "/x/networking-ale-omniswitch$1" [R=301,L] + RewriteRule "^/openstack/networking-ansible(.*?)$" "/x/networking-ansible$1" [R=301,L] + RewriteRule "^/openstack/networking-arista(.*?)$" "/x/networking-arista$1" [R=301,L] + RewriteRule "^/openstack/networking-bigswitch(.*?)$" "/x/networking-bigswitch$1" [R=301,L] + RewriteRule "^/openstack/networking-brocade(.*?)$" "/x/networking-brocade$1" [R=301,L] + RewriteRule "^/openstack/networking-cisco(.*?)$" "/x/networking-cisco$1" [R=301,L] + RewriteRule "^/openstack/networking-cumulus(.*?)$" "/x/networking-cumulus$1" [R=301,L] + RewriteRule "^/openstack/networking-dpm(.*?)$" "/x/networking-dpm$1" [R=301,L] + RewriteRule "^/openstack/networking-edge-vpn(.*?)$" "/x/networking-edge-vpn$1" [R=301,L] + RewriteRule "^/openstack/networking-extreme(.*?)$" "/x/networking-extreme$1" [R=301,L] + RewriteRule "^/openstack/networking-fortinet(.*?)$" "/x/networking-fortinet$1" [R=301,L] + RewriteRule "^/openstack/networking-fujitsu(.*?)$" "/x/networking-fujitsu$1" [R=301,L] + RewriteRule "^/openstack/networking-gluon(.*?)$" "/x/networking-gluon$1" [R=301,L] + RewriteRule "^/openstack/networking-h3c(.*?)$" "/x/networking-h3c$1" [R=301,L] + RewriteRule "^/openstack/networking-hpe(.*?)$" "/x/networking-hpe$1" [R=301,L] + RewriteRule "^/openstack/networking-huawei(.*?)$" "/x/networking-huawei$1" [R=301,L] + RewriteRule "^/openstack/networking-infoblox(.*?)$" "/x/networking-infoblox$1" [R=301,L] + RewriteRule "^/openstack/networking-lagopus(.*?)$" "/x/networking-lagopus$1" [R=301,L] + RewriteRule "^/openstack/networking-mlnx(.*?)$" "/x/networking-mlnx$1" [R=301,L] + RewriteRule "^/openstack/networking-nec(.*?)$" "/x/networking-nec$1" [R=301,L] + RewriteRule "^/openstack/networking-omnipath(.*?)$" "/x/networking-omnipath$1" [R=301,L] + RewriteRule "^/openstack/networking-opencontrail(.*?)$" "/x/networking-opencontrail$1" [R=301,L] + RewriteRule "^/openstack/networking-ovs-dpdk(.*?)$" "/x/networking-ovs-dpdk$1" [R=301,L] + RewriteRule "^/openstack/networking-plumgrid(.*?)$" "/x/networking-plumgrid$1" [R=301,L] + RewriteRule "^/openstack/networking-spp(.*?)$" "/x/networking-spp$1" [R=301,L] + RewriteRule "^/openstack/networking-vpp(.*?)$" "/x/networking-vpp$1" [R=301,L] + RewriteRule "^/openstack/networking-vsphere(.*?)$" "/x/networking-vsphere$1" [R=301,L] + RewriteRule "^/openstack/networking-zte(.*?)$" "/x/networking-zte$1" [R=301,L] + RewriteRule "^/openstack/networking-zvm(.*?)$" "/x/networking-zvm$1" [R=301,L] + RewriteRule "^/openstack/neutron-classifier(.*?)$" "/x/neutron-classifier$1" [R=301,L] + RewriteRule "^/openstack/nfv-filters(.*?)$" "/x/nfv-filters$1" [R=301,L] + RewriteRule "^/openstack/nodepool(.*?)$" "/zuul/nodepool$1" [R=301,L] + RewriteRule "^/openstack/nova-docker(.*?)$" "/x/nova-docker$1" [R=301,L] + RewriteRule "^/openstack/nova-dpm(.*?)$" "/x/nova-dpm$1" [R=301,L] + RewriteRule "^/openstack/nova-fusioncompute(.*?)$" "/x/nova-fusioncompute$1" [R=301,L] + RewriteRule "^/openstack/novajoin-tempest-plugin(.*?)$" "/x/novajoin-tempest-plugin$1" [R=301,L] + RewriteRule "^/openstack/novajoin(.*?)$" "/x/novajoin$1" [R=301,L] + RewriteRule "^/openstack/nova-lxd(.*?)$" "/x/nova-lxd$1" [R=301,L] + RewriteRule "^/openstack/nova-mksproxy(.*?)$" "/x/nova-mksproxy$1" [R=301,L] + RewriteRule "^/openstack/nova-solver-scheduler(.*?)$" "/x/nova-solver-scheduler$1" [R=301,L] + RewriteRule "^/openstack/nova-zvm-virt-driver(.*?)$" "/x/nova-zvm-virt-driver$1" [R=301,L] + RewriteRule "^/openstack/oaktreemodel(.*?)$" "/x/oaktreemodel$1" [R=301,L] + RewriteRule "^/openstack/oaktree(.*?)$" "/x/oaktree$1" [R=301,L] + RewriteRule "^/openstack/ooi(.*?)$" "/x/ooi$1" [R=301,L] + RewriteRule "^/openstack/osc-summit-counter(.*?)$" "/x/osc-summit-counter$1" [R=301,L] + RewriteRule "^/openstack/os-dpm(.*?)$" "/x/os-dpm$1" [R=301,L] + RewriteRule "^/openstack/os-faults(.*?)$" "/performa/os-faults$1" [R=301,L] + RewriteRule "^/openstack/os-log-merger(.*?)$" "/x/os-log-merger$1" [R=301,L] + RewriteRule "^/openstack/ospurge(.*?)$" "/x/ospurge$1" [R=301,L] + RewriteRule "^/openstack/os-xenapi(.*?)$" "/x/os-xenapi$1" [R=301,L] + RewriteRule "^/openstack/packetary(.*?)$" "/x/packetary$1" [R=301,L] + RewriteRule "^/openstack/packstack(.*?)$" "/x/packstack$1" [R=301,L] + RewriteRule "^/openstack/pandaman(.*?)$" "/x/pandaman$1" [R=301,L] + RewriteRule "^/openstack/performa(.*?)$" "/x/performa$1" [R=301,L] + RewriteRule "^/openstack/poppy(.*?)$" "/x/poppy$1" [R=301,L] + RewriteRule "^/openstack/proliantutils(.*?)$" "/x/proliantutils$1" [R=301,L] + RewriteRule "^/openstack/promstat(.*?)$" "/x/promstat$1" [R=301,L] + RewriteRule "^/openstack/pyeclib(.*?)$" "/x/pyeclib$1" [R=301,L] + RewriteRule "^/openstack/pyghmi(.*?)$" "/x/pyghmi$1" [R=301,L] + RewriteRule "^/openstack/pynotedb(.*?)$" "/opendev/pynotedb$1" [R=301,L] + RewriteRule "^/openstack/pypi-mirror(.*?)$" "/opendev/pypi-mirror$1" [R=301,L] + RewriteRule "^/openstack/python-almanachclient(.*?)$" "/x/python-almanachclient$1" [R=301,L] + RewriteRule "^/openstack/python-apmecclient(.*?)$" "/x/python-apmecclient$1" [R=301,L] + RewriteRule "^/openstack/python-bileanclient(.*?)$" "/x/python-bileanclient$1" [R=301,L] + RewriteRule "^/openstack/python-cerberusclient(.*?)$" "/x/python-cerberusclient$1" [R=301,L] + RewriteRule "^/openstack/python-cloudpulseclient(.*?)$" "/x/python-cloudpulseclient$1" [R=301,L] + RewriteRule "^/openstack/python-cratonclient(.*?)$" "/x/python-cratonclient$1" [R=301,L] + RewriteRule "^/openstack/python-distilclient(.*?)$" "/x/python-distilclient$1" [R=301,L] + RewriteRule "^/openstack/python-don(.*?)$" "/x/python-don$1" [R=301,L] + RewriteRule "^/openstack/python-evoqueclient(.*?)$" "/x/python-evoqueclient$1" [R=301,L] + RewriteRule "^/openstack/python-fenixclient(.*?)$" "/x/python-fenixclient$1" [R=301,L] + RewriteRule "^/openstack/python-glareclient(.*?)$" "/x/python-glareclient$1" [R=301,L] + RewriteRule "^/openstack/python-group-based-policy-client(.*?)$" "/x/python-group-based-policy-client$1" [R=301,L] + RewriteRule "^/openstack/python-hnvclient(.*?)$" "/x/python-hnvclient$1" [R=301,L] + RewriteRule "^/openstack/python-iotronicclient(.*?)$" "/x/python-iotronicclient$1" [R=301,L] + RewriteRule "^/openstack/python-jenkins(.*?)$" "/jjb/python-jenkins$1" [R=301,L] + RewriteRule "^/openstack/python-k8sclient(.*?)$" "/x/python-k8sclient$1" [R=301,L] + RewriteRule "^/openstack/python-kingbirdclient(.*?)$" "/x/python-kingbirdclient$1" [R=301,L] + RewriteRule "^/openstack/python-kiteclient(.*?)$" "/x/python-kiteclient$1" [R=301,L] + RewriteRule "^/openstack/python-meteosclient(.*?)$" "/x/python-meteosclient$1" [R=301,L] + RewriteRule "^/openstack/python-moganclient(.*?)$" "/x/python-moganclient$1" [R=301,L] + RewriteRule "^/openstack/python-oneviewclient(.*?)$" "/x/python-oneviewclient$1" [R=301,L] + RewriteRule "^/openstack/python-redfish(.*?)$" "/x/python-redfish$1" [R=301,L] + RewriteRule "^/openstack/python-rsdclient(.*?)$" "/x/python-rsdclient$1" [R=301,L] + RewriteRule "^/openstack/python-scciclient(.*?)$" "/x/python-scciclient$1" [R=301,L] + RewriteRule "^/openstack/python-sticksclient(.*?)$" "/x/python-sticksclient$1" [R=301,L] + RewriteRule "^/openstack/python-storyboardclient(.*?)$" "/opendev/python-storyboardclient$1" [R=301,L] + RewriteRule "^/openstack/python-surveilclient(.*?)$" "/x/python-surveilclient$1" [R=301,L] + RewriteRule "^/openstack/python-tempestconf(.*?)$" "/osf/python-tempestconf$1" [R=301,L] + RewriteRule "^/openstack/python-tuskarclient(.*?)$" "/x/python-tuskarclient$1" [R=301,L] + RewriteRule "^/openstack/python-valenceclient(.*?)$" "/x/python-valenceclient$1" [R=301,L] + RewriteRule "^/openstack/quark(.*?)$" "/x/quark$1" [R=301,L] + RewriteRule "^/openstack/ranger-agent(.*?)$" "/x/ranger-agent$1" [R=301,L] + RewriteRule "^/openstack/ranger(.*?)$" "/x/ranger$1" [R=301,L] + RewriteRule "^/openstack/refstack-client(.*?)$" "/osf/refstack-client$1" [R=301,L] + RewriteRule "^/openstack/refstack(.*?)$" "/osf/refstack$1" [R=301,L] + RewriteRule "^/openstack/requests-mock(.*?)$" "/x/requests-mock$1" [R=301,L] + RewriteRule "^/openstack/rsd-lib(.*?)$" "/x/rsd-lib$1" [R=301,L] + RewriteRule "^/openstack/rsd-virt-for-nova(.*?)$" "/x/rsd-virt-for-nova$1" [R=301,L] + RewriteRule "^/openstack/sardonic(.*?)$" "/sardonic/sardonic$1" [R=301,L] + RewriteRule "^/openstack/scalpels(.*?)$" "/x/scalpels$1" [R=301,L] + RewriteRule "^/openstack/shaker(.*?)$" "/performa/shaker$1" [R=301,L] + RewriteRule "^/openstack/snap.openstack(.*?)$" "/x/snap.openstack$1" [R=301,L] + RewriteRule "^/openstack/solar(.*?)$" "/x/solar$1" [R=301,L] + RewriteRule "^/openstack/spanner(.*?)$" "/x/spanner$1" [R=301,L] + RewriteRule "^/openstack/sqlalchemy-migrate(.*?)$" "/x/sqlalchemy-migrate$1" [R=301,L] + RewriteRule "^/openstack/stackalytics(.*?)$" "/x/stackalytics$1" [R=301,L] + RewriteRule "^/openstack/statusbot(.*?)$" "/opendev/statusbot$1" [R=301,L] + RewriteRule "^/openstack/steth(.*?)$" "/x/steth$1" [R=301,L] + RewriteRule "^/openstack/sticks-dashboard(.*?)$" "/x/sticks-dashboard$1" [R=301,L] + RewriteRule "^/openstack/sticks(.*?)$" "/x/sticks$1" [R=301,L] + RewriteRule "^/openstack/storyboard(.*?)$" "/opendev/storyboard$1" [R=301,L] + RewriteRule "^/openstack/storyboard-webclient(.*?)$" "/opendev/storyboard-webclient$1" [R=301,L] + RewriteRule "^/openstack/subunit2sql(.*?)$" "/opendev/subunit2sql$1" [R=301,L] + RewriteRule "^/openstack/surveil(.*?)$" "/x/surveil$1" [R=301,L] + RewriteRule "^/openstack/swauth(.*?)$" "/x/swauth$1" [R=301,L] + RewriteRule "^/openstack/swift3(.*?)$" "/x/swift3$1" [R=301,L] + RewriteRule "^/openstack/swiftonhpss(.*?)$" "/x/swiftonhpss$1" [R=301,L] + RewriteRule "^/openstack/synergy-scheduler-manager(.*?)$" "/x/synergy-scheduler-manager$1" [R=301,L] + RewriteRule "^/openstack/synergy-service(.*?)$" "/x/synergy-service$1" [R=301,L] + RewriteRule "^/openstack/tap-as-a-service-dashboard(.*?)$" "/x/tap-as-a-service-dashboard$1" [R=301,L] + RewriteRule "^/openstack/tap-as-a-service-tempest-plugin(.*?)$" "/x/tap-as-a-service-tempest-plugin$1" [R=301,L] + RewriteRule "^/openstack/tap-as-a-service(.*?)$" "/x/tap-as-a-service$1" [R=301,L] + RewriteRule "^/openstack/tc-as-a-service(.*?)$" "/x/tc-as-a-service$1" [R=301,L] + RewriteRule "^/openstack/terracotta(.*?)$" "/x/terracotta$1" [R=301,L] + RewriteRule "^/openstack/timmy(.*?)$" "/x/timmy$1" [R=301,L] + RewriteRule "^/openstack/tobiko(.*?)$" "/x/tobiko$1" [R=301,L] + RewriteRule "^/openstack/trio2o(.*?)$" "/x/trio2o$1" [R=301,L] + RewriteRule "^/openstack/turbo-hipster(.*?)$" "/x/turbo-hipster$1" [R=301,L] + RewriteRule "^/openstack/tuskar-ui(.*?)$" "/x/tuskar-ui$1" [R=301,L] + RewriteRule "^/openstack/tuskar(.*?)$" "/x/tuskar$1" [R=301,L] + RewriteRule "^/openstack/valence(.*?)$" "/x/valence$1" [R=301,L] + RewriteRule "^/openstack/valet(.*?)$" "/x/valet$1" [R=301,L] + RewriteRule "^/openstack/virtualpdu(.*?)$" "/x/virtualpdu$1" [R=301,L] + RewriteRule "^/openstack/vmtp(.*?)$" "/x/vmtp$1" [R=301,L] + RewriteRule "^/openstack/vmware-nsxlib(.*?)$" "/x/vmware-nsxlib$1" [R=301,L] + RewriteRule "^/openstack/vmware-nsx-tempest-plugin(.*?)$" "/x/vmware-nsx-tempest-plugin$1" [R=301,L] + RewriteRule "^/openstack/vmware-nsx(.*?)$" "/x/vmware-nsx$1" [R=301,L] + RewriteRule "^/openstack/vmware-vspc(.*?)$" "/x/vmware-vspc$1" [R=301,L] + RewriteRule "^/openstack/whitebox-tempest-plugin(.*?)$" "/x/whitebox-tempest-plugin$1" [R=301,L] + RewriteRule "^/openstack/windmill(.*?)$" "/windmill/windmill$1" [R=301,L] + RewriteRule "^/openstack/wsme(.*?)$" "/x/wsme$1" [R=301,L] + RewriteRule "^/openstack/yaml2ical(.*?)$" "/opendev/yaml2ical$1" [R=301,L] + RewriteRule "^/openstack/zuul-sphinx(.*?)$" "/zuul/zuul-sphinx$1" [R=301,L] + RewriteRule "^/openstack/zuul(.*?)$" "/zuul/zuul$1" [R=301,L] Define AFS_ROOT /afs/openstack.org/project/tarballs.opendev.org diff --git a/testinfra/test_static.py b/testinfra/test_static.py index 529b8be2bc..1472e0a0d3 100644 --- a/testinfra/test_static.py +++ b/testinfra/test_static.py @@ -76,6 +76,14 @@ def test_tarballs_opendev_org(host): # An old file that should be present assert 'nova-12.0.0.tar.gz' in cmd.stdout +def test_tarballs_opendev_org_redirects(host): + cmd = host.run('curl --insecure ' + '--resolve tarballs.opendev.org:443:127.0.0.1 ' + 'https://tarballs.opendev.org/openstack/afsmon/') + # Should be redirected to opendev/afsmon + assert '301 Moved Permanently' in cmd.stdout + assert 'https://tarballs.opendev.org/opendev/afsmon' in cmd.stdout + def test_specs_openstack_org(host): cmd = host.run('curl --insecure ' '--resolve specs.openstack.org:443:127.0.0.1 '