Skip to content

Commit

Permalink
fixed bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Jayesh333 committed Apr 6, 2020
1 parent e8c9c06 commit b70e567
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 43 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,6 @@ typings/
.next

build

*.sh
*.zip
6 changes: 3 additions & 3 deletions src/Routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import RemoteServices from "./pages/remote-services/Index";
import RemoteService from "./pages/remote-services/RemoteService";
import UserManagement from "./pages/user-management/UserManagement";
import DeploymentsOverview from "./pages/deployments/overview/DeploymentsOverview";
import DeploymentsRules from "./pages/deployments/rules/DeploymentsRules";
import DeploymentsRoutes from "./pages/deployments/routes/DeploymentsRoutes";
import Graphql from "./pages/explorer/graphql/Graphql";
import SpaceApi from "./pages/explorer/spaceApi/SpaceApi";
import Settings from "./pages/settings/Settings";
Expand Down Expand Up @@ -87,12 +87,12 @@ export default () => {
<PrivateRoute exact path="/mission-control/projects/:projectID/deployments"
component={props => <Redirect to={`/mission-control/projects/${props.match.params.projectID}/deployments/overview`} />} />
<PrivateRoute exact path="/mission-control/projects/:projectID/deployments/overview" component={DeploymentsOverview} />
<PrivateRoute exact path="/mission-control/projects/:projectID/deployments/rules" component={DeploymentsRules} />
<PrivateRoute exact path="/mission-control/projects/:projectID/deployments/routes" component={DeploymentsRoutes} />
<PrivateRoute exact path="/mission-control/projects/:projectID/guides" component={Guides} />
<PrivateRoute exact path="/mission-control/projects/:projectID/teams" component={Teams} />
<PrivateRoute exact path="/mission-control/projects/:projectID/billing" component={Billing} />
<PrivateRoute exact path="/mission-control/projects/:projectID/secrets" component={Secrets} />
<PrivateRoute exact path="/mission-control/projects/:projectID/secrets/:secretName" component={SecretDetails} />
<PrivateRoute exact path="/mission-control/projects/:projectID/secrets/:secretId" component={SecretDetails} />
</Switch>
</Router>
);
Expand Down
4 changes: 2 additions & 2 deletions src/components/deployments/deployment-tabs/DeploymentTabs.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ export default ({ activeKey, projectID }) => {
}}
/>
</TabPane>
<TabPane tab='Rules' key='rules'>
<TabPane tab='Routes' key='routes'>
<Redirect
to={{
pathname: `/mission-control/projects/${projectID}/deployments/rules`
pathname: `/mission-control/projects/${projectID}/deployments/routes`
}}
/>
</TabPane>
Expand Down
8 changes: 4 additions & 4 deletions src/components/secret/AddSecret.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const AddSecret = props => {
props.form.validateFields((err, formValues) => {
if (!err) {
const values = {
name: formValues.name,
id: formValues.id,
type: formValues.type
};
switch (values.type) {
Expand Down Expand Up @@ -245,7 +245,7 @@ const AddSecret = props => {
<React.Fragment>
<p>Name your secret</p>
<Form.Item>
{getFieldDecorator("name", {
{getFieldDecorator("id", {
rules: [
{ required: true, message: "Please input a secret name" }
]
Expand All @@ -259,7 +259,7 @@ const AddSecret = props => {
<React.Fragment>
<p>Name your secret</p>
<Form.Item>
{getFieldDecorator("name", {
{getFieldDecorator("id", {
rules: [
{ required: true, message: "Please input a secret name" }
]
Expand Down Expand Up @@ -306,7 +306,7 @@ const AddSecret = props => {
<React.Fragment>
<p>Name your secret</p>
<Form.Item>
{getFieldDecorator("name", {
{getFieldDecorator("id", {
rules: [
{ required: true, message: "Please input a secret name" }
]
Expand Down
2 changes: 1 addition & 1 deletion src/components/secret/UpdateDockerSecret.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const UpdateDockerSecret = props => {
<Form>
<p>Secret name</p>
<Form.Item>
{getFieldDecorator(`name`, {
{getFieldDecorator(`id`, {
initialValue: initialValue
})(<Input disabled={true} />)}
</Form.Item>
Expand Down
2 changes: 1 addition & 1 deletion src/pages/deployments/overview/DeploymentsOverview.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ const DeploymentsOverview = () => {
ports: task.ports,
cpu: task.resources.cpu / 1000,
memory: task.resources.memory,
gpuType: task.resources.gpu ? task.resources.gpu.type : "per-second",
gpuType: task.resources.gpu ? task.resources.gpu.type : "",
gpuCount: task.resources.gpu ? task.resources.gpu.value : 0,
min: obj.scale.minReplicas,
max: obj.scale.maxReplicas,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { getProjectConfig, notify } from "../../../utils";
import { increment, decrement, set } from "automate-redux";
const { Panel } = Collapse;

const DeploymentsRules = () => {
const DeploymentsRoutes = () => {
const { projectID } = useParams();
const dispatch = useDispatch();
const projects = useSelector(state => state.projects);
Expand All @@ -29,7 +29,17 @@ const DeploymentsRules = () => {

const getRoutes = () => {
dispatch(increment("pendingRequests"))
client.deployments.fetchDeploymentRoutes(projectID).then(res => dispatch(set("serviceRoutes", res)))
client.deployments.fetchDeploymentRoutes(projectID).then((res = []) => {
const serviceRoutes = res.reduce((prev, curr) => {
if (!prev[curr.id]) {
return Object.assign({}, prev, { [curr.id]: [curr] })
}
const oldRoutes = prev[curr.id]
const newRoutes = [...oldRoutes, curr]
return Object.assign({}, prev, { [curr.id]: newRoutes })
}, {})
dispatch(set("serviceRoutes", serviceRoutes))
})
.catch(ex => notify("error", "Error fetching routes. This page is only available for Kubernetes cluster", ex.toString()))
.finally(() => dispatch(decrement("pendingRequests")))
}
Expand Down Expand Up @@ -136,7 +146,7 @@ const DeploymentsRules = () => {
<Topbar showProjectSelector />
<Sidenav selectedItem="deployments" />
<div className="page-content page-content--no-padding">
<DeploymentTabs activeKey='rules' projectID={projectID} />
<DeploymentTabs activeKey='routes' projectID={projectID} />
<div style={{ padding: "32px 32px 0" }}>
{
noOfServices === 0 && <div className="panel">
Expand All @@ -162,7 +172,7 @@ const DeploymentsRules = () => {
Add
</Button>
</div>
<Table pagination={false} style={{ marginTop: 8 }} bordered={true} columns={tableColumns} dataSource={routes.map(obj => ({ serviceId, port: obj.source.port, targets: obj.targets.length }))} />
<Table pagination={false} style={{ marginTop: 16 }} bordered={true} columns={tableColumns} dataSource={routes.map(obj => ({ serviceId, port: obj.source.port, targets: obj.targets.length }))} />
</div>
</Panel>))}

Expand All @@ -181,4 +191,4 @@ const DeploymentsRules = () => {
);
};

export default DeploymentsRules;
export default DeploymentsRoutes;
19 changes: 9 additions & 10 deletions src/pages/secrets/SecretDetails.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import UpdateRootPathModal from '../../components/secret/UpdateRootPathModal';
import { getProjectConfig, setProjectConfig, notify } from "../../utils";
import { useHistory, useParams } from "react-router-dom";
import client from "../../client";
import store from "../../store";
import { useSelector, useDispatch } from "react-redux";
import { increment, decrement } from "automate-redux";
import './secretDetail.css';
Expand All @@ -26,11 +25,11 @@ const getLabelFromSecretType = type => {

const SecretDetails = () => {
const history = useHistory();
const { projectID, secretName } = useParams();
const { projectID, secretId } = useParams();
const dispatch = useDispatch();
const projects = useSelector(state => state.projects);
const secrets = getProjectConfig(projects, projectID, "modules.secrets", []);
let secret = secrets.find(obj => obj.name === secretName);
let secret = secrets.find(obj => obj.id === secretId);
if (!secret) secret = { data: {} };
const secretType = secret.type;
const secretKeysData = Object.keys(secret.data).map(key => ({ name: key }));
Expand All @@ -51,10 +50,10 @@ const SecretDetails = () => {
return new Promise((resolve, reject) => {
dispatch(increment("pendingRequests"));
client.secrets
.setSecretKey(projectID, secretName, key, value)
.setSecretKey(projectID, secretId, key, value)
.then(() => {
const newSecrets = secrets.map(obj => {
if (obj.name !== secretName) return obj;
if (obj.id !== secretId) return obj;
const newData = Object.assign({}, secret.data, { [key]: value });
return Object.assign({}, secret, { data: newData });
});
Expand All @@ -71,9 +70,9 @@ const SecretDetails = () => {

const handleDeleteSecretKey = name => {
dispatch(increment("pendingRequests"));
client.secrets.deleteSecretKey(projectID, secretName, name).then(() => {
client.secrets.deleteSecretKey(projectID, secretId, name).then(() => {
const newSecrets = secrets.map(obj => {
if (obj.name !== secretName) return obj;
if (obj.id !== secretId) return obj;
const newData = Object.assign({}, secret.data);
delete newData[name]
return Object.assign({}, secret, { data: newData });
Expand All @@ -91,9 +90,9 @@ const SecretDetails = () => {
const handleUpdateRootpath = (path) => {
return new Promise((resolve, reject) => {
dispatch(increment("pendingRequests"));
client.secrets.setRootPath(projectID, secretName, { rootPath : path}).then(() => {
client.secrets.setRootPath(projectID, secretId, { rootPath : path}).then(() => {
const updatedSecret = secrets.map(obj => {
if (obj.name !== secretName) return obj;
if (obj.id !== secretId) return obj;
const newData = Object.assign({}, { rootPath: path });
return Object.assign({}, obj, newData);
});
Expand Down Expand Up @@ -188,7 +187,7 @@ const SecretDetails = () => {
<Icon type="left" />
Go back
</Button>
<span style={{ marginLeft: "35%" }}>{secretName}</span>
<span style={{ marginLeft: "35%" }}>{secretId}</span>
</div>
<br />
<Row>
Expand Down
32 changes: 16 additions & 16 deletions src/pages/secrets/Secrets.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const Secrets = () => {
const [dockerSecretModalVisible, setDockerSecretModalVisible] = useState(
false
);
const [secretNameClicked, setSecretNameClicked] = useState("");
const [secretIdClicked, setSecretIdClicked] = useState("");


useEffect(() => {
Expand All @@ -36,7 +36,7 @@ const Secrets = () => {
client.secrets
.addSecret(projectID, secretConfig)
.then(() => {
const newSecrets = [...secrets.filter(obj => obj.name !== secretConfig.name), secretConfig];
const newSecrets = [...secrets.filter(obj => obj.id !== secretConfig.id), secretConfig];
setProjectConfig(projectID, "modules.secrets", newSecrets);
resolve();
})
Expand All @@ -48,36 +48,36 @@ const Secrets = () => {
});
};

const handleDeleteSecret = secretName => {
const handleDeleteSecret = secretId => {
dispatch(increment("pendingRequests"));
client.secrets
.deleteSecret(projectID, secretName)
.deleteSecret(projectID, secretId)
.then(() => {
const newSecrets = secrets.filter(obj => obj.name !== secretName);
const newSecrets = secrets.filter(obj => obj.id !== secretId);
setProjectConfig(projectID, "modules.secrets", newSecrets);
})
.catch(ex => notify("error", "Error adding secret", ex))
.finally(() => dispatch(decrement("pendingRequests")));
};

const handleSecretView = name => {
history.push(`/mission-control/projects/${projectID}/secrets/${name}`);
const handleSecretView = secretId => {
history.push(`/mission-control/projects/${projectID}/secrets/${secretId}`);
};

const handleClickUpdateDockerSecret = name => {
setSecretNameClicked(name);
const handleClickUpdateDockerSecret = id => {
setSecretIdClicked(id);
setDockerSecretModalVisible(true);
};

const handleDockerModalCancel = () => {
setDockerSecretModalVisible(false);
setSecretNameClicked("");
setSecretIdClicked("");
};

const columns = [
{
title: "Name",
dataIndex: "name"
dataIndex: "id"
},
{
title: "Type",
Expand All @@ -93,21 +93,21 @@ const Secrets = () => {
{record.type === "docker" && (
<a onClick={(e) => {
e.stopPropagation()
handleClickUpdateDockerSecret(record.name)
handleClickUpdateDockerSecret(record.id)
}}>
Update
</a>
)}
{record.type !== "docker" && (
<a onClick={(e) => {
e.stopPropagation()
handleSecretView(record.name)
handleSecretView(record.id)
}}>View</a>
)}
<div onClick={e => e.stopPropagation()}>
<Popconfirm
title={`This will delete the secrets. Are you sure?`}
onConfirm={() => handleDeleteSecret(record.name)}
onConfirm={() => handleDeleteSecret(record.id)}
>
<a style={{ color: "red" }}>Delete</a>
</Popconfirm>
Expand Down Expand Up @@ -155,7 +155,7 @@ const Secrets = () => {
</Button>
</h3>
{secrets.length > 0 && (
<Table columns={columns} dataSource={secrets} bordered={true} onRow={(record) => { return { onClick: event => { handleSecretView(record.name) } } }} />
<Table columns={columns} dataSource={secrets} bordered={true} onRow={(record) => { return { onClick: event => { handleSecretView(record.id) } } }} />
)}
{secrets.length === 0 && <EmptyState />}
{secretModalVisible && (
Expand All @@ -168,7 +168,7 @@ const Secrets = () => {
<UpdateDockerSecret
handleCancel={handleDockerModalCancel}
handleSubmit={handleAddSecret}
initialValue={secretNameClicked}
initialValue={secretIdClicked}
/>
)}
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/services/secrets.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Secrets {

addSecret(projectId, secretConfig) {
return new Promise((resolve, reject) => {
this.client.postJSON(`/v1/runner/${projectId}/secrets/${secretConfig.name}`, secretConfig)
this.client.postJSON(`/v1/runner/${projectId}/secrets/${secretConfig.id}`, secretConfig)
.then(({ status, data }) => {
if (status !== 200) {
reject(data.error)
Expand Down

0 comments on commit b70e567

Please sign in to comment.