Closed Bug 1053380 Opened 10 years ago Closed 10 years ago

Please deploy Loop-Client 0.4.0 code to Stage

Categories

(Cloud Services :: Operations: Deployment Requests - DEPRECATED, task)

task
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: standard8, Unassigned)

References

Details

(Whiteboard: [qa+])

We'd like to deploy the loop-client 0.4.0 release to stage. If possible we'd like to do the stage deploy on Thursday, with production soon after (Friday?) - we can have a separate bug for production.

Currently I'm waiting for bug 1053181 to land in the right place, and then I can tag the release.
Blocks: 1053389
Prod bug has been created...
This is now released:

https://github.com/mozilla/loop-client/releases/tag/0.4.0
Assignee: standard8 → nobody
:standard8 did the config.js requirements change in any way? ie: new data in it, different keys, etc? or is it exactly the same as 0.3.2?
Flags: needinfo?(standard8)
The config.js requirements are the same as 0.3.2.
Flags: needinfo?(standard8)
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
https://call.stage.mozaws.net/config.js
returns
var loop = loop || {};
loop.config = {serverUrl: 'https://loop.stage.mozaws.net'};

I can do a very quick verification of the deployment Thu morning.
Then Verify so we can focus on Prod..
IT feels to me that we are missing one configuration variable there.
Should be:

var loop = loop || {};
loop.config = loop.config || {};
loop.config.serverUrl          = 'https://loop.stage.mozaws.net';
loop.config.pendingCallTimeout = 20000;
Also the release file wasn't used for the deploy.
https://call.stage.mozaws.net/VERSION.txt is missing but is present in the release file:
https://github.com/mozilla/loop-client/releases/download/0.4.0/loop-client-0.4.0.tar.gz
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
:natim

- is the loop.config.pendingCallTimeout required, or should we just stick with the default? (is there a default?) it is not a big deal to add it in either way

- does github makes that VERSION.txt file? If it is not in the content/ directory in the repo it won't be served since that is where we point nginx.
Flags: needinfo?(rhubscher)
I am looking at our other deployments to production and I don't think we use ver.txt anywhere (maybe Persona?).

Is this something we really want to do in Stage or in Prod?

Examples from FxA world:
Prod:
curl https://api.accounts.firefox.com/; echo
curl https://accounts.firefox.com/ver.json; echo 

Stage:
curl https://api-accounts.stage.mozaws.net/; echo
curl https://accounts.stage.mozaws.net/ver.json; echo

I remember having very long discussions during Persona days and early in FxA about why we should or should not expose a ver.txt
(In reply to Benson Wong [:mostlygeek] from comment #8)
> :natim
> 
> - is the loop.config.pendingCallTimeout required, or should we just stick
> with the default? (is there a default?) it is not a big deal to add it in
> either way

There's a default value: http://mxr.mozilla.org/comm-central/source/mozilla/browser/components/loop/content/shared/js/models.js#75

So we should be ok either way, might as well add it just to be safe.

> - does github makes that VERSION.txt file? If it is not in the content/
> directory in the repo it won't be served since that is where we point nginx.

Currently there's a `make version` target that's available. We assumed that you were obtaining from the zip/tar files.

I'm fine with not having the version.txt file for now. We know what version is on these servers, and we haven't had it up until now.

Can you file a bug on what you would prefer to have and how it should be generated? We can then sort out the details there.
Flags: needinfo?(rhubscher)
Sounds like VERSION.txt is more for other people than for us (svcops). 

I can add `make version` as part of the RPM build process so the VERSION.txt file is part of the RPM for the next release.
:mostlygeek that sounds reasonable to me.
This is lagging behind Loop-Server 0.10.0 which went out last week.
What's the quickest change/fix/config to get this to Stage and Prod?
Benson yes please add the make version as part of the RPM build process.
Asking for input from :mostlygeek or :bobm whomever wants to continue with these deployments...
Flags: needinfo?(bwong)
Flags: needinfo?(bobm)
Flags: needinfo?(bwong)
(In reply to James Bonacci [:jbonacci] from comment #15)
> Asking for input from :mostlygeek or :bobm whomever wants to continue with
> these deployments...

:mostlygeek added the VERSION.txt as part of the build process.  The current install on loop-server in Stage has a VERSION.txt file.  Closing this ticket.  Please re-open if needed.
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Flags: needinfo?(bobm)
Resolution: --- → FIXED
I found VERSION.txt on loop-client Stage:
./data/loop-client/VERSION.txt
8a1240f update latest merged cset file

(a version number in that file would have been really helpful)

And, as an aside, I found the file on loop-server Stage:
VERSION.txt
./data/loop-server/VERSION.txt
7f61f20 v0.10.0

note that one has the actual version in it
Interesting:
/media/ephemeral0/nginx/logs/loop-client.error*
There were two instances of the following error:
2014/08/14 13:47:03 [error] 2188#0: *1914 open() "/data/loop-client/content/VERSION.txt" failed (2: No such file or directory), client: 10.144.85.26, server: , request: "GET /VERSION.txt HTTP/1.1", host: "call.stage.mozaws.net

So, the VERSION.txt file is here:
./data/loop-client/VERSION.txt
not here
/data/loop-client/content/VERSION.txt


These work in the browser:
https://call.stage.mozaws.net
and
https://call.stage.mozaws.net/config.js


This does not:
https://call.stage.mozaws.net/VERSION.txt
This generates a 404 and an entry in the Nginx error log!

So, perhaps the code is looking in the wrong place.

And, I wonder if we will see this in Prod as well.

Holding here on Stage until we can get this debugged...
Yes it should be on /data/loop-client/content/VERSION.txt
OK, so this needs to be fixed here and probably for Prod.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Okay will re-deploy.
(In reply to Bob Micheletto [:bobm] from comment #21)
> Okay will re-deploy.

Deployment of loop-client 0.4.0-2 complete.
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
No longer blocks: 1046393
Should be something like:

    0.4.0-6-g3f68be2
    3f68be226fed0634764222309a389ac2133bba03 Fri, 22 Aug 2014 00:32:14 +0200
Yep, you are right
https://call.stage.mozaws.net/VERSION.txt
returns what appears to be an empty page

Nothing useful in the web console...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Updated RPM build script. Deployed 0.4.0-3 and VERSION.txt now exists: 

https://call.stage.mozaws.net/VERSION.txt
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
:mostlygeek so then does this need to be merged before we move forward?
https://github.com/mozilla-services/svcops/pull/230
:jbonacci nope. That's just the changes to the build script. I already built / deployed the RPM
OK. I think we are finally good to go.
Verified one new instance running the following code:
loop-client-svcops 0.4.0-3 x86_64 5543004
puppet-config-loop 20140729184904-1 x86_64 13881


The VERSION.txt file is now correctly located here:
/data/loop-client/content/VERSION.txt


Processes, files, and logs all look good.

https://call.stage.mozaws.net
returns
Welcome to the Loop web client.


https://call.stage.mozaws.net/config.js
returns
var loop = loop || {};
loop.config = {serverUrl: 'https://loop.stage.mozaws.net'};


and
https://call.stage.mozaws.net/VERSION.txt
correctly returns
0.4.0
8a1240f0a0f8d85c77379dae0556feca71aa38d2 Wed, 13 Aug 2014 20:00:10 +0000

And, in the logs, I see this:
1409002194.401 "24.7.94.153" "GET /VERSION.txt HTTP/1.1" 200 79 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0" 0.000 "-"
Status: RESOLVED → VERIFIED
Does this need client-side testing?
(In reply to Anthony Hughes, QA Mentor (:ashughes) from comment #30)
> Does this need client-side testing?

The best you can test is that a page gets displayed when you click a url for stage. A call won't go through as staging set-up is configured for load testing and gets fake tokbox tokens.

If you want to test, you can set your "loop.server" preference to "https://loop.stage.mozaws.net".
Thanks Mark,

James has advised me that Production is best for client-side testing, so I'll wait until this gets pushed, at which point I'll do some smoketesting to confirm this hasn't regressed.
:standard8
:ashughes
Yea, it's just not really useful to test Loop-Client Stage. Pointing to Stage doesn't buy you anything.
I will be joining you in some Loop-Client testing once we go to Prod.
You need to log in before you can comment on or make changes to this bug.