added cpu cores/disk matching to sizes in templates. fixed incorrect credentials/ authorization parsing.

This commit is contained in:
Alex Yarmula 2010-03-07 10:42:59 -08:00
parent 09e797de0b
commit 258fd9d6a2
3 changed files with 26 additions and 7 deletions

View File

@ -246,17 +246,29 @@ public class GoGridComputeServiceContextModule extends GoGridContextModule {
};
}
/**
* Finds matches to required configurations.
* GoGrid's documentation only specifies how much RAM one can get with
* different instance types. The # of cores and disk sizes are purely
* empyrical and aren't guaranteed.
* However, these are the matches found:
* Ram: 512MB, CPU: 1 core, HDD: 28 GB
* Ram: 1GB, CPU: 1 core, HDD: 57 GB
* Ram: 2GB, CPU: 1 core, HDD: 113 GB
* Ram: 4GB, CPU: 3 cores, HDD: 233 GB
* Ram: 8GB, CPU: 6 cores, HDD: 462 GB
* @return matched size
*/
@Singleton
@Provides
Function<Size, String> provideSizeToRam() {
return new Function<Size, String>() {
@Override
public String apply(Size size) {
int ramRequired = size.getRam();
if(ramRequired >= 8 * 1024) return "8GB";
if(ramRequired >= 4 * 1024) return "4GB";
if(ramRequired >= 2 * 1024) return "2GB";
if(ramRequired >= 1024) return "1GB";
if(size.getRam() >= 8 * 1024 || size.getCores() >= 6 || size.getDisk() >= 450) return "8GB";
if(size.getRam() >= 4 * 1024 || size.getCores() >= 3 || size.getDisk() >= 230) return "4GB";
if(size.getRam() >= 2 * 1024 || size.getDisk() >= 110) return "2GB";
if(size.getRam() >= 1024 || size.getDisk() >= 55) return "1GB";
return "512MB"; /*smallest*/
}
};

View File

@ -55,6 +55,9 @@ public class GoGridErrorHandler implements HttpErrorHandler {
Exception exception;
Set<ErrorResponse> errors = parseErrorsFromContentOrNull(response.getContent());
switch (response.getStatusCode()) {
case 403:
exception = new HttpResponseException(command, response);
break;
default:
exception = errors != null ?
new GoGridResponseException(command, response, errors) :
@ -66,7 +69,11 @@ public class GoGridErrorHandler implements HttpErrorHandler {
Set<ErrorResponse> parseErrorsFromContentOrNull(InputStream content) {
if (content != null) {
try {
return errorParser.apply(content);
} catch(/*Parsing*/Exception e) {
return null;
}
}
return null;
}

View File

@ -62,7 +62,7 @@ public class GoGridComputeServiceLiveTest extends BaseComputeServiceLiveTest {
public void testAssignability() throws Exception {
@SuppressWarnings("unused")
RestContext<GoGridAsyncClient, GoGridClient> tmContext = new ComputeServiceContextFactory()
RestContext<GoGridAsyncClient, GoGridClient> goGridContext = new ComputeServiceContextFactory()
.createContext(service, user, password).getProviderSpecificContext();
}