Support for starting wireshark

This commit is contained in:
Piotr Pekala 2019-09-24 04:14:44 -07:00
parent a989a88dbb
commit 679a0d02bb
4 changed files with 32 additions and 6 deletions

View File

@ -237,6 +237,7 @@ import { TracengTemplateDetailsComponent } from './components/preferences/tracen
import { QemuImageCreatorComponent } from './components/project-map/node-editors/configurator/qemu/qemu-image-creator/qemu-image-creator.component';
import { ChooseNameDialogComponent } from './components/projects/choose-name-dialog/choose-name-dialog.component';
import { PacketCaptureService } from './services/packet-capture.service';
import { StartCaptureOnStartedLinkActionComponent } from './components/project-map/context-menu/actions/start-capture-on-started-link/start-capture-on-started-link.component';
if (environment.production) {
Raven.config('https://b2b1cfd9b043491eb6b566fd8acee358@sentry.io/842726', {
@ -399,7 +400,8 @@ if (environment.production) {
TracengTemplatesComponent,
TracengTemplateDetailsComponent,
QemuImageCreatorComponent,
ChooseNameDialogComponent
ChooseNameDialogComponent,
StartCaptureOnStartedLinkActionComponent
],
imports: [
BrowserModule,

View File

@ -0,0 +1,4 @@
<button mat-menu-item *ngIf="link.capturing" (click)="startCapture()">
<mat-icon>search</mat-icon>
<span>Start Wireshark</span>
</button>

View File

@ -0,0 +1,24 @@
import { Component, Input } from '@angular/core';
import { Server } from '../../../../../models/server';
import { Link } from '../../../../../models/link';
import { Project } from '../../../../../models/project';
import { PacketCaptureService } from '../../../../../services/packet-capture.service';
@Component({
selector: 'app-start-capture-on-started-link-action',
templateUrl: './start-capture-on-started-link.component.html'
})
export class StartCaptureOnStartedLinkActionComponent {
@Input() server: Server;
@Input() project: Project;
@Input() link: Link;
constructor(
private packetCaptureService: PacketCaptureService
) {}
startCapture() {
var splittedFileName = this.link.capture_file_name.split('.');
this.packetCaptureService.startCapture(this.server, this.project, this.link, splittedFileName[0]);
}
}

View File

@ -1,15 +1,11 @@
import { Injectable } from "@angular/core";
import { HttpServer } from './http-server.service';
import { Server } from '../models/server';
import { VpcsTemplate } from '../models/templates/vpcs-template';
import { Observable } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
import { Project } from '../models/project';
import { Link } from '../models/link';
@Injectable()
export class PacketCaptureService {
constructor(private httpServer: HttpServer) {}
constructor() {}
startCapture(server: Server, project: Project, link: Link, name: string) {
location.assign(`gns3+pcap://${server.host}:${server.port}?project_id=${project.project_id}&link_id=${link.link_id}&name=${name}`);