@Override public void eventReceived(Action action, BuildConfig resource) { System.out.println(">> Action: " + action + " on BuildConfig " + resource.getMetadata().getName() + " with version: " + resource.getApiVersion()); }
public static void main(String[] args) { try { OpenShiftClient client = new DefaultOpenShiftClient(); if (!client.supportsOpenShiftAPIGroup(OpenShiftAPIGroups.BUILD)) { System.out.println("WARNING this cluster does not support the API Group " + OpenShiftAPIGroups.BUILD); return; } BuildConfigList list = client.buildConfigs().list(); if (list == null) { System.out.println("ERROR no list returned!"); return; } List<BuildConfig> items = list.getItems(); for (BuildConfig item : items) { System.out.println("BuildConfig " + item.getMetadata().getName() + " has version: " + item.getApiVersion()); } } catch (KubernetesClientException e) { System.out.println("Failed: " + e); e.printStackTrace(); } }
/** * Finds the Jenkins job for the given {@link BuildConfig} and defaultNamespace * * @param bc the BuildConfig * @param defaultNamespace the default namespace which does not prefix job names with "$namespace-buildConfigName" * @return the jenkins job name for the given BuildConfig and default namespace */ public static String jenkinsJobName(BuildConfig bc, String defaultNamespace) { String namespace = bc.getMetadata().getNamespace(); String name = bc.getMetadata().getName(); return jenkinsJobName(namespace, name, defaultNamespace); }
public BuildConfigProjectProperty(BuildConfig bc) { this( bc.getMetadata().getNamespace(), bc.getMetadata().getName(), bc.getMetadata().getUid(), bc.getMetadata().getResourceVersion(), bc.getSpec().getSource().getContextDir() ); }
@SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") private void deleteJob(final BuildConfig buildConfig) throws Exception { final Job job = BuildTrigger.getDscp().getJobFromBuildConfigUid(buildConfig.getMetadata().getUid()); if (job != null) { ACL.impersonate(ACL.SYSTEM, new NotReallyRoleSensitiveCallable<Void, Exception>() { @Override public Void call() throws Exception { job.delete(); try { Jenkins jenkins = Jenkins.getInstance(); if (jenkins != null) { jenkins.reload(); } } catch (ReactorException e) { logger.log(Level.SEVERE, "Failed to reload jenkins job after deleting " + job.getName() + " from BuildConfig " + NamespaceName.create(buildConfig)); } return null; } }); } } }
public BuildConfig getBuildConfig() { BuildConfig bc = getOpenShiftClient().buildConfigs().inNamespace(namespace).withName(name).get(); if (bc != null && bc.getMetadata().getUid().equals(uid)) { return bc; } return null; }
private static EntityPatcher<BuildConfig> bcPatcher() { return (KubernetesClient client, String namespace, BuildConfig newObj, BuildConfig oldObj) -> { if (UserConfigurationCompare.configEqual(newObj, oldObj)) { return oldObj; } OpenShiftClient openShiftClient = OpenshiftHelper.asOpenShiftClient(client); if (openShiftClient == null) { throw new IllegalArgumentException("BuildConfig can only be patched when connected to an OpenShift cluster"); } DoneableBuildConfig entity = openShiftClient.buildConfigs() .inNamespace(namespace) .withName(oldObj.getMetadata().getName()) .edit(); if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) { entity.withMetadata(newObj.getMetadata()); } if(!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) { entity.withSpec(newObj.getSpec()); } return entity.done(); }; }
/** * Checks if a {@link BuildConfig} relates to a Jenkins build * * @param bc the BuildConfig * @return true if this is an OpenShift BuildConfig which should be mirrored to * a Jenkins Job */ public static boolean isJenkinsBuildConfig(BuildConfig bc) { if (BuildConfigToJobMapper.JENKINS_PIPELINE_BUILD_STRATEGY.equalsIgnoreCase(bc.getSpec().getStrategy().getType()) && bc.getSpec().getStrategy().getJenkinsPipelineStrategy() != null) { return true; } ObjectMeta metadata = bc.getMetadata(); if (metadata != null) { Map<String, String> annotations = metadata.getAnnotations(); if (annotations != null) { if (annotations.get("fabric8.link.jenkins.job/label") != null) { return true; } } } return false; }
private void upsertBuildConfigForJob(WorkflowJob job) { BuildConfigProjectProperty buildConfigProjectProperty = job.getProperty(BuildConfigProjectProperty.class); if (buildConfigProjectProperty == null || buildConfigProjectProperty.getNamespace() == null || buildConfigProjectProperty.getName() == null || buildConfigProjectProperty.getUid() == null) { return; } BuildConfig jobBuildConfig = buildConfigProjectProperty.getBuildConfig(); if (jobBuildConfig == null) { logger.log(Level.WARNING, "Failed to find BuildConfig in namespace: " + buildConfigProjectProperty.getNamespace() + " for name: " + buildConfigProjectProperty.getName()); return; } updateBuildConfigFromJob(job, jobBuildConfig); try { getOpenShiftClient().buildConfigs().inNamespace(jobBuildConfig.getMetadata().getNamespace()).withName(jobBuildConfig.getMetadata().getName()).replace(jobBuildConfig); } catch (Exception e) { logger.log(Level.WARNING, "Failed to update BuildConfig: " + NamespaceName.create(jobBuildConfig) + ". " + e, e); } } }
buildConfig.getMetadata().getNamespace(), buildConfig.getMetadata().getName(), buildConfig.getMetadata().getUid(), buildConfig.getMetadata().getResourceVersion(), contextDir Job job = BuildTrigger.getDscp().getJobFromBuildConfigUid(buildConfig.getMetadata().getUid()); if (job == null) { jenkins.createProjectFromXML( jobStream ); logger.info("Created job " + jobName + " from BuildConfig " + NamespaceName.create(buildConfig) + " with revision: " + buildConfig.getMetadata().getResourceVersion()); } else { BuildConfigProjectProperty buildConfigProjectProperty = (BuildConfigProjectProperty) job.getProperty(BuildConfigProjectProperty.class); job.updateByXml(source); job.save(); logger.info("Updated job " + jobName + " from BuildConfig " + NamespaceName.create(buildConfig) + " with revision: " + buildConfig.getMetadata().getResourceVersion());
public static Job getJobFromBuild(Build build) { String buildConfigName = build.getStatus().getConfig().getName(); if (StringUtils.isEmpty(buildConfigName)) { return null; } BuildConfig buildConfig = getOpenShiftClient().buildConfigs().inNamespace(build.getMetadata().getNamespace()).withName(buildConfigName).get(); if (buildConfig == null) { return null; } return BuildTrigger.DESCRIPTOR.getJobFromBuildConfigUid(buildConfig.getMetadata().getUid()); } }
public BuildConfigBuilder(BuildConfig instance,Boolean validationEnabled){ this.fluent = this; this.withApiVersion(instance.getApiVersion()); this.withKind(instance.getKind()); this.withMetadata(instance.getMetadata()); this.withSpec(instance.getSpec()); this.withStatus(instance.getStatus()); this.validationEnabled = validationEnabled; }
public BuildConfigFluentImpl(BuildConfig instance){ this.withApiVersion(instance.getApiVersion()); this.withKind(instance.getKind()); this.withMetadata(instance.getMetadata()); this.withSpec(instance.getSpec()); this.withStatus(instance.getStatus()); }
public BuildConfigBuilder(BuildConfigFluent<?> fluent,BuildConfig instance,Boolean validationEnabled){ this.fluent = fluent; fluent.withApiVersion(instance.getApiVersion()); fluent.withKind(instance.getKind()); fluent.withMetadata(instance.getMetadata()); fluent.withSpec(instance.getSpec()); fluent.withStatus(instance.getStatus()); this.validationEnabled = validationEnabled; } public BuildConfigBuilder(BuildConfig instance){
public BuildConfigBuilder( BuildConfig instance ){ this.fluent = this; this.withApiVersion(instance.getApiVersion()); this.withKind(instance.getKind()); this.withMetadata(instance.getMetadata()); this.withSpec(instance.getSpec()); this.withStatus(instance.getStatus()); }
public BuildConfigBuilder( BuildConfigFluent<?> fluent , BuildConfig instance ){ this.fluent = fluent; fluent.withApiVersion(instance.getApiVersion()); fluent.withKind(instance.getKind()); fluent.withMetadata(instance.getMetadata()); fluent.withSpec(instance.getSpec()); fluent.withStatus(instance.getStatus()); } public BuildConfigBuilder( BuildConfig instance ){
public BuildConfigBuilder( BuildConfigFluent<?> fluent , BuildConfig instance ){ this.fluent = fluent; fluent.withApiVersion(instance.getApiVersion()); fluent.withKind(instance.getKind()); fluent.withMetadata(instance.getMetadata()); fluent.withSpec(instance.getSpec()); fluent.withStatus(instance.getStatus()); } public BuildConfigBuilder( BuildConfig instance ){
public BuildConfigBuilder( BuildConfig instance ){ this.fluent = this; this.withApiVersion(instance.getApiVersion()); this.withKind(instance.getKind()); this.withMetadata(instance.getMetadata()); this.withSpec(instance.getSpec()); this.withStatus(instance.getStatus()); }