|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | 3 | # ------------------------------ |
4 | | -# APIM SAMPLES POST-START VERIFICATION |
| 4 | +# APIM SAMPLES INSTANT VERIFICATION |
5 | 5 | # ------------------------------ |
6 | 6 |
|
7 | 7 | start=$(date +%s.%N) |
8 | 8 |
|
9 | 9 | # Make terminal output more prominent |
10 | 10 | clear |
11 | 11 | echo "============================================================================" |
12 | | -echo " 🚀 APIM SAMPLES CODESPACE VERIFICATION " |
| 12 | +echo " 🚀 APIM SAMPLES - INSTANT VERIFICATION " |
13 | 13 | echo "============================================================================" |
14 | 14 | echo "" |
15 | | -echo "🔧 This terminal shows the Codespace verification progress." |
16 | | -echo "📋 Keep this panel open to monitor the environment status." |
| 15 | +echo "⚡ All heavy setup was completed during prebuild - verifying environment..." |
17 | 16 | echo "" |
18 | | -echo -e "✅ Most setup completed during prebuild - verifying environment...\n" |
19 | 17 |
|
20 | 18 | # ------------------------------ |
21 | | -# CONFIGURATION |
| 19 | +# LIGHTNING FAST VERIFICATION |
22 | 20 | # ------------------------------ |
23 | 21 |
|
24 | | -echo -e "1/5) Detecting & setting environment variables...\n" |
25 | | - |
26 | 22 | WORKSPACE_ROOT="/workspaces/Apim-Samples" |
27 | 23 | VENV_PATH="$WORKSPACE_ROOT/.venv" |
28 | | -PYTHON_EXECUTABLE="$VENV_PATH/bin/python" |
29 | | - |
30 | | -echo " Workspace : $WORKSPACE_ROOT" |
31 | | -echo " Virtual Environment : $VENV_PATH" |
32 | | -echo " Python Executable : $PYTHON_EXECUTABLE" |
33 | | - |
34 | | -# Activate virtual environment to get the correct Python version |
35 | | -source "$VENV_PATH/bin/activate" 2>/dev/null || true |
36 | | -PYTHON_VERSION=$(python --version | grep "Python" | awk '{print $2}') |
37 | | -echo " Python Version : $PYTHON_VERSION" |
38 | | - |
39 | | -# Extract Azure CLI version (suppress warnings and get just the version number) |
40 | | -AZ_CLI_VERSION=$(az --version 2>/dev/null | grep "azure-cli" | awk '{print $2}' | head -1) |
41 | | -echo " Azure CLI Version : $AZ_CLI_VERSION" |
42 | | - |
43 | | -# ------------------------------ |
44 | | -# ENVIRONMENT VERIFICATION |
45 | | -# ------------------------------ |
46 | 24 |
|
47 | | -echo -e "\n2/5) Verifying virtual environment...\n" |
| 25 | +echo -e "Environment Status:\n" |
48 | 26 |
|
49 | | -# Verify virtual environment exists |
| 27 | +# Ultra-fast file system checks (no command execution) |
50 | 28 | if [ -d "$VENV_PATH" ]; then |
51 | | - echo " ✅ Virtual environment found at $VENV_PATH" |
52 | | - if [ -f "$PYTHON_EXECUTABLE" ]; then |
53 | | - echo " ✅ Python executable available" |
54 | | - # Activate and verify |
55 | | - source "$VENV_PATH/bin/activate" |
56 | | - echo " ✅ Python version : $PYTHON_VERSION" |
57 | | - # Commenting out the number of packages installed as this does take some time to run. When the setup was verified, a count of 125 packages was printed. |
58 | | - # echo " ✅ Packages installed: $(pip list | wc -l)" |
59 | | - else |
60 | | - echo " ❌ Python executable not found" |
61 | | - exit 1 |
62 | | - fi |
63 | | -else |
64 | | - echo " ❌ Virtual environment not found at $VENV_PATH" |
65 | | - echo " 💡 Virtual environment should have been created during container setup" |
66 | | - exit 1 |
67 | | -fi |
68 | | - |
69 | | -# ------------------------------ |
70 | | -# ENVIRONMENT FILE VERIFICATION |
71 | | -# ------------------------------ |
72 | | - |
73 | | -echo -e "\n3/5) Verifying .env file...\n" |
74 | | - |
75 | | -cd "$WORKSPACE_ROOT" |
76 | | -if [ -f ".env" ]; then |
77 | | - echo " ✅ .env file exists" |
| 29 | + echo " ✅ Virtual environment" |
78 | 30 | else |
79 | | - echo " ⚠️ .env file missing, regenerating..." |
80 | | - if [ -f "setup/setup_python_path.py" ]; then |
81 | | - python setup/setup_python_path.py --generate-env |
82 | | - echo " ✅ .env file regenerated" |
83 | | - else |
84 | | - echo " ⚠️ setup_python_path.py not found, creating basic .env" |
85 | | - cat > .env << EOF |
86 | | -# Auto-generated for APIM Samples dev container |
87 | | -PROJECT_ROOT=$WORKSPACE_ROOT |
88 | | -PYTHONPATH=$WORKSPACE_ROOT/shared/python:$WORKSPACE_ROOT |
89 | | -EOF |
90 | | - echo " ✅ Basic .env file created" |
91 | | - fi |
| 31 | + echo " ❌ Virtual environment missing" |
92 | 32 | fi |
93 | 33 |
|
94 | | -# ------------------------------ |
95 | | -# AZURE CLI VERIFICATION |
96 | | -# ------------------------------ |
97 | | - |
98 | | -echo -e "\n4/5) Verifying Azure CLI configuration...\n" |
99 | | - |
100 | | -# Verify Azure CLI extensions are installed (they should be from prebuild) |
101 | | -echo " Checking Azure CLI extensions..." |
102 | | -if az extension list --query "[?name=='containerapp']" -o tsv | grep -q "containerapp"; then |
103 | | - echo " ✅ containerapp extension installed" |
| 34 | +if [ -f "$WORKSPACE_ROOT/.env" ]; then |
| 35 | + echo " ✅ Environment file" |
104 | 36 | else |
105 | | - echo " ⚠️ containerapp extension missing, installing..." |
106 | | - az extension add --name containerapp --only-show-errors 2>/dev/null || true |
| 37 | + echo " ❌ Environment file missing" |
107 | 38 | fi |
108 | 39 |
|
109 | | -if az extension list --query "[?name=='front-door']" -o tsv | grep -q "front-door"; then |
110 | | - echo " ✅ front-door extension installed" |
| 40 | +# Quick command availability checks (fast) |
| 41 | +if command -v az >/dev/null 2>&1; then |
| 42 | + echo " ✅ Azure CLI" |
111 | 43 | else |
112 | | - echo " ⚠️ front-door extension missing, installing..." |
113 | | - az extension add --name front-door --only-show-errors 2>/dev/null || true |
| 44 | + echo " ❌ Azure CLI missing" |
114 | 45 | fi |
115 | 46 |
|
116 | | -# Verify Azure CLI configuration |
117 | | -echo " ✅ Azure CLI configured for device code authentication" |
118 | | - |
119 | | -# ------------------------------ |
120 | | -# FINAL VERIFICATION |
121 | | -# ------------------------------ |
122 | | - |
123 | | -echo -e "\n5/5) Environment Summary\n" |
124 | | -echo " Virtual Environment : $VIRTUAL_ENV" |
125 | | -echo " Python : $PYTHON_VERSION at $(which python)" |
126 | | -# Commenting out the number of packages installed as this does take some time to run. When the setup was verified, a count of 125 packages was printed. |
127 | | -# echo " Packages: $(pip list | wc -l) installed" |
128 | | -echo " .env File exists? : $([ -f .env ] && echo "✅" || echo "❌")" |
129 | | -echo " Azure CLI Version : $AZ_CLI_VERSION" |
130 | | - |
131 | | -# Verify Jupyter kernel registration |
132 | | -echo " Jupyter Kernels : $(jupyter kernelspec list --json | python -c "import sys, json; data=json.load(sys.stdin); print(len(data['kernelspecs'])) if 'kernelspecs' in data else print('0')" 2>/dev/null || echo "unknown")" |
133 | | - |
134 | | -if jupyter kernelspec list | grep -q "apim-samples" 2>/dev/null; then |
135 | | - echo " APIM Samples Kernel : ✅" |
| 47 | +if command -v python >/dev/null 2>&1; then |
| 48 | + echo " ✅ Python" |
136 | 49 | else |
137 | | - echo " APIM Samples Kernel : ⚠️ (missing, re-registering...)" |
138 | | - python -m ipykernel install --user --name=apim-samples --display-name="APIM Samples Python 3.12" 2>/dev/null && echo " ✅ Kernel registered successfully" || echo " ❌ Failed to register kernel" |
| 50 | + echo " ❌ Python missing" |
139 | 51 | fi |
140 | 52 |
|
141 | | -# Test core imports |
142 | | -python -c " |
143 | | -try: |
144 | | - import requests, jwt, pandas, matplotlib, azure.identity |
145 | | - print(f' Core packages : ✅') |
146 | | -except ImportError as e: |
147 | | - print(f' Core packages : ❌') |
148 | | - print(f' {e}') |
149 | | -" |
150 | | - |
151 | | -# Calculate total duration using Python |
| 53 | +# Calculate total duration |
152 | 54 | end=$(date +%s.%N) |
153 | | -duration=$(python3 -c "print(f'{float('$end') - float('$start'):.2f}')") |
| 55 | +duration=$(python3 -c "print(f'{float('$end') - float('$start'):.1f}')" 2>/dev/null || echo "0.1") |
154 | 56 |
|
155 | 57 | echo "" |
156 | 58 | echo "============================================================================" |
157 | | -echo " 🎉 VERIFICATION COMPLETED! " |
| 59 | +echo " ⚡ INSTANT VERIFICATION COMPLETE! " |
158 | 60 | echo "============================================================================" |
159 | 61 | echo "" |
160 | | -printf "⏱️ Total verification time: %s seconds\n" "$duration" |
161 | | -echo "💡 Environment prebuild optimizations have significantly reduced startup time!" |
162 | | -echo "" |
163 | | -echo "🔍 This terminal shows your Codespace verification progress and logs." |
164 | | -echo "📋 You can minimize this panel or open a new terminal for your work." |
| 62 | +printf "⏱️ Verification time: %s seconds\n" "$duration" |
165 | 63 | echo "" |
166 | | -echo "🚀 Your APIM Samples environment is ready to use!" |
| 64 | +echo "🎉 Your APIM Samples environment is ready to use!" |
| 65 | +echo -e "\n" |
| 66 | +echo " Next Steps:" |
167 | 67 | echo "" |
| 68 | +echo " 1. Open a new terminal and log in via the Azure CLI: az login" |
168 | 69 | echo "" |
169 | | -echo " NEXT STEPS:" |
170 | | -echo " -----------" |
| 70 | +echo " 2. Wait until Codespace is fully started (it's fairly quick):" |
| 71 | +echo " - Watch progress indicators in status bar" |
| 72 | +echo " - Wait for all extensions to install" |
| 73 | +echo " --> ✅ (.venv) prefix will appear when you open a new terminal" |
171 | 74 | echo "" |
172 | | -echo " 1. Log in via the Azure CLI: az login" |
173 | | -echo " 2. Start using the infrastructures and samples!" |
| 75 | +echo " 3. Start using the infrastructures and samples!" |
174 | 76 | echo "" |
175 | 77 | echo "============================================================================" |
176 | | -echo -e "\n\n\n" |
| 78 | +echo -e "\n\n" |
0 commit comments