databricks-demos / dbdemos

Demos to implement your Databricks Lakehouse
Other
273 stars 87 forks source link

Installing demo lakehouse-retail-churn under /Users/xxx@xxx.com... KeyError: 'cluster_id' #2

Closed snowch closed 1 year ago

snowch commented 1 year ago
%pip install https://github.com/databricks-demos/dbdemos/raw/main/release/dbdemos-0.1-py3-none-any.whl --force

followed by

import dbdemos
dbdemos.list_demos()

dbdemos.install('lakehouse-retail-churn')

results in ...

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<command-4346789072647810> in <cell line: 1>()
----> 1 dbdemos.install('lakehouse-retail-churn')

/local_disk0/.ephemeral_nfs/envs/pythonEnv-35024614-92d6-4db2-880d-1375798b9e17/lib/python3.9/site-packages/dbdemos/dbdemos.py in install(demo_name, path, overwrite, username, pat_token, workspace_url, skip_dashboards, cloud)
    185 def install(demo_name, path = None, overwrite = False, username = None, pat_token = None, workspace_url = None, skip_dashboards = False, cloud = "AWS"):
    186     installer = Installer(username, pat_token, workspace_url, cloud)
--> 187     installer.install_demo(demo_name, path, overwrite, skip_dashboards = skip_dashboards)
    188 
    189 

/local_disk0/.ephemeral_nfs/envs/pythonEnv-35024614-92d6-4db2-880d-1375798b9e17/lib/python3.9/site-packages/dbdemos/installer.py in install_demo(self, demo_name, install_path, overwrite, update_cluster_if_exists, skip_dashboards)
    156         self.tracker.track_install(demo_conf.category, demo_name)
    157         self.get_current_username()
--> 158         cluster_id, cluster_name = self.load_demo_cluster(demo_name, demo_conf, update_cluster_if_exists)
    159         pipeline_ids = self.load_demo_pipelines(demo_name, demo_conf)
    160         dashboards = [] if skip_dashboards else self.install_dashboards(demo_conf, install_path)

/local_disk0/.ephemeral_nfs/envs/pythonEnv-35024614-92d6-4db2-880d-1375798b9e17/lib/python3.9/site-packages/dbdemos/installer.py in load_demo_cluster(self, demo_name, demo_conf, update_cluster_if_exists)
    563         if existing_cluster == None:
    564             cluster = self.db.post("2.0/clusters/create", json = cluster_conf)
--> 565             cluster_conf["cluster_id"] = cluster["cluster_id"]
    566         else:
    567             cluster_conf["cluster_id"] = existing_cluster["cluster_id"]

KeyError: 'cluster_id'
QuentinAmbard commented 1 year ago

Closing as we now add a better message when you don't have permission to create cluster and don't crash the install anymore - thx for reporting!