Closed Bug 1394876 Opened 7 years ago Closed 7 years ago

Please deploy autopush 1.35.1 to STAGE

Categories

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

task
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jrconlin, Unassigned)

References

Details

https://github.com/mozilla-services/autopush/releases/tag/1.35.1

# Bug Fixes

* change "enable_simplepush" flag to "disable_simplepush" (f2cdbf0e, closes [#994](https://github.com/mozilla-services/autopush#994))
* Add missing metric for notification encoding (74fbf58d, closes [#992](https://github.com/mozilla-services/autopush/issues/992))
this release has been deployed to STAGE

-----------------------------------------------
URL CHECKS (STAGE)
-----------------------------------------------

curl -s 'https://updates-autopush.stage.mozaws.net/health' | python -mjson.tool
{
    "clients": 0,
    "stage.autopush.routerv2": {
        "status": "OK"
    },
    "stage.autopush.storage": {
        "status": "OK"
    },
    "status": "OK",
    "version": "1.35.1"
}


curl -s 'https://updates-autopush.stage.mozaws.net/status' | python -mjson.tool
{
    "status": "OK",
    "version": "1.35.1"
}
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
-----------------------------------------------
SIMPLEPUSH TEST (STAGE)
-----------------------------------------------

NOTE:
simplepush will be disabled with this production release.

simplepush has been verified on 2 stage deploys of this release:

[1] with simplepush on - OK
[2] with simplepush disabled - OK

CONFIG SETTINGS: 

the following config settings were used:
"disable_simplepush" to the .autopush_shared.ini file.

test tool:  https://github.com/jrconlin/simplepush_test


.............................
SIMPLEPUSH - ENABLED
.............................

rpappalardo@rpappalardo-23758:~/git/simplepush_test$/bin/python ./smoke_test.py 
--- request header ---
GET / HTTP/1.1

Upgrade: websocket

Connection: Upgrade

Host: autopush.stage.mozaws.net

Origin: http://autopush.stage.mozaws.net

Sec-WebSocket-Key: t0FsEcXNPV/egbVQwnGoFw==

Sec-WebSocket-Version: 13




-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: AutobahnPython/17.6.2
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: DQZkIfjvxFffRWe/2wcnwNzJuoU=
-----------------------
initialize
>>> Sending 'Hello'
send: '\x81\xda\x8e\xea\xaaU\xf5\xc8\xdf4\xe7\x8e\x88o\xae\xc8\xce0\xed\x8b\xcc7\xef\x8e\x87e\xbe\xda\x9ax\xbe\xda\x9ae\xa3\xda\x9ae\xbe\xc7\x9ae\xbe\xda\x9ae\xbe\xda\x9ae\xbe\xda\x88y\xae\xc8\xc70\xfd\x99\xcb2\xeb\xbe\xd3%\xeb\xc8\x90u\xac\x82\xcf9\xe2\x85\x88y\xae\xc8\xc9=\xef\x84\xc40\xe2\xa3\xee&\xac\xd0\x8a\x0e\xd3\x97'
<<< Recv'd:: hello>> {"messageType": "hello", "uaid": "6c57c6cdb1c34867b45717851cfb1245", "status": 200, "ping": 60.0, "env": "stage"}
<<< {u'env': u'stage',
 u'messageType': u'hello',
 u'ping': 60.0,
 u'status': 200,
 u'uaid': u'6c57c6cdb1c34867b45717851cfb1245'}
send: "\x81\xd0\x17\xf7\xeeLl\xd5\x8d$v\x99\x80){\xbe\xaan-\xd7\xcc(r\x96\x8a.r\x92\x88a'\xc7\xde|:\xc7\xde|'\xda\xde|'\xc7\xc3|'\xc7\xde|'\xc7\xde|'\xc7\xden;\xd7\xcc!r\x84\x9d-p\x92\xba5g\x92\xccv7\xd5\x9c)p\x9e\x9d8r\x85\xcc1"
<<< Recv'd:: register>> {"messageType": "register", "channelID": "deadbeef-0000-0000-0000-000000000000", "pushEndpoint": "https://updates-autopush.stage.mozaws.net/spush/v1/gAAAAABZpcJNCzUx1hGEK5-lhoboBoB7vi21wQFapiBl0KPejys5MBNg4IHm1U26_tORPUvCuQ_gEa7Hd_EVgzx_hRi_7OPgFXJdAID6PxQorX5bSPPmkP-86IlcuuqWG-Z5O6oVUQdY", "status": 200}
<<< {u'channelID': u'deadbeef-0000-0000-0000-000000000000',
 u'messageType': u'register',
 u'pushEndpoint': u'https://updates-autopush.stage.mozaws.net/spush/v1/gAAAAABZpcJNCzUx1hGEK5-lhoboBoB7vi21wQFapiBl0KPejys5MBNg4IHm1U26_tORPUvCuQ_gEa7Hd_EVgzx_hRi_7OPgFXJdAID6PxQorX5bSPPmkP-86IlcuuqWG-Z5O6oVUQdY',
 u'status': 200}
>>> Sending REST update
send: u'PUT /spush/v1/gAAAAABZpcJNCzUx1hGEK5-lhoboBoB7vi21wQFapiBl0KPejys5MBNg4IHm1U26_tORPUvCuQ_gEa7Hd_EVgzx_hRi_7OPgFXJdAID6PxQorX5bSPPmkP-86IlcuuqWG-Z5O6oVUQdY HTTP/1.1\r\nHost: updates-autopush.stage.mozaws.net\r\nAccept-Encoding: identity\r\nContent-Length: 8\r\n\r\nversion='
#>> 
reply: 'HTTP/1.1 200 OK\r\n'
header: Access-Control-Allow-Headers: 

header: Access-Control-Allow-Methods: PUT

header: Access-Control-Allow-Origin: *

header: Access-Control-Expose-Headers: 

header: Content-Type: text/html; charset=UTF-8

header: Date: Tue, 29 Aug 2017 19:36:46 GMT

header: Server: nginx

header: Content-Length: 9

header: Connection: keep-alive

#<< 'Delivered'
<<< Recv'd:: update>> {"messageType": "notification", "updates": [{"channelID": "deadbeef-0000-0000-0000-000000000000", "version": 1504035406, "data": null}]}
<<< {u'messageType': u'notification',
 u'updates': [{u'channelID': u'deadbeef-0000-0000-0000-000000000000',
               u'data': None,
               u'version': 1504035406}]}
### Update pass, shutting down....
>>> Sending Unreg
send: '\x81\xd2\x04\xb9!\xaf\x7f\x9bB\xc7e\xd7O\xcah\xf0e\x8d>\x99\x03\xcba\xd8E\xcda\xdcG\x824\x89\x11\x9f)\x89\x11\x9f4\x94\x11\x9f4\x89\x0c\x9f4\x89\x11\x9f4\x89\x11\x9f4\x89\x11\x8d(\x99\x03\xc2a\xcaR\xcec\xdcu\xd6t\xdc\x03\x95$\x9bT\xc1v\xdcF\xc6w\xcdD\xdd&\xc4'
>>> send ack{"updates": [{"channelID": "deadbeef-0000-0000-0000-000000000000", "data": null, "version": 1504035406}], "messageType": "ack"}
send: '\x81\xfe\x00\x7f\x86\tj\x9f\xfd+\x1f\xef\xe2h\x1e\xfa\xf5+P\xbf\xddrH\xfc\xeeh\x04\xf1\xe3e#\xdb\xa43J\xbd\xe2l\x0b\xfb\xe4l\x0f\xf9\xab9Z\xaf\xb6$Z\xaf\xb69G\xaf\xb69Z\xb2\xb69Z\xaf\xb69Z\xaf\xb69Z\xaf\xa4%J\xbd\xe2h\x1e\xfe\xa43J\xf1\xf3e\x06\xb3\xa6+\x1c\xfa\xf4z\x03\xf0\xe8+P\xbf\xb7<Z\xab\xb6:_\xab\xb6?\x17\xc2\xaa)H\xf2\xe3z\x19\xfe\xe1l>\xe6\xf6lH\xa5\xa6+\x0b\xfc\xed+\x17'
<<< Recv'd:: shutdown>> {"channelID": "deadbeef-0000-0000-0000-000000000000", "messageType": "unregister", "status": 200}
<<< {u'channelID': u'deadbeef-0000-0000-0000-000000000000',
 u'messageType': u'unregister',
 u'status': 200}
### SUCCESS!!! Exiting...
send: '\x88\x82\x98+\x9d\xfd\x9b\xc3'
## Closed
leaving
==============
Smoke test was successful
==============



.............................
SIMPLEPUSH - DISABLED
.............................


--- request header ---
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: autopush.stage.mozaws.net
Origin: http://autopush.stage.mozaws.net
Sec-WebSocket-Key: QveIfrAdoPlStJXMfoopUQ==
Sec-WebSocket-Version: 13


-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: AutobahnPython/17.6.2
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: EuPhCg1SrFZYpoBoyw1+bWoBRB0=
-----------------------
initialize
>>> Sending 'Hello'
send: '\x81\xda\x94\x1a\xbf\x9f\xef8\xca\xfe\xfd~\x9d\xa5\xb48\xdb\xfa\xf7{\xd9\xfd\xf5~\x92\xaf\xa4*\x8f\xb2\xa4*\x8f\xaf\xb9*\x8f\xaf\xa47\x8f\xaf\xa4*\x8f\xaf\xa4*\x8f\xaf\xa4*\x9d\xb3\xb48\xd2\xfa\xe7i\xde\xf8\xf1N\xc6\xef\xf18\x85\xbf\xb6r\xda\xf3\xf8u\x9d\xb3\xb48\xdc\xf7\xf5t\xd1\xfa\xf8S\xfb\xec\xb6 \x9f\xc4\xc9g'
<<< Recv'd:: hello>> {"messageType": "hello", "reason": "Simplepush not supported", "status": 401, "more_info": "http://autopush.readthedocs.io/en/latest/api/websocket.html#private-http-endpoint"}
<<< {u'messageType': u'hello',
 u'more_info': u'http://autopush.readthedocs.io/en/latest/api/websocket.html#private-http-endpoint',
 u'reason': u'Simplepush not supported',
 u'status': 401}

## Error:: Hello failed check
send: '\x88\x82^f\xf9\xcd]\x8e'
## Closed
URL checks pass

(venv) ╭─chartjes@grumpiermbp ~/mozilla-services/autopush-deployment-tests  ‹ch-port-shell-scripts*›
╰─$ py.test -v --api-version=1.35.1 --env=stage tests/test_urls.py                                                               1 ↵
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 2 items

tests/test_urls.py::test_health PASSED
tests/test_urls.py::test_status PASSED
Sentry logcheck error successfully triggered and resolved

(venv) ╭─chartjes@grumpiermbp ~/mozilla-services/autopush-deployment-tests  ‹ch-port-shell-scripts*›
╰─$ py.test -v --api-version=1.35.1 --env=stage tests/test_sentry.py
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 1 items

tests/test_sentry.py::test_generate_logcheck_error PASSED


{'ami_id': 'ami-1a434d61', 'authorization': [Filtered], 'message_ttl': None, 'python_version': '2.7.13 (c925e7381036, Jun 05 2017, 21:20:51)
[PyPy 5.8.0 with GCC 6.2.0 20160901]', 'remote_ip': '108.160.83.49, 172.31.7.56', 'request_id': '4c0dbf97-78da-4724-a7fb-e055bfeb2424', 'uri': '/v1/err/crit', 'user_agent': 'python-requests/2.18.1'}
----------------------------
E2E-TESTS: VAPID (+Android)
----------------------------

Test succeeds on STAGE.

Since this delay isn't caused by autopush, we'll proceed with deploy.
 

Additional E2E-test which includes VAPID, encryption:
https://jrconlin.github.io/Webpush_QA/

Android (Nightly, Release) -- OK

NOTE:

This page can also be used to test Android, however, 
on STAGE / PROD gcm path + senderID must be appended (see below).
oremj> the sender ids are 965234145045 and 829133274407 (for both STAGE & PROD)

 
STAGE:
dom.push.serverURL = https://updates-autopush.stage.mozaws.net/v1/gcm/829133274407

PROD:
dom.push.serverURL = https://updates.push.services.mozilla.com/v1/gcm/829133274407


unlike paths for desktop (uses sockets):

STAGE:
dom.push.serverURL = wss://autopush.stage.mozaws.net/

PROD:
dom.push.serverURL = wss://push.services.mozilla.com/
----------------------------
E2E-TESTS
----------------------------

 config to:
dom.push.serverURL = wss://autopush.stage.mozaws.net

DESKTOP E2E PUSH TEST

Install Docker, grab the image firefoxtesteng/autopush-e2e-test and then start the container using the command:

docker run -p 8201:8201 firefoxtesteng/autopush-e2e-test

Using a fresh profile for Firefox, go to to http://localhost:8201

* go to about:config and set dom.push.serverURL = wss://autopush.stage.mozaws.net

* with 'service-worker.js' selected click on 'Register Service Worker' and see the messages:

registering service worker
registered service worker. scope: http://localhost:8201/

* alter the 'Title' and 'Body' fields in the Notifications Property form to unique values
* click on 'pop Notification' and verify the notification contains your expected Title and Body
* click on 'close Notification' and verify the notification is closed

Passes on STAGE
--------------------------------
E2E TEST: TOPICS
--------------------------------

Additional E2E-test which includes testing of notification bundling for stored messages
https://github.com/jrconlin/topics - follow README

Desktop (Release).  -- OK!
-------------------------------------
iOS: SYNC + FxA + PUSH TEST
-------------------------------------

SETUP 

- Get account for buddybuild (from: njpark)
- Download “TestFlight” app
- Receive invite to use, enter code
- Get latest Beta Build (“click Update, if needed”)

- Create new FxA accounts (agains PROD FxA server)
   https://accounts.stage.mozaws.net
- Login to desktop STAGE FxA account with a fresh firefox profile
- Save some bookmarks and create some navigation history

TEST STEPS (STR)

- Go to settings in new download of Firefox iOS app
- Login to new FxA (PROD) account
- wait or force sync activity
- Observe bookmarks and history appear in Firefox browser

RESULTS

- bookmark sync - OK
- history sync - OK
- two-way sync - OK
QA verifies this release to STAGE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.