Re: [google-appengine] GAE Datastore - Entity in datastore is already updated on @PrePut Datastore Callback

2015-06-02 Thread Jeff Schnitzer
Objectify author here.

I would not bother with the @PrePut/@PostPut callbacks; I have yet to find
a case where they are actually useful. Instead wrap the low level
AsyncDatastoreService and build your code as an interceptor/decorator. That
way you have full control.

One example is the CachingAsyncDatastoreService in Objectify, another is
this: https://github.com/objectify/objectify-insight

Jeff

On Tue, Jun 2, 2015 at 3:49 AM, Nejc Tomažič nejc.toma...@gmail.com wrote:


 Hi guys,

 as already described on StackOverflow:

 I'm working on entity auditing for a set of entities saved in GAE
 Datastore using @PrePut and @PostPut datastore callbacks.

 Idea is that old entity is loaded in @PrePut using Objectify and stored to
 context. Than updated entity is added to context in @PostPut callback. When
 request is processed I generate a diff in ContainerResponseFilter and save
 it.

 Issue: if entity is updated non transactional, entity retrieved from
 datastore in @PrePut callback is already updated and therefore I'm unable
 to get a diff.
 Is this a bug or it is supposed to work like that (if this is a  case I
 would highly recommend adding a note to the docs here:
 https://cloud.google.com/appengine/docs/java/datastore/callbacks)

 Question: Is it possible to retrieve old entity in @PrePut datastore
 callback if save operation is non transactional? If not, what would be the
 best alternative?

 All load and save operations are made using Objectify. Versions:
 Objectify: 5.1.5 Appengine version: 1.9.20

 Question on SO:
 http://stackoverflow.com/questions/30591289/get-old-entity-in-preput-datastore-callback-for-non-transactional-update

 I would really appreciate help on this one.
 Thanks,
 KR, Nejc

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 To view this discussion on the web visit
 https://groups.google.com/d/msgid/google-appengine/ced9eca8-d836-42d8-be71-02b41769d8f6%40googlegroups.com
 https://groups.google.com/d/msgid/google-appengine/ced9eca8-d836-42d8-be71-02b41769d8f6%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CADK-0ujsoRjp0DEERaYAjnanaC_zvYfugrAddGK-gXaCR_nQng%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] GAE Autoscheduler Going Crazy?

2015-06-02 Thread Christopher Ritter
Most of our requests are 500ing as taking too long to respond.

Instances are constantly being respun for very short lifespans.

App id: innoslate

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/5997528c-9e65-4191-9cdf-3b92fd1a460a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: Blobstore API upload behavior on error

2015-06-02 Thread Patrice (Cloud Platform Support)
Hey Jeff,

Thank you for coming back so quick. Yeah, reading my own reply, I'm not 
clear on it either. so I guess I needed more coffee before I wrote that.

Anyway, basically, in that specific circumstance, if Google tries to call 
your callback, then it means the url was successful in uploading and, 
indeed, you will have a blob added. Then yes, in that situation, your blob 
entry would be orphaned and would need to be cleaned out.

If you receive the 500 during step 3, you most likely have an orphaned 
blob. If you receive it during step 2, chances are your blob never got 
fully uploaded.

I hope this clarifies it. Lemme know if it doesn't

Cheers

On Tuesday, June 2, 2015 at 1:47:28 PM UTC-4, Jeff Schnitzer wrote:

 I don't quite understand. What happens in this circumstance?

 1) My application returns the result of createUploadUrl() to the client 
 (browser).
 2) Browser uploads file to that URL.
 3) Google tries to call my callback and times out

 #3 could be my fault or it could be GAE's; either way, from the 
 perspective of my code, I don't know anything about whether the upload 
 completed. Did this just orphan some stored data in GCS?

 Jeff

 On Tue, Jun 2, 2015 at 6:59 AM, Patrice (Cloud Platform Support) 
 pvoutsi...@google.com wrote:

 Hi Jeff,

 It really depends on where exactly your 500 is returned. If it's in the 
 callback, I believe that will mean your blob was properly uploaded.

 In your situation, when my application receives a 500, I would check for 
 timeouts to be certain this isn't the issue, then I'd check for file 
 existence, and delete as needed.

 Cheers


 On Monday, June 1, 2015 at 9:59:53 AM UTC-4, Jeff Schnitzer wrote:

 What is the behavior of the blobstore upload API when the callback 
 produces a 500 error? This is not at present documented.

 I would hope that GAE deletes the blob, otherwise it's going to leak. My 
 application cannot be trusted to detect the 500 error and delete the blob 
 explicitly; after all, the 500 could have been caused by a timeout or 
 something else out of my application's execution control.

 FWIW, I'm specifically interested in the behavior of the upload API when 
 backed by GCS, although the same question applies to traditional Blobstore.

 Thanks,
 Jeff

  -- 
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com
  
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/0dd29d18-732e-4f0f-b6b3-d67cc4acf344%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: GAE Autoscheduler Going Crazy?

2015-06-02 Thread Christopher Ritter
Seems to be resolved.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/a72bc559-966f-4a7a-b489-c7c03a66bee7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: Blobstore API upload behavior on error

2015-06-02 Thread Patrice (Cloud Platform Support)
Hi Jeff (and whoever else follows this thread).

Just as a headsup, I got a private email sent by Jeff saying that he opened 
a public issue tracker to get this looked up and changed.  I (or another 
member of the team) will be happy to look it and send it to the proper team.

Cheers!

On Tuesday, June 2, 2015 at 1:58:19 PM UTC-4, Patrice (Cloud Platform 
Support) wrote:

 Hey Jeff,

 Thank you for coming back so quick. Yeah, reading my own reply, I'm not 
 clear on it either. so I guess I needed more coffee before I wrote that.

 Anyway, basically, in that specific circumstance, if Google tries to call 
 your callback, then it means the url was successful in uploading and, 
 indeed, you will have a blob added. Then yes, in that situation, your blob 
 entry would be orphaned and would need to be cleaned out.

 If you receive the 500 during step 3, you most likely have an orphaned 
 blob. If you receive it during step 2, chances are your blob never got 
 fully uploaded.

 I hope this clarifies it. Lemme know if it doesn't

 Cheers

 On Tuesday, June 2, 2015 at 1:47:28 PM UTC-4, Jeff Schnitzer wrote:

 I don't quite understand. What happens in this circumstance?

 1) My application returns the result of createUploadUrl() to the client 
 (browser).
 2) Browser uploads file to that URL.
 3) Google tries to call my callback and times out

 #3 could be my fault or it could be GAE's; either way, from the 
 perspective of my code, I don't know anything about whether the upload 
 completed. Did this just orphan some stored data in GCS?

 Jeff

 On Tue, Jun 2, 2015 at 6:59 AM, Patrice (Cloud Platform Support) 
 pvoutsi...@google.com wrote:

 Hi Jeff,

 It really depends on where exactly your 500 is returned. If it's in the 
 callback, I believe that will mean your blob was properly uploaded.

 In your situation, when my application receives a 500, I would check for 
 timeouts to be certain this isn't the issue, then I'd check for file 
 existence, and delete as needed.

 Cheers


 On Monday, June 1, 2015 at 9:59:53 AM UTC-4, Jeff Schnitzer wrote:

 What is the behavior of the blobstore upload API when the callback 
 produces a 500 error? This is not at present documented.

 I would hope that GAE deletes the blob, otherwise it's going to leak. 
 My application cannot be trusted to detect the 500 error and delete the 
 blob explicitly; after all, the 500 could have been caused by a timeout or 
 something else out of my application's execution control.

 FWIW, I'm specifically interested in the behavior of the upload API 
 when backed by GCS, although the same question applies to traditional 
 Blobstore.

 Thanks,
 Jeff

  -- 
 You received this message because you are subscribed to the Google 
 Groups Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send 
 an email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com
  
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/05aba0d9-b1b4-4f1c-aefe-2dbab316bfd1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Serve ssl requests on both custom domain and appspot.com

