← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wgrant/launchpad/no-more-vostok into lp:launchpad

 

William Grant has proposed merging lp:~wgrant/launchpad/no-more-vostok into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~wgrant/launchpad/no-more-vostok/+merge/83561

Drop Vostok, Linaro's aborted attempt to create a standalone Soyuzish thing.

11:34 < lifeless> StevenK: vostok can be deleted
11:50 < mwhudson> lifeless, StevenK: sure, rip out vostok if it's causing any problems

-- 
https://code.launchpad.net/~wgrant/launchpad/no-more-vostok/+merge/83561
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wgrant/launchpad/no-more-vostok into lp:launchpad.
=== modified file 'Makefile'
--- Makefile	2011-11-18 00:29:04 +0000
+++ Makefile	2011-11-28 08:46:24 +0000
@@ -231,7 +231,6 @@
 $(subst $(PY),,$(BUILDOUT_BIN)): $(PY)
 
 compile: $(PY) $(BZR_VERSION_INFO)
-	mkdir -p /var/tmp/vostok-archive
 	${SHHH} $(MAKE) -C sourcecode build PYTHON=${PYTHON} \
 	    LPCONFIG=${LPCONFIG}
 	${SHHH} LPCONFIG=${LPCONFIG} ${PY} -t buildmailman.py
@@ -432,14 +431,11 @@
 	sed -e 's,%BRANCH_REWRITE%,$(shell pwd)/scripts/branch-rewrite.py,' \
 		configs/development/local-launchpad-apache > \
 		/etc/apache2/sites-available/local-launchpad
-	cp configs/development/local-vostok-apache \
-		/etc/apache2/sites-available/local-vostok
 	touch /var/tmp/bazaar.launchpad.dev/rewrite.log
 	chown $(SUDO_UID):$(SUDO_GID) /var/tmp/bazaar.launchpad.dev/rewrite.log
 
 enable-apache-launchpad: copy-apache-config copy-certificates
 	a2ensite local-launchpad
-	a2ensite local-vostok
 
 reload-apache: enable-apache-launchpad
 	/etc/init.d/apache2 restart

=== modified file 'configs/development/launchpad-lazr.conf'
--- configs/development/launchpad-lazr.conf	2011-11-16 15:41:09 +0000
+++ configs/development/launchpad-lazr.conf	2011-11-28 08:46:24 +0000
@@ -357,9 +357,6 @@
 [vhost.feeds]
 hostname: feeds.launchpad.dev
 
-[vhost.vostok]
-hostname: vostok.dev
-
 [immediate_mail]
 # XXX sinzui 2008-03-26:
 # A development box should never send email to the outer world,

=== removed file 'configs/development/local-vostok-apache'
--- configs/development/local-vostok-apache	2010-08-06 17:39:52 +0000
+++ configs/development/local-vostok-apache	1970-01-01 00:00:00 +0000
@@ -1,52 +0,0 @@
-NameVirtualHost 127.0.0.77:80
-
-RewriteLock /var/tmp/vostok-rewrite-lock
-
-<VirtualHost 127.0.0.77:80>
-  ServerName archive.vostok.dev
-  LogLevel debug
-
-  DocumentRoot /var/tmp/vostok-archive
-  <Directory /var/tmp/vostok-archive/>
-    Order Deny,Allow
-    Deny from all
-    Allow from 127.0.0.0/255.0.0.0
-    Options Indexes
-  </Directory>
-</VirtualHost>
-
-<VirtualHost 127.0.0.77:443>
-  ServerName vostok.dev
-  ServerAlias *.vostok.dev
-  <Proxy *>
-    Order deny,allow
-    Allow from 127.0.0.0/255.0.0.0
-  </Proxy>
-  SSLEngine On
-  SSLCertificateFile /etc/apache2/ssl/launchpad.crt
-  SSLCertificateKeyFile /etc/apache2/ssl/launchpad.key
-
-  ProxyPreserveHost on
-  ProxyPass / http://localhost:8086/ retry=1
-
-  <Location />
-    # Insert filter
-    SetOutputFilter DEFLATE
-
-    # Don't compress images
-    SetEnvIfNoCase Request_URI \
-    \.(?:gif|jpe?g|png)$ no-gzip dont-vary
-
-    # Don't gzip anything that starts /@@/ and doesn't end .js (ie images)
-    SetEnvIfNoCase Request_URI ^/@@/ no-gzip dont-vary
-    SetEnvIfNoCase Request_URI ^/@@/.*\.js$ !no-gzip !dont-vary
-  </Location>
-
-</VirtualHost>
-
-<VirtualHost 127.0.0.77:80>
-  ServerName vostok.dev
-  ServerAlias *.vostok.dev
-  RewriteEngine On
-  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
-</VirtualHost>

