Skip to content

Commit

Permalink
Merge pull request #9502 from linode/release-v1.99.0-v1
Browse files Browse the repository at this point in the history
Release v1.99.0 - release → staging
  • Loading branch information
jaalah-akamai authored Aug 7, 2023
2 parents f2a41f1 + 8cf2498 commit 6c20e3b
Show file tree
Hide file tree
Showing 598 changed files with 9,802 additions and 11,725 deletions.
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
This changelog has been deprecated in favor individual changelogs for each package.

See changelogs for:
- [@linode/api-v4](https://github.com/linode/manager/packages/api-v4/CHANGELOG.md)
- [@linode/manager](https://github.com/linode/manager/packages/manager/CHANGELOG.md)
- [@linode/validation](https://github.com/linode/manager/packages/validation/CHANGELOG.md)
- [@linode/api-v4](https://github.com/linode/manager/blob/master/packages/api-v4/CHANGELOG.md)
- [@linode/manager](https://github.com/linode/manager/blob/master/packages/manager/CHANGELOG.md)
- [@linode/validation](https://github.com/linode/manager/blob/master/packages/validation/CHANGELOG.md)
2 changes: 1 addition & 1 deletion docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ Feel free to open an issue to report a bug or request a feature.
- Run `yarn changeset`from the root, choose the package to create a changeset for, and provide a description for the change.
You can either have it committed automatically or do it manually if you need to edit it.
- A changeset is optional, it merely depends if it falls in one of the following categories:
`Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`
`Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, `Upcoming Features`

Two reviews from members of the Cloud Manager team are required before merge. After approval, all pull requests are squash merged.
2 changes: 1 addition & 1 deletion docs/development-guide/11-feature-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ To consume a feature flag from a function component, use the `useFlags` hook:

```tsx
import * as React from "react";
import useFlags from "src/hooks/useFlags";
import { useFlags } from "src/hooks/useFlags";

const ImagesPricingBanner: React.FC<> = () => {
const flags = useFlags();
Expand Down
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,13 @@
"immer": "^9.0.6",
"lodash": "^4.17.21",
"glob-parent": "^5.1.2",
"browserslist": "^4.16.5",
"hosted-git-info": "^5.0.0",
"minimatch": "^9.0.2",
"@types/react": "^17",
"yaml": "^2.3.0"
"yaml": "^2.3.0",
"word-wrap": "^1.2.4",
"semver": "^7.5.2",
"tough-cookie": "^4.1.3"
},
"workspaces": {
"packages": [
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/.changeset/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Changesets

This directory gets auto-populated when running `yarn changeset`.
You can however add your changesets manually as well, knowing that the [TYPE] is limited to the following options `Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, and follow this format:
You can however add your changesets manually as well, knowing that the [TYPE] is limited to the following options `Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, `Upcoming Features` and follow this format:

```md
---
Expand Down
6 changes: 6 additions & 0 deletions packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## [2023-08-07] - v0.98.0

### Added:

- New methods for Linode Configs and new/updated Linode Config and interface types ([#9418](https://github.com/linode/manager/pull/9418))

## [2023-07-24] - v0.97.0

### Added:
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@linode/api-v4",
"version": "0.97.0",
"version": "0.98.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
Expand Down
155 changes: 153 additions & 2 deletions packages/api-v4/src/linodes/configs.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import {
CreateLinodeConfigSchema,
UpdateConfigInterfaceOrderSchema,
UpdateConfigInterfaceSchema,
UpdateLinodeConfigSchema,
linodeInterfaceSchema,
} from '@linode/validation/lib/linodes.schema';
import { API_ROOT } from '../constants';
import Request, {
Expand All @@ -10,8 +13,15 @@ import Request, {
setURL,
setXFilter,
} from '../request';
import { Filter, Params, ResourcePage as Page } from '../types';
import { Config, LinodeConfigCreationData } from './types';
import { Filter, ResourcePage as Page, Params } from '../types';
import {
Config,
ConfigInterfaceOrderPayload,
Interface,
InterfacePayload,
LinodeConfigCreationData,
UpdateConfigInterfacePayload,
} from './types';

/**
* getLinodeConfigs
Expand Down Expand Up @@ -106,3 +116,144 @@ export const updateLinodeConfig = (
setMethod('PUT'),
setData(data, UpdateLinodeConfigSchema)
);

/**
* getConfigInterfaces
*
* Return non-paginated list in devnum order of all interfaces on the given config.
*
* @param linodeId { number } The id of a Linode.
* @param configId { number } The id of a config belonging to the specified Linode.
*/
export const getConfigInterfaces = (linodeId: number, configId: number) =>
Request<Interface[]>(
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(configId)}/interfaces`
),
setMethod('GET')
);

/**
* getConfigInterface
*
* Get a single Linode config interface object using the interface's unique ID.
*
* @param linodeId { number } The id of a Linode.
* @param configId { number } The id of a config belonging to the specified Linode.
* @param interfaceId { number } The id of an interface belonging to the specified config.
*/
export const getConfigInterface = (
linodeId: number,
configId: number,
interfaceId: number
) =>
Request<Interface>(
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(
configId
)}/interfaces/${encodeURIComponent(interfaceId)}`
),
setMethod('GET')
);

/**
* appendConfigInterface
*
* Append a single new Linode config interface object to an existing config.
*
* @param linodeId { number } The id of a Linode to receive the new config interface.
* @param configId { number } The id of a config to receive the new interface.
*/
export const appendConfigInterface = (
linodeId: number,
configId: number,
data: InterfacePayload
) =>
Request<Interface>(
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(configId)}/interfaces`
),
setMethod('POST'),
setData(data, linodeInterfaceSchema)
);

/**
* updateConfigInterface
*
* Change an existing interface.
*
* @param linodeId { number } The id of a Linode.
* @param configId { number } The id of a config belonging to that Linode.
* @param interfaceId { number } The id of an interface belonging to the specified config.
*/
export const updateConfigInterface = (
linodeId: number,
configId: number,
interfaceId: number,
data: UpdateConfigInterfacePayload
) =>
Request<Interface>(
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(
configId
)}/interfaces/${encodeURIComponent(interfaceId)}`
),
setMethod('PUT'),
setData(data, UpdateConfigInterfaceSchema)
);

/**
* updateLinodeConfigOrder
*
* Change the order of interfaces.
*
* @param linodeId { number } The id of a Linode.
* @param configId { number } The id of a config belonging to the specified Linode.
*/
export const updateLinodeConfigOrder = (
linodeId: number,
configId: number,
data: ConfigInterfaceOrderPayload
) =>
Request<{}>(
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(configId)}/interfaces/order`
),
setMethod('POST'),
setData(data, UpdateConfigInterfaceOrderSchema)
);

/**
* deleteLinodeConfigInterface
*
* Delete a Linode config interface.
*
* @param linodeId { number } The id of a Linode the specified config is attached to.
* @param configId { number } The id of a config belonging to the specified Linode.
* @param interfaceId { number } The id of the interface to be deleted.
*/
export const deleteLinodeConfigInterface = (
linodeId: number,
configId: number,
interfaceId: number
) =>
Request<{}>(
setMethod('DELETE'),
setURL(
`${API_ROOT}/linode/instances/${encodeURIComponent(
linodeId
)}/configs/${encodeURIComponent(
configId
)}/interfaces/${encodeURIComponent(interfaceId)}`
)
);
25 changes: 24 additions & 1 deletion packages/api-v4/src/linodes/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,17 +147,40 @@ export type LinodeStatus =
| 'restoring'
| 'stopped';

export type InterfacePurpose = 'public' | 'vlan';
export type InterfacePurpose = 'public' | 'vlan' | 'vpc';

export interface ConfigInterfaceIPv4 {
vpc?: string;
nat_1_1?: string;
}

export interface ConfigInterfaceIPv6 {
vpc?: string;
}

export interface Interface {
id: number;
label: string | null;
purpose: InterfacePurpose;
ipam_address: string | null;
primary?: boolean;
subnet?: number | null;
ipv4?: ConfigInterfaceIPv4;
ipv6?: ConfigInterfaceIPv6;
ip_ranges?: string[];
}

export type InterfacePayload = Omit<Interface, 'id'>;

export interface ConfigInterfaceOrderPayload {
ids: number[];
}

export type UpdateConfigInterfacePayload = Pick<
Interface,
'primary' | 'ipv4' | 'ipv6' | 'ip_ranges'
>;

export interface Config {
id: number;
kernel: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/.changeset/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Changesets

This directory gets auto-populated when running `yarn changeset`.
You can however add your changesets manually as well, knowing that the [TYPE] is limited to the following options `Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, and follow this format:
You can however add your changesets manually as well, knowing that the [TYPE] is limited to the following options `Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, `Upcoming Features` and follow this format:

```md
---
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/.storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const preview: Preview = {
options: {
storySort: {
method: 'alphabetical',
order: ['Intro', 'Features', 'Components', 'Elements', 'Core Styles'],
order: ['Intro', 'Core Styles', 'Components', 'Features'],
},
},
viewport: {
Expand Down
55 changes: 55 additions & 0 deletions packages/manager/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,61 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).

## [2023-08-07] - v1.99.0


### Added:

- Ability to sort Databases by Region and Engine ([#9433](https://github.com/linode/manager/pull/9433))

### Changed:

- NodeBalancers can be created without a configuration ([#9472](https://github.com/linode/manager/pull/9472))
- Renamed `Premium` to `Premium CPU` in plans tables ([#9484](https://github.com/linode/manager/pull/9484))

### Fixed:

- Make drawers full width on mobile viewports ([#9427](https://github.com/linode/manager/pull/9427))
- Inconsistent styling and clipped copy tooltip on OBJ bucket details page ([#9430](https://github.com/linode/manager/pull/9430))
- Remove markup from Help & Support landing search results ([#9456](https://github.com/linode/manager/pull/9456))
- Create Firewall drawer input persisting after firewall creation or cancellation ([#9459](https://github.com/linode/manager/pull/9459))
- Redirect the user back to `/linodes` when Linode is deleted from Linode Details ([#9469](https://github.com/linode/manager/pull/9469))
- Add Gopaddle & re-add Wazuh Marketplace apps ([#9473](https://github.com/linode/manager/pull/9473))
- Enhanced Select fields text cut off at bottom ([#9479](https://github.com/linode/manager/pull/9479))

### Removed:

- Linodes Redux store ([#9421](https://github.com/linode/manager/pull/9421))

### Tech Stories:

- Improve reusability for ActionPanel component ([#9341](https://github.com/linode/manager/pull/9341))
- Migrate LinodeSelect to LinodeSelect ([#9396](https://github.com/linode/manager/pull/9396))
- Refactor Link and deprecate ExternalLink ([#9411](https://github.com/linode/manager/pull/9411))
- Optimize Linode event handlers and query invalidation ([#9451](https://github.com/linode/manager/pull/9451))
- LinodeSelect - Allow fully custom noOptionsText ([#9452](https://github.com/linode/manager/pull/9452))
- React Query queries for Linode Configs ([#9418](https://github.com/linode/manager/pull/9418))
- Resolve open dependabot alerts and clean up packages ([#9425](https://github.com/linode/manager/pull/9425))
- Remove Bluebird.js as a dependency ([#9455](https://github.com/linode/manager/pull/9455))
- Clean up exports of src/hooks/ ([#9457](https://github.com/linode/manager/pull/9457))
- Update Storybook Categories ([#9458](https://github.com/linode/manager/pull/9458))
- Fix <LinodeSelect /> bugs ([#9464](https://github.com/linode/manager/pull/9464))
- Decrease Sentry capture rate ([#9487](https://github.com/linode/manager/pull/9487))
- MUI v5 Migration - `SRC > Components > TableFooter` ([#9412](https://github.com/linode/manager/pull/9412))
- MUI v5 Migration - `SRC > Components > Dialog` ([#9419](https://github.com/linode/manager/pull/9419))
- MUI v5 Migration - `SRC > Features > Firewalls` ([#9434](https://github.com/linode/manager/pull/9434))
- MUI v5 Migration > `SRC > Features > Linodes Pt 1` ([#9445](https://github.com/linode/manager/pull/9445))
- MUI v5 Migration - `SRC > Components > InputAdornment` ([#9454](https://github.com/linode/manager/pull/9454))
- MUI v5 Migration - `SRC > Components > FormControlLabel` ([#9476](https://github.com/linode/manager/pull/9476))
- MUI v5 Migration - `SRC > Components > Form` ([#9480](https://github.com/linode/manager/pull/9480))
- MUI v5 migration `SRC > Features > Help` ([#9408](https://github.com/linode/manager/pull/9408))

### Upcoming Features:

- VPC landing page ([#9467](https://github.com/linode/manager/pull/9467))
- Add basic routing and files for VPC ([#9474](https://github.com/linode/manager/pull/9474))
- Fix User data input crash ([#9494](https://github.com/linode/manager/pull/9494))

## [2023-07-28] - v1.98.1

### Fixed:
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ CMD yarn start:manager:ci
# `e2e`
#
# Runs Cloud Manager Cypress tests.
FROM cypress/included:12.11.0 as e2e
FROM cypress/included:12.17.3 as e2e
WORKDIR /home/node/app
VOLUME /home/node/app
USER node
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -446,13 +446,14 @@ describe('Account service transfers', () => {

// Navigate to Service Transfer landing page, initiate transfer.
visitUrlWithManagedEnabled(serviceTransferLandingUrl);
cy.wait('@getLinodes');
ui.button
.findByTitle('Make a Service Transfer')
.should('be.visible')
.should('be.enabled')
.click();

cy.wait('@getLinodes');

cy.findByText('Make a Service Transfer').should('be.visible');
cy.url().should('endWith', serviceTransferCreateUrl);
initiateLinodeTransfer(mockLinodes[0].label);
Expand Down
Loading

0 comments on commit 6c20e3b

Please sign in to comment.