2015-06-02 Thread Kehinde Ayanniyi
Am planning to develop an app that is free to the end users. The little cost of 
running the server will be taken care of by me, so cost saving is important in 
this context.

The app requires that users access via SSL/TLS, so I will be using google apps 
for domain to setup an SSL custom domain.
Because of limited budget, using VIP with the SSL certificate is out of the 
option, so am left with using SNI which I guess is free for the first 5 slots. 
Ofcourse, the down-side of using SNI SSL is that old platforms like IE on XP 
and Android 2.X.X will have issues with my app. As a work around to this SNI 
limitation, I consider to detect and redirect users on old platform where SNI 
will fail to the https://myapp.appspot.com instead of the default 
https://myapp.com

So I will like to know whether after I set up custom domain with SSL for my GAE 
app, will I still be able to use https://myapp.appspot.com to access my app and 
at the same time still have the https://myapp.com working correctly.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/bb71ee75-18ee-42c7-bb51-ba739aa5e95c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: serve ssl requests on both custom domain and appspot.com

2015-06-02 Thread Jason Collins
Yes, the existing https://myapp.appspot.com will continue to work after you 
set up SNI (or VIP) SSL on a custom domain.


On Tuesday, 2 June 2015 07:27:43 UTC-7, Kehinde Ayanniyi wrote:

 Am planning to develop an app that is free to the end users. The little 
 cost of running the server will be taken care of by me, so cost saving is 
 important in this context. 

  The app requires that users access via SSL/TLS, so I will be using google 
 apps for domain to setup an SSL custom domain. Because of limited budget, 
 using VIP with the SSL certificate is out of the option, so am left with 
 using SNI which I guess is free for the first 5 slots. Ofcourse the 
 down-side of using SNI SSL is that old platforms like IE on XP and Android 
 2.X.X will have issues with my app. As a work around to this SNI 
 limitation, I consider to detect and redirect users on old platform where 
 SNI will fail to the https://myapp.appspot.com instead of the default 
 https://www.myapp.com. 

 So I will like to know whether after I set up custom domain with SSL for 
 my GAE app, will I still be able to use https://myapp.appspot.com to 
 access my app and at the same time still have the https://www.myapp.com 
 working correctly.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/4f6df432-16e7-4972-b574-dd634f522e8d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: Blobstore API upload behavior on error

2015-06-02 Thread Jeff Schnitzer
Oops! That wasn't meant to be private, thanks for letting me know. For
anyone listening, here's my reply and a link to the story (for starring
purposes):



Thanks for the quick response!

This seems like pretty undesirable behavior. The only way to cull orphans
is to write a batch process that walks through my whole GCS bucket
(potentially millions or billions of entries) checking them one at a time.
Yuck. It would be much better to prevent orphans from happening in the
first place.

I opened this defect report:
https://code.google.com/p/googleappengine/issues/detail?id=12015

Thanks,
Jeff

On Tue, Jun 2, 2015 at 1:24 PM, Patrice (Cloud Platform Support) 
pvoutsi...@google.com wrote:

 Hi Jeff (and whoever else follows this thread).

 Just as a headsup, I got a private email sent by Jeff saying that he
 opened a public issue tracker to get this looked up and changed.  I (or
 another member of the team) will be happy to look it and send it to the
 proper team.

 Cheers!


 On Tuesday, June 2, 2015 at 1:58:19 PM UTC-4, Patrice (Cloud Platform
 Support) wrote:

 Hey Jeff,

 Thank you for coming back so quick. Yeah, reading my own reply, I'm not
 clear on it either. so I guess I needed more coffee before I wrote that.

 Anyway, basically, in that specific circumstance, if Google tries to call
 your callback, then it means the url was successful in uploading and,
 indeed, you will have a blob added. Then yes, in that situation, your blob
 entry would be orphaned and would need to be cleaned out.

 If you receive the 500 during step 3, you most likely have an orphaned
 blob. If you receive it during step 2, chances are your blob never got
 fully uploaded.

 I hope this clarifies it. Lemme know if it doesn't

 Cheers

 On Tuesday, June 2, 2015 at 1:47:28 PM UTC-4, Jeff Schnitzer wrote:

 I don't quite understand. What happens in this circumstance?

 1) My application returns the result of createUploadUrl() to the client
 (browser).
 2) Browser uploads file to that URL.
 3) Google tries to call my callback and times out

 #3 could be my fault or it could be GAE's; either way, from the
 perspective of my code, I don't know anything about whether the upload
 completed. Did this just orphan some stored data in GCS?

 Jeff

 On Tue, Jun 2, 2015 at 6:59 AM, Patrice (Cloud Platform Support) 
 pvoutsi...@google.com wrote:

 Hi Jeff,

 It really depends on where exactly your 500 is returned. If it's in the
 callback, I believe that will mean your blob was properly uploaded.

 In your situation, when my application receives a 500, I would check
 for timeouts to be certain this isn't the issue, then I'd check for file
 existence, and delete as needed.

 Cheers


 On Monday, June 1, 2015 at 9:59:53 AM UTC-4, Jeff Schnitzer wrote:

 What is the behavior of the blobstore upload API when the callback
 produces a 500 error? This is not at present documented.

 I would hope that GAE deletes the blob, otherwise it's going to leak.
 My application cannot be trusted to detect the 500 error and delete the
 blob explicitly; after all, the 500 could have been caused by a timeout or
 something else out of my application's execution control.

 FWIW, I'm specifically interested in the behavior of the upload API
 when backed by GCS, although the same question applies to traditional
 Blobstore.

 Thanks,
 Jeff

  --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 To view this discussion on the web visit
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CADK-0uhhd1Y-XdzcJq4DaBCYsi0gPHEEAD947NAukN2AgG3pPw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: resident instances are not handling requests

2015-06-02 Thread Kaan Soral
In general, my instance charts look similar

It's also important to note that, in general, my general instances are  
my billed instances, so likely there are instances there to serve my 
requests, yet I don't pay for them, that's nice :)

Resident instances are there as he specified min_instances, so it shouldn't 
be related to modules and backends and stuff like that, he is just using 
everything as default as far as I understand

Miroslav, your charts look regular to me, it might be a good idea to set 
min and max instances to 1, that way you will only pay for 1 resident 
instance and the extras will not be billed (they will only be billed if you 
are actually using them, so this will likely not affect your performance 
significantly but reduce your costs instead)

I think the main issue is mostly confusion and the black box nature of the 
instance scheduler

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/aa5cc53e-2d84-4d06-b2d0-388bb0bcb2c7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Invited collaborators but they cannot receive invite / see app in appengine.google.com