=== modified file 'lib/canonical/config/schema-lazr.conf'
--- lib/canonical/config/schema-lazr.conf	2011-11-22 05:10:34 +0000
+++ lib/canonical/config/schema-lazr.conf	2011-11-28 08:46:24 +0000
@@ -2075,8 +2075,6 @@
 
 [vhost.feeds]
 
-[vhost.vostok]
-
 
 # Stubed Key server for test proposes, it's able to serve
 # in SKS format, a restricted set of keys.

=== modified file 'lib/canonical/launchpad/configure.zcml'
--- lib/canonical/launchpad/configure.zcml	2011-09-19 14:29:47 +0000
+++ lib/canonical/launchpad/configure.zcml	2011-11-28 08:46:24 +0000
@@ -30,7 +30,6 @@
   <include package="lp.translations" />
   <include package="lp.testopenid" />
   <include package="lp.blueprints" />
-  <include package="lp.vostok" />
 
   <browser:url
     for="lp.registry.interfaces.person.IPersonSet"

=== modified file 'lib/canonical/launchpad/doc/webapp-publication.txt'
--- lib/canonical/launchpad/doc/webapp-publication.txt	2011-10-03 11:16:04 +0000
+++ lib/canonical/launchpad/doc/webapp-publication.txt	2011-11-28 08:46:24 +0000
@@ -83,10 +83,6 @@
     rooturl: http://ubuntu-openid.launchpad.dev/
     althosts:
     ----
-    vostok @ vostok.dev
-    rooturl: http://vostok.dev/
-    althosts:
-    ----
     xmlrpc @ xmlrpc.launchpad.dev
     rooturl: http://launchpad.dev/
     althosts:
@@ -115,7 +111,6 @@
     testopenid.dev
     translations.launchpad.dev
     ubuntu-openid.launchpad.dev
-    vostok.dev
     xmlrpc-private.launchpad.dev
     xmlrpc.launchpad.dev
 

=== removed directory 'lib/lp/vostok'
=== removed file 'lib/lp/vostok/__init__.py'
--- lib/lp/vostok/__init__.py	2010-07-14 09:50:12 +0000
+++ lib/lp/vostok/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""The Linaro archive management skin."""

=== removed directory 'lib/lp/vostok/browser'
=== removed file 'lib/lp/vostok/browser/__init__.py'
--- lib/lp/vostok/browser/__init__.py	2010-07-14 15:09:37 +0000
+++ lib/lp/vostok/browser/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Browser code for the Linaro archive management skin."""

=== removed file 'lib/lp/vostok/browser/configure.zcml'
--- lib/lp/vostok/browser/configure.zcml	2010-08-13 15:33:40 +0000
+++ lib/lp/vostok/browser/configure.zcml	1970-01-01 00:00:00 +0000
@@ -1,34 +0,0 @@
-<configure
-   xmlns="http://namespaces.zope.org/zope";
-   xmlns:browser="http://namespaces.zope.org/browser";
-   xmlns:i18n="http://namespaces.zope.org/i18n";
-   xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
-   i18n_domain="launchpad">
-
-  <browser:defaultView
-      for="..publisher.IVostokRoot"
-      name="+index"
-      />
-
-  <browser:page
-      for="..publisher.IVostokRoot"
-      name="+index"
-      class=".root.VostokRootView"
-      template="../templates/root.pt"
-      permission="zope.Public"
-      layer="..publisher.VostokLayer"
-      />
-
-  <browser:navigation
-      module=".distribution"
-      classes="DistributionNavigation"
-      layer="..publisher.VostokLayer" />
-
-  <browser:navigation
-      module="lp.vostok.publisher"
-      classes="VostokRootNavigation"
-      />
-
-  <adapter factory="lp.vostok.browser.root.VostokLayerToMainTemplateAdapter" />
-
-</configure>

