skypilot-nightly 1.0.0.dev20241103__py3-none-any.whl → 1.0.0.dev20241105__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sky/__init__.py CHANGED
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '0f0008d41ecf4919b169541fb86a4ec60d1485ab'
8
+ _SKYPILOT_COMMIT_SHA = 'c24a0b3a8f9b1d8193e27f976da9f3d71867506f'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20241103'
38
+ __version__ = '1.0.0.dev20241105'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
sky/clouds/aws.py CHANGED
@@ -280,12 +280,12 @@ class AWS(clouds.Cloud):
280
280
  if image_id.startswith('skypilot:'):
281
281
  return DEFAULT_AMI_GB
282
282
  assert region is not None, (image_id, region)
283
- client = aws.client('ec2', region_name=region)
284
283
  image_not_found_message = (
285
284
  f'Image {image_id!r} not found in AWS region {region}.\n'
286
285
  f'\nTo find AWS AMI IDs: https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html#examples\n' # pylint: disable=line-too-long
287
286
  'Example: ami-0729d913a335efca7')
288
287
  try:
288
+ client = aws.client('ec2', region_name=region)
289
289
  image_info = client.describe_images(ImageIds=[image_id])
290
290
  image_info = image_info.get('Images', [])
291
291
  if not image_info:
@@ -294,7 +294,8 @@ class AWS(clouds.Cloud):
294
294
  image_info = image_info[0]
295
295
  image_size = image_info['BlockDeviceMappings'][0]['Ebs'][
296
296
  'VolumeSize']
297
- except aws.botocore_exceptions().NoCredentialsError:
297
+ except (aws.botocore_exceptions().NoCredentialsError,
298
+ aws.botocore_exceptions().ProfileNotFound):
298
299
  # Fallback to default image size if no credentials are available.
299
300
  # The credentials issue will be caught when actually provisioning
300
301
  # the instance and appropriate errors will be raised there.
sky/clouds/azure.py CHANGED
@@ -175,7 +175,11 @@ class Azure(clouds.Cloud):
175
175
 
176
176
  # Process user-specified images.
177
177
  azure_utils.validate_image_id(image_id)
178
- compute_client = azure.get_client('compute', cls.get_project_id())
178
+ try:
179
+ compute_client = azure.get_client('compute', cls.get_project_id())
180
+ except (azure.exceptions().AzureError, RuntimeError):
181
+ # Fallback to default image size if no credentials are available.
182
+ return 0.0
179
183
 
180
184
  # Community gallery image.
181
185
  if image_id.startswith(_COMMUNITY_IMAGE_PREFIX):
@@ -74,11 +74,14 @@ def home():
74
74
  # Remove filler rows ([''], ..., ['-']).
75
75
  rows = [row for row in rows if ''.join(map(str, row)) != '']
76
76
 
77
+ # Get all unique status values.
78
+ status_values = sorted(list(set(row[-5] for row in rows)))
77
79
  rendered_html = flask.render_template(
78
80
  'index.html',
79
81
  columns=columns,
80
82
  rows=rows,
81
83
  last_updated_timestamp=timestamp,
84
+ status_values=status_values,
82
85
  )
83
86
  return rendered_html
84
87
 
@@ -44,6 +44,22 @@
44
44
  .clickable {
45
45
  cursor: pointer; /* This makes the cursor a pointer when hovering over the element */
46
46
  }
47
+
48
+ .filter-controls {
49
+ display: flex;
50
+ gap: 10px;
51
+ align-items: center; /* This ensures vertical alignment */
52
+ margin-top: 1rem;
53
+ position: relative;
54
+ z-index: 2;
55
+ }
56
+
57
+ /* Customize the select focus/hover states */
58
+ .form-select:focus {
59
+ border-color: #dee2e6;
60
+ box-shadow: 0 0 0 0.1rem rgba(0,0,0,0.1);
61
+ }
62
+
47
63
  </style>
48
64
  <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
49
65
  <script
@@ -54,12 +70,21 @@
54
70
  <body>
55
71
  <div class="container">
56
72
  <header>
57
- <h1>Managed jobs</h1>
73
+ <h1>SkyPilot managed jobs</h1>
58
74
  <p class="text-muted mt-4" id="last-updated"></p>
59
75
  <div class="form-check form-switch">
60
76
  <input class="form-check-input" type="checkbox" id="refresh-toggle" checked>
61
77
  <label class="form-check-label" for="refresh-toggle">Auto-refresh (every 30s)</label>
62
78
  </div>
79
+ <div class="filter-controls">
80
+ <span class="fw-medium fs-6">Filter by status:</span>
81
+ <select class="form-select" id="status-filter" style="width: auto;">
82
+ <option value="">All statuses</option>
83
+ {% for status in status_values %}
84
+ <option value="{{ status }}">{{ status }}</option>
85
+ {% endfor %}
86
+ </select>
87
+ </div>
63
88
  </header>