2015-06-02 Thread Long Tran
Forced to use this new https://console.developers.google.com to invite but 
it never works. Anyone has an idea?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/4a1b287a-0acd-4add-beef-69a9347c61ba%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] GAE Datastore - Entity in datastore is already updated on @PrePut Datastore Callback

2015-06-02 Thread Nejc Tomažič

Hi guys, 

as already described on StackOverflow:

I'm working on entity auditing for a set of entities saved in GAE Datastore 
using @PrePut and @PostPut datastore callbacks.

Idea is that old entity is loaded in @PrePut using Objectify and stored to 
context. Than updated entity is added to context in @PostPut callback. When 
request is processed I generate a diff in ContainerResponseFilter and save 
it.

Issue: if entity is updated non transactional, entity retrieved from 
datastore in @PrePut callback is already updated and therefore I'm unable 
to get a diff.
Is this a bug or it is supposed to work like that (if this is a  case I 
would highly recommend adding a note to the docs 
here: https://cloud.google.com/appengine/docs/java/datastore/callbacks)

Question: Is it possible to retrieve old entity in @PrePut datastore 
callback if save operation is non transactional? If not, what would be the 
best alternative?

All load and save operations are made using Objectify. Versions: Objectify: 
5.1.5 Appengine version: 1.9.20

Question on 
SO: 
http://stackoverflow.com/questions/30591289/get-old-entity-in-preput-datastore-callback-for-non-transactional-update

I would really appreciate help on this one.
Thanks, 
KR, Nejc

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/ced9eca8-d836-42d8-be71-02b41769d8f6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] The API package 'file' or call 'Create()' was not found

2015-06-02 Thread Christophe DA COSTA
Thanks for yours answers,

I am trying to use the Google Cloud Storage but I have this erreur:

com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred 
while calling backed method
java.lang.NoClassDefFoundError: 
com/google/api/client/http/HttpRequestInitializer
at 
com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsServiceFactory.clinit(OauthRawGcsServiceFactory.java:31)
at 
com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59)
at 
com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44)
at 
com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40)
at 
com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:75)
at 
com.listecourses.model.ListeModelEndpoint.insertListeModel(ListeModelEndpoint.java:204)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:45)
at 
com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
at 
com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113)
at 
com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at 
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
at 
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
at 
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230)
at 
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
at 
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
at 
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
at java.lang.Thread.run(Thread.java:745)


my code is:


GcsFilename fileName = new GcsFilename(my-bucket-name, someFileName.jpg);
GcsOutputChannel outputChannel = 
GcsServiceFactory.createGcsService().createOrReplace(fileName, 
GcsFileOptions.getDefaultInstance());
outputChannel.write(ByteBuffer.wrap(listemodel.getImage()));
outputChannel.close();



I think, I am missing the file API library whitin my project. I join the image 
of my project's libraries.





Le dimanche 31 mai 2015 22:11:59 UTC+2, Vinny P a écrit :


 On Sun, May 31, 2015 at 12:07 PM, Christophe DA COSTA toto...@gmail.com 
 javascript: wrote:

 I am trying to use the blobstore API, but I have this error:

 com.google.api.server.spi.SystemService invokeServiceMethod: exception 
 occurred while calling backed method com.google.apphosting.api.
 ApiProxy$CallNotFoundException: The API package 'file' or call 'Create()'
  was not found. at java.lang.Thread.getStackTrace




 Typically that error message means that you're missing the Files API 
 library within your project or path. You might want to check your build 
 setup and make sure the library is available.

 However, another more pressing issue is that you're using the Files API. 
 File is deprecated 

[google-appengine] Datastore Admin Issue - Backup - Namespaces

2015-06-02 Thread Aswath Satrasala
Hello,
I am trying to do backup of a Namespace, however, I cannot select the
namespace.
I am doing the following in the appengine console (old)
* Click on the Datastore Admin
* Select the KINDS
* Click on the 'Backup Entities'
* In the next screen, I am trying to choose the namespace.  However, there
are only few namespaces displayed. I cannot select the namespace, I wanted.

-Aswath
www.AccountingGuru.net.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CAKFF5G7P_RH%2BJzC%3DO2SxEvMVdtZS9vGPwQN%2BoaPDh%3D%2BwCfu4zw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] serve ssl requests on both custom domain and appspot.com

2015-06-02 Thread Kehinde Ayanniyi
Am planning to develop an app that is free to the end users. The little cost of 
running the server will be taken care of by me, so cost saving is important in 
this context.

 The app requires that users access via SSL/TLS, so I will be using google apps 
for domain to setup an SSL custom domain. Because of limited budget, using VIP 
with the SSL certificate is out of the option, so am left with using SNI which 
I guess is free for the first 5 slots. Ofcourse the down-side of using SNI SSL 
is that old platforms like IE on XP and Android 2.X.X will have issues with my 
app. As a work around to this SNI limitation, I consider to detect and redirect 
users on old platform where SNI will fail to the https://myapp.appspot.com 
instead of the default https://www.myapp.com.

So I will like to know whether after I set up custom domain with SSL for my GAE 
app, will I still be able to use https://myapp.appspot.com to access my app and 
at the same time still have the https://www.myapp.com working correctly.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/a05a1204-8e61-4f87-8c24-3909bc3c0cbd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] The API package 'file' or call 'Create()' was not found

2015-06-02 Thread Ryan (Cloud Platform Support)
Salutations Christophe,

If you go to the Migrating from the Files API 
https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/migrate 
page 
you will see that error means you are missing libraries. I would read 
through the page and see what libraries you are missing.

On Tuesday, June 2, 2015 at 6:58:46 AM UTC-4, Christophe DA COSTA wrote:

 Thanks for yours answers,

 I am trying to use the Google Cloud Storage but I have this erreur:

 com.google.api.server.spi.SystemService invokeServiceMethod: exception 
 occurred while calling backed method
 java.lang.NoClassDefFoundError: 
 com/google/api/client/http/HttpRequestInitializer
   at 
 com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsServiceFactory.clinit(OauthRawGcsServiceFactory.java:31)
   at 
 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59)
   at 
 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44)
   at 
 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40)
   at 
 com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:75)
   at 
 com.listecourses.model.ListeModelEndpoint.insertListeModel(ListeModelEndpoint.java:204)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:45)
   at 
 com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
   at 
 com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113)
   at 
 com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
   at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
   at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
   at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
   at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
   at org.mortbay.jetty.Server.handle(Server.java:326)
   at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
   at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
   at 
 com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
   at 
 com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
   at 
 com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230)
   at 
 com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
   at 
 com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
   at 
 com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
   at java.lang.Thread.run(Thread.java:745)


 my code is:


 GcsFilename fileName = new GcsFilename(my-bucket-name, someFileName.jpg);
 GcsOutputChannel outputChannel = 
 GcsServiceFactory.createGcsService().createOrReplace(fileName, 
 GcsFileOptions.getDefaultInstance());
 outputChannel.write(ByteBuffer.wrap(listemodel.getImage()));
 outputChannel.close();



 I think, I am missing the file API library whitin my project. I join the 
 image of my project's libraries.





 Le dimanche 31 mai 2015 22:11:59 UTC+2, Vinny P a écrit :


 On Sun, May 31, 2015 at 12:07 PM, Christophe DA COSTA toto...@gmail.com
  wrote:

 I am trying to use the blobstore API, but I have this error:

 com.google.api.server.spi.SystemService invokeServiceMethod: exception 
 occurred while calling backed method com.google.apphosting.api.
 ApiProxy$CallNotFoundException: The API package 'file' or 

