@@ -5,11 +5,79 @@ let jsonParser = bodyParser.json();
55let store = require ( "../store" ) ;
66let 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