64
89
 
65
90
  <table class="table table-hover table-hover-selected fixed-header-table" id="jobs-table">
@@ -204,17 +229,25 @@
204
229
  </script>
205
230
  <script>
206
231
  function filterStatus(status) {
207
- var rows = document.querySelectorAll("#spot-jobs-table tbody tr");
208
- rows.forEach(function (row) {
209
- var statusCell = row.querySelector("td:nth-child(9)");
232
+ var rows = document.querySelectorAll("#jobs-table tbody tr");
233
+ rows.forEach(function(row) {
234
+ var statusCell = row.querySelector("td:nth-child(10)"); // Status is in the 10th column
235
+ var statusText = statusCell.textContent.trim().split(' ')[0]; // Get first word of status
210
236
 
211
- if (status === '' || statusCell.textContent === status) {
237
+ if (status === '' || statusText === status) {
212
238
  row.style.display = "";
213
239
  } else {
214
240
  row.style.display = "none";
215
241
  }
216
242
  });
217
243
  }
244
+
245
+ // Add event listener for the status filter
246
+ document.addEventListener("DOMContentLoaded", function() {
247
+ document.getElementById("status-filter").addEventListener("change", function() {
248
+ filterStatus(this.value);
249
+ });
250
+ });
218
251
  </script>
219
252
 
220
253
  </body>
@@ -122,6 +122,15 @@ available_node_types:
122
122
  - path: /etc/apt/apt.conf.d/10cloudinit-disable
123
123
  content: |
124
124
  APT::Periodic::Enable "0";
125
+ - path: /etc/apt/apt.conf.d/52unattended-upgrades-local
126
+ content: |
127
+ Unattended-Upgrade::DevRelease "false";
128
+ Unattended-Upgrade::Allowed-Origins {};
129
+ bootcmd:
130
+ - systemctl stop apt-daily.timer apt-daily-upgrade.timer unattended-upgrades.service
131
+ - systemctl disable apt-daily.timer apt-daily-upgrade.timer unattended-upgrades.service
132
+ - systemctl mask apt-daily.service apt-daily-upgrade.service unattended-upgrades.service
133
+ - systemctl daemon-reload
125
134
  TagSpecifications:
126
135
  - ResourceType: instance
127
136
  Tags:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241103
3
+ Version: 1.0.0.dev20241105
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -1,4 +1,4 @@
1
- sky/__init__.py,sha256=nBXtc3ubXGSUD2bIPeP83PN_AmpHMuamC01nE-Lp04s,5882
1
+ sky/__init__.py,sha256=KPG1pZjMsW9mwIrklMgLfKnzG4EXAac9U_tEhB9VUrE,5882
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
3
  sky/authentication.py,sha256=pAdCT60OxxiXI9KXDyP2lQ9u9vMc6aMtq5Xi2h_hbdw,20984
4
4
  sky/check.py,sha256=D3Y3saIFAYVvPxuBHnVgJEO0fUVDxgjwuMBaO-D778k,9472
@@ -40,8 +40,8 @@ sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
41
41
  sky/benchmark/benchmark_utils.py,sha256=eb-i6zYoo-Zkod-T9qtCu1FcYLw--Yyos1SyibUPZNE,26194
42
42
  sky/clouds/__init__.py,sha256=WuNIJEnZmBO72tU5awgaaL3rdvFRSkgaYNNeuY68dXo,1356
43
- sky/clouds/aws.py,sha256=dVZ8auaa2z2Ifl9iiRT06IeEFaNtZhANKtHVLT6Gcno,49474
44
- sky/clouds/azure.py,sha256=ixw5jCnnMxDLj0hpArljVzq88EKOrqRxk9xm5N9u-mc,30576
43
+ sky/clouds/aws.py,sha256=2STW4eaCEtxre96yVagUcewNHiYGmxHKITNEQvgBmww,49539
44
+ sky/clouds/azure.py,sha256=38eUcB1_lt5FvDWo-G_pKIIsT1c_bCU2AifEYo7KX9Y,30756
45
45
  sky/clouds/cloud.py,sha256=A5F4a71ciPyljWEs6vT-4RmdGT-AE9NkhS8gJ4Vgi_I,35165
46
46
  sky/clouds/cloud_registry.py,sha256=oLoYFjm_SDTgdHokY7b6A5Utq80HXRQNxV0fLjDdVsQ,2361
47
47
  sky/clouds/cudo.py,sha256=UiY273Sln7VOYDYx93yWiWH_RLlOKZ2cm7mA31ld4A8,13094
@@ -100,9 +100,9 @@ sky/jobs/core.py,sha256=w7PancHi8_-afLKZQ3HHMD1sEDoepm1vEMxyDlXdo64,17155
100
100
  sky/jobs/recovery_strategy.py,sha256=FpPK6e2PT61cZPDUJqIfo6g53uSRTBh7dOTbfR1DLVE,26672
101
101
  sky/jobs/state.py,sha256=exN6BdJlLBzFTccJCSHN4dNjVeYFgTgqgxOaHwLw2IQ,24307
102
102
  sky/jobs/utils.py,sha256=pF4Kyl4v1M_Bmm2jIRlXGTSdII5BJ3f4qwex_oCFgBk,37742
103
- sky/jobs/dashboard/dashboard.py,sha256=HFShuaxKir97QTeK2x37h6bsY6ncaFaNEg1USZqJPdc,3050
103
+ sky/jobs/dashboard/dashboard.py,sha256=FXVQAWjAuQQTfAGlTCD-Xb9LckC5I4NhGwiBZy8Avo8,3186
104
104
  sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
105
- sky/jobs/dashboard/templates/index.html,sha256=DBKMYEkkJ6sgLYod9ro7drgL8Y_neDsCx_WbwhWDsWM,9837
105
+ sky/jobs/dashboard/templates/index.html,sha256=su1tqgcsXNl1lGl9hfIR6ig1f531OO57x1Tc2mNDK7U,11139
106
106
  sky/provision/__init__.py,sha256=UhYsGRribEyK1--PPT0Dom9051jlpdn8UCNhO8qpPOc,6262
107
107
  sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
108
108
  sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
@@ -218,7 +218,7 @@ sky/skylet/ray_patches/log_monitor.py.patch,sha256=CPoh3U_ogOHrkMOK7jaIRnwdzxjBT
218
218
  sky/skylet/ray_patches/resource_demand_scheduler.py.patch,sha256=AVV-Hw-Rxw16aFm4VsyzayX1QOvwmQuM79iVdSjkSl4,658
219
219
  sky/skylet/ray_patches/updater.py.patch,sha256=ZNMGVYICPBB44jLbEx2KvCgIY7BWYdDv3-2b2HJWmAQ,289
220
220
  sky/skylet/ray_patches/worker.py.patch,sha256=_OBhibdr3xOy5Qje6Tt8D1eQVm_msi50TJbCJmOTxVU,565
221
- sky/templates/aws-ray.yml.j2,sha256=K0rAuyf1XC_GPFp1BR9df42-Be12A6T2UF0BllVSpYg,8005
221
+ sky/templates/aws-ray.yml.j2,sha256=fJUwkgXwkuackZI3UD7Fum4iJpkZttl6Jwy3MtYqL1I,8547
222
222
  sky/templates/azure-ray.yml.j2,sha256=uUneIfT5vTLUCvrZXiv2dsd3gFqLH2FK632oBruOO_k,6237
223
223
  sky/templates/cudo-ray.yml.j2,sha256=SEHVY57iBauCOE2HYJtYVFEKlriAkdwQu_p86a1n_bA,3548
224
224
  sky/templates/fluidstack-ray.yml.j2,sha256=t8TCULgiErCZdtFmBZVsA8ZdcqR7ccwsmQhuDFTBEAU,3541
@@ -274,9 +274,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7Z
274
274
  sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
275
275
  sky/utils/kubernetes/rsync_helper.sh,sha256=hyYDaYSNxYaNvzUQBzC8AidB7nDeojizjkzc_CTxycY,1077
276
276
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=RFLJ3k7MR5UN4SKHykQ0lV9SgXumoULpKYIAt1vh-HU,6560
277
- skypilot_nightly-1.0.0.dev20241103.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
278
- skypilot_nightly-1.0.0.dev20241103.dist-info/METADATA,sha256=AgcbkZ5EGiJRw2TnR0vmtqgCNBvgu1wMNcY3B4OBucc,19708
279
- skypilot_nightly-1.0.0.dev20241103.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
280
- skypilot_nightly-1.0.0.dev20241103.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
281
- skypilot_nightly-1.0.0.dev20241103.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
282
- skypilot_nightly-1.0.0.dev20241103.dist-info/RECORD,,
277
+ skypilot_nightly-1.0.0.dev20241105.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
278
+ skypilot_nightly-1.0.0.dev20241105.dist-info/METADATA,sha256=9ZfrVo53ijjnGcFaUYwHlYlHq2Hy7NlHs715qguqkSU,19708
279
+ skypilot_nightly-1.0.0.dev20241105.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
280
+ skypilot_nightly-1.0.0.dev20241105.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
281
+ skypilot_nightly-1.0.0.dev20241105.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
282
+ skypilot_nightly-1.0.0.dev20241105.dist-info/RECORD,,