[google-appengine] Re: 400 Error when trying to deploy the Node.js helloworld app to appengine

2015-06-02 Thread Ryan (Cloud Platform Support)
Looks like most of the issues have been resolved. I took away that the 
error messages should be clearer. Please star this PIT 
https://code.google.com/p/googleappengine/issues/detail?id=12013thanks=12013ts=1433255342
 
to add your voice to the thread.

On Tuesday, June 2, 2015 at 9:25:07 AM UTC-4, Danny Leshem wrote: 

 Apparently the issue (at least in our case) was that billing was not 
 enabled for the GCP project.

 Our bad! (though it would be helpful if the error message was more 
 informative)

 On Monday, June 1, 2015 at 10:12:55 PM UTC+3, Ryan (Cloud Platform 
 Support) wrote:

 @*Julien You need to setup your environment variables. You need to set 
 all 3 for it to work. Here are some links:*

 *https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/mz1ugDxKZPU
  
 https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/mz1ugDxKZPU*
 *http://stackoverflow.com/questions/26842682/dockerdaemonconnectionerror-when-setting-google-cloud-managed-vm-in-ubuntu
  
 http://stackoverflow.com/questions/26842682/dockerdaemonconnectionerror-when-setting-google-cloud-managed-vm-in-ubuntu*
 *http://stackoverflow.com/questions/27118022/how-to-use-gcloud-preview-app-run-without-boot2docker
  
 http://stackoverflow.com/questions/27118022/how-to-use-gcloud-preview-app-run-without-boot2docker*


 On Monday, June 1, 2015 at 8:05:04 AM UTC-4, Julien wrote:

 *Last week I was getting the following:*
 gcloud preview app deploy app.yaml --set-default
 You are about to deploy the following modules:
  - academic-torch-95915/default/20150529t102149  From: 
 [/home/julien/1-hello-world/app.yaml]
 Do you want to continue (Y/n)?  y

 ERROR: (gcloud.preview.app.deploy) Server responded with code [400]:
   Bad Request Unexpected HTTP status 400


 *But since today I am getting this:*
 gcloud --verbosity debug preview app deploy app.yaml --set-default
 DEBUG: Running gcloud.preview.app.deploy with 
 Namespace(__calliope_internal_deepest_parser=ArgumentParser(prog='gcloud.preview.app.deploy',
  
 usage=None, description=*(BETA)* This command is used to deploy both code 
 and configuration to the App Engine\nserver.  As an input it takes one or 
 more ``DEPLOYABLES'' that should be\nuploaded.  A ``DEPLOYABLE'' can be a 
 module's .yaml file or a configuration's\n.yaml file., version=None, 
 formatter_class=class 'argparse.HelpFormatter', conflict_handler='error', 
 add_help=False), cmd_func=bound method Command.Run of 
 googlecloudsdk.calliope.backend.Command object at 0x7fcce2105d90, 
 command_path=['gcloud', 'preview', 'app', 'deploy'], 
 deployables=['app.yaml'], document=None, env_vars=None, force=False, 
 format=None, h=None, help=None, http_timeout=None, log_http=None, 
 markdown=None, project=None, quiet=None, remote=False, server=None, 
 set_default=True, trace_token=None, user_output_enabled=None, 
 verbosity='debug', version=None).
 You are about to deploy the following modules:
  - academic-torch-95915/default/20150601t140217  From: 
 [/home/julien/1-hello-world/app.yaml]
 Do you want to continue (Y/n)?  Y

 DEBUG: Host: appengine.google.com
 DEBUG: _Authenticate configuring auth; needs_auth=False
 DEBUG: Sending request to 
 https://appengine.google.com/api/vms/prepare?app_id=academic-torch-95915 
 headers={'X-appcfg-api-version': '1', 'content-length': '0', 
 'Content-Type': 'application/octet-stream'} body=
 INFO: Attempting refresh to obtain initial access_token
 INFO: Refreshing access_token
 DEBUG: Got response: {bucket: 
 vm-containers.academic-torch-95915.appspot.com, path: /containers}

 INFO: Refreshing access_token
 DEBUG: Detected docker environment variables: DOCKER_HOST=None, 
 DOCKER_CERT_PATH=None, DOCKER_TLS_VERIFY=None
 WARNING: Found a stale /var/run/docker.sock, did you forget to start 
 your docker daemon?
 DEBUG: (gcloud.preview.app.deploy) Couldn't connect to the docker daemon.
 Please check if the environment variables DOCKER_HOST, DOCKER_CERT_PATH 
 and DOCKER_TLS_VERIFY are set correctly. If you are using boot2docker, you 
 can set them up by executing the commands that are shown by:
 boot2docker shellinit
 Traceback (most recent call last):
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py,
  
 line 537, in Execute
 result = args.cmd_func(cli=self, args=args)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py,
  
 line 1089, in Run
 result = command_instance.Run(args)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/deploy.py,
  
 line 115, in Run
 timeout=config.DOCKER_D_REQUEST_TIMEOUT)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/docker/containers.py,
  
 line 282, in NewDockerClient
 client = NewDockerClientNoCheck(**kwargs)
   File 
 

[google-appengine] Re: Blobstore API upload behavior on error

2015-06-02 Thread Patrice (Cloud Platform Support)
Hi Jeff,

It really depends on where exactly your 500 is returned. If it's in the 
callback, I believe that will mean your blob was properly uploaded.

In your situation, when my application receives a 500, I would check for 
timeouts to be certain this isn't the issue, then I'd check for file 
existence, and delete as needed.

Cheers

On Monday, June 1, 2015 at 9:59:53 AM UTC-4, Jeff Schnitzer wrote:

 What is the behavior of the blobstore upload API when the callback 
 produces a 500 error? This is not at present documented.

 I would hope that GAE deletes the blob, otherwise it's going to leak. My 
 application cannot be trusted to detect the 500 error and delete the blob 
 explicitly; after all, the 500 could have been caused by a timeout or 
 something else out of my application's execution control.

 FWIW, I'm specifically interested in the behavior of the upload API when 
 backed by GCS, although the same question applies to traditional Blobstore.

 Thanks,
 Jeff


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: Datastore Admin Issue - Backup - Namespaces

2015-06-02 Thread Patrice (Cloud Platform Support)
Hi Aswath.

We'd need a bit more details to be able to help you here.

Are you sure that the namespace you want to backup isn't part of another 
application's datastore? Are the kinds you are backing up in that 
namespace? 

I've tried different combinations, and everything seemed to have worked 
fine. If you could add print screens, both showing that the kinds are in 
the requested namespace, and of the page not showing you the namespace, it 
would be helpful in troubleshooting further

Cheers

On Tuesday, June 2, 2015 at 8:14:58 AM UTC-4, aswath wrote:

 Hello,
 I am trying to do backup of a Namespace, however, I cannot select the 
 namespace.
 I am doing the following in the appengine console (old)
 * Click on the Datastore Admin
 * Select the KINDS
 * Click on the 'Backup Entities'
 * In the next screen, I am trying to choose the namespace.  However, there 
 are only few namespaces displayed. I cannot select the namespace, I wanted.

 -Aswath
 www.AccountingGuru.net.



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/99e9ec3b-296e-4a14-8b3b-cf39b5732c20%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: GAE Datastore - Entity in datastore is already updated on @PrePut Datastore Callback

2015-06-02 Thread Nejc Tomažič
Thanks alot for quick response Ryan!

If this really sounds like an issue on the Callbacks I would first ask the 
following question:
Can we speed things up if we have Gold support package? My corporate 
account doesn't have permissions to open a ticket at the moment and I tried 
on SO first and than came up with posting to this group if there would be 
obvious that I missed sth. in the docs.
I can request permission or ask colleague to post a ticket if we should 
take care of an issue through the developers console?

Anyhow I can prepare simple project if this would help, but this will take 
some extra time because of the priorities.

Thanks, Nejc

On Tuesday, 2 June 2015 15:44:37 UTC+2, Ryan (Cloud Platform Support) wrote:

 Salutations Nejc,

 This sounds like it would be perfect for our PIT Defect Reports 
 https://code.google.com/p/googleappengine/issues/entry. Fill out the 
 report including a sample project that shows the behaviour. Post the thread 
 in here and I will take a look at it.

 Thank you for bringing this to our attention! 

 On Tuesday, June 2, 2015 at 6:49:09 AM UTC-4, Nejc Tomažič wrote:


 Hi guys, 

 as already described on StackOverflow:

 I'm working on entity auditing for a set of entities saved in GAE 
 Datastore using @PrePut and @PostPut datastore callbacks.

 Idea is that old entity is loaded in @PrePut using Objectify and stored 
 to context. Than updated entity is added to context in @PostPut callback. 
 When request is processed I generate a diff in ContainerResponseFilter and 
 save it.

 Issue: if entity is updated non transactional, entity retrieved from 
 datastore in @PrePut callback is already updated and therefore I'm unable 
 to get a diff.
 Is this a bug or it is supposed to work like that (if this is a  case I 
 would highly recommend adding a note to the docs here: 
 https://cloud.google.com/appengine/docs/java/datastore/callbacks)

 Question: Is it possible to retrieve old entity in @PrePut datastore 
 callback if save operation is non transactional? If not, what would be the 
 best alternative?

 All load and save operations are made using Objectify. Versions: 
 Objectify: 5.1.5 Appengine version: 1.9.20

 Question on SO: 
 http://stackoverflow.com/questions/30591289/get-old-entity-in-preput-datastore-callback-for-non-transactional-update

 I would really appreciate help on this one.
 Thanks, 
 KR, Nejc



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/56d97176-8e43-4de8-810c-817d8e0c7401%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: GAE Datastore - Entity in datastore is already updated on @PrePut Datastore Callback

2015-06-02 Thread Ryan (Cloud Platform Support)
Salutations Nejc,

This sounds like it would be perfect for our PIT Defect Reports 
https://code.google.com/p/googleappengine/issues/entry. Fill out the 
report including a sample project that shows the behaviour. Post the thread 
in here and I will take a look at it.

Thank you for bringing this to our attention! 

On Tuesday, June 2, 2015 at 6:49:09 AM UTC-4, Nejc Tomažič wrote:


 Hi guys, 

 as already described on StackOverflow:

 I'm working on entity auditing for a set of entities saved in GAE 
 Datastore using @PrePut and @PostPut datastore callbacks.

 Idea is that old entity is loaded in @PrePut using Objectify and stored to 
 context. Than updated entity is added to context in @PostPut callback. When 
 request is processed I generate a diff in ContainerResponseFilter and save 
 it.

 Issue: if entity is updated non transactional, entity retrieved from 
 datastore in @PrePut callback is already updated and therefore I'm unable 
 to get a diff.
 Is this a bug or it is supposed to work like that (if this is a  case I 
 would highly recommend adding a note to the docs here: 
 https://cloud.google.com/appengine/docs/java/datastore/callbacks)

 Question: Is it possible to retrieve old entity in @PrePut datastore 
 callback if save operation is non transactional? If not, what would be the 
 best alternative?

 All load and save operations are made using Objectify. Versions: 
 Objectify: 5.1.5 Appengine version: 1.9.20

 Question on SO: 
 http://stackoverflow.com/questions/30591289/get-old-entity-in-preput-datastore-callback-for-non-transactional-update

 I would really appreciate help on this one.
 Thanks, 
 KR, Nejc


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/ba7d4e47-dd53-416d-a050-0a4c2673bfe8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: 400 Error when trying to deploy the Node.js helloworld app to appengine

2015-06-02 Thread Danny Leshem
Apparently the issue (at least in our case) was that billing was not 
enabled for the GCP project.

Our bad! (though it would be helpful if the error message was more 
informative)

On Monday, June 1, 2015 at 10:12:55 PM UTC+3, Ryan (Cloud Platform Support) 
wrote:

 @*Julien You need to setup your environment variables. You need to set 
 all 3 for it to work. Here are some links:*

 *https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/mz1ugDxKZPU
  
 https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/mz1ugDxKZPU*
 *http://stackoverflow.com/questions/26842682/dockerdaemonconnectionerror-when-setting-google-cloud-managed-vm-in-ubuntu
  
 http://stackoverflow.com/questions/26842682/dockerdaemonconnectionerror-when-setting-google-cloud-managed-vm-in-ubuntu*
 *http://stackoverflow.com/questions/27118022/how-to-use-gcloud-preview-app-run-without-boot2docker
  
 http://stackoverflow.com/questions/27118022/how-to-use-gcloud-preview-app-run-without-boot2docker*


 On Monday, June 1, 2015 at 8:05:04 AM UTC-4, Julien wrote:

 *Last week I was getting the following:*
 gcloud preview app deploy app.yaml --set-default
 You are about to deploy the following modules:
  - academic-torch-95915/default/20150529t102149  From: 
 [/home/julien/1-hello-world/app.yaml]
 Do you want to continue (Y/n)?  y

 ERROR: (gcloud.preview.app.deploy) Server responded with code [400]:
   Bad Request Unexpected HTTP status 400


 *But since today I am getting this:*
 gcloud --verbosity debug preview app deploy app.yaml --set-default
 DEBUG: Running gcloud.preview.app.deploy with 
 Namespace(__calliope_internal_deepest_parser=ArgumentParser(prog='gcloud.preview.app.deploy',
  
 usage=None, description=*(BETA)* This command is used to deploy both code 
 and configuration to the App Engine\nserver.  As an input it takes one or 
 more ``DEPLOYABLES'' that should be\nuploaded.  A ``DEPLOYABLE'' can be a 
 module's .yaml file or a configuration's\n.yaml file., version=None, 
 formatter_class=class 'argparse.HelpFormatter', conflict_handler='error', 
 add_help=False), cmd_func=bound method Command.Run of 
 googlecloudsdk.calliope.backend.Command object at 0x7fcce2105d90, 
 command_path=['gcloud', 'preview', 'app', 'deploy'], 
 deployables=['app.yaml'], document=None, env_vars=None, force=False, 
 format=None, h=None, help=None, http_timeout=None, log_http=None, 
 markdown=None, project=None, quiet=None, remote=False, server=None, 
 set_default=True, trace_token=None, user_output_enabled=None, 
 verbosity='debug', version=None).
 You are about to deploy the following modules:
  - academic-torch-95915/default/20150601t140217  From: 
 [/home/julien/1-hello-world/app.yaml]
 Do you want to continue (Y/n)?  Y

 DEBUG: Host: appengine.google.com
 DEBUG: _Authenticate configuring auth; needs_auth=False
 DEBUG: Sending request to 
 https://appengine.google.com/api/vms/prepare?app_id=academic-torch-95915 
 headers={'X-appcfg-api-version': '1', 'content-length': '0', 
 'Content-Type': 'application/octet-stream'} body=
 INFO: Attempting refresh to obtain initial access_token
 INFO: Refreshing access_token
 DEBUG: Got response: {bucket: 
 vm-containers.academic-torch-95915.appspot.com, path: /containers}

 INFO: Refreshing access_token
 DEBUG: Detected docker environment variables: DOCKER_HOST=None, 
 DOCKER_CERT_PATH=None, DOCKER_TLS_VERIFY=None
 WARNING: Found a stale /var/run/docker.sock, did you forget to start your 
 docker daemon?
 DEBUG: (gcloud.preview.app.deploy) Couldn't connect to the docker daemon.
 Please check if the environment variables DOCKER_HOST, DOCKER_CERT_PATH 
 and DOCKER_TLS_VERIFY are set correctly. If you are using boot2docker, you 
 can set them up by executing the commands that are shown by:
 boot2docker shellinit
 Traceback (most recent call last):
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py,
  
 line 537, in Execute
 result = args.cmd_func(cli=self, args=args)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py,
  
 line 1089, in Run
 result = command_instance.Run(args)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/deploy.py,
  
 line 115, in Run
 timeout=config.DOCKER_D_REQUEST_TIMEOUT)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/docker/containers.py,
  
 line 282, in NewDockerClient
 client = NewDockerClientNoCheck(**kwargs)
   File 
 /home/julien/Documents/tasks/googleCloud/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/docker/containers.py,
  
 line 265, in NewDockerClientNoCheck
 raise DockerDaemonConnectionError(DOCKER_CONNECTION_ERROR)
 DockerDaemonConnectionError: Couldn't connect to the docker daemon.
 Please check if the environment variables DOCKER_HOST, DOCKER_CERT_PATH 
 and DOCKER_TLS_VERIFY are set correctly. If you 

[google-appengine] Re: resident instances are not handling requests

2015-06-02 Thread Patrice (Cloud Platform Support)
Hi Miroslav. 

I'm unclear on what you mean by this. 

Normally modules don't just serve requests, unless they get called 
explicitely. Scaling will change (depending on where you put that scaling) 
how the instances for the regular traffic serves. 

Since you need to specifically call modules, traffic to them will not just 
go there, you need to call it.

On Tuesday, June 2, 2015 at 11:22:06 AM UTC-4, Miroslav Genov wrote:

 Hello again, 

 We tried some scenario, and here are the results. 

 automatic-scaling
 min-idle-instances3/min-idle-instances
 !-- ‘automatic’ is the default value. --
 max-idle-instances10/max-idle-instances
 !-- ‘automatic’ is the default value. --
 min-pending-latency30ms/min-pending-latency
 max-pending-latencyautomatic/max-pending-latency
 max-concurrent-requests100/max-concurrent-requests
   /automatic-scaling



 https://lh3.googleusercontent.com/-uTQtpj_BaqA/VW3JojfZOHI/Gxs/DYFGyKHA7x8/s1600/pic1.png

 automatic-scaling
 min-idle-instances1/min-idle-instances
 !-- ‘automatic’ is the default value. --
 max-idle-instances10/max-idle-instances
 !-- ‘automatic’ is the default value. --
 min-pending-latency30ms/min-pending-latency
 max-pending-latencyautomatic/max-pending-latency
 max-concurrent-requests50/max-concurrent-requests
   /automatic-scaling



 https://lh3.googleusercontent.com/-psY_PITrhJs/VW3JxYQVGbI/Gx0/LbjkCeFJgOg/s1600/pic2.png


 automatic-scaling
 min-idle-instances1/min-idle-instances
 !-- ‘automatic’ is the default value. --
 max-idle-instances10/max-idle-instances
 !-- ‘automatic’ is the default value. --
 min-pending-latency30ms/min-pending-latency
 max-pending-latencyautomatic/max-pending-latency
 max-concurrent-requests10/max-concurrent-requests
   /automatic-scaling




 https://lh3.googleusercontent.com/-9N_Bx_qR2qo/VW3J5i2ECsI/Gx8/P1v2J1-BYnw/s1600/pic3.png


 As you can see, there is no difference where module app is used or single 
 app. Can you give us some light on this ? 


 On Thursday, May 28, 2015 at 5:13:22 PM UTC+3, Patrice (Cloud Platform 
 Support) wrote:

 Hi again Miroslav,

 Happy that you like the speed, we've been working on being better on that 
 :).

 In any case, it turns out even backends 
 https://cloud.google.com/appengine/docs/python/backends/#Python_Addressing_backends,
  
 seems like they need to be explicitly called to serve, so that may be 
 what's happening here.

 Cheers!

 On Thursday, May 28, 2015 at 9:34:00 AM UTC-4, Miroslav Genov wrote:

 This is an old app (maybe 3-4 years), so we have not migrated our stuff 
 to use modules. In next 2 days, we will give it try to see where the things 
 gonna change. 

 Thanks for the fast feedback. 

 On Thursday, May 28, 2015 at 4:23:25 PM UTC+3, Patrice (Cloud Platform 
 Support) wrote:

 Hi Miroslav,

 Normally, Resident instances are for modules, so unless your requests 
 go straight to the module, the behavior you are experiencing is normal.

 Do you have a module in your application?

 Cheers!

 On Wednesday, May 27, 2015 at 7:10:27 PM UTC-4, Miroslav Genov wrote:

 Hello, 

 I'm encountering strange issue with resident instances. It seems that 
 instance is up and running, but the GAE load balancer does not pass 
 requests to it. Is this a normal behaviour or some kind of bug? 

 Here is a screenshot from my dashboard:


 https://lh3.googleusercontent.com/-c6sZBFFxdYs/VWZOzmSiq7I/Gw0/UbcT-oSpz1E/s1600/Screen%2BShot%2B2015-05-28%2Bat%2B2.08.04%2BAM.png


 Thanks in advance. 



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/7f3021d1-ad0a-4570-bec8-73b05a7fe620%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: resident instances are not handling requests

2015-06-02 Thread Miroslav Genov
Hello again, 

We tried some scenario, and here are the results. 

automatic-scaling
min-idle-instances3/min-idle-instances
!-- ‘automatic’ is the default value. --
max-idle-instances10/max-idle-instances
!-- ‘automatic’ is the default value. --
min-pending-latency30ms/min-pending-latency
max-pending-latencyautomatic/max-pending-latency
max-concurrent-requests100/max-concurrent-requests
  /automatic-scaling


https://lh3.googleusercontent.com/-uTQtpj_BaqA/VW3JojfZOHI/Gxs/DYFGyKHA7x8/s1600/pic1.png

automatic-scaling
min-idle-instances1/min-idle-instances
!-- ‘automatic’ is the default value. --
max-idle-instances10/max-idle-instances
!-- ‘automatic’ is the default value. --
min-pending-latency30ms/min-pending-latency
max-pending-latencyautomatic/max-pending-latency
max-concurrent-requests50/max-concurrent-requests
  /automatic-scaling


https://lh3.googleusercontent.com/-psY_PITrhJs/VW3JxYQVGbI/Gx0/LbjkCeFJgOg/s1600/pic2.png


automatic-scaling
min-idle-instances1/min-idle-instances
!-- ‘automatic’ is the default value. --
max-idle-instances10/max-idle-instances
!-- ‘automatic’ is the default value. --
min-pending-latency30ms/min-pending-latency
max-pending-latencyautomatic/max-pending-latency
max-concurrent-requests10/max-concurrent-requests
  /automatic-scaling



