def testInvalidate(self): mcomp = planet.ManagerComponentState() mflow = planet.ManagerFlowState() mstate = planet.ManagerPlanetState() mflow.append('components', mcomp) mstate.append('flows', mflow) astate = jelly.unjelly(jelly.jelly(mstate)) self.failUnless(isinstance(astate, planet.AdminPlanetState)) aflow, = astate.get('flows') acomp, = aflow.get('components') invalidates = [] def invalidate(obj): invalidates.append(obj) astate.addListener(self, invalidate=invalidate) aflow.addListener(self, invalidate=invalidate) acomp.addListener(self, invalidate=invalidate) self.assertEquals(invalidates, []) astate.invalidate() self.assertEquals(invalidates, [acomp, aflow, astate])
def makeNewComponentState(conf): # condition (2) state = planet.ManagerComponentState() state.setJobState(self.jobState) self.componentState = state self.upgradeConfig(state, conf) flowName, compName = conf['parent'], conf['name'] state.set('name', compName) state.set('type', conf['type']) state.set('workerRequested', self.jobState.get('workerName')) state.set('config', conf) self.vishnu.addComponentToFlow(state, flowName) return state
def _createComponent(self, dict): mstate = planet.ManagerComponentState() for key in dict.keys(): mstate.set(key, dict[key]) astate = jelly.unjelly(jelly.jelly(mstate)) return astate
def setUp(self): self.mstate = planet.ManagerComponentState() self.astate = jelly.unjelly(jelly.jelly(self.mstate)) self.failUnless(isinstance(self.astate, planet.AdminComponentState))
def setUp(self): self.state = planet.ManagerComponentState()
def setUp(self): self.mstate = planet.ManagerComponentState() self.astate = jelly.unjelly(jelly.jelly(self.mstate)) self.astate.addListener(self, set_=self.stateSet) self.changes = []
def testOneComponent(self): # create state and initial mapper and store it state = planet.ManagerComponentState() mapper = manager.ComponentMapper() m = mapper m.state = state # insert a state -> mapper ref self._mappers[state] = m # starting component with state gets us avatarId; lookup mapper id = '/adam/cain' m = self._mappers[state] self.assertEquals(m, mapper) m.id = id # insert a id -> mapper ref self._mappers[id] = m # verify we can do state -> id and other way around m = self._mappers[state] self.assertEquals(m.state, state) self.assertEquals(m.id, id) m = self._mappers[id] self.assertEquals(m.state, state) self.assertEquals(m.id, id) # a componentAvatar gets created with this avatarId # lookup mapper and add class FakeAvatar: pass avatar = FakeAvatar() m = self._mappers[id] m.avatar = avatar # insert an avatar -> mapper ref self._mappers[avatar] = m # verify we can do avatar -> (state, id) and other way m = self._mappers[avatar] self.assertEquals(m.state, state) self.assertEquals(m.id, id) m = self._mappers[state] self.assertEquals(m.avatar, avatar) self.assertEquals(m.id, id) m = self._mappers[id] self.assertEquals(m.state, state) self.assertEquals(m.avatar, avatar) # component avatar logs out, clean up id and avatar m = self._mappers[avatar] del self._mappers[m.id] del self._mappers[m.avatar] m.id = None m.avatar = None # verify that the keys are gone, and that the mapper on state # only has state left self.failIf(id in self._mappers.keys()) self.failIf(avatar in self._mappers.keys()) self.failUnless(state in self._mappers.keys()) m = self._mappers[state] self.failIf(m.id) self.failIf(m.avatar) self.assertEquals(m.state, state)