Merge "fix: Fix certificate and magnum"

This commit is contained in:
Zuul 2022-06-16 07:15:22 +00:00 committed by Gerrit Code Review
commit 7741b99e1f
8 changed files with 126 additions and 159 deletions

View File

@ -12,113 +12,95 @@
// See the License for the specific language governing permissions and
// limitations under the License.
import Base from "components/Form";
import { inject, observer } from "mobx-react";
import globalNetworkStore from "src/stores/neutron/network";
import Base from 'components/Form';
import { inject, observer } from 'mobx-react';
export class StepNetworks extends Base {
init() {
this.getNetworks();
}
get title() {
return t("Cluster Network")
return t('Cluster Network');
}
get name() {
return t("Cluster Network")
return t('Cluster Network');
}
allowed = () => Promise.resolve();
get defaultValue() {
return {
enableNetwork: true
enableNetwork: true,
};
}
get nameForStateUpdate() {
return ['enableNetwork']
}
async getNetworks() {
globalNetworkStore.fetchList();
}
get getNetworkList() {
return (globalNetworkStore.list.data || []).map((it) => ({
value: it.id,
label: it.name,
}));
return ['enableNetwork'];
}
get formItems() {
const { enableNetwork } = this.state;
return [
{
name: "enableLoadBalancer",
label: t("Enable Load Balancer"),
type: "check",
content: t("Enabled Load Balancer for Master Nodes"),
name: 'enableLoadBalancer',
label: t('Enable Load Balancer'),
type: 'check',
content: t('Enabled Load Balancer for Master Nodes'),
},
{
name: "enableNetwork",
label: t("Enabled Network"),
type: "check",
content: t("Create New Network"),
name: 'enableNetwork',
label: t('Enabled Network'),
type: 'check',
content: t('Create New Network'),
},
{
name: "network",
label: t("Use an Existing Network"),
name: 'network',
label: t('Use an Existing Network'),
type: 'network-select-table',
hidden: enableNetwork
hidden: enableNetwork,
},
{
type: "divider"
type: 'divider',
},
{
name: "floating_ip_enabled",
label: t("Cluster API"),
type: "select",
name: 'floating_ip_enabled',
label: t('Cluster API'),
type: 'select',
options: [
{
label: t("Accessible on private network only"),
value: "networkOnly"
label: t('Accessible on private network only'),
value: 'networkOnly',
},
{
label: t("Accessible on the public internet"),
value: "publicInternet"
}
label: t('Accessible on the public internet'),
value: 'publicInternet',
},
],
},
{
type: "divider"
type: 'divider',
},
{
name: "ingress_controller",
label: t("Ingress Controller"),
type: "select",
name: 'ingress_controller',
label: t('Ingress Controller'),
type: 'select',
options: [
{
label: t("octavia"),
value: "octavia"
label: t('octavia'),
value: 'octavia',
},
{
label: t("nginx"),
value: "nginx"
label: t('nginx'),
value: 'nginx',
},
{
label: t("traefik"),
value: "traefik"
}
label: t('traefik'),
value: 'traefik',
},
],
placeholder: t("Choose an ingress controller"),
}
]
placeholder: t('Choose an ingress controller'),
},
];
}
}
export default inject("rootStore")(observer(StepNetworks))
export default inject('rootStore')(observer(StepNetworks));

View File

@ -13,17 +13,17 @@
// limitations under the License.
import React from 'react';
import { inject, observer } from "mobx-react";
import Base from "components/Form";
import { inject, observer } from 'mobx-react';
import Base from 'components/Form';
import FlavorSelectTable from 'src/pages/compute/containers/Instance/components/FlavorSelectTable';
export class StepSize extends Base {
get title() {
return t("Cluster Size")
return t('Cluster Size');
}
get name() {
return t("Cluster Size")
return t('Cluster Size');
}
allowed = () => Promise.resolve();
@ -41,38 +41,38 @@ export class StepSize extends Base {
get formItems() {
return [
{
name: "numberOfMasterNodes",
label: t("Number of Master Nodes"),
type: "input-number",
name: 'numberOfMasterNodes',
label: t('Number of Master Nodes'),
type: 'input-int',
min: 1,
required: true
required: true,
},
{
name: "flavorOfMasterNodes",
label: t("Flavor of Master Nodes"),
name: 'flavorOfMasterNodes',
label: t('Flavor of Master Nodes'),
type: 'select-table',
component: this.getFlavorComponent(),
required: true,
},
{
type: "divider"
type: 'divider',
},
{
name: "numberOfWorkerNodes",
label: t("Number of Worker Nodes"),
type: "input-number",
name: 'numberOfWorkerNodes',
label: t('Number of Worker Nodes'),
type: 'input-int',
min: 1,
required: true,
},
{
name: "flavorOfWorkerNodes",
label: t("Flavor of Worker Nodes"),
name: 'flavorOfWorkerNodes',
label: t('Flavor of Worker Nodes'),
type: 'select-table',
component: this.getFlavorComponent(),
required: true
}
]
required: true,
},
];
}
}
export default inject('rootStore')(observer(StepSize));
export default inject('rootStore')(observer(StepSize));

