mirror of https://github.com/apache/jclouds.git
progress on deltacloud
This commit is contained in:
parent
15d8aecdac
commit
7a7ab9ecf2
|
@ -33,6 +33,7 @@ To run a local deltacloud server, do the following:
|
|||
# export SSL_CERT_DIR=$HOME/certs
|
||||
# export SSL_CERT_FILE=$HOME/certs/cacert.pem
|
||||
# jruby -S deltacloudd -i mock
|
||||
* or if you are running from a src tree: jruby -S ./server/bin/deltacloudd -i <driver>
|
||||
|
||||
Here are some notes about specific cloud providers
|
||||
* terremark
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<!-- when instances are hung, open a ticket and add here -->
|
||||
<jclouds.compute.blacklist-nodes>trmkrun-ccc,test.trmk-924</jclouds.compute.blacklist-nodes>
|
||||
<test.deltacloud.endpoint>http://localhost:3001/api</test.deltacloud.endpoint>
|
||||
<test.deltacloud.apiversion>0.1.0</test.deltacloud.apiversion>
|
||||
<test.deltacloud.apiversion>0.1.2</test.deltacloud.apiversion>
|
||||
<test.deltacloud.identity>mockuser</test.deltacloud.identity>
|
||||
<test.deltacloud.credential>mockpassword</test.deltacloud.credential>
|
||||
</properties>
|
||||
|
|
|
@ -34,7 +34,7 @@ public class DeltacloudPropertiesBuilder extends PropertiesBuilder {
|
|||
@Override
|
||||
protected Properties defaultProperties() {
|
||||
Properties properties = super.defaultProperties();
|
||||
properties.setProperty(PROPERTY_API_VERSION, "0.1.0");
|
||||
properties.setProperty(PROPERTY_API_VERSION, "0.1.2");
|
||||
return properties;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ import org.jclouds.http.annotation.ServerError;
|
|||
import org.jclouds.rest.AuthorizationException;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
import org.jclouds.rest.config.RestClientModule;
|
||||
import org.jclouds.rest.suppliers.RetryOnTimeOutButNotOnAuthorizationExceptionSupplier;
|
||||
import org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Supplier;
|
||||
|
@ -86,7 +86,7 @@ public class DeltacloudRestClientModule extends RestClientModule<DeltacloudClien
|
|||
@Singleton
|
||||
protected Supplier<Set<? extends DeltacloudCollection>> provideCollections(
|
||||
@Named(PROPERTY_SESSION_INTERVAL) long seconds, final DeltacloudClient client) {
|
||||
return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Set<? extends DeltacloudCollection>>(
|
||||
return new MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Set<? extends DeltacloudCollection>>(
|
||||
authException, seconds, new Supplier<Set<? extends DeltacloudCollection>>() {
|
||||
@Override
|
||||
public Set<? extends DeltacloudCollection> get() {
|
||||
|
|
|
@ -45,6 +45,10 @@ public enum InstanceState {
|
|||
* the instance is stopped
|
||||
*/
|
||||
STOPPED,
|
||||
/**
|
||||
* the instance is shutting down
|
||||
*/
|
||||
SHUTTING_DOWN,
|
||||
/**
|
||||
* the instance is terminated
|
||||
*/
|
||||
|
@ -56,7 +60,7 @@ public enum InstanceState {
|
|||
|
||||
public static InstanceState fromValue(String state) {
|
||||
try {
|
||||
return valueOf(checkNotNull(state, "state"));
|
||||
return valueOf(checkNotNull(state, "state").toUpperCase());
|
||||
} catch (IllegalArgumentException e) {
|
||||
return UNRECOGNIZED;
|
||||
}
|
||||
|
|
|
@ -21,12 +21,15 @@ package org.jclouds.deltacloud.xml;
|
|||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.jclouds.deltacloud.domain.InstanceAction;
|
||||
import org.jclouds.deltacloud.domain.InstanceState;
|
||||
import org.jclouds.deltacloud.domain.Transition;
|
||||
import org.jclouds.deltacloud.domain.TransitionAutomatically;
|
||||
import org.jclouds.deltacloud.domain.TransitionOnAction;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
import org.jclouds.logging.Logger;
|
||||
import org.jclouds.util.SaxUtils;
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
|
@ -39,6 +42,9 @@ import com.google.common.collect.Multimap;
|
|||
*/
|
||||
public class InstanceStatesHandler extends ParseSax.HandlerWithResult<Multimap<InstanceState, ? extends Transition>> {
|
||||
|
||||
@Resource
|
||||
protected Logger logger = Logger.NULL;
|
||||
|
||||
private Multimap<InstanceState, Transition> states = LinkedHashMultimap.create();
|
||||
private InstanceState state;
|
||||
|
||||
|
@ -50,17 +56,28 @@ public class InstanceStatesHandler extends ParseSax.HandlerWithResult<Multimap<I
|
|||
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
||||
Map<String, String> attributes = SaxUtils.cleanseAttributes(attrs);
|
||||
if (qName.equals("state")) {
|
||||
state = InstanceState.valueOf(attributes.get("name").toUpperCase());
|
||||
state = instanceStateWarningOnUnrecognized(attributes.get("name"));
|
||||
} else if (qName.equals("transition")) {
|
||||
if (attributes.containsKey("auto"))
|
||||
states.put(state, new TransitionAutomatically(InstanceState.valueOf(attributes.get("to").toUpperCase())));
|
||||
states.put(state, new TransitionAutomatically(instanceStateWarningOnUnrecognized(attributes.get("to"))));
|
||||
else
|
||||
states.put(
|
||||
state,
|
||||
new TransitionOnAction(InstanceAction.fromValue(attributes.get("action")), InstanceState
|
||||
.valueOf(attributes.get("to").toUpperCase())));
|
||||
|
||||
states.put(state, new TransitionOnAction(instanceActionWarningOnUnrecognized(attributes.get("action")),
|
||||
instanceStateWarningOnUnrecognized(attributes.get("to"))));
|
||||
}
|
||||
}
|
||||
|
||||
InstanceState instanceStateWarningOnUnrecognized(String input) {
|
||||
InstanceState state = InstanceState.fromValue(input);
|
||||
if (state == InstanceState.UNRECOGNIZED)
|
||||
logger.warn("unrecognized state: %s", input);
|
||||
return state;
|
||||
}
|
||||
|
||||
InstanceAction instanceActionWarningOnUnrecognized(String input) {
|
||||
InstanceAction action = InstanceAction.fromValue(input);
|
||||
if (action == InstanceAction.UNRECOGNIZED)
|
||||
logger.warn("unrecognized action: %s", input);
|
||||
return action;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue