def build(self):
        factory = getUtility(IGlobalCatalogFactory)
        factory.create(self.portal)

        self.buildRoots()
        self.buildMonitors()
        self.buildUserCommands()
        self.buildReportClasses()
        self.buildPortlets()
        manage_addEventClass(self.dmd)
        manage_addZDeviceLoader(self.dmd)
        manage_addZenTableManager(self.portal)
        manage_addZenossInfo(self.portal)
        manage_addDirectoryView(self.portal,'ZenUtils/js', 'js')
        manage_addRenderServer(self.portal, "RenderServer")
        manage_addReportServer(self.portal, "ReportServer")
        manage_addMySqlEventManager(self.dmd, evthost=self.evthost,
                                    evtuser=self.evtuser, evtpass=self.evtpass,
                                    evtdb=self.evtdb, evtport=self.evtport)
        manage_addMySqlEventManager(self.dmd, evthost=self.evthost,
                                    evtuser=self.evtuser, evtpass=self.evtpass,
                                    evtdb=self.evtdb, evtport=self.evtport,
                                    history=True)
        manage_addUserSettingsManager(self.dmd)
        manage_addNotificationSubscriptionManager(self.dmd)
        manage_addTriggerManager(self.dmd)
        manage_addUserInterfaceSettings(self.dmd)
        manage_addLinkManager(self.dmd)
        manage_addJobManager(self.dmd)
        manage_addIpNetwork(self.dmd, "Networks")
        manage_addIpNetwork(self.dmd, "IPv6Networks", 64, version=6)
        manage_addZenPackManager(self.dmd)
        CreateZenPackPersistenceCatalog(self.dmd)
        CreateRRDTemplatesCatalog(self.dmd)
        createMaintenanceWindowCatalog(self.dmd)
 def cutover(self, dmd):
     layers = ('zentablemanager','zenui')
     zport = dmd.getParentNode()
     try:zport._delObject('ZenTableManager')
     except AttributeError: pass
     for layer in layers:
         try: zport.portal_skins._delObject(layer)
         except AttributeError: pass
     manage_addZenTableManager(zport)