/** * Cancel existing kickstart sessions on the host server for the system to be kickstarted (the * target server). */ private void cancelExistingSessions() { Server hostServer = getHostServer(); List sessions = KickstartFactory.lookupAllKickstartSessionsByServer(hostServer.getId()); if (sessions != null) { log.debug(" Found sessions: " + sessions); Iterator i = sessions.iterator(); while (i.hasNext()) { KickstartSession sess = (KickstartSession) i.next(); if (sess != null && sess.getState() != null) { log.debug( " Working with session: " + sess.getState().getLabel() + " id: " + sess.getId()); } KickstartSessionState state = sess.getState(); if (!state.equals(KickstartFactory.SESSION_STATE_FAILED) || !state.equals(KickstartFactory.SESSION_STATE_COMPLETE)) { log.debug( " need to cancel this Session this.s: " + hostServer.getId() + " sess.hostServer: " + (sess.getHostServer() == null ? "null" : "" + sess.getHostServer().getId())); if (sess.getHostServer() != null && sess.getHostServer().getId().equals(hostServer.getId())) { log.debug(" Marking session failed."); sess.markFailed( LocalizationService.getInstance().getMessage("kickstart.session.newsession")); } } } } }
public void testKsSessionPathparse() throws Exception { user.addPermanentRole(RoleFactory.ORG_ADMIN); KickstartSession session = KickstartSessionTest.createKickstartSession(ksdata, user); KickstartFactory.saveKickstartSession(session); session = (KickstartSession) reload(session); assertNotSame(session.getState(), KickstartFactory.SESSION_STATE_CONFIG_ACCESSED); String encodedSession = SessionSwap.encodeData(session.getId().toString()); // URL: /kickstart/ks/session/2xb7d56e8958b0425e762cc74e8705d8e7 String url = "http://rhn.redhat.com/session/ks/session/" + encodedSession; request.setAttribute(RequestContext.REQUESTED_URI, url); Map<String, Object> options = helper.parseKickstartUrl(url); assertNotNull(options); assertNotNull(options.get("org_id")); assertNotNull(options.get("ksdata")); assertNotNull(options.get("session")); assertNotNull(options.get("host")); assertEquals(session.getState(), KickstartFactory.SESSION_STATE_CONFIG_ACCESSED); }
/** * @param firstAction The first Action in the session's action chain * <p>return Returns the KickstartSession. */ protected KickstartSession setupKickstartSession(Action firstAction) { kickstartSession = new KickstartSession(); Boolean deployConfig = this.getKsdata().getKickstartDefaults().getCfgManagementFlag(); // TODO: Proxy logic // Setup the KickstartSession kickstartSession.setPackageFetchCount(new Long(0)); kickstartSession.setKickstartMode(KickstartSession.MODE_ONETIME); kickstartSession.setDeployConfigs(deployConfig); kickstartSession.setAction(firstAction); kickstartSession.setKsdata(this.getKsdata()); kickstartSession.setKstree(this.getKsdata().getTree()); kickstartSession.setVirtualizationType( this.getKsdata().getKickstartDefaults().getVirtualizationType()); kickstartSession.setLastAction(new Date()); kickstartSession.setNewServer(this.getTargetServer()); kickstartSession.setOldServer(this.getTargetServer()); kickstartSession.setHostServer(this.getHostServer()); kickstartSession.setUser(this.getUser()); kickstartSession.setState(KickstartFactory.SESSION_STATE_CREATED); kickstartSession.setOrg(this.getUser().getOrg()); kickstartSession.setSystemRhnHost(this.getProxyHost()); kickstartSession.setVirtualizationType( this.getKsdata().getKickstartDefaults().getVirtualizationType()); log.debug("** Saving new KickstartSession: " + kickstartSession.getId()); KickstartFactory.saveKickstartSession(kickstartSession); log.debug("** Saved new KickstartSession: " + kickstartSession.getId()); return kickstartSession; }