Hello,
I am currently looking at the Appscale system in order to build Virtual machine (as a first step) embedding my application.
I installed the appscale system from source, and everything worked like a charm. My application has been deployed successfully, and I can navigate through it without issues.
However, there are at least three functionality I have trouble to use using appscale:
RemoteApiOptions options = new RemoteApiOptions()
.server(anURL, aPort)
.credentials(anUserName, aPassword);
RemoteApiInstaller installer = new RemoteApiInstaller();
installer.install(options);
Is there anything special I could do to make the remote API working normally?
2. This second point is more problematic as a first step. I am trying to make the GCS and blobstore service working.
On upload, I generate an URL using the following code :
UploadOptions theOptions = UploadOptions.Builder.withGoogleStorageBucketName("BUCKET");
String theString = BlobstoreServiceFactory.getBlobstoreService().createUploadUrl("/Upload?Type=test");
Using this, I am supposed to received a call to my servlet named Upload, with the informations of the file that has been uploaded. The call is correctly made, but whenever I call the following API :
Map<String, List<BlobKey>> theBlobs = BlobstoreServiceFactory.getBlobstoreService().getUploads(aReq);
Map<String, List<FileInfo>> theStringInfo = BlobstoreServiceFactory.getBlobstoreService().getFileInfos(aReq);
I get an exception :
java.lang.IllegalStateException: Must be called from a blob upload callback request.
at com.google.appengine.api.blobstore.BlobstoreServiceImpl.getFileInfos(Unknown Source)
3. Moreover, when I try to create a file over the GCS service, it seems the application is trying to connect to the google cloud storage (I was thinking the support of cloud storage would be locally on the VM). I then get an error :
java.lang.RuntimeException: Server replied with 401, probably bad authentication: Request: POST
at com.google.appengine.tools.cloudstorage.RetryHelper.doRetry(RetryHelper.java:87)
at com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:129)
at com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:123)
at com.google.appengine.tools.cloudstorage.GcsServiceImpl.createOrReplace(GcsServiceImpl.java:64)
For this last step, I think I will have to write some code to handle the file write/read in case I am not located on app engine. Indeed, I do not want the VM to use Cloud storage if it can handle the file by itself. However, it would be great if I can keep the exact same code of the application, but only modify the appscale system.
Anyway, thank you for the great system.
Cheers,