=== removed file 'lib/lp/vostok/browser/distribution.py'
--- lib/lp/vostok/browser/distribution.py	2010-08-20 20:31:18 +0000
+++ lib/lp/vostok/browser/distribution.py	1970-01-01 00:00:00 +0000
@@ -1,26 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Browser views for distributions."""
-
-__metaclass__ = type
-
-__all__ = [
-    'DistributionNavigation',
-    ]
-
-from canonical.launchpad.webapp import (
-    GetitemNavigation,
-    stepthrough,
-    )
-from lp.registry.interfaces.distribution import IDistribution
-
-
-class DistributionNavigation(GetitemNavigation):
-
-    usedfor = IDistribution
-
-    @stepthrough('+source')
-    def traverse_sources(self, name):
-        return self.context.getSourcePackage(name)
-

=== removed file 'lib/lp/vostok/browser/root.py'
--- lib/lp/vostok/browser/root.py	2010-09-25 14:29:32 +0000
+++ lib/lp/vostok/browser/root.py	1970-01-01 00:00:00 +0000
@@ -1,43 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Browser code for the Vostok root."""
-
-__metaclass__ = type
-__all__ = [
-    'VostokRootView',
-    'VostokLayerToMainTemplateAdapter',
-    ]
-
-import os
-
-from zope.component import (
-    adapts,
-    getUtility,
-    )
-from zope.interface import implements
-
-from canonical.launchpad.webapp import LaunchpadView
-from lp.app.browser.tales import IMainTemplateFile
-from lp.registry.interfaces.distribution import IDistributionSet
-from lp.vostok.publisher import VostokLayer
-
-
-class VostokRootView(LaunchpadView):
-    """The view for the Vostok root object."""
-
-    page_title = 'Vostok'
-
-    @property
-    def distributions(self):
-        """An iterable of all registered distributions."""
-        return getUtility(IDistributionSet)
-
-
-class VostokLayerToMainTemplateAdapter:
-    adapts(VostokLayer)
-    implements(IMainTemplateFile)
-
-    def __init__(self, context):
-        here = os.path.dirname(os.path.realpath(__file__))
-        self.path = os.path.join(here, '../templates/main-template.pt')

=== removed directory 'lib/lp/vostok/browser/tests'
=== removed file 'lib/lp/vostok/browser/tests/__init__.py'
--- lib/lp/vostok/browser/tests/__init__.py	2010-07-14 15:09:37 +0000
+++ lib/lp/vostok/browser/tests/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for the browser code of the Linaro archive management skin."""

=== removed file 'lib/lp/vostok/browser/tests/request.py'
--- lib/lp/vostok/browser/tests/request.py	2010-08-20 20:31:18 +0000
+++ lib/lp/vostok/browser/tests/request.py	1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""A VostokLayer request class for use in tests."""
-
-__metaclass__ = type
-__all__ = [
-    'VostokTestRequest',
-    ]
-
-from canonical.launchpad.webapp.servers import LaunchpadTestRequest
-from lp.vostok.publisher import VostokRequestMixin
-
-
-class VostokTestRequest(VostokRequestMixin, LaunchpadTestRequest):
-    """A test request for `VostokLayer`."""

