@Override public void createOrUpdateView(String path, String config, boolean ignoreExisting) { validateUpdateArgs(path, config); String viewBaseName = FilenameUtils.getName(path); Jenkins.checkGoodName(viewBaseName); try { InputStream inputStream = new ByteArrayInputStream(config.getBytes("UTF-8")); ItemGroup parent = lookupStrategy.getParent(build.getProject(), path); if (parent instanceof ViewGroup) { View view = ((ViewGroup) parent).getView(viewBaseName); if (view == null) { if (parent instanceof Jenkins) { ((Jenkins) parent).addView(createViewFromXML(viewBaseName, inputStream)); } else if (parent instanceof Folder) { ((Folder) parent).addView(createViewFromXML(viewBaseName, inputStream)); } else { LOGGER.log(Level.WARNING, format("Could not create view within %s", parent.getClass())); } } else if (!ignoreExisting) { view.updateByXml(new StreamSource(inputStream)); } } else if (parent == null) { throw new DslException(format(Messages.CreateView_UnknownParent(), path)); } else { LOGGER.log(Level.WARNING, format("Could not create view within %s", parent.getClass())); } } catch (UnsupportedEncodingException e) { LOGGER.log(Level.WARNING, "Unsupported encoding used in config. Should be UTF-8."); } catch (IOException e) { e.printStackTrace(); LOGGER.log(Level.WARNING, format("Error writing config for new view %s.", path), e); } }
private void renameJob(Job from, String to) throws IOException { LOGGER.info(format("Renaming job %s to %s", from.getFullName(), to)); ItemGroup fromParent = from.getParent(); ItemGroup toParent = lookupStrategy.getParent(build.getProject(), to); if (fromParent != toParent) { LOGGER.info( format("Moving Job %s to folder %s", fromParent.getFullName(), toParent.getFullName())); if (toParent instanceof DirectlyModifiableTopLevelItemGroup) { DirectlyModifiableTopLevelItemGroup itemGroup = (DirectlyModifiableTopLevelItemGroup) toParent; move(from, itemGroup); } else { throw new DslException( format( Messages.RenameJobMatching_DestinationNotFolder(), from.getFullName(), toParent.getFullName())); } } from.renameTo(FilenameUtils.getName(to)); }
private boolean createNewItem(String path, String config) { LOGGER.log(Level.FINE, format("Creating item as %s", config)); boolean created = false; try { InputStream is = new ByteArrayInputStream(config.getBytes("UTF-8")); ItemGroup parent = lookupStrategy.getParent(build.getProject(), path); String itemName = FilenameUtils.getName(path); if (parent instanceof ModifiableTopLevelItemGroup) { ((ModifiableTopLevelItemGroup) parent).createProjectFromXML(itemName, is); created = true; } else if (parent == null) { throw new DslException(format(Messages.CreateItem_UnknownParent(), path)); } else { LOGGER.log(Level.WARNING, format("Could not create item within %s", parent.getClass())); } } catch (UnsupportedEncodingException e) { LOGGER.log(Level.WARNING, "Unsupported encoding used in config. Should be UTF-8."); } catch (IOException e) { LOGGER.log(Level.WARNING, format("Error writing config for new item %s.", path), e); } return created; }