Explore DevOps the Hard Way Azure: Hands-on learning for real-world skills.
+ Start Learning +{{ data }}
- - diff --git a/Docker/app/templates/success.html b/Docker/app/templates/success.html deleted file mode 100644 index 621d24c..0000000 --- a/Docker/app/templates/success.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Docker/app/test/fixtures/GitHub_emojis.json b/Docker/app/test/fixtures/GitHub_emojis.json deleted file mode 100644 index 429fd7a..0000000 --- a/Docker/app/test/fixtures/GitHub_emojis.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/global_preserve_exact_body_bytes.json b/Docker/app/test/fixtures/global_preserve_exact_body_bytes.json deleted file mode 100644 index f58e137..0000000 --- a/Docker/app/test/fixtures/global_preserve_exact_body_bytes.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"base64_string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://httpbin.org/get"}, "response": {"body": {"base64_string": "ewogICJhcmdzIjoge30sIAogICJoZWFkZXJzIjogewogICAgIkFjY2VwdCI6ICIqLyoiLCAKICAgICJBY2NlcHQtRW5jb2RpbmciOiAiZ3ppcCwgZGVmbGF0ZSIsIAogICAgIkNvbm5lY3Rpb24iOiAiY2xvc2UiLCAKICAgICJIb3N0IjogImh0dHBiaW4ub3JnIiwgCiAgICAiVXNlci1BZ2VudCI6ICJweXRob24tcmVxdWVzdHMvMi4zLjAgQ1B5dGhvbi8yLjcuNSBEYXJ3aW4vMTMuMi4wIiwgCiAgICAiWC1SZXF1ZXN0LUlkIjogIjE1ODlmMjgzLWRkYjMtNGU0YS1hYTMzLWVjM2I0NGVlY2JjMiIKICB9LCAKICAib3JpZ2luIjogIjguMjYuMTU3LjEyOCIsIAogICJ1cmwiOiAiaHR0cHM6Ly9odHRwYmluLm9yZy9nZXQiCn0=", "encoding": null}, "headers": {"content-length": ["353"], "server": ["gunicorn/18.0"], "connection": ["keep-alive"], "access-control-allow-credentials": ["true"], "date": ["Fri, 22 Aug 2014 18:11:35 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://httpbin.org/get"}, "recorded_at": "2014-08-22T18:11:35"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/history_failure.json b/Docker/app/test/fixtures/history_failure.json deleted file mode 100644 index df181de..0000000 --- a/Docker/app/test/fixtures/history_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer NOT_A_CODE"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.4.0"]}, "method": "GET", "uri": "https://api.uber.com/v1.1/history?limit=5&offset=0"}, "response": {"body": {"string": "{\"message\":\"Invalid OAuth 2.0 credentials provided.\",\"code\":\"unauthorized\"}", "encoding": null}, "headers": {"content-length": ["75"], "server": ["nginx"], "connection": ["keep-alive"], "date": ["Mon, 06 Oct 2014 16:58:57 GMT"], "x-uber-app": ["uberex-nonsandbox"], "content-type": ["application/json"]}, "status": {"message": "Unauthorized", "code": 401}, "url": "https://api.uber.com/v1.1/history?limit=5&offset=0"}, "recorded_at": "2014-10-06T16:58:57"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/history_success.json b/Docker/app/test/fixtures/history_success.json deleted file mode 100644 index f0dd74b..0000000 --- a/Docker/app/test/fixtures/history_success.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer MLth87eHvSAaCQ1vn7jTd0xA9Kapo5"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.4.0"]}, "method": "GET", "uri": "https://api.uber.com/v1.1/history?limit=5&offset=0"}, "response": {"body": {"base64_string": "H4sIAAAAAAAAA62TTW7bMBBG78K1aHB+yOH4KkURUBSJGojtxJYWReC7d5SFi9gGaqDRjuLokW++0Yerx+Uwu20UHNyx93OzRRjc626/W18P7tfuPB9Pv932x4c7z2Vezm5rX+3fXtvcJje4yQrKoTa3BdhIzFGFMw9uWXaTlbYWShtz9TFS8Jwq+kKZfW9x7KI1tKpGMcZpfpl3+5XDgFbNRIN7Ox2npc4vn6wC9lRjVcFPFvlsdR57nSahEDisN2qH6QuJE5ndqb0v7XxzBgFdhn+L4QZDRFXQv2LcU9fCwVcu3TPW4jV08hFUEiXRVPIjMYKwUr5BjDCG9FCMAos+IYYb0IyUrd3XwEJhqG0KPvVaPRcZvSaiNbreKcaecW3ybWDMwGiU//cyUmbr0H1gtkPIT3jxBpk0RYGrFkdoHdEGr49sMoheI3dfa5NWiGxm4YEWqVnJd2gZScFI91q2AyRPaOEmZEg5iOjVq/SeRonox1p0DSn4cQT10ssIQkUCyAMv1Bjo1mviMpbSxHeekmcwqoINgRifmh0dCxvr6/9lJEl2n3svtN5lvvy8/AHuOYdTZwQAAA==", "encoding": null}, "headers": {"x-rate-limit-remaining": ["999"], "content-language": ["en"], "content-encoding": ["gzip"], "transfer-encoding": ["chunked"], "strict-transport-security": ["max-age=2592000"], "server": ["nginx"], "connection": ["keep-alive"], "x-rate-limit-reset": ["1412618400"], "x-uber-app": ["uberex-nonsandbox"], "date": ["Mon, 06 Oct 2014 17:12:33 GMT"], "x-rate-limit-limit": ["1000"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.uber.com/v1.1/history?limit=5&offset=0"}, "recorded_at": "2014-10-06T17:12:33"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/me_failure.json b/Docker/app/test/fixtures/me_failure.json deleted file mode 100644 index 7abfbff..0000000 --- a/Docker/app/test/fixtures/me_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer NOT_A_CODE"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/me"}, "response": {"body": {"string": "{\"message\":\"Invalid OAuth 2.0 credentials provided.\",\"code\":\"unauthorized\"}", "encoding": null}, "headers": {"content-length": ["75"], "server": ["nginx"], "connection": ["keep-alive"], "date": ["Fri, 22 Aug 2014 19:22:26 GMT"], "x-uber-app": ["uberex-nonsandbox"], "content-type": ["application/json"]}, "status": {"message": "Unauthorized", "code": 401}, "url": "https://api.uber.com/v1/me"}, "recorded_at": "2014-08-22T19:22:25"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/me_success.json b/Docker/app/test/fixtures/me_success.json deleted file mode 100644 index d8cb028..0000000 --- a/Docker/app/test/fixtures/me_success.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer vX0ye7xeg42vNcBtWv59k9K0WjB5qH"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/me"}, "response": {"body": {"base64_string": "H4sIAAAAAAAAA0WMyw7CIBRE/4W1tLWlULpy78YPaNJcHhXsA0Ihxhj/XRoXLuecmXkjb2VMQaMemRj93g/lUKrzs/bOhiga2HkhF5fUFNwWi03HoawYkTXUDZ86RqhQZ8K64uH1HZ3QZMMexw3W4/EKaTewZLzAn94g2Nlk6INb3SidOrrKvAjPUK9gl5zn3/aShA6FdGtWKVmVTcsqAYwTTFnbYQICMFSa4pZIKRinilOOPl8CtsPG2gAAAA==", "encoding": null}, "headers": {"x-rate-limit-remaining": ["999"], "content-language": ["en"], "content-encoding": ["gzip"], "transfer-encoding": ["chunked"], "strict-transport-security": ["max-age=2592000"], "server": ["nginx"], "connection": ["keep-alive"], "x-rate-limit-reset": ["1408737600"], "x-uber-app": ["uberex-nonsandbox"], "date": ["Fri, 22 Aug 2014 19:22:26 GMT"], "x-rate-limit-limit": ["1000"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.uber.com/v1/me"}, "recorded_at": "2014-08-22T19:22:25"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/preserve_exact_bytes.json b/Docker/app/test/fixtures/preserve_exact_bytes.json deleted file mode 100644 index 80b274e..0000000 --- a/Docker/app/test/fixtures/preserve_exact_bytes.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"base64_string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://httpbin.org/get"}, "response": {"body": {"base64_string": "ewogICJhcmdzIjoge30sIAogICJoZWFkZXJzIjogewogICAgIkFjY2VwdCI6ICIqLyoiLCAKICAgICJBY2NlcHQtRW5jb2RpbmciOiAiZ3ppcCwgZGVmbGF0ZSIsIAogICAgIkNvbm5lY3Rpb24iOiAiY2xvc2UiLCAKICAgICJIb3N0IjogImh0dHBiaW4ub3JnIiwgCiAgICAiVXNlci1BZ2VudCI6ICJweXRob24tcmVxdWVzdHMvMi4zLjAgQ1B5dGhvbi8yLjcuNSBEYXJ3aW4vMTMuMi4wIiwgCiAgICAiWC1SZXF1ZXN0LUlkIjogImFkYmJkMTUzLTk1MjYtNDk4Ni04NTI1LTZjNWUxMGNkNDA5ZSIKICB9LCAKICAib3JpZ2luIjogIjguMjYuMTU3LjEyOCIsIAogICJ1cmwiOiAiaHR0cHM6Ly9odHRwYmluLm9yZy9nZXQiCn0=", "encoding": null}, "headers": {"content-length": ["353"], "server": ["gunicorn/18.0"], "connection": ["keep-alive"], "access-control-allow-credentials": ["true"], "date": ["Fri, 22 Aug 2014 18:11:35 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://httpbin.org/get"}, "recorded_at": "2014-08-22T18:11:34"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/price_estimates_failure.json b/Docker/app/test/fixtures/price_estimates_failure.json deleted file mode 100644 index 6092eff..0000000 --- a/Docker/app/test/fixtures/price_estimates_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer NOT_A_CODE"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/estimates/price?start_longitude=-122.402367&end_longitude=-122.416743&start_latitude=37.781955&end_latitude=37.744352"}, "response": {"body": {"string": "{\"message\":\"No authentication provided.\",\"code\":\"unauthorized\"}", "encoding": null}, "headers": {"content-length": ["63"], "server": ["nginx"], "connection": ["keep-alive"], "date": ["Fri, 01 Aug 2014 20:19:37 GMT"], "x-uber-app": ["uberex-nonsandbox"], "content-type": ["application/json"]}, "status": {"message": "Unauthorized", "code": 401}, "url": "https://api.uber.com/v1/estimates/price?start_longitude=-122.402367&end_longitude=-122.416743&start_latitude=37.781955&end_latitude=37.744352"}, "recorded_at": "2014-08-01T20:19:37"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/price_estimates_success.json b/Docker/app/test/fixtures/price_estimates_success.json deleted file mode 100644 index 680fe82..0000000 --- a/Docker/app/test/fixtures/price_estimates_success.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer 42Kq726Vv6lzJ0TMhXWsgUulVjRsxh"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/estimates/price?start_longitude=-122.402367&end_longitude=-122.416743&start_latitude=37.781955&end_latitude=37.744352"}, "response": {"body": {"base64_string": "H4sIAAAAAAAAA5WTXU+DMBSG/8uJl0AokOG4m3pjnFcTs8SYhrXN1lg+UlrdXPbfbYcmhOLQ29P3nL7P+ThCIzlhLWQvRxA1KQT/ZBRT3jaiOOCqKBlkkG+YvFkubh/AM6IPzFrFy0LZpygJwtCEL2Q0sqaaKMyp0WtTaiMK8mZyWi23DJdaKN4IziRkKAg96FW/ihI/tuV3fLvrfxuH3bdES8kqcsCkpmenqzs4eRMoq/zZBYlnv4J0egej1e9/g4hnfpKMQCTfvfs3hG3i02J971BUWghnFj21w6CKPR+F6Cr1RvHIFJOMuhidcsBggxfnYE2tHf8wD8LURAfb9CN27O9HvTtbNPdR5BoHhAKETHzgHfKpJTr7WZrMwTGgNLi2BcfsW7nrX5hoO30GKPWjMYIIBant1yjB6+kLI8sf5N4DAAA=", "encoding": null}, "headers": {"x-rate-limit-remaining": ["4993"], "content-language": ["en"], "content-encoding": ["gzip"], "transfer-encoding": ["chunked"], "strict-transport-security": ["max-age=2592000"], "server": ["nginx"], "connection": ["keep-alive"], "x-rate-limit-reset": ["1406926800"], "x-uber-app": ["uberex-nonsandbox"], "date": ["Fri, 01 Aug 2014 20:19:37 GMT"], "x-rate-limit-limit": ["5000"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.uber.com/v1/estimates/price?start_longitude=-122.402367&end_longitude=-122.416743&start_latitude=37.781955&end_latitude=37.744352"}, "recorded_at": "2014-08-01T20:19:38"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/products_failure.json b/Docker/app/test/fixtures/products_failure.json deleted file mode 100644 index 3d6b9bf..0000000 --- a/Docker/app/test/fixtures/products_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer NOT_A_CODE"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/products?latitude=37.781955&longitude=-122.402367"}, "response": {"body": {"string": "{\"message\":\"No authentication provided.\",\"code\":\"unauthorized\"}", "encoding": null}, "headers": {"content-length": ["63"], "server": ["nginx"], "connection": ["keep-alive"], "date": ["Fri, 01 Aug 2014 20:19:37 GMT"], "x-uber-app": ["uberex-nonsandbox"], "content-type": ["application/json"]}, "status": {"message": "Unauthorized", "code": 401}, "url": "https://api.uber.com/v1/products?latitude=37.781955&longitude=-122.402367"}, "recorded_at": "2014-08-01T20:19:38"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/products_success.json b/Docker/app/test/fixtures/products_success.json deleted file mode 100644 index cf80a63..0000000 --- a/Docker/app/test/fixtures/products_success.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer 42Kq726Vv6lzJ0TMhXWsgUulVjRsxh"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/products?latitude=37.781955&longitude=-122.402367"}, "response": {"body": {"base64_string": "H4sIAAAAAAAAA7XSQU/CMBQH8K/S9AxbVOJhN/Rk5KTDkDhDHl23NXZ9TfsGDMJ3t0NjjBuc4NJD//m//PLy9tw6zBtBnifvey7AglDU8mQy4qqGUvKEV0Q2yeIszm/grph4C7uds5NIaGzywqGhyEjKYgFuTK2VPotrNPj9jlcaxGdkTclHPFfeamiXBupu8Hwl3cNs+vgcoh/GUuUhaEJw7HUd6YVTlhSakKSVZOhUqQxo1vX5YfSXfX8ptm/Wp9Gv87chcuj0wC+INSvQMbmWrkUj/4EvtmeCrRoWd9tMp4unIXLX6pnT8Mk2iipsiFHYeAXe66vJO9/2NH0x5N720cGpcTMW6Omql3Hk6tsz4NmgWPfIv1ynwpUfr0SDKyUrHTbW88PH4Qugn78toAMAAA==", "encoding": null}, "headers": {"x-rate-limit-remaining": ["4992"], "content-language": ["en"], "content-encoding": ["gzip"], "transfer-encoding": ["chunked"], "strict-transport-security": ["max-age=2592000"], "server": ["nginx"], "connection": ["keep-alive"], "x-rate-limit-reset": ["1406926800"], "x-uber-app": ["uberex-nonsandbox"], "date": ["Fri, 01 Aug 2014 20:19:37 GMT"], "x-rate-limit-limit": ["5000"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.uber.com/v1/products?latitude=37.781955&longitude=-122.402367"}, "recorded_at": "2014-08-01T20:19:38"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/submit_failure.json b/Docker/app/test/fixtures/submit_failure.json deleted file mode 100644 index 61484cf..0000000 --- a/Docker/app/test/fixtures/submit_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "code=not_a_code&redirect_uri=http%3A%2F%2Flocalhost%3ANone%2Fsubmit&grant_type=authorization_code", "encoding": "utf-8"}, "headers": {"Content-Length": ["97"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.4.0"], "Content-Type": ["application/x-www-form-urlencoded"], "Authorization": ["Basic MW14R3hFR1JxcXU3Z1g5OTE2Rnc0azkwVmlHcTdLVzA6SV8wNW9tRFNIbjM5MHFISDJreE5zd04wb004bUZlc3pBQnREckQ0RQ=="]}, "method": "POST", "uri": "https://login.uber.com/oauth/token"}, "response": {"body": {"string": "{\"error\": \"invalid_grant\"}", "encoding": null}, "headers": {"content-length": ["26"], "server": ["nginx"], "connection": ["keep-alive"], "pragma": ["no-cache"], "cache-control": ["no-store"], "date": ["Mon, 06 Oct 2014 17:11:05 GMT"], "x-uber-app": ["login"], "content-type": ["application/json"]}, "status": {"message": "BAD REQUEST", "code": 400}, "url": "https://login.uber.com/oauth/token"}, "recorded_at": "2014-10-06T17:11:05"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/time_estimates_failure.json b/Docker/app/test/fixtures/time_estimates_failure.json deleted file mode 100644 index 2fb1c2c..0000000 --- a/Docker/app/test/fixtures/time_estimates_failure.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer NOT_A_CODE"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/estimates/time?start_longitude=-122.402367&start_latitude=37.781955"}, "response": {"body": {"string": "{\"message\":\"No authentication provided.\",\"code\":\"unauthorized\"}", "encoding": null}, "headers": {"content-length": ["63"], "server": ["nginx"], "connection": ["keep-alive"], "date": ["Fri, 01 Aug 2014 20:19:38 GMT"], "x-uber-app": ["uberex-nonsandbox"], "content-type": ["application/json"]}, "status": {"message": "Unauthorized", "code": 401}, "url": "https://api.uber.com/v1/estimates/time?start_longitude=-122.402367&start_latitude=37.781955"}, "recorded_at": "2014-08-01T20:19:38"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/fixtures/time_estimates_success.json b/Docker/app/test/fixtures/time_estimates_success.json deleted file mode 100644 index f7f1478..0000000 --- a/Docker/app/test/fixtures/time_estimates_success.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"], "Accept-Encoding": ["gzip, deflate"], "Authorization": ["bearer 42Kq726Vv6lzJ0TMhXWsgUulVjRsxh"], "User-Agent": ["python-requests/2.3.0 CPython/2.7.5 Darwin/13.2.0"]}, "method": "GET", "uri": "https://api.uber.com/v1/estimates/time?start_longitude=-122.402367&start_latitude=37.781955"}, "response": {"body": {"base64_string": "H4sIAAAAAAAAA6tWKsnMTS1WsoquVsrJT07MyaxKTYlPySwuyEmsjM9LzE1VslIKTUotcvJxdPZW0lFKLQZqSCwBChsZmOgo4VFZUJSfUppcEp+ZAjSiFGhEUk5icrZSrQ4Bm4JDw4iyB6IOw5bi0jL8doCcEuIY4YliibG5IYZnkBRi2FKSWJFJ2JoIFDuMTM2x2gFShWFBhVJtbC0AZXhg5Z4BAAA=", "encoding": null}, "headers": {"x-rate-limit-remaining": ["4991"], "content-language": ["en"], "content-encoding": ["gzip"], "transfer-encoding": ["chunked"], "strict-transport-security": ["max-age=2592000"], "server": ["nginx"], "connection": ["keep-alive"], "x-rate-limit-reset": ["1406926800"], "x-uber-app": ["uberex-nonsandbox"], "date": ["Fri, 01 Aug 2014 20:19:38 GMT"], "x-rate-limit-limit": ["5000"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.uber.com/v1/estimates/time?start_longitude=-122.402367&start_latitude=37.781955"}, "recorded_at": "2014-08-01T20:19:38"}], "recorded_with": "betamax/0.4.0"} \ No newline at end of file diff --git a/Docker/app/test/test_endpoints.py b/Docker/app/test/test_endpoints.py deleted file mode 100644 index 746b849..0000000 --- a/Docker/app/test/test_endpoints.py +++ /dev/null @@ -1,161 +0,0 @@ -import unittest - -from betamax import Betamax -from app import app - -with Betamax.configure() as config: - config.cassette_library_dir = 'test/fixtures' - -test_auth_token = 'MLth87eHvSAaCQ1vn7jTd0xA9Kapo5' - - -class TestCases(unittest.TestCase): - def setUp(self): - # Necessary to disable SSLify - app.debug = True - self.test_app = app.test_client() - self.session = app.requests_session - - def test_health_endpoint(self): - """Assert that the health endpoint works.""" - response = app.test_client().get('/health') - self.assertEquals(response.data, ';-)') - - def test_root_endpoint(self): - """Assert that the / endpoint correctly redirects to login.uber.com.""" - response = app.test_client().get('/') - self.assertIn('login.uber.com', response.data) - - def test_submit_endpoint_failure(self): - """Assert that the submit endpoint returns no code in the response.""" - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('submit_failure'): - response = client.get('/submit?code=not_a_code') - self.assertIn('None', response.data) - - def test_products_endpoint_returns_success(self): - """Assert that the products endpoint returns success. - - When a valid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('products_success'): - response = client.get('/products') - self.assertIn('products', response.data) - self.assertEquals(response.status_code, 200) - - def test_products_endpoint_returns_failure(self): - """Assert that the products endpoint returns failure. - - When an invalid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = 'NOT_A_CODE' - with Betamax(self.session).use_cassette('products_failure'): - response = client.get('/products') - self.assertEquals(response.status_code, 401) - - def test_time_estimates_endpoint_returns_success(self): - """Assert that the time estimates endpoint returns success. - - When a valid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('time_estimates_success'): - response = client.get('/time') - self.assertIn('times', response.data) - self.assertEquals(response.status_code, 200) - - def test_time_estimates_endpoint_returns_failure(self): - """Assert that the time estimates endpoint returns failure. - - When an invalid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = 'NOT_A_CODE' - with Betamax(app.requests_session).use_cassette('time_estimates_failure'): - response = client.get('/time') - self.assertEquals(response.status_code, 401) - - def test_price_estimates_endpoint_returns_success(self): - """Assert that the price estimates endpoint returns success. - - When a valid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('price_estimates_success'): - response = client.get('/price') - self.assertIn('prices', response.data) - self.assertEquals(response.status_code, 200) - - def test_price_estimates_endpoint_returns_failure(self): - """Assert that the price estimates endpoint returns failure. - - When an invalid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = 'NOT_A_CODE' - with Betamax(app.requests_session).use_cassette('price_estimates_failure'): - response = client.get('/price') - self.assertEquals(response.status_code, 401) - - def test_history_endpoint_returns_success(self): - """Assert that the history endpoint returns success. - - When a valid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('history_success'): - response = client.get('/history') - self.assertIn('history', response.data) - self.assertEquals(response.status_code, 200) - - def test_history_endpoint_returns_failure(self): - """Assert that the price estimates endpoint returns failure. - - When an invalid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = 'NOT_A_CODE' - with Betamax(app.requests_session).use_cassette('history_failure'): - response = client.get('/history') - self.assertEquals(response.status_code, 401) - - def test_me_endpoint_returns_success(self): - """Assert that the me endpoint returns success. - - When a valid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = test_auth_token - with Betamax(app.requests_session).use_cassette('me_success'): - response = client.get('/me') - self.assertIn('picture', response.data) - self.assertEquals(response.status_code, 200) - - def test_me_endpoint_returns_failure(self): - """Assert that the me endpoint returns failure. - - When an invalid key is passed in. - """ - with app.test_client() as client: - with client.session_transaction() as session: - session['access_token'] = 'NOT_A_CODE' - with Betamax(app.requests_session).use_cassette('me_failure'): - response = client.get('/me') - self.assertEquals(response.status_code, 401) diff --git a/EKS-VPC-CloudFormation/readme.md b/EKS-VPC-CloudFormation/readme.md deleted file mode 100644 index 021c239..0000000 --- a/EKS-VPC-CloudFormation/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -When running EKS, it requires specific networking. Because all environments will most likely be different, there's a CloudFormation template for this exact purpose. - ---- - -To create your cluster VPC with public and private subnets - -1. Open the AWS CloudFormation console at https://console.aws.amazon.com/cloudformation. - -2. From the navigation bar, select a Region that supports Amazon EKS. - -3. Choose Create stack, With new resources (standard). - -4. For Choose a template, select Specify an Amazon S3 template URL. - -5. Paste the following URL into the text area and choose Next: -``` -https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml -``` - -6. On the *Specify Details* page, fill out the following: - -- Stack name: Choose a stack name for your AWS CloudFormation stack. For example, you can call it eks-vpc. - -- VpcBlock: Choose a CIDR range for your VPC. Each worker node, pod, and load balancer that you deploy is assigned an IP address from this block. The default value provides enough IP addresses for most implementations, but if it doesn't, then you can change it. For more information, see VPC and subnet sizing in the Amazon VPC User Guide. You can also add additional CIDR blocks to the VPC once it's created. - -- PublicSubnet01Block: Specify a CIDR block for public subnet 1. The default value provides enough IP addresses for most implementations, but if it doesn't, then you can change it - -- PublicSubnet02Block: Specify a CIDR block for public subnet 2. The default value provides enough IP addresses for most implementations, but if it doesn't, then you can change it - -- PrivateSubnet01Block: Specify a CIDR block for private subnet 1. The default value provides enough IP addresses for most implementations, but if it doesn't, then you can change it - -- PrivateSubnet02Block: Specify a CIDR block for private subnet 2. The default value provides enough IP addresses for most implementations, but if it doesn't, then you can change it - -7. (Optional) On the Options page, tag your stack resources. Choose Next. - -8. On the Review page, choose Create. - -9. When your stack is created, select it in the console and choose Outputs. - -10. Record the SecurityGroups value for the security group that was created. When you add nodes to your cluster, you must specify the ID of the security group. The security group is applied to the elastic network interfaces that are created by Amazon EKS in your subnets that allows the control plane to communicate with your nodes. These network interfaces have Amazon EKS