=== removed file 'lib/lp/vostok/browser/tests/test_base_template.py'
--- lib/lp/vostok/browser/tests/test_base_template.py	2010-08-20 20:31:18 +0000
+++ lib/lp/vostok/browser/tests/test_base_template.py	1970-01-01 00:00:00 +0000
@@ -1,30 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for the vostok 'view/macro:page' TALES adapter."""
-
-__metaclass__ = type
-
-from zope.component import getMultiAdapter
-from zope.traversing.interfaces import IPathAdapter
-
-from canonical.testing.layers import FunctionalLayer
-from lp.testing import TestCase
-from lp.vostok.browser.tests.request import VostokTestRequest
-from lp.vostok.publisher import VostokRoot
-
-
-class TestPageMacroDispatcher(TestCase):
-
-    layer = FunctionalLayer
-
-    def test_base_template(self):
-        # For requests on the vostok vhost (i.e. IVostokLayer requests), the
-        # base template used is the vostok one.
-        root_view = getMultiAdapter(
-            (VostokRoot(), VostokTestRequest()), name='+index')
-        adapter = getMultiAdapter([root_view], IPathAdapter, name='macro')
-        self.assertIn('lp/vostok', adapter.base.filename)
-        # The vostok base template defines a 'master' macro as the adapter
-        # expects.
-        self.assertIn('master', adapter.base.macros.keys())

=== removed file 'lib/lp/vostok/browser/tests/test_navigation.py'
--- lib/lp/vostok/browser/tests/test_navigation.py	2010-08-20 20:31:18 +0000
+++ lib/lp/vostok/browser/tests/test_navigation.py	1970-01-01 00:00:00 +0000
@@ -1,69 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for Vostok's navigation classes."""
-
-__metaclass__ = type
-
-from zope.publisher.interfaces import NotFound
-from zope.security.proxy import removeSecurityProxy
-
-from canonical.launchpad.webapp import (
-    canonical_url,
-    urlparse,
-    )
-from canonical.testing.layers import DatabaseFunctionalLayer
-from lp.testing import TestCaseWithFactory
-from lp.testing.publication import test_traverse
-
-
-class TestRootNavigation(TestCaseWithFactory):
-
-    layer = DatabaseFunctionalLayer
-
-    def test_traverse_to_distributions(self):
-        # We can traverse to a distribution by name from the vostok
-        # root.
-        distro = self.factory.makeDistribution()
-        obj, view, request = test_traverse('http://vostok.dev/' + distro.name)
-        self.assertEqual(distro, obj)
-
-    def test_traverse_to_distribution_aliases(self):
-        # When we traverse to a distribution using one of its aliases, we're
-        # redirected to the distribution's page on the vostok vhost.
-        distro = self.factory.makeDistribution(aliases=['f00'])
-        obj, view, request = test_traverse('http://vostok.dev/f00')
-        naked_view = removeSecurityProxy(view)
-        parse_result = urlparse(naked_view.target)
-        self.assertEqual('vostok.dev', parse_result.netloc)
-        self.assertEqual('/' + distro.name, parse_result.path)
-
-    def test_can_not_traverse_to_projects(self):
-        # We cannot traverse to a project from the vostok root.
-        path = self.factory.makeProject().name
-        self.assertRaises(
-            NotFound, test_traverse, 'http://vostok.dev/' + path)
-
-
-class TestDistributionNavigation(TestCaseWithFactory):
-
-    layer = DatabaseFunctionalLayer
-
-    def test_traverse_to_source_package(self):
-        # We can traverse to a source package by name from a distribution on
-        # the vostok vhost.
-        source_package = self.factory.makeDistributionSourcePackage()
-        obj, view, request = test_traverse(
-            canonical_url(source_package, rootsite='vostok'))
-        self.assertEqual(source_package, obj)
-
-    def test_traverse_to_distroseries(self):
-        distroseries = self.factory.makeDistroSeries()
-        obj, view, request = test_traverse(
-            canonical_url(distroseries, rootsite='vostok'))
-        self.assertEqual(distroseries, obj)
-
-    def test_can_not_traverse_to_bug(self):
-        bug = self.factory.makeBugTask(target=self.factory.makeDistribution())
-        url = canonical_url(bug, rootsite='vostok')
-        self.assertRaises(NotFound, test_traverse, url)

