|
44 | 44 |
|
45 | 45 | func TestJobStore(t *testing.T) {
|
46 | 46 | var trueValue = true
|
| 47 | + var falseValue = false |
47 | 48 |
|
48 | 49 | // Fixed metadata on type and help text. We prepend this to every expected
|
49 | 50 | // output so we only have to modify a single place when doing adjustments.
|
@@ -77,7 +78,10 @@ func TestJobStore(t *testing.T) {
|
77 | 78 | # HELP kube_job_status_start_time [STABLE] StartTime represents time when the job was acknowledged by the Job Manager.
|
78 | 79 | # TYPE kube_job_status_start_time gauge
|
79 | 80 | # HELP kube_job_status_succeeded [STABLE] The number of pods which reached Phase Succeeded.
|
80 |
| - # TYPE kube_job_status_succeeded gauge` |
| 81 | + # TYPE kube_job_status_succeeded gauge |
| 82 | + # HELP kube_job_status_suspended The number of pods which reached Phase Suspended. |
| 83 | + # TYPE kube_job_status_suspended gauge |
| 84 | + ` |
81 | 85 |
|
82 | 86 | cases := []generateMetricsTestCase{
|
83 | 87 | {
|
@@ -272,6 +276,74 @@ func TestJobStore(t *testing.T) {
|
272 | 276 | kube_job_status_failed{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 0
|
273 | 277 | kube_job_status_start_time{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09
|
274 | 278 | kube_job_status_succeeded{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1
|
| 279 | +`, |
| 280 | + }, |
| 281 | + { |
| 282 | + Obj: &v1batch.Job{ |
| 283 | + ObjectMeta: metav1.ObjectMeta{ |
| 284 | + Name: "SuspendedNoActiveDeadlineSeconds", |
| 285 | + Namespace: "ns1", |
| 286 | + Generation: 1, |
| 287 | + }, |
| 288 | + Status: v1batch.JobStatus{ |
| 289 | + Active: 0, |
| 290 | + Failed: 0, |
| 291 | + Succeeded: 0, |
| 292 | + StartTime: &metav1.Time{Time: SuccessfulJob2StartTime}, |
| 293 | + Conditions: []v1batch.JobCondition{ |
| 294 | + {Type: v1batch.JobSuspended, Status: v1.ConditionTrue}, |
| 295 | + }, |
| 296 | + }, |
| 297 | + Spec: v1batch.JobSpec{ |
| 298 | + Suspend: &trueValue, |
| 299 | + Parallelism: &Parallelism1, |
| 300 | + Completions: &Completions1, |
| 301 | + }, |
| 302 | + }, |
| 303 | + Want: metadata + ` |
| 304 | + kube_job_owner{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1",owner_is_controller="",owner_kind="",owner_name=""} 1 |
| 305 | + kube_job_info{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 306 | + kube_job_spec_completions{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 307 | + kube_job_spec_parallelism{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 308 | + kube_job_status_active{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 309 | + kube_job_status_failed{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 310 | + kube_job_status_start_time{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09 |
| 311 | + kube_job_status_succeeded{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 312 | + kube_job_status_suspended{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 313 | +`, |
| 314 | + }, |
| 315 | + { |
| 316 | + Obj: &v1batch.Job{ |
| 317 | + ObjectMeta: metav1.ObjectMeta{ |
| 318 | + Name: "UnsuspendedNoActiveDeadlineSeconds", |
| 319 | + Namespace: "ns1", |
| 320 | + Generation: 1, |
| 321 | + }, |
| 322 | + Status: v1batch.JobStatus{ |
| 323 | + Active: 0, |
| 324 | + Failed: 0, |
| 325 | + Succeeded: 0, |
| 326 | + StartTime: &metav1.Time{Time: SuccessfulJob2StartTime}, |
| 327 | + Conditions: []v1batch.JobCondition{ |
| 328 | + {Type: v1batch.JobSuspended, Status: v1.ConditionFalse}, |
| 329 | + }, |
| 330 | + }, |
| 331 | + Spec: v1batch.JobSpec{ |
| 332 | + Suspend: &falseValue, |
| 333 | + Parallelism: &Parallelism1, |
| 334 | + Completions: &Completions1, |
| 335 | + }, |
| 336 | + }, |
| 337 | + Want: metadata + ` |
| 338 | + kube_job_owner{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1",owner_is_controller="",owner_kind="",owner_name=""} 1 |
| 339 | + kube_job_info{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 340 | + kube_job_spec_completions{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 341 | + kube_job_spec_parallelism{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1 |
| 342 | + kube_job_status_active{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 343 | + kube_job_status_failed{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 344 | + kube_job_status_start_time{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09 |
| 345 | + kube_job_status_succeeded{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
| 346 | + kube_job_status_suspended{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0 |
275 | 347 | `,
|
276 | 348 | },
|
277 | 349 | }
|
|
0 commit comments