View File

@ -10,38 +10,38 @@
// See the License for the specific language governing permissions and
// limitations under the License.
import StepDetails from "./StepDetails";
import { inject, observer } from 'mobx-react';
import { StepAction } from 'src/containers/Action';
import globalClustersStore from 'src/stores/magnum/clusters';
import StepDetails from './StepDetails';
import StepSize from './StepSize';
import StepNetworks from './StepNetworks';
import StepManagement from './StepManagement';
import StepAdvanced from './StepAdvanced';
import { inject, observer } from "mobx-react";
import { StepAction } from "src/containers/Action";
import globalClustersStore from "src/stores/magnum/clusters";
export class StepCreate extends StepAction {
init() {
this.store = globalClustersStore
this.store = globalClustersStore;
}
static id = "create-cluster";
static id = 'create-cluster';
static title = t("Create Cluster");
static title = t('Create Cluster');
static path = "/container-infra/clusters/create";
static path = '/container-infra/clusters/create';
static policy = "container-infra:cluster:create";
static policy = 'container-infra:cluster:create';
static allowed() {
return Promise.resolve(true);
}
get name() {
return t("Create Instance");
return t('Create Instance');
}
get listUrl() {
return this.getRoutePath("containerInfraClusters");
return this.getRoutePath('containerInfraClusters');
}
get hasConfirmStep() {
@ -51,31 +51,31 @@ export class StepCreate extends StepAction {
get steps() {
return [
{
title: t("Details *"),
component: StepDetails
title: t('Details *'),
component: StepDetails,
},
{
title: t("Size: *"),
component: StepSize
title: t('Size: *'),
component: StepSize,
},
{
title: t("Networks"),
component: StepNetworks
title: t('Networks'),
component: StepNetworks,
},
{
title: t("Management"),
component: StepManagement
title: t('Management'),
component: StepManagement,
},
{
title: t("Advanced"),
component: StepAdvanced
}
]
title: t('Advanced'),
component: StepAdvanced,
},
];
}
onSubmit = (values) => {
const { additionalLabels, auto_healing_enabled, auto_scaling_enabled } = values;
const { additionalLabels, auto_healing_enabled, auto_scaling_enabled } =
values;
const requestLabels = {};
if (additionalLabels) {
@ -83,34 +83,36 @@ export class StepCreate extends StepAction {
const labelKey = item.value.key.toLowerCase().trim();
const labelValue = item.value.value.toLowerCase().trim();
requestLabels[labelKey] = labelValue;
})
});
}
const data = {
name: values.clusterName,
labels: {
...requestLabels,
auto_healing_enabled: auto_healing_enabled,
auto_scaling_enabled: auto_scaling_enabled,
admission_control_list: 'NodeRestriction,NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,TaintNodesByCondition,Priority,DefaultTolerationSeconds,DefaultStorageClass,StorageObjectInUseProtection,PersistentVolumeClaimResize,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,RuntimeClass'
auto_healing_enabled,
auto_scaling_enabled,
admission_control_list:
'NodeRestriction,NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,TaintNodesByCondition,Priority,DefaultTolerationSeconds,DefaultStorageClass,StorageObjectInUseProtection,PersistentVolumeClaimResize,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,RuntimeClass',
},
cluster_template_id: values.clusterTemplateId,
create_timeout: 60,
master_count: values.numberOfMasterNodes,
node_count: values.numberOfWorkerNodes,
keypair: values.keypair,
master_flavor_id: values.flavorOfMasterNodes,
flavor_id: values.flavorOfWorkerNodes,
master_flavor_id: values.flavorOfMasterNodes.selectedRowKeys[0],
flavor_id: values.flavorOfWorkerNodes.selectedRowKeys[0],
master_lb_enabled: values.enableLoadBalancer,
floating_ip_enabled: values.floating_ip_enabled === 'networkOnly' ? false : true,
floating_ip_enabled: values.floating_ip_enabled !== 'networkOnly',
};
if (!values.enableNetwork) {
data.fixed_network = values.network;
if (!values.enableNetwork && values.network) {
const { selectedRowKeys = [] } = values.network;
data.fixed_network = selectedRowKeys[0];
}
return this.store.create(data);
}
};
}
export default inject("rootStore")(observer(StepCreate))
export default inject('rootStore')(observer(StepCreate));