=== removed file 'lib/lp/vostok/browser/tests/test_root.py'
--- lib/lp/vostok/browser/tests/test_root.py	2011-08-12 11:37:08 +0000
+++ lib/lp/vostok/browser/tests/test_root.py	1970-01-01 00:00:00 +0000
@@ -1,93 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for browsing the root of the vostok skin."""
-
-__metaclass__ = type
-
-import os
-
-from zope.publisher.defaultview import getDefaultViewName
-
-from canonical.launchpad.testing.pages import (
-    extract_text,
-    find_tag_by_id,
-    )
-from lp.app.browser.tales import IMainTemplateFile
-from canonical.testing.layers import (
-    DatabaseFunctionalLayer,
-    FunctionalLayer,
-    )
-from lp.testing import (
-    TestCase,
-    TestCaseWithFactory,
-    )
-from lp.testing.views import create_initialized_view
-from lp.vostok.browser.root import VostokRootView
-from lp.vostok.browser.tests.request import VostokTestRequest
-from lp.vostok.publisher import (
-    VostokLayer,
-    VostokRoot,
-    )
-
-
-class TestRootRegistrations(TestCase):
-    """Test the registration of views for `VostokRoot`."""
-
-    layer = FunctionalLayer
-
-    def test_root_default_view_name(self):
-        # The default view for the vostok root object is called "+index".
-        view_name = getDefaultViewName(VostokRoot(), VostokTestRequest())
-        self.assertEquals('+index', view_name)
-
-    def test_root_index_view(self):
-        # VostokRootView is registered as the view for the VostokRoot object.
-        view = create_initialized_view(
-            VostokRoot(), name='+index', layer=VostokLayer)
-        self.assertIsInstance(view, VostokRootView)
-
-
-class TestRootView(TestCaseWithFactory):
-    """Tests for `VostokRootView`."""
-
-    layer = DatabaseFunctionalLayer
-
-    def view(self):
-        return create_initialized_view(
-            VostokRoot(), name='+index', layer=VostokLayer)
-
-    def test_distributions(self):
-        # VostokRootView.distributions is an iterable of all registered
-        # distributions.
-        root_view = self.view()
-        new_distro = self.factory.makeDistribution()
-        self.assertIn(new_distro, list(root_view.distributions))
-
-
-class TestRootTemplate(TestCaseWithFactory):
-    """Tests for the templates used by views of `VostokRoot`."""
-
-    layer = DatabaseFunctionalLayer
-
-    def test_distribution_list(self):
-        # The element with id 'distro-list' on the root page contains a list
-        # of links to all registered distributions.
-        v = create_initialized_view(
-            VostokRoot(), name='+index', layer=VostokLayer)
-        contents = v.render()
-        link_list = find_tag_by_id(contents, 'distro-list')('a')
-        distro_list = list(v.distributions)
-        self.assertEqual(len(link_list), len(distro_list))
-        for distro, link in zip(distro_list, link_list):
-            self.assertEqual(distro.displayname, extract_text(link))
-
-
-class TestVostokLayerToMainTemplateAdapter(TestCase):
-
-    layer = FunctionalLayer
-
-    def test_path(self):
-        main_template_path = IMainTemplateFile(VostokTestRequest()).path
-        self.assertIn('lp/vostok', main_template_path)
-        self.assertTrue(os.path.isfile(main_template_path))

=== removed file 'lib/lp/vostok/configure.zcml'
--- lib/lp/vostok/configure.zcml	2010-08-19 03:06:27 +0000
+++ lib/lp/vostok/configure.zcml	1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
-<configure
-   xmlns="http://namespaces.zope.org/zope";
-   xmlns:browser="http://namespaces.zope.org/browser";
-   xmlns:i18n="http://namespaces.zope.org/i18n";
-   xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
-   i18n_domain="launchpad">
-
-  <include package=".browser" />
-
-  <publisher
-      name="vostok"
-      factory="lp.vostok.publisher.vostok_request_publication_factory"
-      methods="*"
-      mimetypes="*" />
-  <utility
-      component="lp.vostok.publisher.VostokLayer"
-      provides="zope.publisher.interfaces.browser.IDefaultBrowserLayer"
-      name="vostok" />
-
-  <securedutility
-     class="lp.vostok.publisher.VostokRoot"
-     provides="lp.vostok.publisher.IVostokRoot">
-    <allow interface="lp.vostok.publisher.IVostokRoot" />
-  </securedutility>
-</configure>

=== removed file 'lib/lp/vostok/publisher.py'
--- lib/lp/vostok/publisher.py	2010-08-20 20:31:18 +0000
+++ lib/lp/vostok/publisher.py	1970-01-01 00:00:00 +0000
@@ -1,110 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Vostok's custom publication."""
-
-__metaclass__ = type
-__all__ = [
-    'VostokBrowserRequest',
-    'VostokLayer',
-    'VostokRootNavigation',
-    'vostok_request_publication_factory',
-    ]
-
-
-from zope.component import getUtility
-from zope.interface import (
-    implements,
-    Interface,
-    )
-from zope.publisher.interfaces.browser import (
-    IBrowserRequest,
-    IDefaultBrowserLayer,
-    )
-
-from canonical.launchpad.webapp import (
-    canonical_url,
-    Navigation,
-    )
-from canonical.launchpad.webapp.publication import LaunchpadBrowserPublication
-from canonical.launchpad.webapp.servers import (
-    LaunchpadBrowserRequest,
-    LaunchpadBrowserResponse,
-    VirtualHostRequestPublicationFactory,
-    )
-from canonical.launchpad.webapp.vhosts import allvhosts
-from lp.registry.interfaces.distribution import IDistributionSet
-
-
-class VostokLayer(IBrowserRequest, IDefaultBrowserLayer):
-    """The Vostok layer."""
-
-
-class VostokRequestMixin:
-    """This mixin defines behaviour for the real and test Vostok requests."""
-
-    implements(VostokLayer)
-
-    def getRootURL(self, rootsite):
-        """See `IBasicLaunchpadRequest`."""
-        return allvhosts.configs['vostok'].rooturl
-
-
-class VostokBrowserRequest(VostokRequestMixin, LaunchpadBrowserRequest):
-    """Request class for Vostok layer."""
-
-    def _createResponse(self):
-        """As per zope.publisher.browser.BrowserRequest._createResponse"""
-        return VostokBrowserResponse()
-
-
-class VostokBrowserResponse(LaunchpadBrowserResponse):
-
-    def redirect(self, location, status=None, trusted=False,
-                 temporary_if_possible=False):
-        """Override the parent method to make redirects untrusted by default.
-
-        This is so that we don't allow redirects to any hosts other than
-        vostok's.
-        """
-        # Need to call LaunchpadBrowserResponse.redirect() directly because
-        # the temporary_if_possible argument only exists there.
-        LaunchpadBrowserResponse.redirect(
-            self, location, status=status, trusted=trusted,
-            temporary_if_possible=temporary_if_possible)
-
-
-class IVostokRoot(Interface):
-    """Marker interface for the root vostok object."""
-
-
-class VostokRoot:
-    """The root object for the Vostok site.
-
-    No behaviour here, it just exists so it can have view and navigation
-    registrations attached to it.
-    """
-
-    implements(IVostokRoot)
-
-
-class VostokRootNavigation(Navigation):
-
-    usedfor = IVostokRoot
-
-    def traverse(self, name):
-        distro = getUtility(IDistributionSet)[name]
-        if distro is not None and distro.name != name:
-            # This distro was accessed through one of its aliases, so we
-            # must redirect to its canonical URL.
-            return self.redirectSubTree(canonical_url(distro), status=301)
-        return distro
-
-
-class VostokBrowserPublication(LaunchpadBrowserPublication):
-    root_object_interface = IVostokRoot
-
-
-def vostok_request_publication_factory():
-    return VirtualHostRequestPublicationFactory(
-        'vostok', VostokBrowserRequest, VostokBrowserPublication)

