Search in sources :

Example 1 with Cloud

use of hudson.slaves.Cloud in project configuration-as-code-plugin by jenkinsci.

the class JenkinsConfigurator method describe.

@Override
public Set<Attribute> describe() {
    final Set<Attribute> attributes = super.describe();
    final Jenkins jenkins = Jenkins.getInstance();
    attributes.add(new PersistedListAttribute<Cloud>("clouds", jenkins.clouds, Cloud.class));
    attributes.add(new Attribute<String>("jobs", String.class).multiple(true).setter((target, attribute, value) -> {
        JenkinsJobManagement mng = new JenkinsJobManagement(System.out, new EnvVars(), null, null, LookupStrategy.JENKINS_ROOT);
        for (String script : (List<String>) value) {
            new JenkinsDslScriptLoader(mng).runScript(script);
        }
    }));
    // Check for unclassified Descriptors
    final ExtensionList<Descriptor> descriptors = jenkins.getExtensionList(Descriptor.class);
    for (Descriptor descriptor : descriptors) {
        if (descriptor.getGlobalConfigPage() != null && descriptor.getCategory() instanceof GlobalConfigurationCategory.Unclassified) {
            final DescriptorConfigurator configurator = new DescriptorConfigurator(descriptor);
            attributes.add(new Attribute(configurator.getName(), configurator.getTarget()).setter(NOOP));
        }
    }
    // Add remoting security, all legwork will be done by a configurator
    attributes.add(new Attribute("remotingSecurity", AdminWhitelistRule.class).setter(NOOP));
    return attributes;
}
Also used : JenkinsDslScriptLoader(javaposse.jobdsl.plugin.JenkinsDslScriptLoader) JenkinsJobManagement(javaposse.jobdsl.plugin.JenkinsJobManagement) Descriptor(hudson.model.Descriptor) Jenkins(jenkins.model.Jenkins) AdminWhitelistRule(jenkins.security.s2m.AdminWhitelistRule) Set(java.util.Set) Logger(java.util.logging.Logger) Level(java.util.logging.Level) List(java.util.List) Map(java.util.Map) Extension(hudson.Extension) LookupStrategy(javaposse.jobdsl.plugin.LookupStrategy) EnvVars(hudson.EnvVars) Cloud(hudson.slaves.Cloud) ExtensionList(hudson.ExtensionList) GlobalConfigurationCategory(jenkins.model.GlobalConfigurationCategory) JenkinsJobManagement(javaposse.jobdsl.plugin.JenkinsJobManagement) JenkinsDslScriptLoader(javaposse.jobdsl.plugin.JenkinsDslScriptLoader) Jenkins(jenkins.model.Jenkins) EnvVars(hudson.EnvVars) Cloud(hudson.slaves.Cloud) Descriptor(hudson.model.Descriptor) GlobalConfigurationCategory(jenkins.model.GlobalConfigurationCategory)

Example 2 with Cloud

use of hudson.slaves.Cloud in project vsphere-cloud-plugin by jenkinsci.

the class vSphereCloud method findAllVsphereClouds.

public static List<vSphereCloud> findAllVsphereClouds(String jobName) {
    List<vSphereCloud> vSphereClouds = new ArrayList<vSphereCloud>();
    String[] path = new String[0];
    Folder prevFolder = null;
    if (Stapler.getCurrentRequest() != null) {
        path = Stapler.getCurrentRequest().getRequestURI().split("/");
    } else if (jobName != null) {
        path = jobName.split("/");
    }
    for (String item : path) {
        if (item.equals("job") || item.equals("jenkins"))
            continue;
        TopLevelItem topLevelItem = null;
        if (prevFolder == null) {
            topLevelItem = Jenkins.getActiveInstance().getItem(item);
        } else {
            Collection<TopLevelItem> items = prevFolder.getItems();
            for (TopLevelItem levelItem : items) {
                if (levelItem.getName().endsWith(item)) {
                    topLevelItem = levelItem;
                }
            }
        }
        if (topLevelItem != null && topLevelItem instanceof Folder) {
            extractClouds(vSphereClouds, (Folder) topLevelItem);
        }
    }
    for (Cloud cloud : Jenkins.getInstance().clouds) {
        if (cloud instanceof vSphereCloud) {
            vSphereClouds.add((vSphereCloud) cloud);
        }
    }
    return vSphereClouds;
}
Also used : Cloud(hudson.slaves.Cloud) ArrayList(java.util.ArrayList) Folder(com.cloudbees.hudson.plugins.folder.Folder)

Example 3 with Cloud

use of hudson.slaves.Cloud in project hudson-2.x by hudson.

the class Label method getClouds.

/**
 * Gets all {@link Cloud}s that can launch for this label.
 */
@Exported
public Set<Cloud> getClouds() {
    if (clouds == null) {
        Set<Cloud> r = new HashSet<Cloud>();
        Hudson h = Hudson.getInstance();
        for (Cloud c : h.clouds) {
            if (c.canProvision(this))
                r.add(c);
        }
        clouds = Collections.unmodifiableSet(r);
    }
    return clouds;
}
Also used : Cloud(hudson.slaves.Cloud) HashSet(java.util.HashSet) Exported(org.kohsuke.stapler.export.Exported)

Aggregations

Cloud (hudson.slaves.Cloud)3 Folder (com.cloudbees.hudson.plugins.folder.Folder)1 EnvVars (hudson.EnvVars)1 Extension (hudson.Extension)1 ExtensionList (hudson.ExtensionList)1 Descriptor (hudson.model.Descriptor)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 Level (java.util.logging.Level)1 Logger (java.util.logging.Logger)1 JenkinsDslScriptLoader (javaposse.jobdsl.plugin.JenkinsDslScriptLoader)1 JenkinsJobManagement (javaposse.jobdsl.plugin.JenkinsJobManagement)1 LookupStrategy (javaposse.jobdsl.plugin.LookupStrategy)1 GlobalConfigurationCategory (jenkins.model.GlobalConfigurationCategory)1 Jenkins (jenkins.model.Jenkins)1 AdminWhitelistRule (jenkins.security.s2m.AdminWhitelistRule)1 Exported (org.kohsuke.stapler.export.Exported)1