diff --git a/src/app/base/components/StatusBar/StatusBar.test.tsx b/src/app/base/components/StatusBar/StatusBar.test.tsx index a2748e68ef..7b00dac434 100644 --- a/src/app/base/components/StatusBar/StatusBar.test.tsx +++ b/src/app/base/components/StatusBar/StatusBar.test.tsx @@ -35,22 +35,6 @@ afterEach(() => { Object.assign(import.meta.env, { ...originalEnv }); }); -it("can show if the MAAS is a snap installation", () => { - state.general.installType.data = "snap"; - - renderWithProviders(, { state }); - - expect(screen.getByText(/(snap)/i)).toBeInTheDocument(); -}); - -it("can show if the MAAS is a deb installation", () => { - state.general.installType.data = "deb"; - - renderWithProviders(, { state }); - - expect(screen.getByText(/(deb)/i)).toBeInTheDocument(); -}); - it("can show if a machine is currently commissioning", () => { state.machine.items = [ factory.machineDetails({ diff --git a/src/app/base/components/StatusBar/StatusBar.tsx b/src/app/base/components/StatusBar/StatusBar.tsx index 58145a9143..28d9d2539c 100644 --- a/src/app/base/components/StatusBar/StatusBar.tsx +++ b/src/app/base/components/StatusBar/StatusBar.tsx @@ -26,11 +26,7 @@ import { isRack, isRegionAndRack, } from "@/app/store/controller/utils"; -import { generalActions } from "@/app/store/general"; -import { - installType as installTypeSelectors, - version as versionSelectors, -} from "@/app/store/general/selectors"; +import { version as versionSelectors } from "@/app/store/general/selectors"; import machineSelectors from "@/app/store/machine/selectors"; import type { MachineDetails } from "@/app/store/machine/types"; import { @@ -120,7 +116,6 @@ export const StatusBar = (): React.ReactElement | null => { const maasName = useSelector(configSelectors.maasName); const allowUsabilla = useUsabilla(); const msmRunning = useSelector(msmSelectors.running); - const installType = useSelector(installTypeSelectors.get); const { toggleListView, notifications, countBySeverity, isListView } = useToastNotification(); @@ -146,7 +141,7 @@ export const StatusBar = (): React.ReactElement | null => { const hasNotifications = notifications.length > 0; - useFetchActions([msmActions.fetch, generalActions.fetchInstallType]); + useFetchActions([msmActions.fetch]); if (!(maasName && version)) { return null; @@ -189,9 +184,7 @@ export const StatusBar = (): React.ReactElement | null => {
{maasName} MAAS :  - - {version} ({installType}) - + {version}
diff --git a/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.test.tsx b/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.test.tsx index 754b691fb9..de713f56aa 100644 --- a/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.test.tsx +++ b/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.test.tsx @@ -1,10 +1,7 @@ import ControllerStatusCard, { Labels } from "./ControllerStatusCard"; import { controllerActions } from "@/app/store/controller"; -import { - ControllerInstallType, - ImageSyncStatus, -} from "@/app/store/controller/types"; +import { ImageSyncStatus } from "@/app/store/controller/types"; import { NodeType } from "@/app/store/types/node"; import * as factory from "@/testing/factories"; import { @@ -92,43 +89,10 @@ it("dispatches an action to stop polling images on unmount", () => { ); }); -it("renders correct version info for a deb install", async () => { - const controller = factory.controllerDetails({ - versions: factory.controllerVersions({ - current: factory.controllerVersionInfo({ version: "1.2.3" }), - install_type: ControllerInstallType.DEB, - origin: "ppa:some/ppa", - }), - }); - const state = factory.rootState({ - controller: factory.controllerState({ items: [controller] }), - }); - - renderWithProviders(, { - state, - }); - - await userEvent.hover( - screen.getByRole("button", { name: Labels.VersionDetails }) - ); - await waitFor(() => { - expect(screen.getByLabelText(Labels.Version).textContent).toBe( - "Version: 1.2.3" - ); - }); - - await waitFor(() => { - expect(screen.getByLabelText(Labels.Origin).textContent).toBe( - "Deb: ppa:some/ppa" - ); - }); -}); - it("renders correct version info for a snap install", async () => { const controller = factory.controllerDetails({ versions: factory.controllerVersions({ current: factory.controllerVersionInfo({ version: "1.2.3" }), - install_type: ControllerInstallType.SNAP, origin: "1.2/edge", }), }); @@ -157,11 +121,10 @@ it("renders correct version info for a snap install", async () => { }); }); -it("renders correct version info for an unknown install type", async () => { +it("renders fallback version info when the version is unknown", async () => { const controller = factory.controllerDetails({ versions: factory.controllerVersions({ current: factory.controllerVersionInfo({ version: "" }), - install_type: ControllerInstallType.UNKNOWN, origin: "nowhere", }), }); @@ -185,7 +148,7 @@ it("renders correct version info for an unknown install type", async () => { await waitFor(() => { expect( within(screen.getByRole("tooltip")).getByLabelText(Labels.Origin) - ).toHaveTextContent("Origin: nowhere"); + ).toHaveTextContent("Channel: nowhere"); }); }); diff --git a/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.tsx b/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.tsx index fd2f35ac93..5853e5b629 100644 --- a/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.tsx +++ b/src/app/base/components/node/OverviewCard/ControllerStatusCard/ControllerStatusCard.tsx @@ -8,10 +8,7 @@ import { useDispatch, useSelector } from "react-redux"; import TooltipButton from "@/app/base/components/TooltipButton"; import { controllerActions } from "@/app/store/controller"; import controllerSelectors from "@/app/store/controller/selectors"; -import { - ControllerInstallType, - ImageSyncStatus, -} from "@/app/store/controller/types"; +import { ImageSyncStatus } from "@/app/store/controller/types"; import type { ControllerVersions, ControllerDetails, @@ -81,18 +78,14 @@ const getImageSyncStatus = ( }; const getVersionDisplay = (versions: ControllerVersions) => { - const { current, install_type, origin } = versions; - const isDeb = install_type === ControllerInstallType.DEB; - const isSnap = install_type === ControllerInstallType.SNAP; + const { current, origin } = versions; return ( <> Version: {current.version || "Unknown (less than 2.3.0)"}
- - {isDeb ? "Deb" : isSnap ? "Channel" : "Origin"}: {origin || "Unknown"} - + Channel: {origin || "Unknown"} ); }; diff --git a/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.test.tsx b/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.test.tsx index 90f6672af9..bb957ca0d6 100644 --- a/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.test.tsx +++ b/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.test.tsx @@ -1,6 +1,5 @@ import { VersionColumn } from "./VersionColumn"; -import { ControllerInstallType } from "@/app/store/controller/types"; import * as factory from "@/testing/factories"; import { renderWithProviders, screen, userEvent } from "@/testing/utils"; @@ -33,17 +32,6 @@ describe("VersionColumn", () => { expect(screen.getByTestId("origin")).toHaveTextContent("latest/edge"); }); - it("can display the origin when it is a deb", async () => { - controller.versions = factory.controllerVersions({ - install_type: ControllerInstallType.DEB, - origin: "stable", - }); - renderWithProviders(); - expect(screen.getByTestId("origin")).toHaveTextContent(/Deb/); - await userEvent.click(screen.getByRole("button", { name: /information/i })); - expect(screen.getByRole("tooltip")).toHaveTextContent("stable"); - }); - it("can display a cohort tooltip", async () => { controller.versions = factory.controllerVersions({ snap_cohort: diff --git a/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.tsx b/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.tsx index 9e2d409376..9162aaadb6 100644 --- a/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.tsx +++ b/src/app/controllers/views/ControllerList/components/VersionColumn/VersionColumn.tsx @@ -22,7 +22,6 @@ export const VersionColumn = ({ } const origin = versions.origin || null; const cohortTooltip = cohortKey ? `Cohort key: \n${cohortKey}` : null; - const isDeb = versions.install_type === "deb"; return ( - - {!!origin && <>{isDeb ? "Deb" : origin} } - - {!!(cohortTooltip || isDeb) && ( - - )} + {!!origin && <>{origin} } + {!!cohortTooltip && } } /> diff --git a/src/app/images/constants.ts b/src/app/images/constants.ts index 0eddd4772e..78d1334641 100644 --- a/src/app/images/constants.ts +++ b/src/app/images/constants.ts @@ -5,10 +5,8 @@ export const MAAS_IO_URLS = { candidate: "http://images.maas.io/ephemeral-v3/candidate", } as const; -export const MAAS_IO_DEFAULT_KEYRING_FILE_PATHS = { - deb: "/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg", - snap: "/snap/maas/current/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg", -}; +export const MAAS_IO_DEFAULT_KEYRING_FILE_PATH = + "/snap/maas/current/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg"; export const MAAS_IO_DEFAULTS = { url: MAAS_IO_URLS.stable, diff --git a/src/app/settings/views/Images/Sources/components/AddSource/AddSource.test.tsx b/src/app/settings/views/Images/Sources/components/AddSource/AddSource.test.tsx index 33fcbea949..8e79e84c8a 100644 --- a/src/app/settings/views/Images/Sources/components/AddSource/AddSource.test.tsx +++ b/src/app/settings/views/Images/Sources/components/AddSource/AddSource.test.tsx @@ -1,9 +1,8 @@ import { expect, it } from "vitest"; -import { MAAS_IO_DEFAULT_KEYRING_FILE_PATHS } from "@/app/images/constants"; +import { MAAS_IO_DEFAULT_KEYRING_FILE_PATH } from "@/app/images/constants"; import AddSource from "@/app/settings/views/Images/Sources/components/AddSource/AddSource"; import { Labels } from "@/app/settings/views/Images/Sources/constants"; -import * as factory from "@/testing/factories"; import { imageSourceResolvers } from "@/testing/resolvers/imageSources"; import { userEvent, @@ -54,10 +53,10 @@ describe("AddSource", () => { it("clears the other field when switching between keyring types", async () => { renderWithProviders(); - // The default keyring filename is the snap path when no install type is set + // The default keyring filename is the snap path expect( screen.getByRole("textbox", { name: Labels.KeyringFilename }) - ).toHaveValue(MAAS_IO_DEFAULT_KEYRING_FILE_PATHS.snap); + ).toHaveValue(MAAS_IO_DEFAULT_KEYRING_FILE_PATH); // Switch to keyring_data const select = screen.getByRole("combobox"); @@ -75,30 +74,12 @@ describe("AddSource", () => { expect(screen.getByRole("textbox", { name: Labels.Url })).toHaveValue(""); }); - it("pre-populates custom source with correct default keyring based on install type", async () => { - const state = factory.rootState({ - general: factory.generalState({ - installType: factory.installTypeState({ data: "deb" }), - }), - }); - // Test with deb install type - const { rerender } = renderWithProviders(, { - state, - }); - - // Verify deb default keyring is shown - expect( - screen.getByRole("textbox", { name: Labels.KeyringFilename }) - ).toHaveValue(MAAS_IO_DEFAULT_KEYRING_FILE_PATHS.deb); - - // Test with snap install type - state.general.installType = factory.installTypeState({ data: "snap" }); - rerender(, { state }); + it("pre-populates custom source with the snap default keyring", async () => { + renderWithProviders(); - // Verify snap default keyring is shown expect( screen.getByRole("textbox", { name: Labels.KeyringFilename }) - ).toHaveValue(MAAS_IO_DEFAULT_KEYRING_FILE_PATHS.snap); + ).toHaveValue(MAAS_IO_DEFAULT_KEYRING_FILE_PATH); }); it("does not display keyring fields when unsigned keyring type is selected", async () => { diff --git a/src/app/settings/views/Images/Sources/components/AddSource/AddSource.tsx b/src/app/settings/views/Images/Sources/components/AddSource/AddSource.tsx index d4b4bfc1e3..73700144f1 100644 --- a/src/app/settings/views/Images/Sources/components/AddSource/AddSource.tsx +++ b/src/app/settings/views/Images/Sources/components/AddSource/AddSource.tsx @@ -1,10 +1,9 @@ import type { ReactElement } from "react"; -import React, { useEffect, useState } from "react"; +import React, { useState } from "react"; import { useSidePanel } from "@canonical/maas-react-components"; import { Select, Textarea } from "@canonical/react-components"; import type { FormikContextType } from "formik"; -import { useDispatch, useSelector } from "react-redux"; import * as Yup from "yup"; import { @@ -19,10 +18,8 @@ import type { import FormikField from "@/app/base/components/FormikField"; import { FormikFieldChangeError } from "@/app/base/components/FormikField/FormikField"; import FormikForm from "@/app/base/components/FormikForm"; -import { MAAS_IO_DEFAULT_KEYRING_FILE_PATHS } from "@/app/images/constants"; +import { MAAS_IO_DEFAULT_KEYRING_FILE_PATH } from "@/app/images/constants"; import { Labels } from "@/app/settings/views/Images/Sources/constants"; -import { generalActions } from "@/app/store/general"; -import { installType } from "@/app/store/general/selectors"; export const SourceSchema = Yup.object() .shape({ @@ -49,7 +46,6 @@ export type SourceValues = BootSourceCreateRequest & { }; const AddSource = (): ReactElement => { - const dispatch = useDispatch(); const { closeSidePanel } = useSidePanel(); const [isValidated, setIsValidated] = useState(false); const [lastValidatedValues, setLastValidatedValues] = @@ -58,12 +54,6 @@ const AddSource = (): ReactElement => { const createSource = useCreateImageSource(); const fetchImageSource = useFetchImageSource(); - const installTypeData = useSelector(installType.get); - - useEffect(() => { - dispatch(generalActions.fetchInstallType()); - }); - const onValidate = async (values: SourceValues) => { if (!isValidated) { try { @@ -127,10 +117,7 @@ const AddSource = (): ReactElement => { name: "", url: "", keyring_type: "keyring_filename", - keyring_filename: - installTypeData === "deb" - ? MAAS_IO_DEFAULT_KEYRING_FILE_PATHS.deb - : MAAS_IO_DEFAULT_KEYRING_FILE_PATHS.snap, + keyring_filename: MAAS_IO_DEFAULT_KEYRING_FILE_PATH, keyring_data: "", skip_keyring_verification: undefined, priority: 10, diff --git a/src/app/store/controller/types/base.ts b/src/app/store/controller/types/base.ts index 9daa2015c3..724acfa632 100644 --- a/src/app/store/controller/types/base.ts +++ b/src/app/store/controller/types/base.ts @@ -1,5 +1,4 @@ import type { - ControllerInstallType, ControllerMeta, ControllerVersionIssues, ImageSyncStatus, @@ -45,7 +44,6 @@ export type ControllerVersionInfo = { export type ControllerVersions = { current: ControllerVersionInfo; - install_type?: ControllerInstallType; origin: string; snap_cohort?: string; up_to_date: boolean; diff --git a/src/app/store/controller/types/enum.ts b/src/app/store/controller/types/enum.ts index c620bc5e9c..c3751c9956 100644 --- a/src/app/store/controller/types/enum.ts +++ b/src/app/store/controller/types/enum.ts @@ -1,9 +1,3 @@ -export enum ControllerInstallType { - UNKNOWN = "", - SNAP = "snap", - DEB = "deb", -} - export enum ControllerMeta { MODEL = "controller", PK = "system_id", diff --git a/src/app/store/controller/types/index.ts b/src/app/store/controller/types/index.ts index 832d2f537b..a65c889a29 100644 --- a/src/app/store/controller/types/index.ts +++ b/src/app/store/controller/types/index.ts @@ -13,7 +13,6 @@ export type { } from "./base"; export { - ControllerInstallType, ControllerMeta, ControllerVersionIssues, ImageSyncStatus, diff --git a/src/app/store/general/reducers.test.ts b/src/app/store/general/reducers.test.ts index c743dae5e1..277424b48f 100644 --- a/src/app/store/general/reducers.test.ts +++ b/src/app/store/general/reducers.test.ts @@ -29,12 +29,6 @@ describe("general reducer", () => { loaded: false, loading: false, }, - installType: { - data: "", - errors: null, - loaded: false, - loading: false, - }, generatedCertificate: { data: null, errors: null, diff --git a/src/app/store/general/selectors/index.ts b/src/app/store/general/selectors/index.ts index fd384dba1e..b82e9df764 100644 --- a/src/app/store/general/selectors/index.ts +++ b/src/app/store/general/selectors/index.ts @@ -4,7 +4,6 @@ export { default as componentsToDisable } from "./componentsToDisable"; export { default as defaultMinHweKernel } from "./defaultMinHweKernel"; export { default as generatedCertificate } from "./generatedCertificate"; export { default as hweKernels } from "./hweKernels"; -export { default as installType } from "./installType"; export { default as knownArchitectures } from "./knownArchitectures"; export { default as knownBootArchitectures } from "./knownBootArchitectures"; export { default as maasURL } from "./maasURL"; diff --git a/src/app/store/general/selectors/installType.ts b/src/app/store/general/selectors/installType.ts deleted file mode 100644 index a7fdee9b11..0000000000 --- a/src/app/store/general/selectors/installType.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { generateGeneralSelector } from "./utils"; - -const installType = generateGeneralSelector<"installType">("installType"); - -export default installType; diff --git a/src/app/store/general/slice.ts b/src/app/store/general/slice.ts index 51763108b9..3801f5e86c 100644 --- a/src/app/store/general/slice.ts +++ b/src/app/store/general/slice.ts @@ -60,7 +60,6 @@ const generalSlice = createSlice({ defaultMinHweKernel: generateInitialState(""), generatedCertificate: generateInitialState(null), hweKernels: generateInitialState([]), - installType: generateInitialState(""), knownArchitectures: generateInitialState([]), knownBootArchitectures: generateInitialState([]), maasURL: generateInitialState(""), @@ -106,10 +105,6 @@ const generalSlice = createSlice({ fetchHweKernelsStart: generateStartReducer("hweKernels"), fetchHweKernelsError: generateErrorReducer("hweKernels"), fetchHweKernelsSuccess: generateSuccessReducer("hweKernels"), - fetchInstallType: generatePrepareReducer("install_type"), - fetchInstallTypeStart: generateStartReducer("installType"), - fetchInstallTypeError: generateErrorReducer("installType"), - fetchInstallTypeSuccess: generateSuccessReducer("installType"), fetchKnownArchitectures: generatePrepareReducer("known_architectures"), fetchKnownArchitecturesStart: generateStartReducer("knownArchitectures"), fetchKnownArchitecturesError: generateErrorReducer("knownArchitectures"), diff --git a/src/app/store/general/types/base.ts b/src/app/store/general/types/base.ts index 0084b37a11..4e58b725a2 100644 --- a/src/app/store/general/types/base.ts +++ b/src/app/store/general/types/base.ts @@ -246,15 +246,6 @@ export type VersionState = { loading: boolean; }; -export type InstallType = string; - -export type InstallTypeState = { - errors: APIError; - data: InstallType; - loaded: boolean; - loading: boolean; -}; - export type MAASURLType = string; export type MAASURLState = { @@ -271,7 +262,6 @@ export type GeneralState = { defaultMinHweKernel: DefaultMinHweKernelState; generatedCertificate: GeneratedCertificateState; hweKernels: HWEKernelsState; - installType: InstallTypeState; knownArchitectures: KnownArchitecturesState; knownBootArchitectures: KnownBootArchitecturesState; maasURL: MAASURLState; diff --git a/src/app/store/general/types/index.ts b/src/app/store/general/types/index.ts index bbd12db4a6..a0b2e85f90 100644 --- a/src/app/store/general/types/index.ts +++ b/src/app/store/general/types/index.ts @@ -20,8 +20,6 @@ export type { GeneratedCertificateState, HWEKernel, HWEKernelsState, - InstallType, - InstallTypeState, KnownArchitecture, KnownArchitecturesState, KnownBootArchitecture, diff --git a/src/testing/factories/index.ts b/src/testing/factories/index.ts index 34ee736eb8..852f8ababe 100644 --- a/src/testing/factories/index.ts +++ b/src/testing/factories/index.ts @@ -121,7 +121,6 @@ export { generalState, generatedCertificateState, hweKernelsState, - installTypeState, ipRangeState, knownArchitecturesState, knownBootArchitecturesState, diff --git a/src/testing/factories/state.ts b/src/testing/factories/state.ts index b9340a4486..3d2665ca6a 100644 --- a/src/testing/factories/state.ts +++ b/src/testing/factories/state.ts @@ -37,7 +37,6 @@ import type { GeneralState, GeneratedCertificateState, HWEKernelsState, - InstallTypeState, KnownArchitecturesState, KnownBootArchitecturesState, MAASURLState, @@ -393,10 +392,6 @@ export const defaultMinHweKernelState = define({ data: "", }); -export const installTypeState = define({ - ...defaultGeneralState, -}); - export const generatedCertificateState = define({ ...defaultGeneralState, data: null, @@ -454,7 +449,6 @@ export const generalState = define({ defaultMinHweKernel: defaultMinHweKernelState, generatedCertificate: generatedCertificateState, hweKernels: hweKernelsState, - installType: installTypeState, knownArchitectures: knownArchitecturesState, knownBootArchitectures: knownBootArchitecturesState, maasURL: maasURLState, diff --git a/src/websocket-client.ts b/src/websocket-client.ts index f661e0e721..5f6628c60b 100644 --- a/src/websocket-client.ts +++ b/src/websocket-client.ts @@ -77,7 +77,6 @@ const WebSocketEndpoints = { "device_actions", "generate_client_certificate", "hwe_kernels", - "install_type", "known_architectures", "known_boot_architectures", "machine_actions",