Refactor image chooser functions to improve clarity and remove unnecessary rerun calls; add SKU list display for selected publishers and offers.
This commit is contained in:
@@ -33,19 +33,15 @@ def clear_image_versions():
|
|||||||
|
|
||||||
def on_publisher_changed():
|
def on_publisher_changed():
|
||||||
clear_offers()
|
clear_offers()
|
||||||
# st.rerun()
|
|
||||||
|
|
||||||
def on_offer_changed():
|
def on_offer_changed():
|
||||||
clear_skus()
|
clear_skus()
|
||||||
# st.rerun()
|
|
||||||
|
|
||||||
def on_sku_changed():
|
def on_sku_changed():
|
||||||
clear_skus()
|
clear_skus()
|
||||||
# st.rerun()
|
|
||||||
|
|
||||||
def on_image_version_changed():
|
def on_image_version_changed():
|
||||||
clear_image_versions()
|
clear_image_versions()
|
||||||
# st.rerun()
|
|
||||||
|
|
||||||
def version_key(v):
|
def version_key(v):
|
||||||
return [int(x) for x in v.split('.')]
|
return [int(x) for x in v.split('.')]
|
||||||
@@ -75,6 +71,9 @@ def get_locations():
|
|||||||
if loc.metadata.region_type == 'Physical'
|
if loc.metadata.region_type == 'Physical'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def usage_scenario_label(item):
|
||||||
|
return item['label']
|
||||||
|
|
||||||
subscription_id = getenv("AZURE_SUBSCRIPTION_ID")
|
subscription_id = getenv("AZURE_SUBSCRIPTION_ID")
|
||||||
default_location = getenv("AZURE_LOCATION")
|
default_location = getenv("AZURE_LOCATION")
|
||||||
|
|
||||||
@@ -107,7 +106,7 @@ if is_valid('publishers'):
|
|||||||
st.session_state.selected_publisher = publisher_col.selectbox('Select Publisher', options=st.session_state.publishers, on_change=on_publisher_changed, index=None)
|
st.session_state.selected_publisher = publisher_col.selectbox('Select Publisher', options=st.session_state.publishers, on_change=on_publisher_changed, index=None)
|
||||||
else:
|
else:
|
||||||
st.error("No publishers found. Please check your Azure subscription and location.")
|
st.error("No publishers found. Please check your Azure subscription and location.")
|
||||||
st.stop()
|
# st.stop()
|
||||||
|
|
||||||
# Offers
|
# Offers
|
||||||
if 'offers' not in st.session_state and is_valid('selected_publisher'):
|
if 'offers' not in st.session_state and is_valid('selected_publisher'):
|
||||||
@@ -117,9 +116,9 @@ if is_valid('offers'):
|
|||||||
st.session_state.selected_offer = offer_col.selectbox('Select Offer', options=st.session_state.offers, on_change=on_offer_changed, index=None)
|
st.session_state.selected_offer = offer_col.selectbox('Select Offer', options=st.session_state.offers, on_change=on_offer_changed, index=None)
|
||||||
elif is_valid('selected_publisher'):
|
elif is_valid('selected_publisher'):
|
||||||
st.info("No offers found for the selected publisher. Please select a different publisher.")
|
st.info("No offers found for the selected publisher. Please select a different publisher.")
|
||||||
st.stop()
|
# st.stop()
|
||||||
else:
|
# else:
|
||||||
st.stop()
|
# st.stop()
|
||||||
|
|
||||||
# SKUs
|
# SKUs
|
||||||
if 'skus' not in st.session_state and is_valid('selected_publisher') and is_valid('selected_offer'):
|
if 'skus' not in st.session_state and is_valid('selected_publisher') and is_valid('selected_offer'):
|
||||||
@@ -129,9 +128,9 @@ if is_valid('skus'):
|
|||||||
st.session_state.selected_sku = sku_col.selectbox('Select SKU', options=st.session_state.skus, on_change=on_sku_changed, index=None)
|
st.session_state.selected_sku = sku_col.selectbox('Select SKU', options=st.session_state.skus, on_change=on_sku_changed, index=None)
|
||||||
elif is_valid('selected_offer'):
|
elif is_valid('selected_offer'):
|
||||||
st.info("No SKUs found for the selected offer. Please select a different offer.")
|
st.info("No SKUs found for the selected offer. Please select a different offer.")
|
||||||
st.stop()
|
# st.stop()
|
||||||
else:
|
# else:
|
||||||
st.stop()
|
# st.stop()
|
||||||
|
|
||||||
# Image versions
|
# Image versions
|
||||||
if 'image_versions' not in st.session_state and is_valid('selected_publisher') and is_valid('selected_offer') and is_valid('selected_sku'):
|
if 'image_versions' not in st.session_state and is_valid('selected_publisher') and is_valid('selected_offer') and is_valid('selected_sku'):
|
||||||
@@ -148,9 +147,9 @@ if is_valid('image_versions'):
|
|||||||
st.session_state.selected_image_version = version_col.selectbox('Select Image Version', options=st.session_state.image_versions, index=None)
|
st.session_state.selected_image_version = version_col.selectbox('Select Image Version', options=st.session_state.image_versions, index=None)
|
||||||
elif is_valid('selected_sku'):
|
elif is_valid('selected_sku'):
|
||||||
st.info("No image versions found for the selected SKU. Please select a different SKU.")
|
st.info("No image versions found for the selected SKU. Please select a different SKU.")
|
||||||
st.stop()
|
# st.stop()
|
||||||
else:
|
# else:
|
||||||
st.stop()
|
# st.stop()
|
||||||
|
|
||||||
if is_valid('selected_image_version'):
|
if is_valid('selected_image_version'):
|
||||||
st.subheader("Usage example")
|
st.subheader("Usage example")
|
||||||
@@ -158,9 +157,6 @@ if is_valid('selected_image_version'):
|
|||||||
with open("templates.json") as f:
|
with open("templates.json") as f:
|
||||||
templates = json.load(f)
|
templates = json.load(f)
|
||||||
|
|
||||||
def usage_scenario_label(item):
|
|
||||||
return item['label']
|
|
||||||
|
|
||||||
layout = st.columns(4)
|
layout = st.columns(4)
|
||||||
|
|
||||||
selected_file = layout[0].selectbox('Select usage scenario:', options=templates, format_func=usage_scenario_label)
|
selected_file = layout[0].selectbox('Select usage scenario:', options=templates, format_func=usage_scenario_label)
|
||||||
@@ -175,3 +171,9 @@ if is_valid('selected_image_version'):
|
|||||||
)
|
)
|
||||||
|
|
||||||
st.code(rendered, language=selected_file['language'])
|
st.code(rendered, language=selected_file['language'])
|
||||||
|
|
||||||
|
if is_valid('selected_publisher') and is_valid('selected_offer') and is_valid('skus'):
|
||||||
|
sku_list = '[\n' + ',\n'.join(f'\t"{sku}"' for sku in st.session_state['skus']) +'\n]'
|
||||||
|
st.subheader('Available SKUs')
|
||||||
|
st.markdown('The below HCL code is suitable to be used as SKU validation set.')
|
||||||
|
st.code(sku_list)
|
||||||
|
|||||||
Reference in New Issue
Block a user