Skip to content

RFE-3935: Add non-scalable image warning when scaling workloads#16436

Open
swshende-cmd wants to merge 4 commits into
openshift:mainfrom
swshende-cmd:RFE-3935
Open

RFE-3935: Add non-scalable image warning when scaling workloads#16436
swshende-cmd wants to merge 4 commits into
openshift:mainfrom
swshende-cmd:RFE-3935

Conversation

@swshende-cmd
Copy link
Copy Markdown

@swshende-cmd swshende-cmd commented May 12, 2026

Summary

  • Adds a warning when users attempt to scale a workload beyond one replica if the container image has the io.openshift.non-scalable=true label in its metadata
  • Warning appears as an inline alert in the "Edit Pod count" modal and as a tooltip on the PodRing scale-up button
  • Implements a useNonScalableImageCheck hook that resolves ImageStreamTag references from Deployment trigger annotations or DeploymentConfig ImageChange triggers, fetches the IST, and checks image.dockerImageMetadata.Config.Labels for the non-scalable label

JIRA

RFE-3935

Changes

File Change
frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts New — Hook to check for io.openshift.non-scalable label on an ImageStreamTag
frontend/public/components/modals/configure-count-modal.tsx Inline warning alert when scaling non-scalable images above 1 replica
frontend/packages/console-shared/src/components/pod/PodRing.tsx Tooltip on scale-up button for non-scalable images
frontend/public/locales/en/public.json i18n strings for modal warning
frontend/packages/console-shared/locales/en/console-shared.json i18n strings for PodRing tooltip
frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts New — 7 unit tests for the hook
frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx New — 4 unit tests for the modal warning

Screenshots / Recordings

To be added by author

Test plan

  • Warning appears in "Edit Pod count" modal when scaling non-scalable image above 1 replica
  • Tooltip appears on PodRing scale-up arrow for non-scalable images
  • No warning for regular (scalable) images
  • No warning for Deployments without ImageStream triggers
  • No warning for Job parallelism path
  • Unit tests pass: yarn test packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts (7 tests)
  • Unit tests pass: yarn test public/components/modals/__tests__/configure-count-modal.spec.tsx (4 tests)

Made with Cursor

Summary by CodeRabbit

  • New Features

    • Added detection and user-facing warnings for images marked non-scalable; warnings appear when increasing pod count and when editing replica count above one.
  • Localization

    • Added localized warning strings explaining non-scalable image constraints.
  • Tests

    • Added unit tests covering non-scalable image detection and warning display in relevant UIs.

Warn users when scaling a workload beyond one replica if its container
image has the io.openshift.non-scalable=true label. The warning appears
as an inline alert in the Edit Pod count modal and as a tooltip on the
PodRing scale-up button.

Adds a useNonScalableImageCheck hook that resolves ImageStreamTag
references from Deployment trigger annotations or DeploymentConfig
ImageChange triggers, fetches the IST, and inspects
image.dockerImageMetadata.Config.Labels for the non-scalable label.

Co-authored-by: Cursor <cursoragent@cursor.com>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 12, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 12, 2026

@swshende-cmd: This pull request references RFE-3935 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the feature request to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Adds a warning when users attempt to scale a workload beyond one replica if the container image has the io.openshift.non-scalable=true label in its metadata
  • Warning appears as an inline alert in the "Edit Pod count" modal and as a tooltip on the PodRing scale-up button
  • Implements a useNonScalableImageCheck hook that resolves ImageStreamTag references from Deployment trigger annotations or DeploymentConfig ImageChange triggers, fetches the IST, and checks image.dockerImageMetadata.Config.Labels for the non-scalable label

JIRA

RFE-3935

Changes

File Change
frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts New — Hook to check for io.openshift.non-scalable label on an ImageStreamTag
frontend/public/components/modals/configure-count-modal.tsx Inline warning alert when scaling non-scalable images above 1 replica
frontend/packages/console-shared/src/components/pod/PodRing.tsx Tooltip on scale-up button for non-scalable images
frontend/public/locales/en/public.json i18n strings for modal warning
frontend/packages/console-shared/locales/en/console-shared.json i18n strings for PodRing tooltip
frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts New — 7 unit tests for the hook
frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx New — 4 unit tests for the modal warning

