2017-11-29 16:07:53 +01:00
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
import { Project } from '../models/project';
|
2018-06-27 10:29:12 +02:00
|
|
|
import { Node } from '../cartography/models/node';
|
2018-07-06 11:31:44 +02:00
|
|
|
import { Observable } from 'rxjs';
|
2017-11-29 16:07:53 +01:00
|
|
|
|
|
|
|
import 'rxjs/add/operator/map';
|
|
|
|
import { Server } from "../models/server";
|
|
|
|
import { HttpServer } from "./http-server.service";
|
2017-11-30 10:27:41 +01:00
|
|
|
import {Appliance} from "../models/appliance";
|
2017-11-29 16:07:53 +01:00
|
|
|
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class NodeService {
|
|
|
|
|
|
|
|
constructor(private httpServer: HttpServer) { }
|
|
|
|
|
2018-03-20 16:02:41 +01:00
|
|
|
start(server: Server, node: Node) {
|
2017-11-29 16:07:53 +01:00
|
|
|
return this.httpServer
|
2018-03-20 16:02:41 +01:00
|
|
|
.post<Node>(server, `/projects/${node.project_id}/nodes/${node.node_id}/start`, {});
|
2017-11-29 16:07:53 +01:00
|
|
|
}
|
|
|
|
|
2018-03-20 16:02:41 +01:00
|
|
|
stop(server: Server, node: Node) {
|
2017-11-29 16:07:53 +01:00
|
|
|
return this.httpServer
|
2018-03-20 16:02:41 +01:00
|
|
|
.post<Node>(server, `/projects/${node.project_id}/nodes/${node.node_id}/stop`, {});
|
2017-11-29 16:07:53 +01:00
|
|
|
}
|
|
|
|
|
2017-11-30 14:49:44 +01:00
|
|
|
createFromAppliance(
|
|
|
|
server: Server, project: Project, appliance: Appliance,
|
2018-03-20 16:02:41 +01:00
|
|
|
x: number, y: number, compute_id: string) {
|
2017-11-30 10:27:41 +01:00
|
|
|
return this.httpServer
|
2017-11-30 14:49:44 +01:00
|
|
|
.post(
|
|
|
|
server,
|
|
|
|
`/projects/${project.project_id}/appliances/${appliance.appliance_id}`,
|
|
|
|
{'x': x, 'y': y, 'compute_id': compute_id});
|
2017-11-30 10:27:41 +01:00
|
|
|
}
|
|
|
|
|
2017-12-01 11:42:40 +01:00
|
|
|
updatePosition(server: Server, node: Node, x: number, y: number): Observable<Node> {
|
|
|
|
return this.httpServer
|
2018-03-20 16:02:41 +01:00
|
|
|
.put<Node>(server, `/projects/${node.project_id}/nodes/${node.node_id}`, {
|
2017-12-01 11:42:40 +01:00
|
|
|
'x': x,
|
|
|
|
'y': y
|
2018-03-20 16:02:41 +01:00
|
|
|
});
|
2017-12-01 11:42:40 +01:00
|
|
|
}
|
2018-03-29 12:36:35 +02:00
|
|
|
|
|
|
|
update(server: Server, node: Node): Observable<Node> {
|
|
|
|
return this.httpServer
|
|
|
|
.put<Node>(server, `/projects/${node.project_id}/nodes/${node.node_id}`, {
|
|
|
|
'x': node.x,
|
|
|
|
'y': node.y,
|
2018-06-27 10:29:12 +02:00
|
|
|
'z': node.z
|
2018-03-29 12:36:35 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2018-03-30 09:13:30 +02:00
|
|
|
delete(server: Server, node: Node) {
|
|
|
|
return this.httpServer.delete<Node>(server, `/projects/${node.project_id}/nodes/${node.node_id}`);
|
|
|
|
}
|
|
|
|
|
2017-11-29 16:07:53 +01:00
|
|
|
}
|