@Override public void eventReceived(Action action, BuildConfig resource) { System.out.println(">> Action: " + action + " on BuildConfig " + resource.getMetadata().getName() + " with version: " + resource.getApiVersion()); }
public BuildConfigBuilder(BuildConfigFluent<?> fluent,Boolean validationEnabled){ this(fluent, new BuildConfig(), validationEnabled); } public BuildConfigBuilder(BuildConfigFluent<?> fluent,BuildConfig instance){
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 BuildConfigProjectProperty(BuildConfig bc) { this( bc.getMetadata().getNamespace(), bc.getMetadata().getName(), bc.getMetadata().getUid(), bc.getMetadata().getResourceVersion(), bc.getSpec().getSource().getContextDir() ); }
/** * 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); }
/** * This method is public for easier unit testing */ public int processGitRepo(NamespaceName name, String gitUrl, String gitRef) throws IOException { BuildConfig buildConfig = new BuildConfig(); BuildConfigSpec buildConfigSpec = new BuildConfigSpec(); buildConfig.setSpec(buildConfigSpec); BuildSource buildSource = new BuildSource(); buildSource.setType("Git"); GitBuildSource gitSource = new GitBuildSource(); gitSource.setUri(gitUrl); if (Strings.isNullOrBlank(gitRef)) { gitRef = "master"; } gitSource.setRef(gitRef); buildSource.setGit(gitSource); buildConfigSpec.setSource(buildSource); return processGitRepo(name, buildConfig, gitSource, gitUrl); }
public BuildConfigFluentImpl(BuildConfig instance){ this.withApiVersion(instance.getApiVersion()); this.withKind(instance.getKind()); this.withMetadata(instance.getMetadata()); this.withSpec(instance.getSpec()); this.withStatus(instance.getStatus()); }
/** * 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; }
public static GitBuildSource gitBuildSource(BuildConfig buildConfig) { GitBuildSource git = null; BuildConfigSpec spec = buildConfig.getSpec(); if (spec != null) { BuildSource source = spec.getSource(); if (source != null) { git = source.getGit(); } } return git; }
@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 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 ){
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(); }; }
NamespaceName namespaceName = NamespaceName.create(buildConfig); JenkinsPipelineBuildStrategy jenkinsPipelineStrategy = null; BuildConfigSpec spec = buildConfig.getSpec(); if (spec != null) { BuildStrategy strategy = spec.getStrategy(); String scriptPath = cpsScmFlowDefinition.getScriptPath(); if (scriptPath != null && scriptPath.trim().length() > 0) { String bcContextDir = buildConfig.getSpec().getSource().getContextDir(); if (StringUtils.isNotBlank(bcContextDir) && scriptPath.startsWith(bcContextDir)) { scriptPath = scriptPath.replaceFirst("^" + bcContextDir + "/?", "");
/** * Lazily creates the GitSource if need be then updates the git URL * @param buildConfig the BuildConfig to update * @param gitUrl the URL to the git repo * @param ref */ public static void updateGitSourceUrl(BuildConfig buildConfig, String gitUrl, String ref) { BuildConfigSpec spec = buildConfig.getSpec(); if (spec == null) { spec = new BuildConfigSpec(); buildConfig.setSpec(spec); } BuildSource source = spec.getSource(); if (source == null) { source = new BuildSource(); spec.setSource(source); } source.setType("Git"); GitBuildSource gitSource = source.getGit(); if (gitSource == null) { gitSource = new GitBuildSource(); source.setGit(gitSource); } gitSource.setUri(gitUrl); gitSource.setRef(ref); }
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(); } }
public BuildConfig getBuildConfig() { BuildConfig bc = getOpenShiftClient().buildConfigs().inNamespace(namespace).withName(name).get(); if (bc != null && bc.getMetadata().getUid().equals(uid)) { return bc; } return null; }
public BuildConfigBuilder( BuildConfigFluent<?> fluent ){ this(fluent, new BuildConfig()); } public BuildConfigBuilder( BuildConfigFluent<?> fluent , BuildConfig instance ){
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){