Screenshots / Recordings

To be added by author

Test plan

  • Warning appears in "Edit Pod count" modal when scaling non-scalable image above 1 replica
  • Tooltip appears on PodRing scale-up arrow for non-scalable images
  • No warning for regular (scalable) images
  • No warning for Deployments without ImageStream triggers
  • No warning for Job parallelism path
  • Unit tests pass: yarn test packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts (7 tests)
  • Unit tests pass: yarn test public/components/modals/__tests__/configure-count-modal.spec.tsx (4 tests)

Made with Cursor

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot requested review from jhadvig and spadgett May 12, 2026 16:08
@openshift-ci openshift-ci Bot added the component/core Related to console core functionality label May 12, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 12, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: swshende-cmd
Once this PR has been reviewed and has the lgtm label, please assign vojtechszocs for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added component/shared Related to console-shared kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels May 12, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 12, 2026

Hi @swshende-cmd. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0d4f2a0e-9dd9-4450-9da4-e3d364be8f58

📥 Commits

Reviewing files that changed from the base of the PR and between d3be8ba and 501feaf.

📒 Files selected for processing (2)
  • frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts
  • frontend/public/locales/en/public.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts

Walkthrough

Adds a hook to detect ImageStreamTags labeled io.openshift.non-scalable, surfaces warnings in PodRing and ConfigureCountModal when scaling beyond one replica, includes tests, and updates English locale strings.

Changes

Non-scalable image detection and UI warnings

