use of org.jclouds.compute.ComputeServiceContext in project legacy-jclouds-examples by jclouds.
the class Logging method init.
private void init(String[] args) {
// The provider configures jclouds To use the Rackspace Cloud (US)
// To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudservers-uk"
String provider = "rackspace-cloudservers-us";
String username = args[0];
String apiKey = args[1];
// This module is responsible for enabling logging
Iterable<Module> modules = ImmutableSet.<Module>of(new SLF4JLoggingModule());
ComputeServiceContext context = ContextBuilder.newBuilder(provider).credentials(username, apiKey).modules(// don't forget to add the modules to your context!
modules).buildView(ComputeServiceContext.class);
compute = context.getComputeService();
nova = context.unwrap();
// Calling getConfiguredZones() talks to the cloud which gets logged
zones = nova.getApi().getConfiguredZones();
System.out.println("Zones: " + zones);
}
use of org.jclouds.compute.ComputeServiceContext in project legacy-jclouds-examples by jclouds.
the class CreateVolumeAndAttach method init.
private void init(String[] args) {
// The provider configures jclouds To use the Rackspace Cloud (US)
// To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudservers-uk"
String provider = "rackspace-cloudservers-us";
String username = args[0];
String apiKey = args[1];
// These properties control how often jclouds polls for a status udpate
Properties overrides = new Properties();
overrides.setProperty(ComputeServiceProperties.POLL_INITIAL_PERIOD, Constants.POLL_PERIOD_TWENTY_SECONDS);
overrides.setProperty(ComputeServiceProperties.POLL_MAX_PERIOD, Constants.POLL_PERIOD_TWENTY_SECONDS);
Iterable<Module> modules = ImmutableSet.<Module>of(new SshjSshClientModule());
ComputeServiceContext context = ContextBuilder.newBuilder(provider).credentials(username, apiKey).modules(modules).overrides(overrides).buildView(ComputeServiceContext.class);
compute = context.getComputeService();
nova = context.unwrap();
volumeAttachmentApi = nova.getApi().getVolumeAttachmentExtensionForZone(Constants.ZONE).get();
provider = "rackspace-cloudblockstorage-us";
cinder = ContextBuilder.newBuilder(provider).credentials(username, apiKey).modules(modules).build(CinderApiMetadata.CONTEXT_TOKEN);
volumeApi = cinder.getApi().getVolumeApiForZone(Constants.ZONE);
}
use of org.jclouds.compute.ComputeServiceContext in project legacy-jclouds-examples by jclouds.
the class DetachVolume method init.
private void init(String[] args) {
// The provider configures jclouds To use the Rackspace Cloud (US)
// To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudservers-uk"
String provider = "rackspace-cloudservers-us";
String username = args[0];
String apiKey = args[1];
Iterable<Module> modules = ImmutableSet.<Module>of(new SshjSshClientModule());
ComputeServiceContext context = ContextBuilder.newBuilder(provider).credentials(username, apiKey).modules(modules).buildView(ComputeServiceContext.class);
compute = context.getComputeService();
nova = context.unwrap();
volumeAttachmentApi = nova.getApi().getVolumeAttachmentExtensionForZone(Constants.ZONE).get();
serverApi = nova.getApi().getServerApiForZone(Constants.ZONE);
provider = "rackspace-cloudblockstorage-us";
cinder = ContextBuilder.newBuilder(provider).credentials(username, apiKey).build(CinderApiMetadata.CONTEXT_TOKEN);
volumeApi = cinder.getApi().getVolumeApiForZone(Constants.ZONE);
}
use of org.jclouds.compute.ComputeServiceContext in project legacy-jclouds-examples by jclouds.
the class ListVolumeAttachments method init.
private void init(String[] args) {
// The provider configures jclouds To use the Rackspace Cloud (US)
// To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudservers-uk"
String provider = "rackspace-cloudservers-us";
String username = args[0];
String apiKey = args[1];
ComputeServiceContext context = ContextBuilder.newBuilder(provider).credentials(username, apiKey).buildView(ComputeServiceContext.class);
compute = context.getComputeService();
nova = context.unwrap();
volumeAttachmentApi = nova.getApi().getVolumeAttachmentExtensionForZone(Constants.ZONE).get();
serverApi = nova.getApi().getServerApiForZone(Constants.ZONE);
}
use of org.jclouds.compute.ComputeServiceContext in project gora by apache.
the class ChefSoftwareProvisioning method performChefComputeServiceBootstrapping.
private static void performChefComputeServiceBootstrapping(Properties properties) throws IOException, InstantiationException, IllegalAccessException {
// Get the credentials that will be used to authenticate to the Chef server
String rsContinent = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), RS_CONTINENT, "rackspace-cloudservers-us");
String rsUser = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), RS_USERNAME, "asf-gora");
String rsApiKey = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), RS_APIKEY, null);
String rsRegion = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), RS_REGION, "DFW");
String client = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), CHEF_CLIENT, System.getProperty("user.name"));
String organization = DataStoreFactory.findProperty(properties, MemStore.class.newInstance(), CHEF_ORGANIZATION, null);
String pemFile = System.getProperty("user.home") + "/.chef/" + client + ".pem";
String credential = Files.toString(new File(pemFile), Charsets.UTF_8);
// Provide the validator information to let the nodes to auto-register themselves
// in the Chef server during bootstrap
String validator = organization + "-validator";
String validatorPemFile = System.getProperty("user.home") + "/.chef/" + validator + ".pem";
String validatorCredential = Files.toString(new File(validatorPemFile), Charsets.UTF_8);
Properties chefConfig = new Properties();
chefConfig.put(ChefProperties.CHEF_VALIDATOR_NAME, validator);
chefConfig.put(ChefProperties.CHEF_VALIDATOR_CREDENTIAL, validatorCredential);
// Create the connection to the Chef server
ChefContext chefContext = ContextBuilder.newBuilder("chef").endpoint("https://api.opscode.com/organizations/" + organization).credentials(client, credential).overrides(chefConfig).buildView(ChefContext.class);
// Create the connection to the compute provider. Note that ssh will be used to bootstrap chef
ComputeServiceContext computeContext = ContextBuilder.newBuilder(rsContinent).endpoint(rsRegion).credentials(rsUser, rsApiKey).modules(ImmutableSet.<Module>of(new SshjSshClientModule())).buildView(ComputeServiceContext.class);
// Group all nodes in both Chef and the compute provider by this group
String group = "jclouds-chef-goraci";
// Set the recipe to install and the configuration values to override
String recipe = "apache2";
JsonBall attributes = new JsonBall("{\"apache\": {\"listen_ports\": \"8080\"}}");
// Check to see if the recipe you want exists
List<String> runlist = null;
Iterable<? extends CookbookVersion> cookbookVersions = chefContext.getChefService().listCookbookVersions();
if (any(cookbookVersions, CookbookVersionPredicates.containsRecipe(recipe))) {
runlist = new RunListBuilder().addRecipe(recipe).build();
}
for (Iterator<String> iterator = runlist.iterator(); iterator.hasNext(); ) {
String string = (String) iterator.next();
LOG.info(string);
}
// Update the chef service with the run list you wish to apply to all nodes in the group
// and also provide the json configuration used to customize the desired values
BootstrapConfig config = BootstrapConfig.builder().runList(runlist).attributes(attributes).build();
chefContext.getChefService().updateBootstrapConfigForGroup(group, config);
// Build the script that will bootstrap the node
Statement bootstrap = chefContext.getChefService().createBootstrapScriptForGroup(group);
TemplateBuilder templateBuilder = computeContext.getComputeService().templateBuilder();
templateBuilder.options(runScript(bootstrap));
// Run a node on the compute provider that bootstraps chef
try {
Set<? extends NodeMetadata> nodes = computeContext.getComputeService().createNodesInGroup(group, 1, templateBuilder.build());
for (NodeMetadata nodeMetadata : nodes) {
LOG.info("<< node %s: %s%n", nodeMetadata.getId(), concat(nodeMetadata.getPrivateAddresses(), nodeMetadata.getPublicAddresses()));
}
} catch (RunNodesException e) {
throw new RuntimeException(e.getMessage());
}
// Release resources
chefContext.close();
computeContext.close();
}
Aggregations