=== removed directory 'lib/lp/vostok/templates'
=== removed file 'lib/lp/vostok/templates/main-template.pt'
--- lib/lp/vostok/templates/main-template.pt	2010-08-06 18:23:33 +0000
+++ lib/lp/vostok/templates/main-template.pt	1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-<metal:page
-  xmlns:metal="http://xml.zope.org/namespaces/metal";
-  xmlns:tal="http://xml.zope.org/namespaces/tal";
-  define-macro="master"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml";>
-
-  <head>
-
-    <title tal:content="view/fmt:pagetitle">Page Title</title>
-
-  </head>
-
-  <body>
-    <h1 metal:define-slot="heading" />
-    <div metal:define-slot="main" />
-  </body>
-</html>
-</metal:page>

=== removed file 'lib/lp/vostok/templates/root.pt'
--- lib/lp/vostok/templates/root.pt	2010-08-06 18:30:07 +0000
+++ lib/lp/vostok/templates/root.pt	1970-01-01 00:00:00 +0000
@@ -1,20 +0,0 @@
-<html
-   xmlns="http://www.w3.org/1999/xhtml";
-   xmlns:tal="http://xml.zope.org/namespaces/tal";
-   xmlns:metal="http://xml.zope.org/namespaces/metal";
-   xmlns:i18n="http://xml.zope.org/namespaces/i18n";
-   metal:use-macro="view/macro:page/main_only"
-   i18n:domain="vostok">
-  <body>
-    <tal:heading metal:fill-slot="heading">
-      <h1>Vostok</h1>
-    </tal:heading>
-    <tal:content metal:fill-slot="main">
-      <ul id="distro-list">
-        <tal:loop tal:repeat="distro view/distributions">
-          <li tal:content="structure distro/fmt:link" />
-        </tal:loop>
-      </ul>
-    </tal:content>
-  </body>
-</html>

