gns3-web-ui/src/app/shared/services/node.service.ts

49 lines
1.7 KiB
TypeScript
Raw Normal View History

2017-11-29 16:07:53 +01:00
import { Injectable } from '@angular/core';
import { Project } from '../models/project';
import { Node } from '../../cartography/shared/models/node.model';
import { Observable } from 'rxjs/Observable';
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-30 14:49:44 +01:00
import {Response} from "@angular/http";
2017-11-29 16:07:53 +01:00
@Injectable()
export class NodeService {
constructor(private httpServer: HttpServer) { }
start(server: Server, node: Node): Observable<Node> {
return this.httpServer
.post(server, `/projects/${node.project_id}/nodes/${node.node_id}/start`, {})
.map(response => response.json() as Node);
}
stop(server: Server, node: Node): Observable<Node> {
return this.httpServer
.post(server, `/projects/${node.project_id}/nodes/${node.node_id}/stop`, {})
.map(response => response.json() as Node);
}
2017-11-30 14:49:44 +01:00
createFromAppliance(
server: Server, project: Project, appliance: Appliance,
x: number, y: number, compute_id: string): Observable<Response> {
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
.put(server, `/projects/${node.project_id}/nodes/${node.node_id}`, {
'x': x,
'y': y
})
.map(response => response.json() as Node);
}
2017-11-29 16:07:53 +01:00
}