Skip to content

Commit 5cbde10

Browse files
committed
WIP: create service module
1 parent b819837 commit 5cbde10

2 files changed

Lines changed: 88 additions & 9 deletions

File tree

client/src/HomePage/HomePage.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { userActions } from "../_actions/user.actions.js";
66
import "./HomePage.css";
77
import ServiceTable from "./ServiceTable";
88
import NavBar from "./NavBar";
9-
import { Loader, Modal } from "semantic-ui-react";
9+
import { Loader, Modal, Form } from "semantic-ui-react";
1010
import $ from "jquery";
1111

1212
class HomePage extends React.Component {
@@ -64,8 +64,19 @@ class HomePage extends React.Component {
6464
</div>
6565
<div class="image content">
6666
<div class="description">
67-
<div class="ui header">Choose service type</div>
68-
Work In Progress
67+
<Form>
68+
<Form.Input
69+
fluid
70+
label="Resource group"
71+
placeholder="Resource group"
72+
/>
73+
<Form.Input
74+
fluid
75+
label="Virtual machine name"
76+
placeholder="Virtual machine name"
77+
/>
78+
<Form.Input fluid label="Region" placeholder="Region" />
79+
</Form>
6980
</div>
7081
</div>
7182
<div class="actions">

server/routes/createservices.js

Lines changed: 74 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,79 @@ let jsonParser = bodyParser.json();
55
let store = require("../store");
66
let utils = require("../helpers/utils");
77

8-
router.post("/create", jsonParser, function(req, response) {
9-
let body = req.body;
10-
store.signUp(body["email"], body["username"], body["password"]).then(res => {
11-
let user = res.data;
12-
res["token"] = utils.generateToken(user);
8+
const nodeCloud = require("nodecloud");
9+
10+
const provider = nodeCloud.getProviders(null);
11+
const vm = provider.azure.compute();
12+
13+
// const resourceGroupName = "nodecloud";
14+
// const vmName = "nodecloud-test";
15+
const publisher = "Canonical";
16+
const offer = "UbuntuServer";
17+
const sku = "14.04.3-LTS";
18+
const params = {
19+
location: "centralus",
20+
osProfile: {
21+
computerName: vmName,
22+
adminUsername: "ubuntuServer",
23+
adminPassword: "Pa$$w0rd92"
24+
},
25+
hardwareProfile: {
26+
vmSize: "Basic_A0"
27+
},
28+
storageProfile: {
29+
imageReference: {
30+
publisher: publisher,
31+
offer: offer,
32+
sku: sku,
33+
version: "latest"
34+
}
35+
},
36+
networkProfile: {
37+
networkInterfaces: [
38+
{
39+
id:
40+
"/subscriptions/" +
41+
process.env.AZURE_SUBSCRIPTION_ID +
42+
"/resourceGroups/nodecloud/providers/Microsoft.Network/networkInterfaces/nodecloud-interface"
43+
}
44+
]
45+
}
46+
};
47+
48+
router.post("/create/azure/virtualmachine", jsonParser, function(
49+
req,
50+
response
51+
) {
52+
if (utils.validateUser(req.headers.token)) {
53+
let body = req.body;
54+
vm.create(body.resourceGroupName, body.vmName, params)
55+
.then(res => {
56+
return vm.list(resourceGroupName);
57+
})
58+
.then(res => {
59+
return vm.start(resourceGroupName, vmName);
60+
})
61+
.then(res => {
62+
return vm.reboot(resourceGroupName, vmName);
63+
})
64+
.then(res => {
65+
return vm.stop(resourceGroupName, vmName);
66+
})
67+
.then(res => {
68+
return vm.destroy(resourceGroupName, vmName);
69+
})
70+
.then(res => {
71+
console.log(res);
72+
})
73+
.catch(err => {
74+
console.error(err);
75+
});
76+
} else {
77+
res = {
78+
success: false,
79+
message: "Invalid token!"
80+
};
1381
response.json(res);
14-
});
82+
}
1583
});

0 commit comments

Comments
 (0)