=== removed directory 'lib/lp/vostok/tests'
=== removed file 'lib/lp/vostok/tests/__init__.py'
--- lib/lp/vostok/tests/__init__.py	2010-07-14 09:50:12 +0000
+++ lib/lp/vostok/tests/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for the Linaro archive management skin."""

=== removed file 'lib/lp/vostok/tests/test_publisher.py'
--- lib/lp/vostok/tests/test_publisher.py	2011-08-12 11:37:08 +0000
+++ lib/lp/vostok/tests/test_publisher.py	1970-01-01 00:00:00 +0000
@@ -1,59 +0,0 @@
-# Copyright 2010 Canonical Ltd.  This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for vostok's custom publications."""
-
-__metaclass__ = type
-
-from canonical.config import config
-from canonical.testing.layers import FunctionalLayer
-from lp.testing import TestCase
-from lp.testing.publication import get_request_and_publication
-from lp.vostok.publisher import (
-    VostokBrowserRequest,
-    VostokBrowserResponse,
-    VostokLayer,
-    VostokRoot,
-    )
-
-
-class TestRegistration(TestCase):
-    """Vostok's publication customizations are installed correctly."""
-
-    layer = FunctionalLayer
-
-    def test_vostok_request_provides_vostok_layer(self):
-        # The request constructed for requests to the vostok hostname provides
-        # VostokLayer.
-        request, publication = get_request_and_publication(
-            host=config.vhost.vostok.hostname)
-        self.assertProvides(request, VostokLayer)
-
-    def test_root_object(self):
-        # The root object for requests to the vostok host is an instance of
-        # VostokRoot.
-        request, publication = get_request_and_publication(
-            host=config.vhost.vostok.hostname)
-        self.assertProvides(request, VostokLayer)
-        root = publication.getApplication(request)
-        self.assertIsInstance(root, VostokRoot)
-
-
-class TestVostokBrowserRequest(TestCase):
-
-    def test_createResponse(self):
-        request = VostokBrowserRequest(None, {})
-        self.assertIsInstance(
-            request._createResponse(), VostokBrowserResponse)
-
-
-class TestVostokBrowserResponse(TestCase):
-
-    def test_redirect_to_different_host(self):
-        # Unlike Launchpad's BrowserResponse class, VostokBrowserResponse
-        # doesn't allow redirects to any host other than the current one.
-        request = VostokBrowserRequest(None, {})
-        response = request._createResponse()
-        response._request = request
-        self.assertRaises(
-            ValueError, response.redirect, 'http://launchpad.dev')

=== modified file 'utilities/rocketfuel-setup'
--- utilities/rocketfuel-setup	2011-06-30 20:01:25 +0000
+++ utilities/rocketfuel-setup	2011-11-28 08:46:24 +0000
@@ -84,14 +84,6 @@
   echo "bazaar.launchpad.dev added to /etc/hosts"
 fi
 
-grep -q "^127.0.0.77" /etc/hosts
-if [ $? -ne 0 ]; then
-  echo "
-127.0.0.77      vostok.dev archive.vostok.dev
-" | sudo tee -a /etc/hosts > /dev/null
-  echo "vostok.dev added to /etc/hosts"
-fi
-
 # Enable relevant Ubuntu package repositories
 grep -q "^deb http:.* ${DISTRIB_CODENAME} .*universe" /etc/apt/sources.list
 if [ $? -ne 0 ]; then

=== modified file 'utilities/snakefood/lp-sfood-packages'
--- utilities/snakefood/lp-sfood-packages	2011-11-20 23:37:23 +0000
+++ utilities/snakefood/lp-sfood-packages	2011-11-28 08:46:24 +0000
@@ -1,4 +1,3 @@
-lp/vostok
 lp/translations
 lp/testopenid
 lp/testing