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 @Singleton
@Provides @Provides
Function<Size, String> provideSizeToRam() { Function<Size, String> provideSizeToRam() {
return new Function<Size, String>() { return new Function<Size, String>() {
@Override @Override
public String apply(Size size) { public String apply(Size size) {
int ramRequired = size.getRam(); if(size.getRam() >= 8 * 1024 || size.getCores() >= 6 || size.getDisk() >= 450) return "8GB";
if(ramRequired >= 8 * 1024) return "8GB"; if(size.getRam() >= 4 * 1024 || size.getCores() >= 3 || size.getDisk() >= 230) return "4GB";
if(ramRequired >= 4 * 1024) return "4GB"; if(size.getRam() >= 2 * 1024 || size.getDisk() >= 110) return "2GB";
if(ramRequired >= 2 * 1024) return "2GB"; if(size.getRam() >= 1024 || size.getDisk() >= 55) return "1GB";
if(ramRequired >= 1024) return "1GB";
return "512MB"; /*smallest*/ return "512MB"; /*smallest*/
} }
}; };

View File

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

View File

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