/* Licensed to the public under the Apache License 2.0. */

'use strict';
'require baseclass';

return baseclass.extend({
	title: _('OpenVPN'),

	rrdargs: function(graph, host, plugin, plugin_instance, dtype) {
		var inst = plugin_instance.replace(/^openvpn\.(.+)\.status$/, '$1');

		return [
			{
				title: "%%H: OpenVPN \"%s\" - Traffic".format(inst),
				vlabel: "Bytes/s",
				data: {
					instances: {
						if_octets: [ "traffic", "overhead" ]
					},
					sources: {
						if_octets: [ "tx", "rx" ]
					},
					options: {
						if_octets_traffic_tx : { weight: 0, title: "Bytes    (TX)", total: true, color: "00ff00" },
						if_octets_overhead_tx: { weight: 1, title: "Overhead (TX)", total: true, color: "ff9900" },
						if_octets_overhead_rx: { weight: 2, title: "Overhead (RX)", total: true, flip: true, color: "ff00ff" },
						if_octets_traffic_rx : { weight: 3, title: "Bytes    (RX)", total: true, flip: true, color: "0000ff" }
					}
				}
			},

			{
				title: "%%H: OpenVPN \"%s\" - Compression".format(inst),
				vlabel: "Bytes/s",
				data: {
					instances: {
						compression: [ "data_out", "data_in" ]
					},
					sources: {
						compression: [ "uncompressed", "compressed" ]
					},
					options: {
						compression_data_out_uncompressed: { weight: 0, title: "Uncompressed (TX)", total: true, color: "00ff00" },
						compression_data_out_compressed  : { weight: 1, title: "Compressed   (TX)", total: true, color: "008800" },
						compression_data_in_compressed   : { weight: 2, title: "Compressed   (RX)", total: true, flip: true, color: "000088" },
						compression_data_in_uncompressed : { weight: 3, title: "Uncompressed (RX)", total: true, flip: true, color: "0000ff" }
					}
				}
			}
		];
	}
});