hedge icon indicating copy to clipboard operation
hedge copied to clipboard

Fix crash when resource group or function app is missing

Open jikuja opened this issue 7 years ago • 2 comments

Fix crash when resource group or function app is missing.

Test for nils and throw exception with sane message.

Alternative plan

Log if not found and create new

jikuja avatar Jan 08 '18 12:01 jikuja

Also in list at #48

jikuja avatar Jan 22 '18 16:01 jikuja

I just found out that if you pass non-existing resource group to the deploy-azure function (or deploy-azure-from-directory), you get a confusing stack trace:

Sifting output files...
[pool-2-thread-1] INFO com.microsoft.aad.adal4j.AuthenticationAuthority - [Correlation ID: 6ce06ca8-b2f3-49b9-8437-0e3296502301] Instance discovery was successful
                                                                            java.lang.Thread.run                    Thread.java:   748
                                              java.util.concurrent.ThreadPoolExecutor$Worker.run        ThreadPoolExecutor.java:   624
                                               java.util.concurrent.ThreadPoolExecutor.runWorker        ThreadPoolExecutor.java:  1149
                                                             java.util.concurrent.FutureTask.run                FutureTask.java:   266
                                                                                             ...
                                                             clojure.core/binding-conveyor-fn/fn                       core.clj:  1938
                                                                               boot.core/boot/fn                       core.clj:  1031
                                                                             boot.core/run-tasks                       core.clj:  1021
                                                               boot-hedge.core/eval1475/fn/fn/fn                       core.clj:   160
                                                                  boot.task.built-in/fn/fn/fn/fn                   built_in.clj:   627
                                                               boot-hedge.core/eval1344/fn/fn/fn                       core.clj:   125
                                                              boot-hedge.core/publishing-profile                       core.clj:   106
                                                                                             ...
    com.microsoft.azure.management.appservice.implementation.FunctionAppsImpl.getByResourceGroup          FunctionAppsImpl.java:    20
    com.microsoft.azure.management.appservice.implementation.FunctionAppsImpl.getByResourceGroup          FunctionAppsImpl.java:    50
        com.microsoft.azure.management.appservice.implementation.WebAppsInner.getByResourceGroup              WebAppsInner.java:  1552
                                                        rx.observables.BlockingObservable.single        BlockingObservable.java:   341
                                                rx.observables.BlockingObservable.blockForSingle        BlockingObservable.java:   444
                                                                         rx.Observable.subscribe                Observable.java: 10205
                                                                         rx.Observable.subscribe                Observable.java: 10238
                                                      rx.internal.operators.OnSubscribeLift.call           OnSubscribeLift.java:    30
                                                      rx.internal.operators.OnSubscribeLift.call           OnSubscribeLift.java:    48
                                                      rx.internal.operators.OnSubscribeLift.call           OnSubscribeLift.java:    30
                                                      rx.internal.operators.OnSubscribeLift.call           OnSubscribeLift.java:    48
                                                       rx.internal.operators.OnSubscribeMap.call            OnSubscribeMap.java:    33
                                                       rx.internal.operators.OnSubscribeMap.call            OnSubscribeMap.java:    48
                                                                   rx.Observable.unsafeSubscribe                Observable.java: 10142
                          retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call  RxJavaCallAdapterFactory.java:   138
                          retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call  RxJavaCallAdapterFactory.java:   152
                                  rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer            OnSubscribeMap.java:   102
                                                                       rx.Subscriber.setProducer                Subscriber.java:   211
                        retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request  RxJavaCallAdapterFactory.java:   173
                                       rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext            OnSubscribeMap.java:    69
                   com.microsoft.azure.management.appservice.implementation.WebAppsInner$19.call              WebAppsInner.java:  1608
                   com.microsoft.azure.management.appservice.implementation.WebAppsInner$19.call              WebAppsInner.java:  1612
                com.microsoft.azure.management.appservice.implementation.WebAppsInner.access$200              WebAppsInner.java:    49
com.microsoft.azure.management.appservice.implementation.WebAppsInner.getByResourceGroupDelegate              WebAppsInner.java:  1625
                                                  com.microsoft.azure.AzureResponseBuilder.build      AzureResponseBuilder.java:    56
                                                 com.microsoft.rest.ServiceResponseBuilder.build    ServiceResponseBuilder.java:   122
                                                                                             ...
com.microsoft.azure.CloudException: Status code 400, {"error":{"code":"InvalidApiVersionParameter","message":"The api-version '2016-08-01' is invalid. The supported versions are '2018-01-01,2017-08-01,2017-06-01,2017-05-10,2017-05-01,2017-03-01,2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-01-01,2013-03-01,2014-02-26,2014-04'."}}
        clojure.lang.ExceptionInfo: Status code 400, {"error":{"code":"InvalidApiVersionParameter","message":"The api-version '2016-08-01' is invalid. The supported versions are '2018-01-01,2017-08-01,2017-06-01,2017-05-10,2017-05-01,2017-03-01,2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-01-01,2013-03-01,2014-02-26,2014-04'."}}

erkkikeranen avatar Jan 29 '18 12:01 erkkikeranen