     # vmController.on 'vm.progress.error', => @notify cssClass : 'error'
 
     # @on "SessionSelected", ({vm, session}) => @createNewTab {vm, session, mode: 'resume'}
+  viewAppended: ->
+    super
+
+    ComputeProvider.fetchMachines (err, machines)=>
+
+      machines.forEach (machine)=>
+        @machines[machine.uid] = machine
+
+    path = location.pathname + location.search + "?"
+    mainController = KD.getSingleton("mainController")
+
+    unless KD.isLoggedIn()
+      mainController.once "accountChanged.to.loggedIn", =>
+        wc = KD.singleton 'windowController'
+        wc.clearUnloadListeners()
+        location.replace path
+
 
     # {vmController} = KD.singletons
     # {terminalKites} = vmController


    @addSubView new ChromeTerminalBanner

  viewAppended: ->
    super
    path = location.pathname + location.search + "?"
    mainController = KD.getSingleton("mainController")

    unless KD.isLoggedIn()
      mainController.once "accountChanged.to.loggedIn", =>
        wc = KD.singleton 'windowController'
        wc.clearUnloadListeners()
        location.replace path

  createNewTab: (options = {}) ->


  constructor: (options = {}, data) ->

    super options, data

    @machines = {}

    @dirty = KD.utils.dict()