https://lh3.googleusercontent.com/-9N_Bx_qR2qo/VW3J5i2ECsI/Gx8/P1v2J1-BYnw/s1600/pic3.png


As you can see, there is no difference where module app is used or single 
app. Can you give us some light on this ? 


On Thursday, May 28, 2015 at 5:13:22 PM UTC+3, Patrice (Cloud Platform 
Support) wrote:

 Hi again Miroslav,

 Happy that you like the speed, we've been working on being better on that 
 :).

 In any case, it turns out even backends 
 https://cloud.google.com/appengine/docs/python/backends/#Python_Addressing_backends,
  
 seems like they need to be explicitly called to serve, so that may be 
 what's happening here.

 Cheers!

 On Thursday, May 28, 2015 at 9:34:00 AM UTC-4, Miroslav Genov wrote:

 This is an old app (maybe 3-4 years), so we have not migrated our stuff 
 to use modules. In next 2 days, we will give it try to see where the things 
 gonna change. 

 Thanks for the fast feedback. 

 On Thursday, May 28, 2015 at 4:23:25 PM UTC+3, Patrice (Cloud Platform 
 Support) wrote:

 Hi Miroslav,

 Normally, Resident instances are for modules, so unless your requests go 
 straight to the module, the behavior you are experiencing is normal.

 Do you have a module in your application?

 Cheers!

 On Wednesday, May 27, 2015 at 7:10:27 PM UTC-4, Miroslav Genov wrote:

 Hello, 

 I'm encountering strange issue with resident instances. It seems that 
 instance is up and running, but the GAE load balancer does not pass 
 requests to it. Is this a normal behaviour or some kind of bug? 

 Here is a screenshot from my dashboard:


 https://lh3.googleusercontent.com/-c6sZBFFxdYs/VWZOzmSiq7I/Gw0/UbcT-oSpz1E/s1600/Screen%2BShot%2B2015-05-28%2Bat%2B2.08.04%2BAM.png


 Thanks in advance. 



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/fde4aa1d-cf59-41b7-be62-f06d2e37db6a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: GAE php CloudStorageTools class is missing

2015-06-02 Thread mohamed hassan
*Fatal error*: Call to undefined function make_call() in 
*C:\xampp\htdocs\google_cloud\google\appengine\runtime\RealApiProxy.php* on 
line *49*


*this is the error which we get when trying to use this code and i can't 
figure where is the problem in it ?*
On Friday, May 29, 2015 at 10:06:56 PM UTC+3, Mars Lan wrote:

 CloudStorageTool.php is part of the GAE PHP SDK so there's no need to 
 download and include it manually. Your example code from 
 https://cloud.google.com/appengine/docs/php/googlestorage/images should 
 work as-is. What error message are you getting?


 On Friday, May 29, 2015 at 10:51:42 AM UTC-7, Joe Seph wrote:

 Hey Patrice thanks for your quick reply ,
 I'm trying to use dynamic image feature using PHP app engine according to 
 the official documentation in order to use  this feature I have to use 
 CloudStorageTools . as declared in the following code 

 require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
 use google\appengine\api\cloud_storage\CloudStorageTools;

 $object_image_file = 'gs://my-bucket/myfile.png';
 $object_image_url = CloudStorageTools::getImageServingUrl($object_image_file,
 ['size' = 400, 'crop' = true]);

 header('Location:' .$object_image_url);

 the problem that I can't find CloudStorageTools Class in Google 
 PHP client library .
 I have  a doubt that CloudStorageTools is a part of Google cloud storage 
 and I have to integrate both Google cloud storage and Google app engine 
 together in order to do the above code I could be mistaken .

 Thanks ,

 On Friday, May 29, 2015 at 6:13:34 AM UTC+3, Joe Seph wrote:

 I downloaded google-api-PHP-client from GitHub from this link ( 
 https://github.com/google/google-api-php-client ) and installed it on 
 my localhost then created a bucket on our google project and used storage 
 class from this library to upload files on this bucket . with this class i 
 could upload and get details of all files in any bucket on this project . 
 now I need to use tools called CloudStorageTools and i need to know if it 
 is separated on this library because I can't find this class and I need to 
 know how to install it in details and preferred if there is any example to 
 how install it on a localhost environment and how to install it on server 
 environment using PHP .

 Thanks .



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/a915c03e-b894-49f4-a9ed-8aa6471b5e99%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: Push to deploy discontinued?

2015-06-02 Thread SS
Hi Andrew,
Any updates for us fr our previous reply? We are struck 
and waiting for ur minimum guidance in Jenkins package selection.

Thnks in advance,
Ss

On Friday, May 29, 2015 at 11:27:30 PM UTC+8, SS wrote:


 Dear Andrew,
  Thnks fr ur reply. Atleast, can you plz tell us which jenkins 
 package/plugin we should use fr our existing GCE Debian?
  I gave some links in my previous reply, plz its very hard to 
 select the package with the right PHP plugins.

  HoW will we know which package/plugins to install and which 
 will support the google plugin or which one will support Google Auto deploy 
 function? Totally we are blank. R u telling  
  that only people, who use 'Click to deploy' solution can use 
 Google's above 'Push to Deploy' method? If so, its really hard for those 
 who cannot use that option?
  That said, why Google doesn't support multiple 'Click to 
 deploy' solutions under a same given GCE instance?

  Plz help Andrew. 

  BR,
  Ss
 On Friday, May 29, 2015 at 2:05:16 AM UTC+8, Andrew Jessup wrote:

 Hi SS,

 We've only tested this with the documentation provided at 
 https://cloud.google.com/tools/repo/push-to-deploy

 which describes how to create a new Jenkins instance with the appropriate 
 plugins and tools already installed. You may be able to re-use a different 
 Jenkins instance to work with these instructions, or update one to use the 
 same plugins and tools, but we don't have instructions for doing so at this 
 time.

 As for unit testing instructions for PHP, we will aim to to provide some 
 shortly. We will likely need to update the image described in the 
 documentation to do this however since we don't install PHPUnit by default.

 On Wednesday, 27 May 2015 21:59:43 UTC-7, SS wrote:

 Dear  Andrew,
 Thnks fr ur reply. We ll test it. We already have a 
 GCE(Debian Linux) running w LAMP stack.

 So, should I install the below bitnami jenkins under GCE 
 Debian platform to proceed further, since i cant use a second time 'Click 
 to deploy JENKINS' under the same GCE instance
 https://bitnami.com/stack/jenkins/installer

 Also which plugins should I use for jenkins? Should I use 
 the below one or use a specific PHP plugin fr Jenkins?
 
 https://wiki.jenkins-ci.org/display/JENKINS/Google+Source+Plugin
 http://jenkins-php.org/

 As you mentioned, should I ignore these below steps fr BUILD 
  TEST under PHP deployements:

 



 *PythonIf you have have implemented unit tests for your app, 
 do the following:Select Execute Shell.   
  Enter the following in the Command text field:   
  nosetests --with-xunit --xunit-file=nosetests.xml*

 Is so, how my PHP App will be auto built and tested(PHPUnit fr eg.) 
 like xunit in Python?

 Thnks in advance fr ur help, very eager to setup this jenkin fr our 
 dozens of PHP APP in GAE.Hope u ll help us.
 SS


 On Thursday, May 28, 2015 at 9:02:37 AM UTC+8, Andrew Jessup wrote:

 Hi SS, thanks for your patience. I've done some testing, you should be 
 able to deploy PHP applications using Jenkins by following the 
 instructions 
 at:

 https://cloud.google.com/tools/repo/push-to-deploy

 These don't explicitly say how to deploy a PHP application, but 
 fortunately it's exactly the same as for python apps (except for the 
 Build 
 and Test step, which will not work - but you can also safely ignore).

 We'll get the documentation updated to describe how to deploy PHP 
 applications shortly.

 On Friday, 22 May 2015 21:37:57 UTC-7, SS wrote:

 Thnks Andrew fr ur instant reply.We are waiting eagerly for this news 
 update.

 Thnks,
 Ss

 On Friday, May 22, 2015 at 10:57:34 PM UTC+8, Andrew Jessup wrote:

 Hi SS, we're testing PHP with Jenkins right now. I'll update this 
 thread as soon as we've fixed up the documentation.

 On Fri, May 22, 2015 at 4:31 AM, SS sarathbab...@ssomens.com wrote:

 Dear Brad,
   I just saw this. I have a PHP app deployed in GAE, 
 can I use JENKINS? 
 Does Jenkins supports PHP app AUTO deployment for GAE?

 Currently, I see only, JAVA, PY, GO support in the documentation.
 Can you please clear this?

 Thnks,
 Ss

 On Saturday, March 7, 2015 at 1:23:28 AM UTC+8, Brad Abrams wrote:

 We really want to enable that use case.  The infrastructure we used 
 for that in the past has proven to not meet our reliability 
 requirements, 
 so we are actively building a replacement.  As soon as that 
 replacement is 
 ready, we will re-enable this functionality.

 ..brad



 On Fri, Mar 6, 2015 at 9:18 AM Dustin Hoffmann dustin...@gmail.com 
 wrote:

 Hey Brad, my use case is this: I have a new html/css/js based 
 single page app that I am hosting on Google Cloud. The old pipeline 
 ui is 
 now gone, and I am not a fan of 

