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",