From f17c1090e1660b53fc6716221d867fede01558b1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 2 May 2017 00:27:50 -0700 Subject: [PATCH] Remove path whitelisting for hassio (#7399) * Remove path whitelisting for hassio * Update frontend * Lint --- homeassistant/components/frontend/version.py | 8 +- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 140445 -> 140429 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 17286 -> 17328 bytes .../www_static/panels/ha-panel-hassio.html | 173 +----------------- .../www_static/panels/ha-panel-hassio.html.gz | Bin 9012 -> 7449 bytes .../www_static/panels/ha-panel-zwave.html | 2 +- .../www_static/panels/ha-panel-zwave.html.gz | Bin 6092 -> 6135 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2516 -> 2518 bytes homeassistant/components/hassio.py | 35 +--- tests/components/test_hassio.py | 95 +--------- 14 files changed, 19 insertions(+), 302 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 263c3f7c425..23437de3924 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -3,20 +3,20 @@ FINGERPRINTS = { "compatibility.js": "83d9c77748dafa9db49ae77d7f3d8fb0", "core.js": "5d08475f03adb5969bd31855d5ca0cfd", - "frontend.html": "1533f44c55927e814294de757cd7eada", + "frontend.html": "094c2015c8291c767b8933428d92076f", "mdi.html": "1cc8593d3684f7f6f3b3854403216f77", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "39f00f769faa63ee61f1fe6fc85d67f7", + "panels/ha-panel-config.html": "59d9eb28758b497a4d9b2428f978b9b1", "panels/ha-panel-dev-event.html": "2db9c218065ef0f61d8d08db8093cad2", "panels/ha-panel-dev-info.html": "61610e015a411cfc84edd2c4d489e71d", "panels/ha-panel-dev-service.html": "415552027cb083badeff5f16080410ed", "panels/ha-panel-dev-state.html": "d70314913b8923d750932367b1099750", "panels/ha-panel-dev-template.html": "567fbf86735e1b891e40c2f4060fec9b", - "panels/ha-panel-hassio.html": "1d954cfe5f47c4be3cf4f6f5db9a83b2", + "panels/ha-panel-hassio.html": "0aa1523357326cb40e2242dce9b2c0d6", "panels/ha-panel-history.html": "89062c48c76206cad1cec14ddbb1cbb1", "panels/ha-panel-iframe.html": "d920f0aa3c903680f2f8795e2255daab", "panels/ha-panel-logbook.html": "6dd6a16f52117318b202e60f98400163", "panels/ha-panel-map.html": "31c592c239636f91e07c7ac232a5ebc4", - "panels/ha-panel-zwave.html": "a81f82b48439da80286798558f414a2e", + "panels/ha-panel-zwave.html": "84fb45638d2a69bac343246a687f647c", "websocket_test.html": "575de64b431fe11c3785bf96d7813450" } diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 827325cb058..fa6cbcd1717 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -743,4 +743,4 @@ return performance.now()};else var t=function(){return Date.now()};var e=functio this.hass.callService('media_player', service, serviceData); }, }); -}()); \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 46d65a09b0233e69bdc866d60d12bc94408c3127..19aa142bb86d68680bbb714c78dadeac07eaa090 100644 GIT binary patch delta 13367 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

uaj#4S-V4l(Rzjk< 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 delta 13403 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 diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 863ccb54861..110f152e237 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 863ccb548616236faafa3b3393a1f51429bb8afd +Subproject commit 110f152e2371319ff4cf0b6fcc18b10e943cf08d diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 84813853c21..fc00afe012c 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ - \ No newline at end of file +}); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz index 6254eb394a6fe6509d2dc99c83bb41e00e32c50e..719b9c608f185cedf81b026331d45d7403fd9af8 100644 GIT binary patch literal 7449 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 Xtqjjd+(lW^ReJirf=Iy`a)kf@n+km_ literal 9012 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 af~UU(=2|?GS(lsa=6?XsizgMajsO6yRiu{y diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html index 627c7c15035..6af056b0db4 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html.gz index 89c637ad527637b6c4c3927ddf9556a5211043f4..fec3a4f832bf9f5816f13564203a6ced55ac4e5e 100644 GIT binary patch delta 5179 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 pv=n}tsoUm=)x<-^tM zvc6m0)MZKAOUGH|58J!jrXX$o8-?eq*XQA(p;vFQ$GgX}KA#%$uy4DTzNn9xrW$h!}RsqLQTzt#h9 zpBjJJ!_#48u&vvsZmG%#+ZNeL@PtWi67!p`uYc>>fi(Na|0JhV^Kda@>%*w=wyb+v z40YGS*zOOq(i&toS!Hc|dPl)gpDc4Ect-ZrWf_umf#;zvK6TVZ*W4c4CE)_Kwpv7f z-r$kV$HuSqdKQ&by6?$p|2RqIkL*9Hn7MyheUuorot0PHEpQWn-k_;ATgp_?ZV?l< zH%o$e2XZ@fvy{EJ@>Z-#VLrDiPdY1>E+kg$QDwthrf(X#ro_$_|MN~CG-ZSq>iBbV zuFrdgYN1_M+m|H!swf{t`8r7;kpwD9fFyxV5=tbYN)jSTsFOqzNu-iQND}EJu|$6o zt0Xa!#5zeLkt8Zff+UGfl1e10N|GW;s*_|ANv4uyNRsI!o-2ohs|A58qQEuCJekbX z$j0FD3^F+kJS`495eS|f3Fm?IgET=&Q(w1x-a1k9wrxGo|*@?h|Nh)NQ=|2UHn#Ra05}6DfYx zjE&tMwgs%TFm&1A%aCF8WoerAb)EvYH>+M)mLa>tsx<4c1V}#bv~3(HT#(Tvx-K>MCYwGY!+zp|~;li*_6P5i*-}=4vXD z`Y)ss6|=M%iG=r2f|KtI|Ayn)%mztl}VJnV4?FYVc9f}S>HsPCZvsXN!WK@?4LEmRLu2a=y*0|jFq zy3^i0^!4@40RQIQ0K0zp($ET?q7Bmd*rn`_+hbSWva^@+(y99nDyJj4rp}6-&vZDE;pWoW?OwtE^X{JZ?~4us zp@kqjznXi$a;{!Oy#*RkHH>FDSNogpJUnU#COqV3Pho5w%;@>zT$70eApsAQs{|@M z>6()E_F?6a8LlyR6kXHxV7MFF*TbQMDb1#%Ha5(!Jw6ZNQBCM-yrx#XbRRdIyQ&dr(hw`mYY6g|wpA3vVL{lX{OrpEl@%B@vsR z!Wvo(KX+dbV(Hw!a6#~xKP+?(77PwouUS?N@Yx583ds6PE}Qgco>~-ue%n8`9Vg6Zf=i0d`{^EtV-Y9>Kpxg^rYWr_yZq{x6 zw9D(Z0ip&y(Ub5N!p3jd-SGs{k1V;oe2L#hT6p<#dZMLO z!nB;2LRPX6!Rcc%zH+95!r?1|ZRKAY4^C*EW?ubGI>#9&2&_C`IYWO-o&8-`mn+xC zh8G1gm%6%OspiGZWG#;!o)6GvmcnM;DEWY?rKR_)Uw(i3{$hEWu6L|VZo$SosP*dM z!g=Ma4?+%oOLq-zuZNqh_fFAy(N>zVbGahrtj&OHLT%<% zx<1q|w0wWda-W=Lr+ip%EJ~Ovqgs^fV^#!~L?qYd_B4Z%=5AAx)PXT)f@pp1TwEcI zEVmghmoz)by1ik4*dL6BIZ`)r?;pjItx(L3GZn_sRKP)smD&76Pm~M_ld(x+;k4bh z=glG|%|2HaGiC@u+1JYEcDVP;Pv3uyQ+Ay3qK4l6gzSFln_WMB<&g&e z-`zk_`t-DhT@zN`P?ArZ>W{zIaNTv+4F&bft>?P?FRHLeir}CC0Rw296p02z3@Gz3 z3=$Pc7*Iq(=4UgIL*a!&int_Ip&?vKk`q!T8p6edei~JwhHyDS5GQ3kBiB7Uj^l#z zgnEBPsY6^+l;n9zbcl;`tE`Mt9pbXwJat3K3J{;2hZFdV*eWE2*fR}`!3ZPCA`{Vosoa*+I6bfSk{?wCs z3TXjklj90-0S>cN3pfFPq(yhRRZ?l~=qR7&m9GN6(3I+&&^cx4QcnfYEiv1c=(17i zq6}34UEz|V&{&PbNJydrXnr>h(nZ!~mZ}#a8_gAer>P1E1E*P{2^Ygi zvRDIzf#WRFgbM?QW$3B^8ki((m!ly*CeW%XHHFc@UP)mRYshHeipdBx$H2xa`L{*xyiqIR@4VX|sh0w{sW}H`L|eG6i`* zC^Q7uQkuZ7OG9vfDa|A5>vBX@lT~q{D<_PdRW6}AG=_7W#5yF*U8GTNsuJpb!mpB*dc*u(PWns2MDT5;7e< zv0ZmnN+wo+4zs}TQhFDV*sFubOC1UXYlDIi5^4y4)=gfTO7k8Ou3=in@&Waz06#;DqEMH^ z9TS&fAuWoC;4vN4{6V52ctA&?u%a4*H4*g_Kai`<2Mk}rK5D!Amlz2Ui#7Y73aEdf zkpMpWyks9;w)~eH3BU?5VjmT-{Y8fZIC7tTR3O9CANEntQl`<<0xAz1h-G3`re$Gi zK`{>8oEDJ<#iLx8goIj9EFaU%%?hhhY>;kJrnv>hL)c;$Q>uME>;T_$UuSk+x2o>KoZN@=kQD@uoorRXEeydAeU5B zXyy@5CXsMyz*gKCVP51|cuAe~0mdQw=zWy&1qJ&+7p{OU-mFUU(b0B#g5P+ybAc~I_7iE)SIkar)p;(hYG>zSe0uX{Y} zai)+F6Px8MxjqQaJt^zk^WHywn6GCb%c|qk?s)849yx2h1CzOa`q&Sp?ATAQ(Eiaj zOs>Juo%oYQ5+{G^YJOdizesn+-)~r!iS)DN-B1q=M(^W^l>E(jFJ?c?z|72EZrl6e z_;`*sV~Qmv}&m=T3R%!_W*^{bB!QwZQezS{4_WxmypcN9Dmzde8V zN6O2}-5-C!-+E=n*(i58P{Zkt3)j+4XI>DRuHAemQJHs7Cd+=x?VRtH6u|o^w4rxI zx(=jVJn@$95RtZK>rDCPhLn&Em(&=$X&tOgl}k6m-z8X7eEnLmx==;0ou{YG6yeGX ztm7-?>?Qo>Or1Tx5YOM`mYuZp*6TGLq}vaI##w)Fhz*`^;5qAqbLMt-E-%@zyJ|&V zz9j5jYVjKMd5LsGrHc=8urCa3HK$Vbe!*xhE8X(@w_25QLtriMps+iix1j6LwU%lH zQpqc+R>6K}+a1>(n}r055Zl6RD^s4tc9yf0Z)B3DS$XHD-T4*@_49e9^qY&xrSe68 ziFSW|ka+W}r#rq6`X~8{7eh_1GP}29&H8R+T%_#tv>Q!s{zlir&uEOlvaxh)T)l@q z->J5(GLwrO9s%>?)oWRM4vrx)j)bLh5r5x`ri&5Vtj1yS^#_)Mft*GbKf|~nSwfsN z9SceEk1TMGCcdL*fm&CfV}&aavYzguiot)3?UV9n*uTMGR&1fY!(ZNer686oqLv2v zjdjZ+VwpDTV!|dgX2iee|A0iu(mwWI%%mU_{GcrsY}Kg?YH$6P3`CJ4xIIF`9KEt6 z?rFn@t7V=+yBsma#*Ul&`}#Z_=ng8Mi$PofA?Js-xR5SaP;sjadOU4B8o+-WAftaR zyVUpy5wTYz;%Os4DyoPZCTO;oFNfV3g8fIZGPx!w4VE9?`wb=u<95k3#0y8{5oe;| z_t2iB;Q4{|*8*PBaWkh}Nc?KnH4|+CIc+Ok_s5d08Gg9s94Esx6Sb-HX_M0A{@Ihm zHq`%L6J#mww6ME;;U4BGalngRp!!-C=39v+GDFH}Jo9%D+af`oQaZ_Meex_jP< zHM57m!FSvssnocTv8dVdtq_y;zuW%-C#?QPS}6GXab;3ecr|Njtn1*2X(eQaT#1_Y z(h-b*pu>IF|0)C=vA@hj+8=*U+Kfc39jtcVje(@m39mWaOcsAJ!}FBH{$-}ZIdkb? z177k4f$)9x6Z`%z6F1PaWYwSH>Ek05S#eHt xS8}3Ma{cF*_0m%Kv5EzAzFMz9?IBYBV&$!@$oSjgulR3`{~sYLLb`HX0017L9clmo diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index a1ee58da087..244c0a6b13d 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","39154f75cd31edbe1d4a249039273520"],["/frontend/panels/dev-event-2db9c218065ef0f61d8d08db8093cad2.html","b5b751e49b1bba55f633ae0d7a92677d"],["/frontend/panels/dev-info-61610e015a411cfc84edd2c4d489e71d.html","6568377ee31cbd78fedc003b317f7faf"],["/frontend/panels/dev-service-415552027cb083badeff5f16080410ed.html","a4b1ec9bfa5bc3529af7783ae56cb55c"],["/frontend/panels/dev-state-d70314913b8923d750932367b1099750.html","c61b5b1461959aac106400e122993e9e"],["/frontend/panels/dev-template-567fbf86735e1b891e40c2f4060fec9b.html","d2853ecf45de1dbadf49fe99a7424ef3"],["/frontend/panels/map-31c592c239636f91e07c7ac232a5ebc4.html","182580419ce2c935ae6ec65502b6db96"],["/static/compatibility-83d9c77748dafa9db49ae77d7f3d8fb0.js","5f05c83be2b028d577962f9625904806"],["/static/core-5d08475f03adb5969bd31855d5ca0cfd.js","1cd99ba798bfcff9768c9d2bb2f58a7c"],["/static/frontend-1533f44c55927e814294de757cd7eada.html","4a5d18075e9c90493b51531c3d13d343"],["/static/mdi-d86ee142ae2476f49384bfe866a2885e.html","1a47930d13e98b823c3b00a824449f04"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,a){var c=new URL(e);return a&&c.pathname.match(a)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],a=new URL(t,self.location),c=createCacheKey(a,hashParamName,n,!1);return[a.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var a=new Request(n,{credentials:"same-origin"});return fetch(a).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(n=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url)&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var n,a;for(n=0;n=3a8g0Yl&$$K*qro55otF`-D6gzUJE|9clCB}wXt_l|f&Q-{WST3x}^(<*?Do*S4-4|JOAN zX^Q`Ja~IBUz#C{r&bhhud{L|Gi+{X({VK4?spe=!AGAx}j8+XuiyYLTi}~!+CuidL zP7({I8B0J>C94-6|bOdCkigdU}HXxlwdL1QI5Q5S&t-#xaLbWt>H6mOY@SsB}F}NlHQp3FQeP zQp-F6r6QTABxjHjwNaDOG>@|kASP0%EZ3l97{&s3q%+O+X*Df0mxY9JLMWwC7-dp~ zc`Pt4T2oEZFb@+nVXKKJf`DW~b1Gy^BgS=><+vxBNo(m2(qAk1XO z@j2oYgiJOXNFGt^M2BB*G|HG|N~TY5b!sOc12^6g21@glm%Fx|l0L zS;~ZpNlvMvl7~{OUM`V}F~KvI3oW%~S(;0xA|WD8bDqgPxf>6SLzc)0K`Zl!5t(6d za~8)58pfh9OZCPrOs85$n&+WPAx4;`lE#>r3E?Uv3E7jrRK=J`nNt?4IL#Bpb*d5J zIZcu9d!!hBuwW{}2ZtTVz8~EEq0nleOaPw_!rFkYiPcR`CtvV zpd*S%lE+lVan92uLQ_~ALP|K_m3D;*i9Xg*s`(2ZH#g{O1+N<%V>x?hs@z^1a^M*Gl(O{2!$+6L5Z<~FZ{Ju8JFO$zcSL(0W@oj&;eqJf~KD#3^w(;BU zSIumn{qXh$HpFSqYq0-eJFfyPGK&hO2Q9W*aL2?uJ9F=*&u7N-k%83jx}NHKx4tZa zS8t(3C$%s;%BdQRgEa}%6W6hQ*(q@P$(yEL7Oj2V*5xH2;d=K;nAsy? z8x7!GJ&F1uc?3iSw2)kal6M$_))#Dcer&If(!f7!`>$Hx;!`@Y^ltL?n;61DAf z(gOpm>&(m==vVkdFxBrO=XZsptb2Bh_?Ybj*yZ~+A%-83jrTwC9pioZ`PTEMojj~1 z-C^d11yzMU#k|GbDY2XGS_Z)tFU*I^6s6nkpbfBQRqnR@6}R%^Q((*gMwqj}^&yAuHnbo;GXeZ&~{@U;v469BNs z)k_4{J_34dZjQz$Lo)q8kaFToUme9q^-%Eb5#RH+V*8^je)C5hCCkDx0sQ5~@+Yq9 zkh1S5w8Ht@v-eI{jGG=6L4Oh+oQS!7vX;7cYj6t>@d0mYX7{7e1Al6;6;-nXmVkJ{ z9=ScM`oUMl4_m9sAHzZO z%T?Wcg9drkk0q}PZDrXLK4!7^=RYAK+uM0ZNw&4mp4|7V-)=QKxeedgD~&$+)JIIc z{~eHh1H3PP4qb~rT!+DjE$pU!kr)cZ`vr_TmFlh>m<2bZE8dRa`>NwkqoN%l!du)} z;Pg#W1Ap1u)ux;54iup8gI zzmsK+#r5<0(STR0$31|X=4@u09OC&XaE2J literal 2516 zcmV;_2`ly=iwFp{qXAh019N3^c4=c}Uw3bEYh`jSYI6XkSZ#CLxDoy<3a95IYlRRMwlCb**gK)T0jUbMs871?V?z)%g(IwP4q6J%Z>H+;)Bt*#*@8cEQ01OR+lr zV%=8v!TtHAHQbC|fyEj8Y-dZ|*wU0rxQCyvp|;ONRY{>f`4HOR&Xg^@Sa*xv?49V> zUD;?Dgj!gEPy2ErHy2tle>{&mP8+K?4D^yx_gT>RA2%3yIm2+v)Syq z{0Pbp=nb!esDgTK7Z(?sPgPT+C)Ua~?QX%v#eulcfK?0Mn}}68>CL;17Is;&iQ3rU zg?CG^i$-60FP^`8?S%^v8rts4q5Jn??B99Mn%W|k3f+0x6e7O2L@PC>0RvT<|2zbA4Vr%luC5+*|lU&KT zpc4IJ3^OE)i#SCScA7*g2`Da&U{WDcT$nsBa8E2#k}>raO;%VK>pZ3;<%G(DCsgMQ z0ZV9>OA>RAPg^}IBZwVIGr}1cLXkL2;}}Sia87~4c|8`EtIDZjS#G2$GIS^qREKVe zRbtXOi;dgDR+UZ)MnRdBY2*QJ-K5+A=ORy&6bwDB3e(CM(PlhR3FR5h3@V6ol?!}M z1Outktp-vg%;CrtB#KieAOn>#7AG=8B4vXH2T-Xds#&gZAj_(>x8s6puJSxj3oVS` zTBck85+^rQ7e>a>#|{-R6ElTwgG9zjp;?~uEHU`Uc$^|hA1P=N9HeWS<2ov|WIW>% zBcWhSGbLhW^dOfg&AAjgFQie%@H{IN*NK#gVTH)mf!r-ZW5OskX{s24lS4t$gr^#E zmMfiO#EUH~sbCsIC}+SG+R3S8xRfZW3Dq>E2hx|i9P1(jKyd<+G|$jYv`D3aBFjWl z6byEFi!|pnMlpbv7YS8V#<3`pG)33OX)kzdH5%Pb+D10EnY`?O#y>Wdj;u9~95mrd z6_TbI(ut5%aF!;C5JD3fXY^a5ektb*yOEVkW@J$ql1NYp3pL2-gkT&cNkWoun)NH_ za=qLLGl08GNgn4&tHdZ)WGp5~ja(v)({CE~66Whlv>RzcQIm778D=TN2+xd=m~~{K zp-9ms`_f8R7$!zsyTO?7`uf37uro;@@%uJF6+SI=CXee?1c zEQr&gufh6<<-CqC$t-G=9(7o1!5@?0;=+HJzMR=0#15o+)z?%%xDQnYqJ9Y-g4Dt6 zWKY$iADl^`pZcDw%U+4oPhYgnvh3XJuBom8I}Z0QxWeD6k$&*F39|=H*jA-)!@F(! zfU!P|Lg&A=n-~V0=hyJr?&jQsYxS;<>~Onk0jovdUH%hp4=@btPz*S#V;o1~;zB*3 zxO5KkMeyZ|uc8jy6ScUU?S@ai3(vXs5^B|Gc=Ph-XIrx2W-q;&cj`?Y1fe=`LD{`P zg>M%~&kC6X`jO8|7`%v0|$ZR{<@Q(yhhfSaL5vkyO)4us;=DE(@loe_|^`VWhPit>aFzN|rW9YD} ze;2P|w zQq_nl#x2H9h1GQ5GKg+OY2Vbgto(ilU4%KS_IJte{Aud=40kr>w^54f{U6#^+(y`1 zEd57lM%SWRL+6sm0f2QM1?Xmk!9`FH=K$bK`1jiRz7FpYG>!W$Mb%w-9a=ud)5W~3 zz55+ghqH}1Vdo&f`4rei+uZay>Zi7C5Vehlk!jrFq`vejc!W27!9e( z9bqWpmK{aMQG( zpvAuG%Tm;(akAVAAEP+<^PjLGJJ@;OlI(JyJGmcbzx`}>b{nB}R~kd`>9-hq|2rXv z0{B?|9QqP{ybhfYJK9Z$B(X^luNN@tRqBUyU>CxUZbUbN&#S(78kOA$8Q$T>B5$Co z>Mb~t16&i`R4&}w+W-Dpv#xagukY>1;SCQu`h@gd=Z#z{9W1ySefRwPL%cDQY_4>6 z(>?RgQ-8JY7AG>qbhsZv_hBL1+&pzI#=`x?aH0oZG&jHPU32+ZtxH?Ej^Y^R4lq)s1k-Tw=gopgC)761Sv2j74I diff --git a/homeassistant/components/hassio.py b/homeassistant/components/hassio.py index be0424e592c..ed7e13a2969 100644 --- a/homeassistant/components/hassio.py +++ b/homeassistant/components/hassio.py @@ -11,8 +11,7 @@ import re import aiohttp from aiohttp import web -from aiohttp.web_exceptions import ( - HTTPBadGateway, HTTPNotFound, HTTPMethodNotAllowed) +from aiohttp.web_exceptions import HTTPBadGateway from aiohttp.hdrs import CONTENT_TYPE import async_timeout @@ -28,23 +27,6 @@ DEPENDENCIES = ['http'] TIMEOUT = 10 -HASSIO_REST_COMMANDS = { - 'host/shutdown': ['POST'], - 'host/reboot': ['POST'], - 'host/update': ['POST'], - 'host/info': ['GET'], - 'supervisor/info': ['GET'], - 'supervisor/update': ['POST'], - 'supervisor/options': ['POST'], - 'supervisor/reload': ['POST'], - 'supervisor/logs': ['GET'], - 'homeassistant/info': ['GET'], - 'homeassistant/update': ['POST'], - 'homeassistant/logs': ['GET'], - 'network/info': ['GET'], - 'network/options': ['POST'], -} - ADDON_REST_COMMANDS = { 'install': ['POST'], 'uninstall': ['POST'], @@ -166,21 +148,6 @@ class HassIOView(HomeAssistantView): @asyncio.coroutine def _handle(self, request, path): """Route data to hassio.""" - if path.startswith('addons/'): - parts = path.split('/') - - if len(parts) != 3: - raise HTTPNotFound() - - allowed_methods = ADDON_REST_COMMANDS.get(parts[-1]) - else: - allowed_methods = HASSIO_REST_COMMANDS.get(path) - - if allowed_methods is None: - raise HTTPNotFound() - if request.method not in allowed_methods: - raise HTTPMethodNotAllowed(request.method, allowed_methods) - client = yield from self.hassio.command_proxy(path, request) data = yield from client.read() diff --git a/tests/components/test_hassio.py b/tests/components/test_hassio.py index 53c8697b44a..fa89230d3f2 100644 --- a/tests/components/test_hassio.py +++ b/tests/components/test_hassio.py @@ -48,32 +48,13 @@ def test_fail_setup_cannot_connect(hass): @asyncio.coroutine -def test_invalid_path(hassio_client): - """Test requesting invalid path.""" - with patch.dict(ho.HASSIO_REST_COMMANDS, {}, clear=True): - resp = yield from hassio_client.post('/api/hassio/beer') - - assert resp.status == 404 - - -@asyncio.coroutine -def test_invalid_method(hassio_client): - """Test requesting path with invalid method.""" - with patch.dict(ho.HASSIO_REST_COMMANDS, {'beer': ['POST']}): - resp = yield from hassio_client.get('/api/hassio/beer') - - assert resp.status == 405 - - -@asyncio.coroutine -def test_forward_normal_path(hassio_client): +def test_forward_request(hassio_client): """Test fetching normal path.""" response = MagicMock() response.read.return_value = mock_coro('data') - with patch.dict(ho.HASSIO_REST_COMMANDS, {'beer': ['POST']}), \ - patch('homeassistant.components.hassio.HassIO.command_proxy', - Mock(return_value=mock_coro(response))), \ + with patch('homeassistant.components.hassio.HassIO.command_proxy', + Mock(return_value=mock_coro(response))), \ patch('homeassistant.components.hassio._create_response') as mresp: mresp.return_value = 'response' resp = yield from hassio_client.post('/api/hassio/beer') @@ -89,14 +70,13 @@ def test_forward_normal_path(hassio_client): @asyncio.coroutine -def test_forward_normal_log_path(hassio_client): +def test_forward_log_request(hassio_client): """Test fetching normal log path.""" response = MagicMock() response.read.return_value = mock_coro('data') - with patch.dict(ho.HASSIO_REST_COMMANDS, {'beer/logs': ['GET']}), \ - patch('homeassistant.components.hassio.HassIO.command_proxy', - Mock(return_value=mock_coro(response))), \ + with patch('homeassistant.components.hassio.HassIO.command_proxy', + Mock(return_value=mock_coro(response))), \ patch('homeassistant.components.hassio.' '_create_response_log') as mresp: mresp.return_value = 'response' @@ -112,69 +92,6 @@ def test_forward_normal_log_path(hassio_client): assert mresp.mock_calls[0][1] == (response, 'data') -@asyncio.coroutine -def test_forward_addon_path(hassio_client): - """Test fetching addon path.""" - response = MagicMock() - response.read.return_value = mock_coro('data') - - with patch.dict(ho.ADDON_REST_COMMANDS, {'install': ['POST']}), \ - patch('homeassistant.components.hassio.' - 'HassIO.command_proxy') as proxy_command, \ - patch('homeassistant.components.hassio._create_response') as mresp: - proxy_command.return_value = mock_coro(response) - mresp.return_value = 'response' - resp = yield from hassio_client.post('/api/hassio/addons/beer/install') - - # Check we got right response - assert resp.status == 200 - body = yield from resp.text() - assert body == 'response' - - assert proxy_command.mock_calls[0][1][0] == 'addons/beer/install' - - # Check we forwarded command - assert len(mresp.mock_calls) == 1 - assert mresp.mock_calls[0][1] == (response, 'data') - - -@asyncio.coroutine -def test_forward_addon_log_path(hassio_client): - """Test fetching addon log path.""" - response = MagicMock() - response.read.return_value = mock_coro('data') - - with patch.dict(ho.ADDON_REST_COMMANDS, {'logs': ['GET']}), \ - patch('homeassistant.components.hassio.' - 'HassIO.command_proxy') as proxy_command, \ - patch('homeassistant.components.hassio.' - '_create_response_log') as mresp: - proxy_command.return_value = mock_coro(response) - mresp.return_value = 'response' - resp = yield from hassio_client.get('/api/hassio/addons/beer/logs') - - # Check we got right response - assert resp.status == 200 - body = yield from resp.text() - assert body == 'response' - - assert proxy_command.mock_calls[0][1][0] == 'addons/beer/logs' - - # Check we forwarded command - assert len(mresp.mock_calls) == 1 - assert mresp.mock_calls[0][1] == (response, 'data') - - -@asyncio.coroutine -def test_bad_request_when_wrong_addon_url(hassio_client): - """Test we cannot mess with addon url.""" - resp = yield from hassio_client.get('/api/hassio/addons/../../info') - assert resp.status == 404 - - resp = yield from hassio_client.get('/api/hassio/addons/info') - assert resp.status == 404 - - @asyncio.coroutine def test_bad_gateway_when_cannot_find_supervisor(hassio_client): """Test we get a bad gateway error if we can't find supervisor."""