Layer / File(s) Summary
IST reference extraction & helpers
frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts
New helpers to derive an ImageStreamTag reference from a resource: parses DeploymentConfig.spec.triggers ImageChange triggers and image.openshift.io/triggers annotation JSON for Deployments.
Hook implementation
frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts
Adds exported useNonScalableImageCheck(resource) hook: memoizes IST ref, fetches the IST via k8sGet(ImageStreamTagModel, name, namespace), reads image.dockerImageMetadata.Config.Labels, sets { isNonScalable, loading }, handles string/boolean "true", catches errors, and guards updates with a cancellation flag.
PodRing integration
frontend/packages/console-shared/src/components/pod/PodRing.tsx
Calls useNonScalableImageCheck(obj); when user attempts to increase pod count (clickCount >= 1) and isNonScalable is true, wraps the increase button in a PatternFly Tooltip showing the non-scalable warning.
ConfigureCountModal integration
frontend/public/components/modals/configure-count-modal.tsx, frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx
Uses useNonScalableImageCheck inside the modal; when editing /spec/replicas and entered value > 1 with isNonScalable, renders an inline Alert with translated copy. Tests mock the hook and validate warning visibility across replica and path scenarios.
Unit tests for the hook
frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts
New Jest suite covering: DC triggers and annotation parsing, IST label values as string or boolean, no-image-trigger paths (no k8sGet), error handling, and loading state transitions.
Locale additions
frontend/packages/console-shared/locales/en/console-shared.json, frontend/public/locales/en/public.json
Adds English strings for the non-scalable title and explanatory message; adjusts JSON tail in public.json to update final entries.
sequenceDiagram
    participant UI as UI (PodRing / Modal)
    participant Hook as useNonScalableImageCheck
    participant API as kube API / k8sGet
    participant IST as ImageStreamTag

    UI->>Hook: provide resource
    Hook->>Hook: parse triggers/annotation -> IST ref?
    alt IST ref found
        Hook->>API: k8sGet(ImageStreamTag)
        API->>IST: fetch IST
        IST-->>API: IST data (includes dockerImageMetadata.Config.Labels)
        API-->>Hook: IST payload
        Hook->>Hook: inspect label io.openshift.non-scalable (true/'true')
        Hook-->>UI: {isNonScalable: true, loading:false}
        UI->>UI: show tooltip/alert when user increases replicas >1
    else no IST ref or error
        Hook-->>UI: {isNonScalable:false, loading:false}
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding non-scalable image warnings when scaling workloads, directly matching the changeset's core functionality.
Description check ✅ Passed The description provides comprehensive details including summary, JIRA reference, file-by-file changes, and test plan, though screenshots remain incomplete.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed Custom check targets Ginkgo tests (.go files with Describe/It). PR contains only Jest tests (.spec.ts/.spec.tsx). Ginkgo is a Go test framework; this is a frontend feature PR. Check is not applicable.
Test Structure And Quality ✅ Passed Custom check requires reviewing Ginkgo test code, but this PR contains only Jest tests. No Ginkgo tests present, so check is not applicable.
Microshift Test Compatibility ✅ Passed PR contains no Ginkgo e2e tests. All changes are frontend TypeScript/React code with Jest unit tests. The MicroShift compatibility check for Ginkgo e2e tests does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No Ginkgo e2e tests present in this PR. All test files are Jest unit tests (TypeScript), not Go-based e2e tests. Check not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed PR contains only frontend/UI changes (React hooks, components, tests, i18n). No deployment manifests, operator code, controllers, or scheduling constraints are introduced. Only user warnings.
Ote Binary Stdout Contract ✅ Passed This PR only modifies frontend TypeScript/JSON files. It contains no Go code, test binaries, or process-level code subject to OTE Binary Stdout Contract requirements.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR contains no Ginkgo e2e tests. All tests are Jest unit tests for frontend React components in TypeScript. The custom check for IPv6/disconnected compatibility targets Go-based Ginkgo e2e tests only.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts`:
- Line 71: The effect is unstable because it depends on the istRef object
reference (const istRef = useMemo(() => getISTReference(resource), [resource]))
which changes when resource refreshes even if name/namespace are identical;
update the effect dependency to use stable primitives instead (e.g. istRef.name
and istRef.namespace or a derived string key) so the k8sGet call only runs when
the IST identity actually changes; locate getISTReference/istRef and the effect
that calls k8sGet and replace the istRef object dependency with those stable
properties or a memoized string.
- Around line 20-21: The current logic in useNonScalableImageCheck.ts only
examines the first annotation trigger and accepts any DeploymentConfig
ImageChange trigger without verifying its kind, which can mask a valid
ImageStreamTag (IST) trigger elsewhere; update the code that finds
imageChangeTrigger (the triggers.find call) to instead iterate all triggers and
select one whose type === 'ImageChange' and whose imageChangeParams.from.kind
=== 'ImageStreamTag' (or validate kind before using .name), and likewise update
the annotation-trigger handling to scan all annotation entries (not just the
first) to detect any IST annotations before resolving the IST; ensure you
reference and modify the imageChangeTrigger selection and the annotation parsing
logic so only true IST triggers are treated as valid.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 606ab21e-dc84-48b0-8c21-1d33ecbb5d2b

📥 Commits

Reviewing files that changed from the base of the PR and between 9d4903e and d3be8ba.

📒 Files selected for processing (7)
  • frontend/packages/console-shared/locales/en/console-shared.json
  • frontend/packages/console-shared/src/components/pod/PodRing.tsx
  • frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts
  • frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts
  • frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx
  • frontend/public/components/modals/configure-count-modal.tsx
  • frontend/public/locales/en/public.json
📜 Review details
🔇 Additional comments (6)
frontend/public/locales/en/public.json (1)

1756-1757: LGTM!

frontend/packages/console-shared/locales/en/console-shared.json (1)

234-234: LGTM!

frontend/public/components/modals/configure-count-modal.tsx (1)

46-47: LGTM!

Also applies to: 101-112

frontend/packages/console-shared/src/components/pod/PodRing.tsx (1)

3-3: LGTM!

Also applies to: 10-10, 86-86, 131-157

frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx (1)

1-107: LGTM!

frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts (1)

1-147: LGTM!

Comment thread frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts Outdated
@swshende-cmd
Copy link
Copy Markdown
Author

/verified by me

Please find below screen prints showing

  1. Tooltip appears on PodRing scale-up arrow for non-scalable images
  2. Warning appears in "Edit Pod count" modal when scaling non-scalable image above 1
ToolTip_message_while_Hovering_onArrow Warning_appears_in_ Edit_Pod_count _modal

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@swshende-cmd: Jira verification commands are restricted to collaborators for this repo.

Details

In response to this:

/verified by me

Please find below screen prints showing

  1. Tooltip appears on PodRing scale-up arrow for non-scalable images
  2. Warning appears in "Edit Pod count" modal when scaling non-scalable image above 1
ToolTip_message_while_Hovering_onArrow Warning_appears_in_ Edit_Pod_count _modal

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@dpateriya
Copy link
Copy Markdown

/verified by @swshende-cmd

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label May 12, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@dpateriya: This PR has been marked as verified by @swshende-cmd.

Details

In response to this:

/verified by @swshende-cmd

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

- Validate ImageStreamTag kind in DeploymentConfig triggers before resolving
- Scan all annotation triggers instead of only the first one
- Use stable primitives (name, namespace) as effect dependencies

Co-authored-by: Cursor <cursoragent@cursor.com>
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label May 12, 2026
@dpateriya
Copy link
Copy Markdown

/ok-to-test

@openshift-ci openshift-ci Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels May 12, 2026
Moves new i18n keys to the parser-determined position and removes
orphaned keys no longer referenced after the modal rewrite on main.

Co-authored-by: Cursor <cursoragent@cursor.com>
@swshende-cmd
Copy link
Copy Markdown
Author

/retest

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 13, 2026

@swshende-cmd: This pull request references RFE-3935 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the feature request to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Adds a warning when users attempt to scale a workload beyond one replica if the container image has the io.openshift.non-scalable=true label in its metadata
  • Warning appears as an inline alert in the "Edit Pod count" modal and as a tooltip on the PodRing scale-up button
  • Implements a useNonScalableImageCheck hook that resolves ImageStreamTag references from Deployment trigger annotations or DeploymentConfig ImageChange triggers, fetches the IST, and checks image.dockerImageMetadata.Config.Labels for the non-scalable label

JIRA

RFE-3935

Changes

File Change
frontend/packages/console-shared/src/hooks/useNonScalableImageCheck.ts New — Hook to check for io.openshift.non-scalable label on an ImageStreamTag
frontend/public/components/modals/configure-count-modal.tsx Inline warning alert when scaling non-scalable images above 1 replica
frontend/packages/console-shared/src/components/pod/PodRing.tsx Tooltip on scale-up button for non-scalable images
frontend/public/locales/en/public.json i18n strings for modal warning
frontend/packages/console-shared/locales/en/console-shared.json i18n strings for PodRing tooltip
frontend/packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts New — 7 unit tests for the hook
frontend/public/components/modals/__tests__/configure-count-modal.spec.tsx New — 4 unit tests for the modal warning

Screenshots / Recordings

To be added by author

Test plan

  • Warning appears in "Edit Pod count" modal when scaling non-scalable image above 1 replica
  • Tooltip appears on PodRing scale-up arrow for non-scalable images
  • No warning for regular (scalable) images
  • No warning for Deployments without ImageStream triggers
  • No warning for Job parallelism path
  • Unit tests pass: yarn test packages/console-shared/src/hooks/__tests__/useNonScalableImageCheck.spec.ts (7 tests)
  • Unit tests pass: yarn test public/components/modals/__tests__/configure-count-modal.spec.tsx (4 tests)

Made with Cursor

Summary by CodeRabbit

  • New Features

  • Added detection and user-facing warnings for images marked non-scalable; warnings appear when increasing pod count and when editing replica count above one.

  • Localization

  • Added localized warning strings explaining non-scalable image constraints.

  • Tests

  • Added unit tests covering non-scalable image detection and warning display in relevant UIs.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Move Non-scalable image keys to parser-determined position (after
"Please enter a URL." at line 874) and restore all existing keys.
Remove trailing newline from console-shared.json to match parser output.

Co-authored-by: Cursor <cursoragent@cursor.com>
@swshende-cmd
Copy link
Copy Markdown
Author

/retest

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 13, 2026

@swshende-cmd: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@dpateriya
Copy link
Copy Markdown

/verified by @swshende-cmd

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label May 14, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@dpateriya: This PR has been marked as verified by @swshende-cmd.

Details

In response to this:

/verified by @swshende-cmd

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/core Related to console core functionality component/shared Related to console-shared jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated ok-to-test Indicates a non-member PR verified by an org member that is safe to test. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants