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;
}
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;
}
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;
}
Aggregations