View File

@ -19,8 +19,8 @@ import ClustersDetail from '../containers/Clusters/Detail';
import ClusterTemplates from '../containers/ClusterTemplates';
import ClusterTemplateDetail from '../containers/ClusterTemplates/Detail';
import ClustersCreate from '../containers/Clusters/actions/StepCreate';
import ClustersTemplateCreate from '../containers/ClusterTemplates/actions/StepCreate'
import StepUpdateClusterTemplate from '../containers/ClusterTemplates/actions/EditStep'
import ClustersTemplateCreate from '../containers/ClusterTemplates/actions/StepCreate';
import StepUpdateClusterTemplate from '../containers/ClusterTemplates/actions/EditStep';
const PATH = '/container-infra';
export default [
@ -29,20 +29,36 @@ export default [
component: BaseLayout,
routes: [
{ path: `${PATH}/clusters`, component: Clusters, exact: true },
{ path: `${PATH}/clusters/detail/:id`, component: ClustersDetail, exact: true },
{ path: `${PATH}/cluster-template`, component: ClusterTemplates, exact: true },
{ path: `${PATH}/cluster-template/detail/:id`, component: ClusterTemplateDetail, exact: true },
{
path: `${PATH}/clusters/detail/:id`,
component: ClustersDetail,
exact: true,
},
{
path: `${PATH}/cluster-template`,
component: ClusterTemplates,
exact: true,
},
{
path: `${PATH}/cluster-template/detail/:id`,
component: ClusterTemplateDetail,
exact: true,
},
{
path: `${PATH}/clusters/create`,
component: ClustersCreate,
exact: true,
},
{
path: `${PATH}/clusters-template/create`,
path: `${PATH}/cluster-template/create`,
component: ClustersTemplateCreate,
exact: true,
},
{ path: `${PATH}/cluster-template/update/:id`, component: StepUpdateClusterTemplate, exact: true },
{
path: `${PATH}/cluster-template/update/:id`,
component: StepUpdateClusterTemplate,
exact: true,
},
{ path: '*', component: E404 },
],
},

View File

@ -14,7 +14,6 @@ import { SecurityGroupStore } from 'stores/neutron/security-group';
import { VirtualAdapterStore } from 'stores/neutron/virtual-adapter';
import Base from 'components/Form';
import { inject, observer } from 'mobx-react';
import globalNetworkStore from 'src/stores/neutron/network';
import { portColumns, portFilters } from 'src/resources/neutron/port';
import {
securityGroupColumns,
@ -23,7 +22,6 @@ import {
export class StepNetworks extends Base {
init() {
this.getNetworkStore();
this.portStore = new VirtualAdapterStore();
this.securityGroupStore = new SecurityGroupStore();
}
@ -36,17 +34,6 @@ export class StepNetworks extends Base {
return t('Networks');
}
async getNetworkStore() {
await globalNetworkStore.fetchList({ project_id: this.currentProjectId });
}
get networking() {
return (globalNetworkStore.list.data || []).map((it) => ({
label: it.name,
value: it.id,
}));
}
get formItems() {
return [
{

View File

@ -149,7 +149,7 @@ export class StepDetails extends Base {
{
name: 'size',
label: t('Size (GiB)'),
type: 'input-number',
type: 'input-int',
min: 1,
max: 50,
placeholder: t('Size'),

View File

@ -14,14 +14,8 @@
import { inject, observer } from 'mobx-react';
import Base from 'components/Form';
import globalNetworkStore from 'stores/neutron/network';
export class StepNetworking extends Base {
init() {
this.getNetworkStore();
this.selectedNetwork = [];
}
get title() {
return t('Networking *');
}
@ -30,23 +24,8 @@ export class StepNetworking extends Base {
return 'Networking';
}
get networking() {
return (globalNetworkStore.list.data || []).map((it) => ({
label: it.name,
value: it.id,
}));
}
allowed = () => Promise.resolve();
async getNetworkStore() {
await globalNetworkStore.fetchList();
}
onChangeNetworkGroup = (checkedValues) => {
this.selectedNetwork = checkedValues;
};
get defaultValue() {
const values = {
project: this.currentProjectName,
@ -66,9 +45,9 @@ export class StepNetworking extends Base {
},
{
name: 'network',
label: t('Options'),
label: t('Network'),
type: 'network-select-table',
options: this.networking,
required: true,
},
];
}

View File

@ -121,6 +121,7 @@ export class Certificate extends Base {
: '-';
},
isHideable: true,
stringify: (value = []) => value.map((it) => it.name).join(',') || '-',
},
{
title: t('Status'),