/** * Accepts submission from the configuration page. */ @RequirePOST public synchronized HttpResponse doConfigSubmit( StaplerRequest req) throws IOException, ServletException, FormException { BulkChange bc = new BulkChange(MONITORS_OWNER); try { Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); monitors.rebuild(req,req.getSubmittedForm(),getNodeMonitorDescriptors()); // add in the rest of instances are ignored instances for (Descriptor<NodeMonitor> d : NodeMonitor.all()) if(monitors.get(d)==null) { NodeMonitor i = createDefaultInstance(d, true); if(i!=null) monitors.add(i); } // recompute the data for (NodeMonitor nm : monitors) { nm.triggerUpdate(); } return FormApply.success("."); } finally { bc.commit(); } }
/** * @deprecated as of 1.301 * Use {@link #getMonitors()}. */ @Deprecated public static List<NodeMonitor> get_monitors() { return monitors.toList(); }
@Override public Object onConvert(Type targetType, Class targetTypeErasure, Object jsonSource) { if (jsonForProperties != jsonSource) { return old.get().onConvert(targetType, targetTypeErasure, jsonSource); } try { DescribableList<NodeProperty<?>, NodePropertyDescriptor> tmp = new DescribableList<NodeProperty<?>, NodePropertyDescriptor>(Saveable.NOOP,getNodeProperties().toList()); tmp.rebuild(req, jsonForProperties, NodeProperty.all()); return tmp.toList(); } catch (FormException e) { throw new IllegalArgumentException(e); } catch (IOException e) { throw new IllegalArgumentException(e); } } }));
/** * Default value for {@link ToolInstallation#getProperties()} used in the form binding. * @since 1.305 */ public DescribableList<ToolProperty<?>,ToolPropertyDescriptor> getDefaultProperties() throws IOException { DescribableList<ToolProperty<?>,ToolPropertyDescriptor> r = new DescribableList<ToolProperty<?>, ToolPropertyDescriptor>(NOOP); List<? extends ToolInstaller> installers = getDefaultInstallers(); if(!installers.isEmpty()) r.add(new InstallSourceProperty(installers)); return r; }
@Override protected void submit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { super.submit(req,rsp); JSONObject json = req.getSubmittedForm(); getBuildWrappersList().rebuild(req,json, BuildWrappers.getFor(this)); getBuildersList().rebuildHetero(req,json, Builder.all(), "builder"); getPublishersList().rebuildHetero(req, json, Publisher.all(), "publisher"); }
@SuppressWarnings("deprecation") @Override public void onLoaded() { for (AbstractProject<?,?> p : Jenkins.getInstance().allItems(AbstractProject.class)) { try { ArtifactArchiver aa = p.getPublishersList().get(ArtifactArchiver.class); if (aa != null && aa.latestOnly != null) { if (aa.latestOnly) { p.save(); Fingerprinter f = p.getPublishersList().get(Fingerprinter.class); if (f != null && f.getRecordBuildArtifacts()) { f.recordBuildArtifacts = null; p.getPublishersList().remove(f);
GitLabPushTrigger.DescriptorImpl oldConfig = Trigger.all().get(GitLabPushTrigger.DescriptorImpl.class); if (!oldConfig.jobsMigrated) { GitLabConnectionConfig gitLabConfig = (GitLabConnectionConfig) Jenkins.getInstance().getDescriptor(GitLabConnectionConfig.class); gitLabConfig.getConnections().add(new GitLabConnection( oldConfig.gitlabHostUrl, for (AbstractProject<?, ?> project : Jenkins.getInstance().getAllItems(AbstractProject.class)) { GitLabPushTrigger trigger = project.getTrigger(GitLabPushTrigger.class); if (trigger != null) { if (trigger.addCiMessage) { project.getPublishersList().add(new GitLabCommitStatusPublisher("jenkins", false)); if (trigger != null) { if (trigger.addNoteOnMergeRequest) { project.getPublishersList().add(new GitLabMessagePublisher()); project.getPublishersList().add(new GitLabVotePublisher()); project.getPublishersList().add(new GitLabAcceptMergeRequestPublisher());
private void locationChanged(Item item, String oldFullName, String newFullName) { // update BuildTrigger of other projects that point to this object. // can't we generalize this? for( Project<?,?> p : Jenkins.getInstance().allItems(Project.class) ) { BuildTrigger t = p.getPublishersList().get(BuildTrigger.class); if(t!=null) { String cp2 = Items.computeRelativeNamesAfterRenaming(oldFullName, newFullName, t.childProjects, p.getParent()); if (!cp2.equals(t.childProjects)) { t.childProjects = cp2; try { p.save(); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to persist project setting during rename from "+oldFullName+" to "+newFullName,e); } } } } } }
FilePath workspace = build.getWorkspace(); GitClient cli = scm.createClient(listener, environment, build, workspace); if(scm.getExtensions().get(RelativeTargetDirectory.class) != null) { relativeTargetDirectory = scm.getExtensions().get(RelativeTargetDirectory.class).getRelativeTargetDir(); DescriptorImpl descriptor = (DescriptorImpl) Jenkins.getInstance().getDescriptor(DebianPackageBuilder.class); PersonIdent account = new PersonIdent(descriptor.getAccountName(), descriptor.getAccountEmail()); return getChangesFromGit(cli, workspace, relativeTargetDirectory, remoteDebian, account);
/** * Accepts the update to the node configuration. */ @RequirePOST public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { final Jenkins app = Jenkins.getInstance(); app.checkPermission(Jenkins.ADMINISTER); properties.rebuild(req, req.getSubmittedForm(), getApplicablePropertyDescriptors()); this.description = req.getSubmittedForm().getString("description"); updateTransientActions(); save(); FormApply.success(".").generateResponse(req, rsp, null); }
DescribableList<JobProperty<?>, JobPropertyDescriptor> t = new DescribableList<JobProperty<?>, JobPropertyDescriptor>(NOOP,getAllProperties()); JSONObject jsonProperties = json.optJSONObject("properties"); if (jsonProperties != null) { t.rebuild(req,jsonProperties,JobPropertyDescriptor.getPropertyDescriptors(Job.this.getClass())); } else { t.clear(); final ProjectNamingStrategy namingStrategy = Jenkins.getInstance().getProjectNamingStrategy(); if(namingStrategy.isForceExistingJobs()){ namingStrategy.checkName(name);
private FreeStyleBuild configureTestBuild(String projectName) throws Exception { FreeStyleProject p = projectName == null ? rule.createFreeStyleProject() : rule.createFreeStyleProject(projectName); p.getBuildersList().add(new TestBuilder() { public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { build.getWorkspace().child("junit.xml").copyFrom( getClass().getResource("junit-report-20090516.xml")); return true; } }); p.getPublishersList().add(new JUnitResultArchiver("*.xml")); return rule.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); }
@Test @Issue("SECURITY-521") public void testXxe() throws Exception { String oobInUserContentLink = j.getURL() + "userContent/oob.xml"; String triggerLink = j.getURL() + "triggerMe"; String adaptedOobFileContent = oobFileContent.replace("$TARGET_URL$", triggerLink); File userContentDir = new File(j.jenkins.getRootDir(), "userContent"); FileUtils.writeStringToFile(new File(userContentDir, "oob.xml"), adaptedOobFileContent); FreeStyleProject project = j.createFreeStyleProject(); DownloadBuilder builder = new DownloadBuilder(); builder.fileContent = adaptedXxeFileContent; project.getBuildersList().add(builder); project.getPublishersList().add(publisher); project.scheduleBuild2(0).get(); YouCannotTriggerMe urlHandler = j.jenkins.getExtensionList(UnprotectedRootAction.class).get(YouCannotTriggerMe.class); assertEquals(0, urlHandler.triggerCount);
@Issue("JENKINS-10942") @Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void singleModuleEnvironmentVariablesWithRevision() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); p.setScm(new SubversionSCM("https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant@HEAD")); CaptureEnvironmentBuilder builder = new CaptureEnvironmentBuilder(); p.getBuildersList().add(builder); r.assertBuildStatusSuccess(p.scheduleBuild2(0).get()); assertEquals("https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant", builder.getEnvVars().get("SVN_URL")); assertEquals(getActualRevision(p.getLastBuild(), "https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant").toString(), builder.getEnvVars().get("SVN_REVISION")); }
public boolean contains(D d) { return get(d)!=null; }
private boolean isShallow(final GitSCM git) { CloneOption option = git.getExtensions().get(CloneOption.class); if (option != null) { return option.isShallow(); } return false; }
/** Verify that running branch projects are not deleted even after an organization folder reindex. */ @Issue("JENKINS-25240") @Test public void runningBuildMeta() throws Exception { SecondOrderComputedFolder org = r.jenkins.createProject(SecondOrderComputedFolder.class, "org"); org.metakids.add(Arrays.asList("A", "B")); org.metakids.add(Arrays.asList("C", "D")); org.assertItemNames("A+B", "C+D"); FreeStyleProject b = r.jenkins.getItemByFullName("org/A+B/B", FreeStyleProject.class); b.getBuildersList().add(new SleepBuilder(Long.MAX_VALUE)); FreeStyleBuild b1 = b.scheduleBuild2(0).waitForStart(); org.metakids.remove(0); org.assertItemNames("A+B", "C+D"); assertTrue(b1.isBuilding()); b1.doStop(); r.assertBuildStatus(Result.ABORTED, r.waitForCompletion(b1)); org.assertItemNames("C+D"); }
@Test public void reloadJenkinsAndFindBuildInProgress() throws Exception { Folder f1 = r.jenkins.createProject(Folder.class, "f"); FreeStyleProject p1 = f1.createProject(FreeStyleProject.class, "test1"); FreeStyleBuild p1b1 = p1.scheduleBuild2(0).get(); // one completed build p1.getBuildersList().add(new SleepBuilder(99999999)); p1.save(); FreeStyleBuild p1b2 = p1.scheduleBuild2(0).waitForStart(); // another build in progress // trigger the full Jenkins reload r.jenkins.reload(); Folder f2 = (Folder) r.jenkins.getItem("f"); assertNotSame(f1,f2); FreeStyleProject p2 = (FreeStyleProject) f2.getItem("test1"); /* Fails now. Why was this here? assertNotSame(p1,p2); */ FreeStyleBuild p2b1 = p2.getBuildByNumber(1); FreeStyleBuild p2b2 = p2.getBuildByNumber(2); assertTrue(p2b2.isBuilding()); assertSame(p2b2,p1b2); assertNotSame(p1b1,p2b1); p1b2.getExecutor().interrupt(); // kill the executor }
/** * Performs a configuration round-trip testing for a builder. */ public <B extends Builder> B configRoundtrip(B before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getBuildersList().add(before); configRoundtrip((Item)p); return (B)p.getBuildersList().get(before.getClass()); }