/** * Primarily a convenience method to make testing easier * * @param ctx Quartz job runtime environment * @throws JobExecutionException Indicates somes sort of fatal error */ public void execute(JobExecutionContext ctx) throws JobExecutionException { try { SelectMode select = ModeFactory.getMode( TaskConstants.MODE_NAME, TaskConstants.TASK_QUERY_KSCLEANUP_FIND_CANDIDATES); DataResult dr = select.execute(Collections.EMPTY_MAP); if (log.isDebugEnabled()) { log.debug("Found " + dr.size() + " entries to process"); } // Bail early if no candidates if (dr.size() == 0) { return; } Long failedStateId = findFailedStateId(); if (failedStateId == null) { log.warn("Failed kickstart state id not found"); return; } for (Iterator iter = dr.iterator(); iter.hasNext(); ) { Map row = (Map) iter.next(); processRow(failedStateId, row); } } catch (Exception e) { log.error(e.getMessage(), e); throw new JobExecutionException(e); } }
public void testDeleteKey() throws Exception { // default setup already includes a custom key; therefore, let's // grab the initial size DataResult initialKeys = SystemManager.listDataKeys(admin); handler.createKey(admin, "testlabel", "test description"); DataResult result = SystemManager.listDataKeys(admin); assertEquals(initialKeys.size() + 1, result.size()); boolean foundKey = false; for (Iterator itr = result.iterator(); itr.hasNext(); ) { CustomDataKeyOverview key = (CustomDataKeyOverview) itr.next(); if (key.getLabel().equals("testlabel") && key.getDescription().equals("test description")) { foundKey = true; break; } } assertTrue(foundKey); handler.deleteKey(admin, "testlabel"); result = SystemManager.listDataKeys(admin); assertEquals(initialKeys.size(), result.size()); foundKey = false; for (Iterator itr = result.iterator(); itr.hasNext(); ) { CustomDataKeyOverview key = (CustomDataKeyOverview) itr.next(); if (key.getLabel().equals("testlabel") && key.getDescription().equals("test description")) { foundKey = true; break; } } assertFalse(foundKey); }
public void testSystemPackageList() throws Exception { // need a system // need to add packages to that system // then need to query those values PageControl pc = new PageControl(); pc.setIndexData(false); pc.setStart(1); user.addRole(RoleFactory.ORG_ADMIN); Server server = ServerFactoryTest.createTestServer(user, true); PackageManagerTest.addPackageToSystemAndChannel( "test-package-name" + TestUtils.randomString(), server, ChannelFactoryTest.createTestChannel(user)); DataResult dr = PackageManager.systemPackageList(server.getId(), pc); assertNotNull(dr); assertEquals(1, dr.size()); for (Iterator itr = dr.iterator(); itr.hasNext(); ) { Object o = itr.next(); assertTrue(o instanceof PackageListItem); } }
public void testPossiblePackagesForPushingIntoChannel() throws Exception { Errata e = ErrataFactoryTest.createTestPublishedErrata(user.getOrg().getId()); Channel c = ChannelTestUtils.createTestChannel(user); DataResult dr = PackageManager.possiblePackagesForPushingIntoChannel(c.getId(), e.getId(), null); assertTrue(dr.size() > 0); }
private Long findTopmostParentAction(Long startingAction) { SelectMode select = ModeFactory.getMode( TaskConstants.MODE_NAME, TaskConstants.TASK_QUERY_KSCLEANUP_FIND_PREREQ_ACTION); Map params = new HashMap(); params.put("action_id", startingAction); if (log.isDebugEnabled()) { log.debug("StartingAction: " + startingAction); } Long retval = startingAction; Long preqid = startingAction; DataResult dr = select.execute(params); if (log.isDebugEnabled()) { log.debug("dr: " + dr); } while (dr.size() > 0 && preqid != null) { preqid = (Long) ((Map) dr.get(0)).get("prerequisite"); if (preqid != null) { retval = preqid; params.put("action_id", retval); dr = select.execute(params); } } if (log.isDebugEnabled()) { log.debug("preqid: " + preqid); log.debug("Returning: " + retval); } return retval; }
// This test only works if you have Channels syched to your sat public void xxxxPackageNamesByCapability() throws Exception { /*user.addRole(RoleFactory.ORG_ADMIN); Channel c = ChannelFactoryTest.createTestChannel(user); Package pak = addPackageToChannel(user, TestUtils.randomString(), c); PackageCapability cap = PackageCapabilityTest.createTestCapability();*/ DataResult dr = PackageManager.packageNamesByCapability(user.getOrg(), "rhn.kickstart.boot_image"); assertNotNull(dr); assertTrue(dr.size() > 0); }
private Long findFailedStateId() { Long retval = null; SelectMode select = ModeFactory.getMode( TaskConstants.MODE_NAME, TaskConstants.TASK_QUERY_KSCLEANUP_FIND_FAILED_STATE_ID); DataResult dr = select.execute(Collections.EMPTY_MAP); if (dr.size() > 0) { retval = (Long) ((Map) dr.get(0)).get("id"); } return retval; }
/** * If we do not know the host for a virtual system, insert a 'fake' system into the list before * the current one. * * @param result list of nodes to solve */ public static void processList(DataResult result) { for (int i = 0; i < result.size(); i++) { VirtualSystemOverview current = (VirtualSystemOverview) result.get(i); if ((current.getUuid() != null) && (current.getHostSystemId() == null)) { VirtualSystemOverview fakeSystem = new VirtualSystemOverview(); fakeSystem.setServerName(FAKENODE_LABEL); fakeSystem.setHostSystemId(new Long(0)); result.add(i, fakeSystem); i++; } } }
/** {@inheritDoc} */ public List getResult(RequestContext ctx) { Long sid = ctx.getParamAsLong(RequestContext.SID); User user = ctx.getCurrentUser(); KickstartScheduleCommand cmd = getKickstartScheduleCommand(sid, user); DataResult profiles = cmd.getKickstartProfiles(); if (profiles.size() == 0) { addMessage(ctx.getRequest(), "kickstart.schedule.noprofiles"); ctx.getRequest().setAttribute(HAS_PROFILES, Boolean.FALSE.toString()); } else { ctx.getRequest().setAttribute(HAS_PROFILES, Boolean.TRUE.toString()); } return profiles; }
public void testPackageNamesByCapabilityAndChannel() throws Exception { Channel channel1 = ChannelFactoryTest.createTestChannel(user); addKickstartPackageToChannel(ConfigDefaults.get().getKickstartPackageName(), channel1); // Add a regular non-kickstart package as well: PackageManagerTest.addPackageToChannel("Another package", channel1); DataResult dr = PackageManager.packageNamesByCapabilityAndChannel( user.getOrg(), BaseTreeEditOperation.KICKSTART_CAPABILITY, channel1); assertNotNull(dr); assertEquals(1, dr.size()); PackageListItem item = (PackageListItem) dr.get(0); assertEquals(ConfigDefaults.get().getKickstartPackageName(), item.getName()); }
public void testUpgradablePackagesFromServerSet() throws Exception { // Setup User admin = UserTestUtils.findNewUser("ssmUpgradeUser1", "ssmUpgradeOrg1"); Org org = admin.getOrg(); // Create the server and add to the SSM Server server = ServerTestUtils.createTestSystem(admin); ServerTestUtils.addServersToSsm(admin, server.getId()); // Create upgraded package EVR so package will show up from the query PackageEvr upgradedPackageEvr = PackageEvrFactory.createPackageEvr("1", "1.0.0", "2"); upgradedPackageEvr = (PackageEvr) TestUtils.saveAndReload(upgradedPackageEvr); ServerTestUtils.populateServerErrataPackages( org, server, upgradedPackageEvr, ErrataFactory.ERRATA_TYPE_SECURITY); ServerTestUtils.populateServerErrataPackages( org, server, upgradedPackageEvr, ErrataFactory.ERRATA_TYPE_BUG); // Test DataResult result = PackageManager.upgradablePackagesFromServerSet(admin); assertTrue(result != null); assertEquals(2, result.size()); }
/** * Looks up a list of applicable kickstart profiles. The list is generated based on matches * between the server's base channel arch and the profile's channel arch * * @return DataResult, else null if the server does not exist or does not have a base channel * assigned */ public DataResult<KickstartDto> getKickstartProfiles() { log.debug("getKickstartProfiles()"); DataResult<KickstartDto> retval = new DataResult<KickstartDto>(Collections.EMPTY_LIST); // Profiles are associated with the host; the target system might not be created // yet. Also, the host will be the one performing the kickstart, so the profile // is relative to that system. Server hostServer = getHostServer(); if (hostServer != null) { log.debug("getKickstartProfiles(): hostServer isnt null"); Channel baseChannel = hostServer.getBaseChannel(); if (baseChannel != null) { log.debug("getKickstartProfiles(): hostServer.baseChannel isnt null"); ChannelArch arch = baseChannel.getChannelArch(); SelectMode mode = getMode(); Map<String, Object> params = new HashMap<String, Object>(); params.put("org_id", this.user.getOrg().getId()); params.put("prim_arch_id", arch.getId()); if (arch.getName().equals("x86_64")) { log.debug(" Adding IA-32 to search list."); ChannelArch ia32arch = ChannelFactory.lookupArchByName("IA-32"); params.put("sec_arch_id", ia32arch.getId()); } else if (arch.getName().equals("IA-32") && (hostServer.getServerArch().getName().equals(ServerConstants.getArchI686().getName()) || hostServer .getServerArch() .getName() .equals(ServerConstants.getArchATHLON().getName()))) { log.debug(" Adding x86_64 to search list."); ChannelArch x86Arch = ChannelFactory.lookupArchByName("x86_64"); params.put("sec_arch_id", x86Arch.getId()); } else if (arch.getName().equals("PPC")) { log.debug(" Adding ppc64le to search list."); ChannelArch ppc64le = ChannelFactory.lookupArchByName("PPC64LE"); params.put("sec_arch_id", ppc64le.getId()); } else if (arch.getName().equals("PPC64LE")) { log.debug(" Adding ppc to search list."); ChannelArch ppc = ChannelFactory.lookupArchByName("PPC"); params.put("sec_arch_id", ppc.getId()); } else { params.put("sec_arch_id", arch.getId()); } retval = mode.execute(params); if (log.isDebugEnabled()) { log.debug("got back from DB: " + retval); } KickstartLister.getInstance().setKickstartUrls(retval, user); KickstartLister.getInstance().pruneInvalid(user, retval); retval.setTotalSize(retval.size()); } } List<CobblerProfileDto> dtos = KickstartLister.getInstance().listCobblerProfiles(user); if (log.isDebugEnabled()) { log.debug("got back from cobbler: " + dtos); } retval.setTotalSize(retval.getTotalSize() + dtos.size()); retval.addAll(dtos); return retval; }