[google-appengine] Re: GAE Datastore - Entity in datastore is already updated on @PrePut Datastore Callback

2015-06-02 Thread Ryan (Cloud Platform Support)
The only benefit you would get is the ability to request updates. I work 
closely with the team that would answer the case and they have the same 
abilities that I do. They would need the reproduction as well and depending 
on the route cause either create a PIT with a bug report for you to monitor 
or give you advice on how to get it to work. Ultimately it's your call but 
either way having a repro project would be needed.

Just note there is no guarantee on bug fixes.

On Tuesday, June 2, 2015 at 10:42:13 AM UTC-4, Nejc Tomažič wrote:

 Thanks alot for quick response Ryan!

 If this really sounds like an issue on the Callbacks I would first ask the 
 following question:
 Can we speed things up if we have Gold support package? My corporate 
 account doesn't have permissions to open a ticket at the moment and I tried 
 on SO first and than came up with posting to this group if there would be 
 obvious that I missed sth. in the docs.
 I can request permission or ask colleague to post a ticket if we should 
 take care of an issue through the developers console?

 Anyhow I can prepare simple project if this would help, but this will take 
 some extra time because of the priorities.

 Thanks, Nejc

 On Tuesday, 2 June 2015 15:44:37 UTC+2, Ryan (Cloud Platform Support) 
 wrote:

 Salutations Nejc,

 This sounds like it would be perfect for our PIT Defect Reports 
 https://code.google.com/p/googleappengine/issues/entry. Fill out the 
 report including a sample project that shows the behaviour. Post the thread 
 in here and I will take a look at it.

 Thank you for bringing this to our attention! 

 On Tuesday, June 2, 2015 at 6:49:09 AM UTC-4, Nejc Tomažič wrote:


 Hi guys, 

 as already described on StackOverflow:

 I'm working on entity auditing for a set of entities saved in GAE 
 Datastore using @PrePut and @PostPut datastore callbacks.

 Idea is that old entity is loaded in @PrePut using Objectify and stored 
 to context. Than updated entity is added to context in @PostPut callback. 
 When request is processed I generate a diff in ContainerResponseFilter and 
 save it.

 Issue: if entity is updated non transactional, entity retrieved from 
 datastore in @PrePut callback is already updated and therefore I'm unable 
 to get a diff.
 Is this a bug or it is supposed to work like that (if this is a  case I 
 would highly recommend adding a note to the docs here: 
 https://cloud.google.com/appengine/docs/java/datastore/callbacks)

 Question: Is it possible to retrieve old entity in @PrePut datastore 
 callback if save operation is non transactional? If not, what would be the 
 best alternative?

 All load and save operations are made using Objectify. Versions: 
 Objectify: 5.1.5 Appengine version: 1.9.20

 Question on SO: 
 http://stackoverflow.com/questions/30591289/get-old-entity-in-preput-datastore-callback-for-non-transactional-update

 I would really appreciate help on this one.
 Thanks, 
 KR, Nejc



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/fd90cbb8-3953-4c59-a291-f695f3f6e17f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: Blobstore API upload behavior on error

2015-06-02 Thread Jeff Schnitzer
I don't quite understand. What happens in this circumstance?

1) My application returns the result of createUploadUrl() to the client
(browser).
2) Browser uploads file to that URL.
3) Google tries to call my callback and times out

#3 could be my fault or it could be GAE's; either way, from the perspective
of my code, I don't know anything about whether the upload completed. Did
this just orphan some stored data in GCS?

Jeff

On Tue, Jun 2, 2015 at 6:59 AM, Patrice (Cloud Platform Support) 
pvoutsi...@google.com wrote:

 Hi Jeff,

 It really depends on where exactly your 500 is returned. If it's in the
 callback, I believe that will mean your blob was properly uploaded.

 In your situation, when my application receives a 500, I would check for
 timeouts to be certain this isn't the issue, then I'd check for file
 existence, and delete as needed.

 Cheers


 On Monday, June 1, 2015 at 9:59:53 AM UTC-4, Jeff Schnitzer wrote:

 What is the behavior of the blobstore upload API when the callback
 produces a 500 error? This is not at present documented.

 I would hope that GAE deletes the blob, otherwise it's going to leak. My
 application cannot be trusted to detect the 500 error and delete the blob
 explicitly; after all, the 500 could have been caused by a timeout or
 something else out of my application's execution control.

 FWIW, I'm specifically interested in the behavior of the upload API when
 backed by GCS, although the same question applies to traditional Blobstore.

 Thanks,
 Jeff

  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 To view this discussion on the web visit
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com
 https://groups.google.com/d/msgid/google-appengine/bab09cc1-467d-42c9-898f-49085e7887be%40googlegroups.com?utm_medium=emailutm_source=footer
 .
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CADK-0ugaEDcXvcNTAsx5TH1RY6u8gKmTtDp%3D6R3Lc0EqQtTUaA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.