Bladeren bron

update foswiki files

rajven 4 jaren geleden
bovenliggende
commit
b8f0831f0b
100 gewijzigde bestanden met toevoegingen van 2666 en 25 verwijderingen
  1. 48 0
      docs/addons/migrate-devices.pl
  2. 4 0
      docs/wiki/DefaultPermission.txt
  3. 21 0
      docs/wiki/fix_wiki_acl
  4. 7 0
      docs/wiki/fix_wiki_perm
  5. 11 4
      docs/wiki/foswiki/ShowStatPlugin.pm
  6. 122 15
      docs/wiki/foswiki/StatSyncPlugin.pm
  7. 378 0
      docs/wiki/foswiki/SwitchInfoPlugin.pm
  8. 17 6
      docs/wiki/foswiki/UpsInfoPlugin.pm
  9. 47 0
      docs/wiki/foswiki/data/ClusterOpenNebula.txt
  10. 73 0
      docs/wiki/foswiki/data/CommentPluginTemplate.txt
  11. 22 0
      docs/wiki/foswiki/data/CompanyBuildings.txt
  12. 30 0
      docs/wiki/foswiki/data/DefaultATSTemplate.txt
  13. 12 0
      docs/wiki/foswiki/data/DefaultAclTemplate.txt
  14. 15 0
      docs/wiki/foswiki/data/DefaultAuthTemplate.txt
  15. 10 0
      docs/wiki/foswiki/data/DefaultAuthWirelessPSK.txt
  16. 18 0
      docs/wiki/foswiki/data/DefaultBuildingTemplate.txt
  17. 13 0
      docs/wiki/foswiki/data/DefaultCPOTemplate.txt
  18. 16 0
      docs/wiki/foswiki/data/DefaultCertTemplate.txt
  19. 22 0
      docs/wiki/foswiki/data/DefaultDnsZoneTemplate.txt
  20. 23 0
      docs/wiki/foswiki/data/DefaultDomainTemplate.txt
  21. 21 0
      docs/wiki/foswiki/data/DefaultEsxiTemplate.txt
  22. 30 0
      docs/wiki/foswiki/data/DefaultGatewayTemplate.txt
  23. 43 0
      docs/wiki/foswiki/data/DefaultHardwareTemplate.txt
  24. 24 0
      docs/wiki/foswiki/data/DefaultKvmHostTemplate.txt
  25. 30 0
      docs/wiki/foswiki/data/DefaultNetdeviceTemplate.txt
  26. 4 0
      docs/wiki/foswiki/data/DefaultPermission.txt
  27. 29 0
      docs/wiki/foswiki/data/DefaultPhoneTemplate.txt
  28. 19 0
      docs/wiki/foswiki/data/DefaultPoolTemplate.txt
  29. 18 0
      docs/wiki/foswiki/data/DefaultRackTemplate.txt
  30. 20 0
      docs/wiki/foswiki/data/DefaultRoomTemplate.txt
  31. 26 0
      docs/wiki/foswiki/data/DefaultRouterTemplate.txt
  32. 22 0
      docs/wiki/foswiki/data/DefaultServerTemplate.txt
  33. 16 0
      docs/wiki/foswiki/data/DefaultServiceTemplate.txt
  34. 16 0
      docs/wiki/foswiki/data/DefaultSiteTemplate.txt
  35. 18 0
      docs/wiki/foswiki/data/DefaultSubnetTemplate.txt
  36. 24 0
      docs/wiki/foswiki/data/DefaultSwitchTemplate.txt
  37. 19 0
      docs/wiki/foswiki/data/DefaultUpsTemplate.txt
  38. 18 0
      docs/wiki/foswiki/data/DefaultVideoRegTemplate.txt
  39. 34 0
      docs/wiki/foswiki/data/DefaultVirtualHostTemplate.txt
  40. 9 0
      docs/wiki/foswiki/data/DefaultVlanTemplate.txt
  41. 34 0
      docs/wiki/foswiki/data/DefaultVoipGateTemplate.txt
  42. 19 0
      docs/wiki/foswiki/data/DefaultWirelessProfileTemplate.txt
  43. 43 0
      docs/wiki/foswiki/data/DefaultWlcTemplate.txt
  44. 185 0
      docs/wiki/foswiki/data/FaqOpenssl.txt
  45. 131 0
      docs/wiki/foswiki/data/FaqPoe.txt
  46. 34 0
      docs/wiki/foswiki/data/FormAP.txt
  47. 28 0
      docs/wiki/foswiki/data/FormATS.txt
  48. 13 0
      docs/wiki/foswiki/data/FormBuilding.txt
  49. 32 0
      docs/wiki/foswiki/data/FormCPO.txt
  50. 18 0
      docs/wiki/foswiki/data/FormCertificate.txt
  51. 9 0
      docs/wiki/foswiki/data/FormDhcpPool.txt
  52. 10 0
      docs/wiki/foswiki/data/FormDnsZone.txt
  53. 19 0
      docs/wiki/foswiki/data/FormDomain.txt
  54. 36 0
      docs/wiki/foswiki/data/FormHardware.txt
  55. 13 0
      docs/wiki/foswiki/data/FormIP.txt
  56. 30 0
      docs/wiki/foswiki/data/FormIPCAM.txt
  57. 25 0
      docs/wiki/foswiki/data/FormKvmHost.txt
  58. 33 0
      docs/wiki/foswiki/data/FormNetDevice.txt
  59. 31 0
      docs/wiki/foswiki/data/FormPhone.txt
  60. 38 0
      docs/wiki/foswiki/data/FormPrinter.txt
  61. 9 0
      docs/wiki/foswiki/data/FormRack.txt
  62. 9 0
      docs/wiki/foswiki/data/FormRoom.txt
  63. 35 0
      docs/wiki/foswiki/data/FormRouter.txt
  64. 30 0
      docs/wiki/foswiki/data/FormSensor.txt
  65. 21 0
      docs/wiki/foswiki/data/FormServerOs.txt
  66. 9 0
      docs/wiki/foswiki/data/FormService.txt
  67. 12 0
      docs/wiki/foswiki/data/FormServiceDns.txt
  68. 15 0
      docs/wiki/foswiki/data/FormSimple.txt
  69. 20 0
      docs/wiki/foswiki/data/FormSite.txt
  70. 12 0
      docs/wiki/foswiki/data/FormSubnet.txt
  71. 32 0
      docs/wiki/foswiki/data/FormUps.txt
  72. 30 0
      docs/wiki/foswiki/data/FormVideoReg.txt
  73. 23 0
      docs/wiki/foswiki/data/FormVirtual.txt
  74. 12 0
      docs/wiki/foswiki/data/FormVlan.txt
  75. 30 0
      docs/wiki/foswiki/data/FormVoipGate.txt
  76. 12 0
      docs/wiki/foswiki/data/FormWirelessProfile.txt
  77. 21 0
      docs/wiki/foswiki/data/IncludeATSPhoneList.txt
  78. 9 0
      docs/wiki/foswiki/data/IncludeAddAP.txt
  79. 9 0
      docs/wiki/foswiki/data/IncludeAddATS.txt
  80. 8 0
      docs/wiki/foswiki/data/IncludeAddAcl.txt
  81. 8 0
      docs/wiki/foswiki/data/IncludeAddAuth.txt
  82. 8 0
      docs/wiki/foswiki/data/IncludeAddAuthPSK.txt
  83. 9 0
      docs/wiki/foswiki/data/IncludeAddBuilding.txt
  84. 9 0
      docs/wiki/foswiki/data/IncludeAddCPO.txt
  85. 9 0
      docs/wiki/foswiki/data/IncludeAddCert.txt
  86. 9 0
      docs/wiki/foswiki/data/IncludeAddDnsZone.txt
  87. 9 0
      docs/wiki/foswiki/data/IncludeAddDomain.txt
  88. 9 0
      docs/wiki/foswiki/data/IncludeAddEsxi.txt
  89. 9 0
      docs/wiki/foswiki/data/IncludeAddGateway.txt
  90. 9 0
      docs/wiki/foswiki/data/IncludeAddHardware.txt
  91. 9 0
      docs/wiki/foswiki/data/IncludeAddIPCAM.txt
  92. 9 0
      docs/wiki/foswiki/data/IncludeAddKvmHost.txt
  93. 9 0
      docs/wiki/foswiki/data/IncludeAddNetDevice.txt
  94. 9 0
      docs/wiki/foswiki/data/IncludeAddPhone.txt
  95. 9 0
      docs/wiki/foswiki/data/IncludeAddPool.txt
  96. 9 0
      docs/wiki/foswiki/data/IncludeAddPrinter.txt
  97. 9 0
      docs/wiki/foswiki/data/IncludeAddRack.txt
  98. 9 0
      docs/wiki/foswiki/data/IncludeAddRoom.txt
  99. 9 0
      docs/wiki/foswiki/data/IncludeAddRouter.txt
  100. 9 0
      docs/wiki/foswiki/data/IncludeAddSensor.txt

+ 48 - 0
docs/addons/migrate-devices.pl

@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+
+#
+# Copyright (C) Roman Dmitiriev, rnd@rajven.ru
+#
+
+use FindBin '$Bin';
+use lib "$Bin/";
+use Data::Dumper;
+use Rstat::config;
+use Rstat::main;
+use Rstat::mysql;
+use Rstat::net_utils;
+use strict;
+use warnings;
+
+print "Stage 1: Devices\n";
+
+my @devices = get_records_sql($dbh,"SELECT * FROM devices");
+foreach my $row (@devices) {
+next if (!$row->{device_model});
+print "Dev: $row->{id} $row->{device_name} Model: $row->{device_model} =>";
+my $model = get_record_sql($dbh,"SELECT * FROM device_models WHERE vendor_id=".$row->{vendor_id}." AND model_name='".trim($row->{device_model})."'");
+if (!$model) { print "... unknown!\n"; next; }
+print "id: $model->{id} $model->{model_name}\n";
+do_sql($dbh,"UPDATE devices SET device_model_id=".$model->{id}." WHERE id=".$row->{id});
+}
+print "Done!\n";
+
+print "Stage 2: Auth\n";
+
+@devices = get_records_sql($dbh,"SELECT * FROM User_auth WHERE host_model IS NOT NULL");
+foreach my $row (@devices) {
+next if (!$row->{host_model});
+print "Auth: $row->{id} $row->{ip} Model: $row->{host_model} =>";
+my $model = get_record_sql($dbh,"SELECT * FROM device_models WHERE model_name='".trim($row->{host_model})."'");
+if (!$model) { print "... unknown!\n"; next; }
+print "id: $model->{id} $model->{model_name}\n";
+do_sql($dbh,"UPDATE User_auth SET device_model_id=".$model->{id}." WHERE id=".$row->{id});
+}
+print "Done!\n";
+
+do_sql($dbh,"ALTER TABLE `User_auth` DROP `host_model`");
+do_sql($dbh,"ALTER TABLE `devices` DROP `device_model`");
+
+print "Done!\n";
+
+exit;

+ 4 - 0
docs/wiki/DefaultPermission.txt

@@ -0,0 +1,4 @@
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 21 - 0
docs/wiki/fix_wiki_acl

@@ -0,0 +1,21 @@
+#!/bin/bash
+
+exit
+
+cd /var/www/foswiki/data/Sovtest
+
+ls -x -1 *.txt | while read FN; do
+
+SYS=$(echo "${FN}" | egrep "^(Web|Include|Form|Default)")
+[ -n "${SYS}" ] && continue
+
+OK=$(grep ALLOWTOPICCHANGE ./${FN})
+[ -n "${OK}" ] && continue
+
+echo "${FN}"
+
+cat DefaultPermission.txt >>"${FN}"
+
+done
+
+echo OK

+ 7 - 0
docs/wiki/fix_wiki_perm

@@ -0,0 +1,7 @@
+#!/bin/bash
+
+exit
+
+chown apache:apache -R /var/www/foswiki/
+
+exit

+ 11 - 4
docs/wiki/foswiki/ShowStatPlugin.pm

@@ -89,17 +89,24 @@ my($session, $params, $theTopic, $theWeb) = @_;
 
 ### parameters
 my $host = $params->{_DEFAULT} || $params->{host};
+
 return "" if (!$host);
 
 my $host_aton=StrToIp($host);
-my $SQL = "SELECT A.id, A.ip, A.mac, L.login, A.nagios, A.dhcp_hostname, A.enabled, G.group_name, Q.queue_name,
-A.last_found, A.comments FROM User_auth as A, User_list as L, Group_list as G, Queue_list As Q
-WHERE A.user_id = L.id and A.filter_group_id = G.id and Q.id = A.queue_id AND A.deleted =0 and A.ip_int=".$host_aton." LIMIT 1";
 
 #wait for statsync
 sleep(2);
 
-my $dbh = DBI->connect("dbi:$dbstat->{driver}:database=$dbstat->{database};host=$dbstat->{hostname}","$dbstat->{username}","$dbstat->{password}");
+my $connect_options = "dbi:$dbstat->{driver}:database=$dbstat->{database};host=$dbstat->{hostname}";
+my $connect_user = "$dbstat->{username}";
+my $connect_password = "$dbstat->{password}";
+
+my $dbh = DBI->connect($connect_options,$connect_user,$connect_password);
+
+my $SQL = "SELECT A.id, A.ip, A.mac, L.login, A.nagios, A.dhcp_hostname, A.enabled, G.group_name, Q.queue_name,
+A.last_found, A.comments FROM User_auth as A, User_list as L, Group_list as G, Queue_list As Q
+WHERE A.user_id = L.id and A.filter_group_id = G.id and Q.id = A.queue_id AND A.deleted =0 and A.ip_int=".$host_aton." LIMIT 1";
+
 my $status = '';
 eval {
 if ( !defined $dbh ) { return "Cannot connect to mySQL server: $DBI::errstr\n"; }

+ 122 - 15
docs/wiki/foswiki/StatSyncPlugin.pm

@@ -9,7 +9,7 @@ use Data::Dumper;
 
 # $VERSION is referred to by Foswiki, and is the only global variable that
 # *must* exist in this package
-use vars qw( $VERSION $RELEASE $debug $dbstat $pluginName );
+use vars qw( $VERSION $RELEASE $debug $dbstat $wiki_user $pluginName );
 
 use Foswiki::Func    ();    # The plugins API
 use Foswiki::Plugins ();    # For the API version
@@ -55,7 +55,9 @@ and highly dangerous!
 =cut
 
 sub initPlugin {
-    my( $topic, $web ) = @_;
+    my( $topic, $web, $user ) = @_;
+
+    $wiki_user = "wiki: ".$user;
 
     # check for Plugins.pm versions
     if( $Foswiki::Plugins::VERSION < 1.026 ) {
@@ -66,9 +68,10 @@ sub initPlugin {
     return 0 unless $Foswiki::cfg{Plugins}{DatabasePlugin}{ConfigSource};
     if ( $Foswiki::cfg{Plugins}{DatabasePlugin}{ConfigSource} eq 'Local' ) {
         foreach  my $info ( @{ $Foswiki::cfg{Plugins}{DatabasePlugin}{Databases} } ) {
-            next if ($info->{description} ne "stat");
-            $dbstat = $info;
-            last;
+#            next if ($info->{description} ne "stat");
+#            $dbstat = $info;
+#            last;
+            if ($info->{description} eq "stat") { $dbstat = $info; next; }
             }
       }
 
@@ -81,10 +84,109 @@ sub initPlugin {
     return 1;
 }
 
+#---------------------------------------------------------------------------------------------------------------
+
+sub GetNowTime {
+my ($sec,$min,$hour,$day,$month,$year,$zone) = localtime(time());
+$month += 1;
+$year += 1900;
+my $now_str=sprintf "%04d-%02d-%02d %02d:%02d:%02d",$year,$month,$day,$hour,$min,$sec;
+return $now_str;
+}
+
+#---------------------------------------------------------------------------------------------------------------
+
 sub StrToIp{
 return unpack('N',pack('C4',split(/\./,$_[0])));
 }
 
+#---------------------------------------------------------------------------------------------------------------
+
+sub write_db_log {
+my $dbh=shift;
+my $msg=shift;
+return if (!$dbh);
+return if (!$msg);
+$msg=~s/[\'\"]//g;
+if (!$wiki_user) { $wiki_user = 'wiki'; }
+my $history_sql="INSERT INTO syslog(customer,message,level,auth_id) VALUES('".$wiki_user."',".$dbh->quote($msg).",3,0)";
+my $history_rf=$dbh->prepare($history_sql);
+$history_rf->execute;
+}
+
+#---------------------------------------------------------------------------------------------------------------
+
+sub do_sql {
+my $dbh=shift;
+my $sql=shift;
+return if (!$dbh);
+return if (!$sql);
+my $sql_prep = $dbh->prepare($sql);
+my $sql_ref;
+if ( !defined $sql_prep ) { die "Cannot prepare statement: $DBI::errstr\n"; }
+$sql_prep->execute;
+if ($sql!~/^select /i) {  write_db_log($dbh,$sql); }
+if ($sql=~/^insert/i) { $sql_ref = $sql_prep->{mysql_insertid}; }
+if ($sql=~/^select /i) { $sql_ref = $sql_prep->fetchall_arrayref(); };
+$sql_prep->finish();
+return $sql_ref;
+}
+
+#---------------------------------------------------------------------------------------------------------------
+
+sub get_record_sql {
+my $dbh = shift;
+my $tsql = shift;
+my @result;
+return @result if (!$dbh);
+return @result if (!$tsql);
+my $list = $dbh->prepare( $tsql . ' LIMIT 1' );
+if ( !defined $list ) { die "Cannot prepare statement: $DBI::errstr\n"; }
+$list->execute;
+my $row_ref = $list ->fetchrow_hashref;
+$list->finish();
+return $row_ref;
+}
+
+#---------------------------------------------------------------------------------------------------------------
+
+sub update_record {
+my $dbh = shift;
+my $table = shift;
+my $record = shift;
+my $filter = shift;
+return if (!$dbh);
+return if (!$table);
+return if (!$filter);
+my $old_record = get_record_sql($dbh,"SELECT * FROM $table WHERE $filter");
+my $diff='';
+my $change_str='';
+my $found_changed=0;
+my $auth_id = 0;
+
+foreach my $field (keys %$record) {
+    if (!defined $record->{$field}) { $record->{$field}=''; }
+    if (!defined $old_record->{$field}) { $old_record->{$field}=''; }
+    my $old_value = quotemeta($old_record->{$field});
+    my $new_value = $record->{$field};
+    $new_value=~s/\'//g;
+    $new_value=~s/\"//g;
+    if ($new_value!~/^$old_value$/) {
+        $diff = $diff." $field => $record->{$field} (old: $old_record->{$field}),";
+        $change_str = $change_str." `$field`=".$dbh->quote($record->{$field}).",";
+        $found_changed++;
+        }
+}
+
+if ($found_changed) {
+    $change_str=~s/\,$//;
+    $diff=~s/\,$//;
+    if ($table eq 'User_auth') { $change_str .= ", `changed_time`='".GetNowTime()."'"; }
+    my $sSQL = "UPDATE $table SET $change_str WHERE $filter";
+    do_sql($dbh,$sSQL);
+    }
+}
+
 sub _STATSYNC {
 my($session, $params, $theTopic, $theWeb) = @_;
 
@@ -103,31 +205,36 @@ return $result if (!$host);
 my $host_aton=StrToIp($host);
 my $SQL = "SELECT * FROM User_auth WHERE ip_int=".$host_aton." and deleted=0 LIMIT 1";
 
-my $dbh = DBI->connect("dbi:$dbstat->{driver}:database=$dbstat->{database};host=$dbstat->{hostname}","$dbstat->{username}","$dbstat->{password}");
+my $connect_options = "dbi:$dbstat->{driver}:database=$dbstat->{database};host=$dbstat->{hostname}";
+my $connect_user = "$dbstat->{username}";
+my $connect_password = "$dbstat->{password}";
+
+my $dbh = DBI->connect($connect_options,$connect_user,$connect_password);
 
 eval {
 if ( !defined $dbh ) { return "Cannot connect to mySQL server: $DBI::errstr\n"; }
 $dbh->do('SET NAMES utf8');
 $dbh->{'mysql_enable_utf8'} = 1;
+
 my $sth = $dbh->prepare($SQL);
 $sth->execute;
 my $res = $sth->fetchrow_hashref();
 
 if ($res) {
     if ($dnsname and $res->{dns_name} ne $dnsname) {
-        $sth = $dbh->prepare("UPDATE User_auth SET dns_name='".$dnsname."' WHERE id=".$res->{id});
-        $sth->execute;
-#        $result .= "fixed dns_name!<br>";
+        my $new_record;
+        $new_record->{dns_name} = $dnsname;
+        update_record($dbh,"User_auth",$new_record,"id=".$res->{id});
         }
     if ($comment and $res->{comments} ne $comment) {
-        $sth = $dbh->prepare("UPDATE User_auth SET comments='".$comment."' WHERE id=".$res->{id});
-        $sth->execute;
-#        $result .= "fixed comments!<br>";
+        my $new_record;
+        $new_record->{comments} = $comment;
+        update_record($dbh,"User_auth",$new_record,"id=".$res->{id});
         }
     if ($wikiname and $res->{WikiName} ne $wikiname) {
-        $sth = $dbh->prepare("UPDATE User_auth SET WikiName='".$wikiname."' WHERE id=".$res->{id});
-        $sth->execute;
-#        $result .= "fixed wiki name!<br>";
+        my $new_record;
+        $new_record->{WikiName} = $wikiname;
+        update_record($dbh,"User_auth",$new_record,"id=".$res->{id});
         }
     }
 };

+ 378 - 0
docs/wiki/foswiki/SwitchInfoPlugin.pm

@@ -0,0 +1,378 @@
+package Foswiki::Plugins::SwitchInfoPlugin;
+
+use Net::SNMP qw(:snmp ticks_to_time TRANSLATE_NONE);
+use Net::Ping;
+
+# Always use strict to enforce variable scoping
+use strict;
+
+# $VERSION is referred to by Foswiki, and is the only global variable that
+# *must* exist in this package
+use vars qw( $VERSION $RELEASE $debug $pluginName );
+
+use Foswiki::Func    ();    # The plugins API
+use Foswiki::Plugins ();    # For the API version
+
+# This should always be $Rev: 8713$ so that Foswiki can determine the checked-in
+# status of the plugin. It is used by the build automation tools, so
+# you should leave it alone.
+$VERSION = '$Rev: 8713$';
+
+# This is a free-form string you can use to "name" your own plugin version.
+# It is *not* used by the build automation tools, but is reported as part
+# of the version number in PLUGINDESCRIPTIONS.
+$RELEASE = '1.01';
+
+# Name of this Plugin, only used in this module
+$pluginName = 'SwitchInfoPlugin';
+
+=pod
+
+---++ initPlugin($topic, $web, $user, $installWeb) -> $boolean
+   * =$topic= - the name of the topic in the current CGI query
+   * =$web= - the name of the web in the current CGI query
+   * =$user= - the login name of the user
+   * =$installWeb= - the name of the web the plugin is installed in
+
+REQUIRED
+
+Called to initialise the plugin. If everything is OK, should return
+a non-zero value. On non-fatal failure, should write a message
+using Foswiki::Func::writeWarning and return 0. In this case
+%FAILEDPLUGINS% will indicate which plugins failed.
+
+In the case of a catastrophic failure that will prevent the whole
+installation from working safely, this handler may use 'die', which
+will be trapped and reported in the browser.
+
+You may also call =Foswiki::Func::registerTagHandler= here to register
+a function to handle tags that have standard Foswiki syntax - for example,
+=%MYTAG{"my param" myarg="My Arg"}%. You can also override internal
+Foswiki tag handling functions this way, though this practice is unsupported
+and highly dangerous!
+
+=cut
+
+sub initPlugin {
+    my( $topic, $web ) = @_;
+
+    # check for Plugins.pm versions
+    if( $Foswiki::Plugins::VERSION < 1.026 ) {
+        Foswiki::Func::writeWarning( "Version mismatch between $pluginName and Plugins.pm" );
+        return 0;
+    }
+
+    # register the _EXAMPLETAG function to handle %EXAMPLETAG{...}%
+    Foswiki::Func::registerTagHandler( 'SWITCHINFO', \&_SWITCHINFO );
+
+    # Plugin correctly initialized
+    return 1;
+}
+
+sub extract_last_digit {
+my $base_oid = shift;
+my $key = shift;
+$key =~s/^$base_oid\.//;
+return $key;
+}
+
+sub expand_status {
+my ($device) = @_;
+my $ret ='';
+
+my %ifOperStatus =  (
+'1','up',
+'2','down',
+'3','testing',
+'4','unknown',
+'5','dormant',
+'6','notPresent',
+'7','lowerLayerDown'
+);
+
+foreach my $port (sort {$a <=> $b} keys %$device) {
+    next if (!$port);
+    next if (!$device->{$port}->{Index});
+    if (!$device->{$port}->{Alias}) { $device->{$port}->{Alias}=''; }
+    if (!$device->{$port}->{Descr}) { $device->{$port}->{Descr}=''; }
+    if (!$device->{$port}->{AdminStatus}) { $device->{$port}->{AdminStatus}=''; }
+    if (exists $ifOperStatus{$device->{$port}->{AdminStatus}}) { $device->{$port}->{AdminStatus} = $ifOperStatus{$device->{$port}->{AdminStatus}}; }
+    if (!$device->{$port}->{OperStatus}) { $device->{$port}->{OperStatus}=''; }
+    if (exists $ifOperStatus{$device->{$port}->{OperStatus}}) { $device->{$port}->{OperStatus} = $ifOperStatus{$device->{$port}->{OperStatus}}; }
+    if (!$device->{$port}->{Speed}) { $device->{$port}->{Speed}=0; } else {
+	my $speed = $device->{$port}->{Speed};
+	if ($speed eq '10000000') { $device->{$port}->{Speed}='10M'; }
+	if ($speed eq '100000000') { $device->{$port}->{Speed}='100M'; }
+	if ($speed eq '1000000000') { $device->{$port}->{Speed}='1G'; }
+	if ($speed eq '10000000000') { $device->{$port}->{Speed}='10G'; }
+	if ($speed eq '4294967295') { $device->{$port}->{Speed}='10G'; }
+	}
+    if ($device->{$port}->{LastChange} and $device->{$port}->{LastChange}>0 ) {
+	my $day; my $hour; my $min;
+	my $value = int($device->{$port}->{LastChange}/100);
+	$day = int($value/86400);
+	$hour = int(($value - 86400*$day)/3600);
+	$min = int (($value - 86400*$day - 3600*$hour)/60);
+	$device->{$port}->{LastChange} = "$day days $hour:$min";
+	}
+    if (!$device->{$port}->{LastChange}) { $device->{$port}->{LastChange}=''; }
+    if (!$device->{$port}->{Vlan}) { $device->{$port}->{Vlan}='1'; }
+    if (!$device->{$port}->{POE}) { $device->{$port}->{POE}=''; }
+    if (!$device->{$port}->{SFP}) { $device->{$port}->{SFP}=''; }
+    $ret.='| '.$port.' | ';
+    $ret.=$device->{$port}->{Index}.' | ';
+    $ret.=$device->{$port}->{Alias}.' | ';
+    $ret.=$device->{$port}->{Descr}.' | ';
+    $ret.=$device->{$port}->{AdminStatus}.' | ';
+    $ret.=$device->{$port}->{OperStatus}.' | ';
+    $ret.=$device->{$port}->{Speed}.' | ';
+    $ret.=$device->{$port}->{LastChange}.' | ';
+    $ret.=$device->{$port}->{Vlan}.' | ';
+    $ret.=$device->{$port}->{POE}.' | ';
+    $ret.=$device->{$port}->{SFP}." |\n";
+    }
+return $ret;
+};
+
+sub table_callback {
+my ($session, $OID_ifTable, $table) = @_;
+
+my $list = $session->var_bind_list();
+if (!defined $list) {
+    printf "ERROR: %s\n", $session->error();
+    return;
+    }
+
+my @names = $session->var_bind_names();
+my $next  = undef;
+
+while (@names) {
+  $next = shift @names;
+  if (!oid_base_match($OID_ifTable, $next)) { return; }
+  $table->{$next} = $list->{$next};
+}
+
+my $result = $session->get_bulk_request( -varbindlist => [ $next ], -maxrepetitions => 10, );
+if (!defined $result) { printf "ERROR: %s.\n", $session->error(); }
+return;
+}
+
+sub _SWITCHINFO {
+my($session, $params, $theTopic, $theWeb) = @_;
+
+### parameters
+my $vendor = $params->{vendor} || '';
+my $host = $params->{_DEFAULT} || $params->{host};
+
+### check host alive
+my $p = Net::Ping->new("tcp",1,1);
+my $ok= $p->ping($host);
+$p->close();
+
+if (!$ok) { return "Switch is not available<BR>"; }
+undef($p);
+
+my $port = $params->{port} || 161;
+my $timeout = $params->{timeout} || 5;
+my $community = $params->{community};
+if (!$community) { $community =  'public'; }
+
+my %bridgeOIDS=(
+    'Index'      =>'.1.3.6.1.2.1.31.1.1.1.1',
+    'Alias'      =>'.1.3.6.1.2.1.31.1.1.1.18',
+    'Descr'      =>'.1.3.6.1.2.1.2.2.1.2',
+    'Speed'      =>'.1.3.6.1.2.1.2.2.1.5',
+    'AdminStatus'=>'.1.3.6.1.2.1.2.2.1.7',
+    'OperStatus' =>'.1.3.6.1.2.1.2.2.1.8',
+    'LastChange' =>'.1.3.6.1.2.1.2.2.1.9',
+    'Vlan'       =>'.1.3.6.1.2.1.17.7.1.4.5.1.1',
+    'PoeAdmin'   =>'.1.3.6.1.2.1.105.1.1.1.3.1',
+    );
+
+my %VendorOIDS = (
+	"Mikrotik" => {
+	    "Default"=> {
+	        PoeAdmin   =>'.1.3.6.1.4.1.14988.1.1.15.1.1.3',
+#		PoeInt     =>'.1.3.6.1.4.1.14988.1.1.15.1.1.1',
+#		PoeIntName =>'.1.3.6.1.4.1.14988.1.1.15.1.1.2',
+		PoeVolt    =>'.1.3.6.1.4.1.14988.1.1.15.1.1.4',
+		PoeCurrent =>'.1.3.6.1.4.1.14988.1.1.15.1.1.5',
+		PoePower   =>'.1.3.6.1.4.1.14988.1.1.15.1.1.6',
+		},
+	    },
+	"Eltex"  => {
+	    "Default" => {
+		PoePower   =>'.1.3.6.1.4.1.89.108.1.1.5.1',
+		PoeCurrent =>'.1.3.6.1.4.1.89.108.1.1.4.1',
+		PoeVolt    =>'.1.3.6.1.4.1.89.108.1.1.3.1',
+		SfpStatus  =>'.1.3.6.1.4.1.89.90.1.2.1.3',
+		SfpVendor  =>'.1.3.6.1.4.1.35265.1.23.53.1.1.1.5',
+		SfpSN      =>'.1.3.6.1.4.1.35265.1.23.53.1.1.1.6',
+		SfpFreq    =>'.1.3.6.1.4.1.35265.1.23.53.1.1.1.4',
+		SfpLength  =>'.1.3.6.1.4.1.35265.1.23.53.1.1.1.8',
+		},
+	    },
+	"Huawei" => {
+	    "Default"=> {
+		PoeAdmin   =>'.1.3.6.1.4.1.2011.5.25.195.3.1.3',
+		PoePower   =>'.1.3.6.1.4.1.2011.5.25.195.3.1.10',
+		PoeCurrent =>'.1.3.6.1.4.1.4526.11.15.1.1.1.3.1',
+		PoeVolt    =>'.1.3.6.1.4.1.2011.5.25.195.3.1.14',
+		SfpVendor  =>'.1.3.6.1.4.1.2011.5.25.31.1.1.2.1.11',
+		SfpSpeed   =>'.1.3.6.1.4.1.2011.5.25.31.1.1.2.1.2',
+		SfpVolt    =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.6',
+		SfpOptRx   =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.32',
+		SfpOptTx   =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.33',
+		SfpCurrent =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.31',
+		SfpRx      =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.8',
+		SfpTx      =>'.1.3.6.1.4.1.2011.5.25.31.1.1.3.1.9',
+		},
+	    },
+	"Allied Telesis" => {
+	    "Default" => {
+		PoePower  =>'.1.3.6.1.4.1.89.108.1.1.5.1',
+		PoeCurrent=>'.1.3.6.1.4.1.89.108.1.1.4.1',
+		PoeVolt   =>'.1.3.6.1.4.1.89.108.1.1.3.1',
+		},
+	    },
+	"NetGear" => {
+	    "Deafult" =>{
+		PoeAdmin   =>'.1.3.6.1.4.1.4526.11.15.1.1.1.6.1',
+		PoePower   =>'.1.3.6.1.4.1.4526.11.15.1.1.1.2.1',
+		PoeCurrent =>'.1.3.6.1.4.1.4526.11.15.1.1.1.3.1',
+		PoeVolt    =>'.1.3.6.1.4.1.4526.11.15.1.1.1.4.1',
+		},
+	    },
+	"HP" => {
+	    "Default" => {
+		PoePower   =>'.1.3.6.1.4.1.25506.2.14.1.1.4.1',
+		PoeVolt    =>'.1.3.6.1.4.1.25506.2.14.1.1.3.1',
+		},
+	    },
+    );
+
+my %DefaultMibs=(
+'Description'    => '.1.3.6.1.2.1.1.1.0',
+'Uptime'         => '.1.3.6.1.2.1.1.3.0',
+'Name'           => '.1.3.6.1.2.1.1.5.0',
+);
+
+my $snmp_session;
+my $error;
+
+### open SNMP session
+eval {
+    ($snmp_session, $error) = Net::SNMP->session(
+    -hostname  => $host,
+    -community => $community,
+    -nonblocking => 1,
+    -translate   => [-octetstring => 0],
+    -version     => 'snmpv2c',
+    );
+};
+
+if (!defined($snmp_session)) { return "Switch is not available<BR>"; }
+$snmp_session->translate([-timeticks]);
+
+my %defaultTable;
+my $ret = $snmp_session->get_bulk_request(
+    -varbindlist    => [ '.1.3.6.1.2.1.1' ],
+    -callback       => [ \&table_callback, '.1.3.6.1.2.1.1', \%defaultTable ],
+    -maxrepetitions => 10,
+    );
+if (!defined $ret) {
+    $snmp_session->close();
+    return "Wlc not answer!<BR>";
+    }
+# Now initiate the SNMP message exchange.
+snmp_dispatcher();
+
+my %switchTable;
+foreach my $key (keys %bridgeOIDS) {
+my $bridge_mib = $bridgeOIDS{$key};
+my %table;
+my $result = $snmp_session->get_bulk_request(
+    -varbindlist    => [ $bridge_mib ],
+    -callback       => [ \&table_callback, $bridge_mib, \%table ],
+    -maxrepetitions => 10,
+    );
+if (!defined $result) {
+    printf "ERROR: %s\n", $snmp_session->error();
+    $snmp_session->close();
+    exit 1;
+    }
+# Now initiate the SNMP message exchange.
+snmp_dispatcher();
+$switchTable{$key}=\%table;
+}
+
+my %switch_status;
+
+my $poe_found;
+
+my @keys = (keys %bridgeOIDS);
+for (my $index=0; $index<scalar(@keys); $index++)  {
+    my $key = $keys[$index];
+    for my $oid (oid_lex_sort(keys %{$switchTable{$key}})) {
+    next if (!$oid);
+    my $num = extract_last_digit($bridgeOIDS{$key},$oid);
+    my $value = $switchTable{$key}->{$oid};
+    next if ($key ne "Index" and !exists $switch_status{$num}->{num});
+    if ($key eq "Index") {
+	next if ($value=~/^enet0/i);
+	next if ($value=~/^po(\d)/i);
+	next if ($value=~/^lo/);
+	next if ($value=~/^IP/);
+	next if ($value=~/^Vlan/i);
+	next if ($value=~/^Null/i);
+	next if ($value=~/^loop/i);
+	next if ($value=~/^console/i);
+	next if ($value=~/^tunnel/i);
+	next if ($value=~/^MEth/);
+	next if ($value=~/^bridge/i);
+	next if ($value=~/^ppp/i);
+        $switch_status{$num}->{num}=$value;
+	}
+    $switch_status{$num}->{$key}=$value;
+    }
+}
+
+#my %ext_walk = %{$VendorOIDS{$vendor}{Default}};
+#foreach my $key (keys %ext_walk) {
+#my $bridge_mib = $ext_walk{$key};
+#my %table;
+#my $result = $snmp_session->get_bulk_request(
+#	-varbindlist    => [ $bridge_mib ],
+#        -callback       => [ \&table_callback, $bridge_mib, \%table ],
+#	-maxrepetitions => 10,
+#        );
+#if (!defined $result) {
+#	printf "ERROR: %s\n", $snmp_session->error();
+#        $snmp_session->close();
+#	exit 1;
+#        }
+## Now initiate the SNMP message exchange.
+#snmp_dispatcher();
+#$switchTable{$key}=\%table;
+#}
+
+$snmp_session->close();
+
+my $result=$defaultTable{$DefaultMibs{Name}}."\n<br>";
+$result.=$defaultTable{$DefaultMibs{Description}}."\n<br>";
+my $uptime = int($defaultTable{$DefaultMibs{Uptime}}/100);
+my $day; my $hour; my $min;
+$day = int($uptime/86400);
+$hour = int(($uptime - 86400*$day)/3600);
+$min = int (($uptime - 86400*$day - 3600*$hour)/60);
+my $s_uptime = "$day days $hour:$min";
+$result.= "$s_uptime\n<br>\n";
+
+$result.= "| *Index* | *Port* | *Alias* | *Description* | *Admin state* | *Oper state* | *Speed* | *Last change* | *Vlan* | *Poe* | *Sfp* |\n";
+
+$result.=expand_status(\%switch_status);
+
+return $result;
+}
+
+1;

+ 17 - 6
docs/wiki/foswiki/UpsInfoPlugin.pm

@@ -130,6 +130,7 @@ my $OIDbatteryAdvReplace  = '1.3.6.1.4.1.318.1.1.1.2.2.4.0';
 my $apcUpsAdvBatteryStatus              ='1.3.6.1.4.1.318.1.1.1.4.1.1.0';
 my $apcUpsAdvBatteryCapacity            ='1.3.6.1.4.1.318.1.1.1.2.2.1.0';
 my $apcUpsAdvBatteryTemperature         ='1.3.6.1.4.1.318.1.1.1.2.2.2.0';
+my $apcUpsAdvExtTemperature             ='1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1';
 my $apcUpsAdvBatteryRunTimeRemaining    ='1.3.6.1.4.1.318.1.1.1.2.2.3.0';
 my $apcUpsAdvOutputVoltage              ='1.3.6.1.4.1.318.1.1.1.4.2.1.0';
 my $apcUpsAdvOutputFrequency            ='1.3.6.1.4.1.318.1.1.1.4.2.2.0';
@@ -223,7 +224,7 @@ my $TEMPWARN = 50;
     $status = "%RED%Timed Sleeping%ENDCOLOR%" if ($battery_status eq 5);
     $status = "%RED%Software Bypass%ENDCOLOR%" if ($battery_status eq 6);
     $status = "%RED%OFF%ENDCOLOR%" if ($battery_status eq 7);
-    $status = "%GREEn%REBOOTING%ENDCOLOR%" if ($battery_status eq 8);
+    $status = "%GREEN%REBOOTING%ENDCOLOR%" if ($battery_status eq 8);
     $status = "%RED%SWITCHED BYPASS%ENDCOLOR%" if ($battery_status eq 9);
     $status = "%RED%Hardware Failure Bypass%ENDCOLOR%" if ($battery_status eq 10);
     $status = "%RED%Sleeping until power return%ENDCOLOR%" if ($battery_status eq 11);
@@ -259,14 +260,13 @@ my $TEMPWARN = 50;
     if ($vendor eq 'EATON') { $batTemp=GetSNMPkeyValue($snmp_session,$EatonBatteryTemp); }
     if (!$batTemp) { $batTemp=GetSNMPkeyValue($snmp_session,$defaultbatteryTemp); }
 
+    my $extTemp;
+    if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $extTemp=GetSNMPkeyValue($snmp_session,$apcUpsAdvExtTemperature); }
+
     my $outputVoltage;
     if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputVoltage=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputVoltage); }
     if (!$outputVoltage) { $outputVoltage = GetSNMPkeyValue($snmp_session,$defaultOutputAC); }
 
-    my $outputCurrent;
-    if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputCurrent=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputCurrent); }
-    if (!$outputCurrent) { $outputCurrent = GetSNMPkeyValue($snmp_session,$defaultOutputCurrent); }
-
     my $outputHz;
     if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputHz=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputFrequency); }
     if (!$outputHz) { $outputHz = GetSNMPkeyValue($snmp_session,$defaultOutputHz); }
@@ -277,7 +277,18 @@ my $TEMPWARN = 50;
     if (!$outputLoad) { $outputLoad = GetSNMPkeyValue($snmp_session,$defaultUpsLoad); }
 
     $ret .= "| Runtime Remaining | ". $runtime." min. |\n";
-    $ret .= "| Battery Temperature | ".$batTemp." C |\n";
+
+    if ($extTemp) {
+        my $TempStatus = "%GREEN%".$extTemp." C%ENDCOLOR%";
+        $TempStatus = "%RED%".$extTemp." C%ENDCOLOR%" if ($extTemp>28);
+        $ret .= "| Room Temperature | ".$TempStatus." |\n";
+        }
+
+    if ($batTemp) {
+        my $TempStatus = "%GREEN%".$batTemp." C%ENDCOLOR%";
+        $TempStatus = "%RED%".$batTemp." C%ENDCOLOR%" if ($batTemp>38);
+        $ret .= "| Battery Temperature | ".$TempStatus." |\n";
+        }
 
     if ($vendor eq 'Symmetra') {
         my $input1=GetSNMPkeyValue($snmp_session,$apcUpsAdvInputLine1Voltage);

+ 47 - 0
docs/wiki/foswiki/data/ClusterOpenNebula.txt

@@ -0,0 +1,47 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1626260059" format="1.1" reprev="2" version="4"}%
+---+!! Кластер для офисного облака на OpenNebula
+
+---++ Список Host-серверов в кластере
+
+%SEARCH{
+"lc(DeviceType)='kvmhost'"
+topic="Server*"
+type="query"
+nosearch="on"
+header="|*Name*|*CPU*|*Memory*|*IP*|*Description*|"
+format="| [[$topic][$formfield(DnsName)]] | $formfield(DeviceCPU) | $formfield(DeviceMemory) | $formfield(DeviceIP) | $formfield(Description) |"
+}%
+
+---++ Список виртуальных машин
+
+%SEARCH{
+"lc(DeviceType)~'virtual*' and ParentHost='%BASETOPIC%'"
+topic="Server*"
+type="query"
+nosearch="on"
+header="|*Name*|*Virtualization*|*CPU Count*|*Memory*|*OS*|*IP*|*Description*|"
+format="| [[$topic][$formfield(DnsName)]] | $formfield(Device Type) | $formfield(Device CPU) | $formfield(Device Memory) | $formfield(Device OS) | $formfield(Device IP) | $formfield(Description) |"
+}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddVServer}%
+
+%INCLUDE{IncludeAddKvmHost}%
+
+---++ Работа
+
+%COMMENT{type="workflow"}%
+
+-- Main.RomanDmitriev - 2020/10/14
+
+%META:FORM{name="FormSimple"}%
+%META:FIELD{name="Name" title="Name" value="ClusterOpenNebula"}%
+%META:FIELD{name="Place" title="Place" value=""}%
+%META:FIELD{name="Rack" title="Rack" value=""}%
+%META:FIELD{name="Unit" title="Unit" value=""}%
+%META:FIELD{name="Description" title="Description" value="Офисное облако"}%
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 73 - 0
docs/wiki/foswiki/data/CommentPluginTemplate.txt

@@ -0,0 +1,73 @@
+---+++ simple
+Wiki thread mode comment, signed and dated
+<verbatim>
+
+%TMPL:DEF{PROMPT:simple}%
+   Comment type:
+   <select %DISABLED% name="commenttype">
+    <option>выполненная работа</option>
+    <option>регламент</option>
+    <option>предложение</option>
+    <option>замечание</option>
+    <option>вопрос</option>
+    <option>ответ</option>
+   </select><br />
+   <textarea %DISABLED% rows="%rows|5%" cols="%cols|75%" name="comment" wrap="soft"></textarea><br />
+   <input %DISABLED% type="submit" value="%button|Добавить%" />
+   <input type="hidden" name="redirectto" value="%BASEWEB%.%BASETOPIC%" />
+%TMPL:END%
+
+</verbatim>
+<verbatim>
+%TMPL:DEF{OUTPUT:simple}%%POS:BEFORE%
+<COMMENT><TIME>%SERVERTIME{"$year$mo$day$hours$minutes$seconds"}%</TIME><NAME>%WIKIUSERNAME%</NAME><FTIME>%SERVERTIME{"$hour:$min $day.$mo.$year"}%</FTIME><TYPE>%URLPARAM{"commenttype"}%</TYPE><TEXT>%URLPARAM{"comment" newline="<br />"}%</TEXT></COMMENT>
+%TMPL:END%
+</verbatim>
+
+---+++ workflow
+Wiki thread mode comment, signed and dated
+<verbatim>
+
+%TMPL:DEF{PROMPT:workflow}%
+<HR>
+   Comment type:
+   <select %DISABLED% name="commenttype">
+    <option>выполненная работа</option>
+    <option>регламент</option>
+    <option>предложение</option>
+    <option>замечание</option>
+    <option>вопрос</option>
+    <option>ответ</option>
+   </select><br />
+   <textarea %DISABLED% rows="%rows|5%" cols="%cols|75%" name="comment" wrap="soft"></textarea><br />
+   <input %DISABLED% type="submit" value="%button|Добавить%" />
+%TMPL:END%
+
+</verbatim>
+<verbatim>
+%TMPL:DEF{OUTPUT:workflow}%%POS:BEFORE%
+<div style="font-size:75%; display:block; background-color:#E7EDF3; color:#0000cc; height:auto;>
+#WfC%SERVERTIME{"$year$mo$day$hours$minutes$seconds"}% -- %WIKIUSERNAME% - %SERVERTIME{"$day.$mo.$year - $hour:$min"}% - %URLPARAM{"commenttype"}% </div>
+<div style="padding: 0px 10px 2px 10px;">
+%URLPARAM{"comment" newline="<br />"}%
+</div>
+%TMPL:END%
+</verbatim>
+---
+
+---+++ forum
+
+<verbatim>
+
+%TMPL:DEF{PROMPT:forum}%
+<table><tr valign="middle"><td><textarea rows="%rows|5%" cols="%cols|90%" name="comment" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea></td><td><input type="submit" value="%button|Добавить сообщение%" /></td></tr></table>
+%TMPL:END%
+
+%TMPL:DEF{OUTPUT:forum}%%POS:BEFORE%%URLPARAM{"comment" }%
+<br />-- %WIKIUSERNAME% - %SERVERTIME{"$day.$mo.$year - $hour:$min"}%
+---%TMPL:END%
+
+</verbatim>
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 22 - 0
docs/wiki/foswiki/data/CompanyBuildings.txt

@@ -0,0 +1,22 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604079998" format="1.1" reprev="1" version="1"}%
+Здания, используемые [[WebHome][Организацией]]
+
+%SEARCH{
+topic="Building*"
+type="query"
+nosearch="on"
+nototal="on"
+header="|*Здание*|*Description*|"
+format="| [[$topic][$formfield(Address)]] | $formfield(Description) |"
+}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddBuilding}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- Main.RomanDmitriev - 30 Oct 2020
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 30 - 0
docs/wiki/foswiki/data/DefaultATSTemplate.txt

@@ -0,0 +1,30 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeATSPhoneList}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddAuth}%
+
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%

+ 12 - 0
docs/wiki/foswiki/data/DefaultAclTemplate.txt

@@ -0,0 +1,12 @@
+---++ Ограничения доступа на [[%QUERY{"parent.name"}%]]
+
+---+!! Описание списка доступа
+
+%INCLUDE{IncludeWorkflow}%
+
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="ALLOWTOPICVIEW" title="ALLOWTOPICVIEW" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 15 - 0
docs/wiki/foswiki/data/DefaultAuthTemplate.txt

@@ -0,0 +1,15 @@
+---++ Пароли для [[%QUERY{"parent.name"}%]]
+
+---+!! Описание паролей на 
+
+| *Login* | *Password* |
+| | |
+
+%INCLUDE{IncludeWorkflow}%
+
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="ALLOWTOPICVIEW" title="ALLOWTOPICVIEW" type="Set" value="InternetAdminGroup"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="InternetAdminGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="InternetAdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="InternetAdminGroup"}%

+ 10 - 0
docs/wiki/foswiki/data/DefaultAuthWirelessPSK.txt

@@ -0,0 +1,10 @@
+---+!! PSK ключ [Descr]
+
+KEY:
+
+%INCLUDE{IncludeWorkflow}%
+
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 18 - 0
docs/wiki/foswiki/data/DefaultBuildingTemplate.txt

@@ -0,0 +1,18 @@
+---+!! Здание %FORMFIELD{"Description" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeBuildingHeader}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormBuilding"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 13 - 0
docs/wiki/foswiki/data/DefaultCPOTemplate.txt

@@ -0,0 +1,13 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeShowStat}%
+
+%EDITTABLE{}%
+| *Розетка* | *Устройство* |
+| 1 | |
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 16 - 0
docs/wiki/foswiki/data/DefaultCertTemplate.txt

@@ -0,0 +1,16 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604395626" format="1.1" reprev="5" version="4"}%
+
+---+!! Сертификат %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- Main.RomanDmitriev - 2020/10/11
+
+%META:FORM{name="FormCertificate"}%
+
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="ALLOWTOPICVIEW" title="ALLOWTOPICVIEW" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 22 - 0
docs/wiki/foswiki/data/DefaultDnsZoneTemplate.txt

@@ -0,0 +1,22 @@
+---+!! Зона %FORMFIELD{"DnsZoneName" topic="%BASETOPIC%"}%
+
+Поднята на серверах:
+
+%SEARCH{
+"%FORMFIELD{"Name" topic="%BASETOPIC%"}%"
+topic="ServiceDns*"
+type="regexp"
+nonoise="on"
+format="* [[$topic][$formfield(Name)]] - $formfield(Description)"
+separator="<br>"
+}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormDnsZone"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 23 - 0
docs/wiki/foswiki/data/DefaultDomainTemplate.txt

@@ -0,0 +1,23 @@
+---+!! Домен %FORMFIELD{"Name" topic="%BASETOPIC%"}%
+
+%SEARCH{
+"parent.name='%BASETOPIC%'"
+type="query"
+nosearch="on"
+nototal="on"
+topic="DnsZone*"
+header="| *Название* | *Домен* |  *Комментарий* |"
+format="| [[$topic][$formfield(DnsZoneName)]] | $formfield(DomainName) | $formfield(Description) |"
+}%
+
+%INCLUDE{IncludeAddDnsZone}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormDomain"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 21 - 0
docs/wiki/foswiki/data/DefaultEsxiTemplate.txt

@@ -0,0 +1,21 @@
+---+!! Сервер %FORMFIELD{"Name" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeShowStat}%
+
+ОС:
+
+---++ Дисковая подсистема
+
+---++ Сеть
+
+---++ Работа
+
+%COMMENT{type="workflow"}%
+
+-- Main.RomanDmitriev - 2020/10/14
+
+%META:FORM{name="FormServerOs"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 30 - 0
docs/wiki/foswiki/data/DefaultGatewayTemplate.txt

@@ -0,0 +1,30 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+---+!! Маршрутизатор в сети [[WebHome][Организации]]
+
+%TOC%
+
+---++ WAN
+
+   * wan-port: dhcp
+
+---++ DHCP Relay
+
+---++ Маршрутизация
+
+---++ Политика безопасности
+
+%INCLUDE{IncludeGatewayHeader}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 43 - 0
docs/wiki/foswiki/data/DefaultHardwareTemplate.txt

@@ -0,0 +1,43 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602524519" format="1.1" reprev="2" version="2"}%
+---++ Сервер %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+---+++ Память
+
+| *Type* | *MHz* | *Model* | *Vendor* | *SN* | *Size* |
+
+---+++ Диски
+
+| *Id* | *FormFactor* | *Family* | *Type* | *Model* | *Size* | *SN* | *Date* |
+
+---++++ Диски на рэйд-контроллере:
+
+| *SLOT* | *Type* | *Model* | *SN* | *WWN* | *Logical Drv* | *Size* | *Date* |
+
+---+++ Логические тома
+
+| *Name* | *Id* | *mount point* | *Description* |
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddServer}%
+
+%INCLUDE{IncludeAddKvmHost}%
+
+%INCLUDE{IncludeAddAuth}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormHardware"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 24 - 0
docs/wiki/foswiki/data/DefaultKvmHostTemplate.txt

@@ -0,0 +1,24 @@
+---+!! Сервер %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+ОС:
+
+---++ Дисковая подсистема
+
+---++ Сеть
+
+%INCLUDE{IncludeShowVms}%
+
+%INCLUDE{IncludeServerHeader}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormServerOs"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="InternetAdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="InternetAdminGroup"}%

+ 30 - 0
docs/wiki/foswiki/data/DefaultNetdeviceTemplate.txt

@@ -0,0 +1,30 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%INCLUDE{IncludeShowCerts}%
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddCert}%
+
+%INCLUDE{IncludeAddAuth}%
+
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 4 - 0
docs/wiki/foswiki/data/DefaultPermission.txt

@@ -0,0 +1,4 @@
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 29 - 0
docs/wiki/foswiki/data/DefaultPhoneTemplate.txt

@@ -0,0 +1,29 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddAuth}%
+
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%

+ 19 - 0
docs/wiki/foswiki/data/DefaultPoolTemplate.txt

@@ -0,0 +1,19 @@
+---++ Dhcp пул для сети %FORMFIELD{"Name" topic="%FORMFIELD{"Subnet" topic="%BASETOPIC%"}%"}%
+
+%INCLUDE{IncludeDhcpPoolHeader}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormDhcpPool"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 18 - 0
docs/wiki/foswiki/data/DefaultRackTemplate.txt

@@ -0,0 +1,18 @@
+---+!! Стойка %FORMFIELD{"Name" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeRackHeader}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormRack"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 20 - 0
docs/wiki/foswiki/data/DefaultRoomTemplate.txt

@@ -0,0 +1,20 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602750423" format="1.1" reprev="2" version="3"}%
+
+---+!! Комната %FORMFIELD{"Name" topic="%BASETOPIC%"}% (%FORMFIELD{"Description" topic="%BASETOPIC%"}%)
+
+%INCLUDE{IncludeRoomHeader}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormRoom"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 26 - 0
docs/wiki/foswiki/data/DefaultRouterTemplate.txt

@@ -0,0 +1,26 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+---+!! Маршрутизатор в сети [[WebHome][Организации]]
+
+%TOC%
+
+---++ DHCP Relay
+
+---++ Маршрутизация
+
+---++ Политика безопасности
+
+%INCLUDE{IncludeRouterHeader}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 22 - 0
docs/wiki/foswiki/data/DefaultServerTemplate.txt

@@ -0,0 +1,22 @@
+---+!! Сервер %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+ОС:
+
+---++ Дисковая подсистема
+
+---++ Сеть
+
+%INCLUDE{IncludeServerHeader}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormServerOs"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 16 - 0
docs/wiki/foswiki/data/DefaultServiceTemplate.txt

@@ -0,0 +1,16 @@
+---+!! Сервис %FORMFIELD{"Description" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeShowAuth}%
+
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormService"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 16 - 0
docs/wiki/foswiki/data/DefaultSiteTemplate.txt

@@ -0,0 +1,16 @@
+---+!! Сайт %FORMFIELD{"Httpproto" topic="%BASETOPIC%"}%://%FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeShowAuth}%
+
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormSite"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 18 - 0
docs/wiki/foswiki/data/DefaultSubnetTemplate.txt

@@ -0,0 +1,18 @@
+---+ Network: %FORMFIELD{"Name" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeSubnetHeader}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormSubnet"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 24 - 0
docs/wiki/foswiki/data/DefaultSwitchTemplate.txt

@@ -0,0 +1,24 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%  (%FORMFIELD{"Description" topic="%BASETOPIC%"}%)
+
+%INCLUDE{IncludeSwitchHeader}%
+
+%INCLUDE{IncludeShowAuth}%
+
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+%META:FIELD{name="DeviceType" title="Device Type" value="Switch"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 19 - 0
docs/wiki/foswiki/data/DefaultUpsTemplate.txt

@@ -0,0 +1,19 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeUpsHeader}%
+
+%INCLUDE{IncludeShowAuth}%
+
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- Main.RomanDmitriev - 01 Nov 2020
+
+%META:FORM{name="FormUps"}%
+%META:FIELD{name="DeviceType" title="Device Type" value="UPS"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 18 - 0
docs/wiki/foswiki/data/DefaultVideoRegTemplate.txt

@@ -0,0 +1,18 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeCamList}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 34 - 0
docs/wiki/foswiki/data/DefaultVirtualHostTemplate.txt

@@ -0,0 +1,34 @@
+---+!! Виртуальная машина %FORMFIELD{"DnsName" topic="%BASETOPIC%"}% на %FORMFIELD{"Name" topic="%FORMFIELD{"ParentHost" topic="%BASETOPIC%"}%"}%
+
+ОС:
+
+---++ Дисковая подсистема
+---++ Сеть
+
+%INCLUDE{IncludeShowVirtualServer}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddService}%
+%INCLUDE{IncludeAddServiceDns}%
+%INCLUDE{IncludeAddSite}%
+%INCLUDE{IncludeAddCert}%
+%INCLUDE{IncludeAddAuth}%
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormVirtual"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 9 - 0
docs/wiki/foswiki/data/DefaultVlanTemplate.txt

@@ -0,0 +1,9 @@
+%META:TOPICINFO{author="roman" date="1602536006" format="1.1" version="1"}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormVlan"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 34 - 0
docs/wiki/foswiki/data/DefaultVoipGateTemplate.txt

@@ -0,0 +1,34 @@
+---+!!  %FORMFIELD{"DeviceType" topic="%BASETOPIC%"}%  %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludePhoneList}%
+
+%INCLUDE{IncludeNetDevCommon}%
+
+%INCLUDE{IncludeShowAuth}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddAuth}%
+
+%INCLUDE{IncludeAddAcl}%
+
+%INCLUDE{IncludeWorkflow}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%STARTSECTION{type="templateonly"}%
+This topic is needed for normal operation even if System web is restricted.
+   * Set ALLOWTOPICVIEW = *
+%ENDSECTION{type="templateonly"}%
+
+%META:FORM{name="FormNetDevice"}%
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_VIEW_DETAILS" title="PERMSET_VIEW_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup, VoipAdminsGroup"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 19 - 0
docs/wiki/foswiki/data/DefaultWirelessProfileTemplate.txt

@@ -0,0 +1,19 @@
+---+ Wireless SSID: %FORMFIELD{"WirelessSSID" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeWPapList}%
+
+---++ Добавить
+
+%INCLUDE{IncludeAddAuthPSK}%
+
+---++ Работа
+
+%COMMENT{type="workflow"}%
+
+-- %WIKIUSERNAME% - %DATE%
+
+%META:FORM{name="FormWirelessProfile"}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 43 - 0
docs/wiki/foswiki/data/DefaultWlcTemplate.txt

@@ -0,0 +1,43 @@
+---+ Wireless Controller %FORMFIELD{"DnsName" topic="%BASETOPIC%"}%
+
+%INCLUDE{IncludeShowStat}%
+
+---++ Список клиентов (Huawei)
+
+<div id="container1"></div>
+
+<script type="text/javascript">
+$(function() {
+  $("#container1").load("%SCRIPTURLPATH{"rest"}%/RenderPlugin/tag",
+  { name: 'WlcINFO',
+    host: '%FORMFIELD{"DeviceIP" topic="%BASETOPIC%"}%',
+    community: '%FORMFIELD{"Community" topic="%BASETOPIC%"}%',
+    topic: '%BASEWEB%.%BASETOPIC%',
+    web: '%BASEWEB%',
+    render: true }
+);
+});
+</script>
+
+---++ Список клиентов (Mikrotik)
+
+<div id="container1"></div>
+
+<script type="text/javascript">
+$(function() {
+  $("#container1").load("%SCRIPTURLPATH{"rest"}%/RenderPlugin/tag",
+  { name: 'CapsManINFO',
+    host: '%FORMFIELD{"DeviceIP" topic="%BASETOPIC%"}%',
+    community: '%FORMFIELD{"Community" topic="%BASETOPIC%"}%',
+    topic: '%BASEWEB%.%BASETOPIC%',
+    web: '%BASEWEB%',
+    render: true }
+);
+});
+</script>
+
+%INCLUDE{IncludeNetDevHeader}%
+
+%META:PREFERENCE{name="ALLOWTOPICCHANGE" title="ALLOWTOPICCHANGE" type="Set" value="AdminGroup"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="details"}%
+%META:PREFERENCE{name="PERMSET_CHANGE_DETAILS" title="PERMSET_CHANGE_DETAILS" type="Local" value="AdminGroup"}%

+ 185 - 0
docs/wiki/foswiki/data/FaqOpenssl.txt

@@ -0,0 +1,185 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1606986355" format="1.1" reprev="1" version="3"}%
+%META:TOPICPARENT{name="ListOfFaq"}%
+---+!! Полезные команды Openssl
+
+Если что-то не получается - идите [[https://ssl4less.ru/ssl-tools/convert-certificate.html][сюда]]. При копипасте заменить символ "-". Он наверняка будет не тот. Часть команд требует опции -passout pass:PASSWORD или -passin pass:PASSWORD или обоих вместе. 
+
+%TOC%
+
+---++ Типы сертификатов
+
+   * PEM - очень часто используется в Linux based  системах или оборудовании, файлы такого формата сертификата используют расширение .cer, .crt, and .pem.
+   * DER - двоичная формат сертификата. DER формат не содержит текста "BEGIN CERTIFICATE/END CERTIFICATE", формат DER чаще всего использует расширение .der
+   * PKCS#7 или P7B - эти форматы сертификата хранятся в формате Base64 ASCII и чаще всего имеют расширения файлов .p7b или .p7c.  Файл P7B, кроме самого сертификата содержит цепочку сертификатов (открытых ключей) выпускающих центров сертификации (Intermediate CAs). Этот формат поддерживается в Microsoft Windows и Java Tomcat.
+   * PKCS#12 или PFX - эти форматы представляют собой двоичный формат для хранения сертификата сервера, промежуточных сертификатов и закрытого ключа в одном зашифрованном файле. Файлы такого формата сертификата используют расширение .pfx and .p12. PFX файлы обычно используются на windows машинах для импорта/экспорта сертификатов и закрытого ключа. 
+
+---++ Создание нового секретного ключа и запрос на получение сертификата
+<verbatim>
+openssl req -out cert.csr -newkey rsa:2048 -nodes -key cert.key
+</verbatim>
+
+Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.
+
+---++ Создание самоподписанного сертификата
+
+<verbatim>
+openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -key selfsigned.key -out sfcert.pem
+</verbatim>
+
+Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа. 
+
+---++ Верификация CSR-файла
+
+<verbatim>
+openssl req -noout -text -in cert.csr
+</verbatim>
+
+Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
+
+---++ Создание секретного RSA-ключа
+<verbatim>
+openssl genrsa -out private.key 2048
+</verbatim>
+
+---++ Создание CSR с использованием существующего секретного ключа
+<verbatim>
+openssl req -out certificate.csr -keyexisting.key -new
+</verbatim>
+Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
+
+---++ Удаление пароля-фразы из ключа
+<verbatim>
+openssl rsa -in certkey.key -out nopassphrase.key
+</verbatim>
+Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
+
+---++ Верификация секретного ключа
+<verbatim>
+openss lrsa -in certkey.key -check
+</verbatim>
+
+---++ Печать содержимого файла сертификата
+<verbatim>
+openssl x509 -in certfile.pem -text -noout
+</verbatim>
+
+---++ Верификация центра сертификации
+<verbatim>
+openssl x509 -in certfile.pem -noout -issuer -issuer_hash
+</verbatim>
+
+---++ Проверка хеш-значения сертификата
+<verbatim>
+openssl x509 -noout -hash -in bestflare.pem
+</verbatim>
+
+---++ Проверка содержимого сертификата в формате PKCS12
+<verbatim>
+openssl pkcs12 -info -nodes -in cert.p12
+</verbatim>
+PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
+
+---++ Проверка даты истечения срока действия PEM-файла
+<verbatim>
+openssl x509 -noout -in certificate.pem -dates
+</verbatim>
+
+---++ Конвертация сертификатов
+
+---+++ Конвертирование x509 в PEM
+<verbatim>
+openssl x509 -in certificate.cer -outform PEM -out certificate.pem 
+</verbatim>
+
+---+++ Преобразование формата DER в PEM
+<verbatim>
+
+openssl x509 -inform der -in sslcert.der -out sslcert.pem
+</verbatim>
+
+Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.
+
+---+++ Преобразование формата PEM в DER
+<verbatim>
+openssl x509 -outform der -in sslcert.pem -out sslcert.der
+</verbatim>
+
+---+++ Преобразование сертификата и секретного ключа в формат PKCS#12
+<verbatim>
+openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.crt
+</verbatim>
+
+Если необходимо использовать сертификат с оборудованием принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
+
+Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
+
+<verbatim>
+openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.cert -chain cacert.pem
+</verbatim>
+
+---+++ Конвертирование PEM в P7B
+<verbatim>
+openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile CACert.cer 
+</verbatim>
+
+---+++ Конвертирование PKCS7 в PEM
+<verbatim>
+openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
+</verbatim> 
+
+---+++ Преобразование формата PKCS12 в PEM-сертификат
+<verbatim>
+openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes 
+</verbatim>
+Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.
+
+---+++ Конвертирование PFX в PKCS#8
+<verbatim>
+openssl pkcs12 -in certificate.pfx -nocerts -nodes -out certificate.pem 
+openSSL pkcs8 -in certificate.pem -topk8 -nocrypt -out certificate.pk8 
+</verbatim>
+
+---+++ Конвертирование P7B в PFX
+<verbatim>
+openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
+openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile  cacert.cer 
+</verbatim>
+
+---++ Проверка удалённого хоста
+
+---+++ Проверка SSL-сертификата определенного URL-адреса
+<verbatim>
+openssls_client -connect yoururl.com:443 -showcerts
+</verbatim>
+
+---+++ Проверка срока действия SSL-сертификата для URL-адреса
+<verbatim>
+openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout -enddate
+</verbatim>
+
+---+++ Проверка, принимается ли на URL-адресе определённая версия SSL/TLS
+<verbatim>
+openssl s_client -connect secureurl.com:443 -ssl2
+openssl s_client -connect secureurl.com:443 -ssl3
+openssl s_client -connect secureurl.com:443 -tls1
+openssl s_client -connect secureurl.com:443 -tls1_1
+openssl s_client -connect secureurl.com:443 -tls1_2
+</verbatim>
+
+Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае -сообщение «handshake failure».
+
+---+++ Проверка того, принимается ли конкретный шифр на URL-адресе
+<verbatim>
+openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
+</verbatim>
+
+Если шифр будет принят, вы получите сообщение «CONNECTED», иначе - сообщение «handshake failure».
+
+
+-- Main.RomanDmitriev - 15 Nov 2020
+
+
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 131 - 0
docs/wiki/foswiki/data/FaqPoe.txt

@@ -0,0 +1,131 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604300042" format="1.1" reprev="1" version="3"}%
+%META:TOPICPARENT{name="WebHome"}%
+---+!! PoE
+%TOC%
+
+---++ Стандарты и типы PoE
+
+Технология PoE на данный момент существует в нескольких, кардинально отличающихся видах. Почему так произошло? К тому времени, как ребята из IEEE решили стандартизировать технологию, а произошло это не сразу после ее появления, некоторые корпорации уже изобрели свои собственные реализации PoE. Cisco, к примеру, еще в 2000 году представила питание устройств по витой паре. Да и после принятия официальных стандартов IEEE 802.3af в 2003 году, IEEE 802.3at в 2009 году многие производители внедряют свои собственные способы PoE. В основном, потому что реализация полноценных стандартов 802.3af, 802.3at - это сложно и дорого, а потребителям часто нужны модели эконом-класса. 
+
+В итоге PoE существует в нескольких вариантах: 
+   * по стандарту 802.3af, 
+   * по стандарту 802.3at, 
+   * по фирменным частным стандартам, из которых наиболее известен Passive PoE.   
+
+Питание по витой паре согласно стандартам 802.3af, 802.3at называют активным PoE, питание, реализованное по технологии Passive PoE - пассивным.  
+
+Реализация питания по витой паре в устройствах может различаться по типу распиновки. А также, в зависимости от напряжения, подаваемого на порт, существует несколько классов PoE. Все эти данные должны быть указаны в паспорте производителя и помогают правильно подобрать оборудование для проекта. 
+
+---++ Стандарты IEEE 802.3af, 802.3at - активное PoE 
+
+---+++ Оборудование PoE и принцип работы
+
+Технология PoE не оказывает влияния на качество передачи данных. Для её реализации используются свойства физического уровня Ethernet:
+* с использованием высокочастотных трансформаторов на обоих концах линии с центральным отводом от обмоток. Постоянное напряжение питания подается на центральные отводы вторичных обмоток этих трансформаторов, и так же с центральных отводов снимается на приемной стороне. Использование центральных отводов сигнальных трансформаторов позволяет без взаимного влияния передавать питание по сигнальным парам, то есть передавать по одним и тем же проводникам и высокочастотные данные, и постоянное напряжение питания;
+* использование свободных пар для подачи питания. Современные кабельные сети Ethernet, соответствующие стандарту [[100BASE-TX]], состоят из четырех пар, две из которых не задействованы.
+   
+Питающие устройства (инжекторы) отличаются по способу подключения питания, при этом питаемые устройства (сплиттеры) являются универсальными. Питаемые устройства должны проектироваться с возможностью приема питания в любом варианте, в том числе и при изменении полярности (например, когда используется перекрестный кабель).
+
+Питающее устройство подает питание в кабель только в том случае, если подключаемое устройство является устройством питаемого типа. Таким образом, оборудование, не поддерживающее технологию PoE и случайно подключенное к питающему устройству, не будет выведено из строя. Фактически, никакое стандартное оборудование Ethernet, соответствующее спецификации и новее, не может быть выведено из строя разностью потенциалов между парами, поскольку стандарт предусматривает обязательную гальваническую развязку. Развязывающие трансформаторы всех производителей тестируются напряжением 500—2000 Vrms. Процедура подачи и отключения питания на кабель состоит из нескольких этапов.
+
+---++++ Определение подключения
+Этап определения подключения служит для определения, является ли подключенное на противоположном конце кабеля устройство питаемым (PD). На этом этапе питающее устройство (PSE) подает на кабель напряжение от 2,8 до 10 B и определяет параметры входного сопротивления подключаемого устройства. Для питаемого устройства это сопротивление составляет от 19 до 26,5 кОм с параллельно подключенным конденсатором ёмкостью от 0 до 150 нФ<ref>По данным на микросхему SI3402 указанные номиналы составляют 23,75—26,25 кОм и 50—120 нФ.</ref>. Только после проверки соответствия параметров входного сопротивления для питаемого устройства питающее устройство переходит к следующему этапу, в противном случае питающее устройство повторно, через промежуток времени не менее 2 мс, пытается определить подключение.
+
+---++++ Классификация
+После этапа определения подключения питающее устройство может дополнительно выполнять этап классификации, определяя диапазон мощностей, потребляемых питаемым устройством, чтобы затем управлять этой мощностью. Каждому питаемому устройству, в зависимости от заявленной потребляемой мощности, будет присвоен класс от 0 до 4. Минимальный диапазон мощностей имеет класс 0. Класс 4 зарезервирован стандартом для дальнейшего развития. Питающее устройство может снять напряжение с кабеля, если питаемое устройство стало потреблять мощность больше объявленной во время классификации. Классификация выполняется путём введения в кабель питающим устройством напряжения от 14,5 до 20,5 В и измерения тока в линии.
+
+---++++ Подключение
+Этап определения подключения служит для определения, является ли подключенное на противоположном конце кабеля устройство питаемым (PD). На этом этапе питающее устройство (PSE) подает на кабель напряжение от 2,8 до 10 B и определяет параметры входного сопротивления подключаемого устройства. Для питаемого устройства это сопротивление составляет от 19 до 26,5 кОм с параллельно подключенным конденсатором ёмкостью от 0 до 150 нФ[7]. Только после проверки соответствия параметров входного сопротивления для питаемого устройства питающее устройство переходит к следующему этапу, в противном случае питающее устройство повторно, через промежуток времени не менее 2 мс, пытается определить подключение.
+
+---++++ Подача полного напряжения
+После прохождения этапов определения и классификации питающее устройство подает в кабель напряжение 48 В с фронтом нарастания не быстрее 400 мс. После подачи полного напряжения на питаемое устройство питающее устройство осуществляет контроль его работы двумя способами:
+* если питаемое устройство в течение 400 мс будет потреблять ток меньше 5 мА, то питающее устройство снимает питание с кабеля;
+* питающее устройство подает в кабель напряжение 1,9—5,0 В с частотой 500 Гц и вычисляет входное сопротивление; если это сопротивление будет больше 1980 кОм в течение 400 мс, питающее устройство снимает питание с кабеля.
+
+Кроме того, питающее устройство непрерывно следит за током перегрузки. Если питаемое устройство будет потреблять ток более 400 мА в течение 75 мс, питающее устройство снимет питание с кабеля.
+
+---++++ Отключение
+Когда питающее устройство определяет, что питаемое устройство отключено от кабеля или произошла перегрузка потребляемого тока питаемым устройством, происходит снятие напряжение с кабеля за время не менее 500 мс.
+
+---+++ Параметры
+| *Характеристика*| *Стандарт 802.3af* | *Стандарт 802.3at (PoE+, PoE plus)*|
+|Диапазон напряжения постоянного тока на питаемом устройстве | от 36 до 57 V (номинальное 48V) | от 42,5 до 57 V |
+|Диапазон напряжения, выдаваемого источником | от 44 до 57 V | от 50 до 57 V |
+|Максимальная мощность PoE-источника | 15,4 Вт | 30 Вт |
+|Максимальная мощность, получаемая PoE-потребителем | 12,95 Вт | 25,50 Вт |
+|Максимальный ток | 350 mA | 600 mA |
+|Максимальное сопротивление кабеля | 20 Ом (для cat.3) | 12,5 Ом (для cat.5)|
+|Классы питания| 0-3 | 0-4 |  
+
+---+++ Классы питания 
+
+Самым распространенным является 1 класс питания. 
+|*Класс*| *Стандарт* |*Мощность на порт, Вт* | *Мощность на устройство, Вт* |
+|0 | 802.3af/802.3at | 15,4 | 0,44 - 12,95 |
+|1 | 802.3af/802.3at |4,5 |0,44 - 3,84 |
+|2 | 802.3af/802.3at | 7 | 3,84 - 6,49 |
+|3 | 802.3af/802.3at |15,4 | 6,49 - 12,95 |
+|4 | 802.3at | 30 | 12,95 - 25,5 |
+
+---++ Passive PoE 
+
+Этот тип PoE - удешевленный аналог международных стандартов питания по витой паре. Как мы уже говорили выше, полноценная реализация 802.3af/802.3at сложна и повышает стоимость устройства. Поэтому производители сетевого оборудования эконом-сегмента используют вместо них в своей продукции пассивное питание по витой паре. Его особенность в том, что источник Passive PoE не опрашивает питаемое устройство и не согласовывает мощность. По свободным проводникам витой пары просто подается постоянное напряжение. Поэтому, если соединить источник PoE и потребитель, несовместимые друг с другом, оборудование может сгореть: сразу или через некоторое время, в результате постоянного перегрева и подгорания плат. Некоторые производители дополняют технологию Passive PoE полезными функциями. 
+
+Например, PoE out в устройствах MikroTik способно определять, подключено ли к питаемому порту устройство, выявлять, нет ли перегрузки или короткого замыкания. Кроме того, функциями PoE на большинстве устройств MikroTik можно управлять: включать, отключать их на портах, менять режим и т. п. Речь, конечно идет не о простеньких PoE-шнурах, а о реализации PoE в роутерах, коммутаторах и другом оборудовании производителя.
+
+Источники Passive PoE довольно широко варьируются по напряжению, мощности, силе тока. Чаще всего производители выпускают их под свое оборудование, поэтому в каждом отдельном случае нужно подбирать PoE-источник под конкретные потребности. 
+
+---++ Типы распиновки 
+
+---+++ Для стандарта 802.3af 
+   * Тип А. И электричество, и данные подаются по жилам 1, 2, 3, 6. Жилы 5, 7, 8 не используются. 
+   * Тип B. Для подачи электропитания используются жилы 4, 5, 7, 8. Данные передаются по остальным. 
+
+---+++ Для стандарта 802.3at
+   * Применяется только тип B.  Использование распиновки типа A запрещено стандартом. 
+
+---+++ Для Passive PoE: 
+В большинстве случаев подача электропитания осуществляется по проводникам 4, 5, 7, 8 (как в типе B стандарта 802.3af).  
+
+   * Распиновка PoE: <br />
+     <img src="%ATTACHURLPATH%/poe-pinout.jpg" alt="poe-pinout.jpg" width='1107' height='466' />
+
+Существует также распиновка по третьему типу, когда для подачи питания задействуются все жилы стандартного четырехпарного кабеля, но она встречается реже, обычно в фирменных реализациях PoE, например, UPOE от Cisco. Если с обеих сторон сети вы устанавливаете оборудование с поддержкой стандартов 802.3af/802.3at, то тип распиновки, фактически не имеет значения, так как устройство-потребитель PoE по стандарту может работать с любой из них. Однако если речь идет о совмещении оборудования разных стандартов, это может быть важным.
+
+---++ Кабель для PoE 
+От качества кабеля напрямую зависит качество PoE, и то, на какую расстояние его можно провести. Витую пару необходимо подбирать: 
+   * четырехпарную, не ниже cat.5e, 
+   * медную, а не омедненную (не биметалл), 
+   * с толщиной проводников не менее 0,51 мм (24 AWG), 
+   * с сопротивлением проводников не выше 9,38 Ом/100 м (более высокие значения способствуют большей потери мощности в кабеле)
+   
+---++ Длина PoE 
+Согласно стандартов 802.3af и 802.3at длина кабеля для PoE заявляется равной 100 метрам. Однако на практике максимальная длина витой пары PoE зависит от многих факторов, в том числе заранее неизвестных: 
+   * сечения проводников, 
+   * металла проводников, 
+   * количества изгибов на линии, 
+   * наводок, неравномерных характеристик витой пары, перегибов кабеля и пр.   
+
+Со скидкой на перегибы и прочее максимальная длина кабеля PoE желательна не более 75 метров. Однако с действительно качественным кабелем можно сделать и больший пролет. Если же мы говорим о Passive PoE, то здесь длина может быть меньше, вплоть до 30-60 метров. 
+
+Расчет линии надо проводить с учетом: 
+   * какое напряжение нужно питаемому устройству (в том числе при пиковой нагрузке), 
+   * какое напряжение выдает источник, 
+   * каково сопротивление витой пары и, соответственно, каковы будут потери напряжения на линии.  
+
+---++ Бюджет мощности PoE   
+При расчете бюджета PoE нужно:
+
+   * Посчитать общую мощность всех потребителей PoE на линии. Подсчет необходимо производить по пиковой нагрузке, с учетом все работающих модулей оборудования. 
+   * Соответственно мощности потребителей подобрать PoE-источник, обратив внимание на мощность отдельных портов (какое устройство к какому порту вы будете подключать?) и суммарную мощность источника (не превышает ли ее общая мощность потребителей?) При этом желательно, чтобы при расчете мощность PoE-источника (коммутатора, роутера) не использовалась более чем на 75% (закладываем резерв). Если линия планирует использоваться не один год, нужно понимать. что со временем выдаваемая источником PoE мощность будет снижаться, потери могут составлять до 10% в год. 
+   * Просчитать потери мощности от источника до потребителя. Главный фактор, от которого они зависят - это сопротивление проводников. Помимо значений по умолчанию, необходимо взять в расчет также и то, что сопротивление проводника повышается при нагреве, а значит, если кабель проложен в помещении с повышенной температурой, или находится под воздействием солнечных лучей, устройство на конце линии будет получать гораздо меньшую мощность, чем в теории.
+
+-- Main.RomanDmitriev - 31 Oct 2020
+
+
+
+%META:FILEATTACHMENT{name="poe-pinout.jpg" attachment="poe-pinout.jpg" attr="h" comment="Распиновка PoE" date="1604138207" path="poe-pinout.jpg" size="91801" user="roman" version="1"}%
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 34 - 0
docs/wiki/foswiki/data/FormAP.txt

@@ -0,0 +1,34 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| Poe In | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| SN | text | 80 | |
+| WLAC | checkbox | 1 | Yes |
+| WLAC Name | select | 1 | , %SEARCH{"\.*" scope="topic" topic="WirelessController*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Wlac Ap Id | text | 10 | |
+| Wlac Ap Group | text | 15 | |
+| SSIDs | select+multi | 7 | , %SEARCH{"\.*" scope="topic" topic="WirelessProfile*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(WirelessSSID)"}% |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Switch*,Router*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | text | 1 | AP |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 28 - 0
docs/wiki/foswiki/data/FormATS.txt

@@ -0,0 +1,28 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Device Type | text | 1 | ATS |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Switch*,Router*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 13 - 0
docs/wiki/foswiki/data/FormBuilding.txt

@@ -0,0 +1,13 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602792683" format="1.1" reprev="1" version="3"}%
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Address | text  | 255 | |
+
+-- Main.RomanDmitriev - 2020/10/05
+
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 32 - 0
docs/wiki/foswiki/data/FormCPO.txt

@@ -0,0 +1,32 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Power Outlets | text | 10 | |
+| Network Interface | select+multi+values | 3 | Ethernet=eth, Wifi 2.4G=wifi4, Wifi 5G=wifi5 |
+| Community | text | 20 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | text | 10 | CPO  |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 16 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 18 - 0
docs/wiki/foswiki/data/FormCertificate.txt

@@ -0,0 +1,18 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604395580" format="1.1" reprev="2" version="3"}%
+---+ Certificate Form
+
+This is a topic for used certificate info
+
+---++ Data form definition of used certifacates
+
+| *Name*  | *Type* | *Size* | *Values* |
+| CertType | select+value | 1 | Free, Paid |
+| Name | text  | 80 | %BASETOPIC% |
+| Dns Name | text | 80 | |
+| Description | text | 80 | |
+| Cert Alt names | text | 255 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Gateway*,Site*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Cert Vendor | text | 80 | |
+| Cert Period | text | 80 | |
+| Cert Valid To | date | | |
+-- Main.RomanDmitriev - 2020/10/05

+ 9 - 0
docs/wiki/foswiki/data/FormDhcpPool.txt

@@ -0,0 +1,9 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602757095" format="1.1" reprev="3" version="3"}%
+---+ Basic info dhcp pool
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text | 40 | %BASETOPIC% |
+| Description | text | 80 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Subnet | select | 1 | , %SEARCH{"Subnet" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", "}% |
+-- Main.RomanDmitriev - 2020/10/11

+ 10 - 0
docs/wiki/foswiki/data/FormDnsZone.txt

@@ -0,0 +1,10 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1605425093" format="1.1" reprev="3" version="3"}%
+---++ DNS zone
+
+| *Name* | *Type* | *Size* | *Values* |
+| Name | text | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Dns Zone Name | text | 80 | |
+| Domain Name | select | 1 | , %SEARCH{search="\.*" scope="topic" topic="Domain*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}%  |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 19 - 0
docs/wiki/foswiki/data/FormDomain.txt

@@ -0,0 +1,19 @@
+%META:TOPICINFO{author="roman" date="1602403329" format="1.1" version="1"}%
+---+ Domain information Form
+
+This is a topic for registered domains
+
+---++ Data form definition of registered domains
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Domain Type | select | 1 | Internet, Intranet |
+| Domain Created | date |  | |
+| Domain Paid | date |  | |
+| Domain Free | date| | |
+| Registrator | text | 40 | |
+| Dogovor | text | 40 | |
+
+-- Main.RomanDmitriev - 2020/10/11

+ 36 - 0
docs/wiki/foswiki/data/FormHardware.txt

@@ -0,0 +1,36 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1605521718" format="1.1" reprev="4" version="4"}%
+%META:TOPICPARENT{name="WebHome"}%
+---+ Server Hardware Form
+
+This is a topic, used for create server hardware
+
+---++ Data form definition of server hardwares topics
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Device Type | text | 20 | Hardware |
+| Server OS | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Vmware*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Form Factor | select+values | 1 | 1U, 2U, 3U, 4U, 5U, Other |
+| Manufacturer | text | 80 | |
+| Product Name | text | 80 | |
+| Serial Number | text | 80 | |
+| Base Board | text | 80 | |
+| CPU | text | 80 | |
+| Cpu Count | text | 2 | |
+| Cores Per Cpu | text | 2 | |
+| Network | text | 80 | |
+| Network Count | text | 2 | |
+| Memory | text | 10 | |
+| Memory Type | select | 1 | DDR, DDR2, DDR3, DDR4 |
+| Memory Form Factor | select | 1 | DIMM, FB-DIMM, RDIMM, LRDIMM |
+| Memory ECC | checkbox | 1 | Yes |
+| Memory REG | checkbox | 1 | Yes |
+| Memory Freq | text | 10 | |
+| RAID | text | 80 | |
+| Hdd Type | select+multi+values | 4 | HDD SATA, HDD SAS, SSHD, SSD, SCSI |
+| Hdd Form Factor | select+multi+values | 2 | 2.5, 3.5 |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/04

+ 13 - 0
docs/wiki/foswiki/data/FormIP.txt

@@ -0,0 +1,13 @@
+%META:TOPICINFO{author="roman" date="1602421276" format="1.1" version="1"}%
+---+ Basic info for ip-address
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text | 40 | %BASETOPIC% |
+| IP | text | 18 | |
+| Mac | text | 20 | |
+| Description | text | 80 | |
+| Dns Name | text  | 80 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Subnet Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+
+-- Main.RomanDmitriev - 2020/10/11

+ 30 - 0
docs/wiki/foswiki/data/FormIPCAM.txt

@@ -0,0 +1,30 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Videoregistrator | select | 1 | , %SEARCH{"\.*" topic="DeviceVideoReg*" scope="topic" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(DnsName)"}% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| Poe In | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*"  topic="Switch*" scope="topic" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(DnsName)"}% |
+| Parent Port | text | 20 | |
+| Device Type | text | 10 | IPCAM |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 25 - 0
docs/wiki/foswiki/data/FormKvmHost.txt

@@ -0,0 +1,25 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1603006547" format="1.1" reprev="6" version="3"}%
+---++ Data form
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Hardware | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Cluster*,Hardware*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Dns Name | text | 80 | |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Description | text | 80 | |
+| Device Type | text | 10 | KvmHost |
+| Device OS | select+value | 1 | Centos 5, Centos 6, Centos 7, Centos 8, Ubuntu 14, Ubuntu 16, Ubuntu 18, Ubuntu 20, Debian 10, Linux |
+| Device CPU | text | 20 | |
+| Device Memory | text | 20 | |
+| Uplink | text | 40 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Parent Port | text | 40 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| User List | text | 80 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/05

+ 33 - 0
docs/wiki/foswiki/data/FormNetDevice.txt

@@ -0,0 +1,33 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| Poe In | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| Poe Out | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| Poe W | text | 10 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | select+value | 1 | Server, Computer, Switch, Router, Gateway, UPS, Sensor, AP, WLAC, Projector, Ats, Voip-Phone, Other  |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 31 - 0
docs/wiki/foswiki/data/FormPhone.txt

@@ -0,0 +1,31 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Device Type | select+value | 1 | IP-телефон, Цифровой, Аналоговый  |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| ATS | select+multi | 2 | , %SEARCH{"\.*" scope="topic" topic="DeviceATS*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Voip Gate | select | 1 | , %SEARCH{"\.*" scope="topic" topic="DeviceVoipGate*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Phone Number | text | 30 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Switch*,Router*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 38 - 0
docs/wiki/foswiki/data/FormPrinter.txt

@@ -0,0 +1,38 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Share Name | text | 40 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Printing Type | select+values | 1 | лазерный/светодиодный=laser, струйный=inkjet, сублимационный=sublimation, термопринтер=thermal |
+| Color | checkbox | 1 | Yes |
+| MFU | checkbox | 1 | Yes |
+| PaperSize | select | 1 | A4, A3, A3+ |
+| Email Print | checkbox | 1 | Yes |
+| iPrint | checkbox | 1 | Yes |
+| Wi-Fi Direct | checkbox | 1 | Yes |
+| Network | checkbox | 1 | Yes |
+| Wifi | checkbox | 1 | Yes |
+| Community | text | 20 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Switch*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | select+value | 1 | Printer |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 9 - 0
docs/wiki/foswiki/data/FormRack.txt

@@ -0,0 +1,9 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602757095" format="1.1" reprev="3" version="3"}%
+---+ Basic info by closet
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text | 40 | %BASETOPIC% |
+| Description | text | 80 | |
+
+-- Main.RomanDmitriev - 2020/10/11

+ 9 - 0
docs/wiki/foswiki/data/FormRoom.txt

@@ -0,0 +1,9 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602757095" format="1.1" reprev="3" version="3"}%
+---+ Basic info by closet
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text | 40 | %BASETOPIC% |
+| Description | text | 80 | |
+
+-- Main.RomanDmitriev - 2020/10/11

+ 35 - 0
docs/wiki/foswiki/data/FormRouter.txt

@@ -0,0 +1,35 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Hardware | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Hardware*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Routing Type | select+multi+values | 4 | BGP, RIP, OSPF, Static |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| Poe In | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| Poe Out | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| Poe W | text | 10 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | select+value | 1 | Server, Computer, Switch, Router, Gateway, UPS, Sensor, AP, WLAC, Projector, Ats, Voip-Phone, Other  |
+| Device Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 30 - 0
docs/wiki/foswiki/data/FormSensor.txt

@@ -0,0 +1,30 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}%, %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| Poe In | select | 1 | Нет, Passive, 802.3af, 802.3at, 802.3af/at, VendorFantasy |
+| Sensor Types | select+multi+values | 9 | Напряжение=Volt, Ток=Circut, Влажность=Humidity, Температура=Temperature, Давление=Pressure, Протечка=Leak, Дым=Smoke, Пожар=Fire, Контакт=DryContact  |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | text | 10 | Sensor |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 16 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 21 - 0
docs/wiki/foswiki/data/FormServerOs.txt

@@ -0,0 +1,21 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1603006547" format="1.1" reprev="6" version="3"}%
+---++ Data form
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Hardware | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Cluster*,Hardware*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Dns Name | text | 80 | |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Description | text | 80 | |
+| Device Type | text | 10 | Server |
+| Device OS | select+value | 1 | Windows 2003, Windows 2008, Windows 2012, Windows 2016, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Centos 5, Centos 6, Centos 7, Centos 8, Ubuntu 14, Ubuntu 16, Ubuntu 18, Ubuntu 20, Linux, Windows |
+| Device CPU | text | 20 | |
+| Device Memory | text | 20 | |
+| Uplink | text | 40 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Parent Port | text | 40 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Device IP | text | 20 | |
+| User List | text | 80 | |
+-- Main.RomanDmitriev - 2020/10/05

+ 9 - 0
docs/wiki/foswiki/data/FormService.txt

@@ -0,0 +1,9 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602685881" format="1.1" reprev="2" version="3"}%
+---++ Data form
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Service type | select | 1 | DNS,DHCP,HTTP,TFTP,NTP,SMTP,POP3,IMAP,SSH,Openvpn,Nagios,MySQL,PostgreSQL,Radius,Ldap,Fprobe,NFS,Nfcapd,Samba,Ftp,RsyncD,SSH,Elasticsearch,Graylog,Syslog,Rsyslog,Syslog-ng,MongoDB,Coturn,Kannel,Smsd,Vlc,ffmpeg,Other |
+-- Main.RomanDmitriev - 2020/10/12

+ 12 - 0
docs/wiki/foswiki/data/FormServiceDns.txt

@@ -0,0 +1,12 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602761200" format="1.1" reprev="1" version="1"}%
+---++ Data form
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Service type | text | 10 | DNS |
+| Zone List | select+multi | 10 | , %SEARCH{"\.*" scope="topic" topic="Dns*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+
+-- Main.RomanDmitriev - 2020/10/15
+

+ 15 - 0
docs/wiki/foswiki/data/FormSimple.txt

@@ -0,0 +1,15 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604238916" format="1.1" reprev="1" version="4"}%
+---+ Basic info for device
+
+This is a topic, used for create device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Description | text | 80 | |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 20 - 0
docs/wiki/foswiki/data/FormSite.txt

@@ -0,0 +1,20 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1602792683" format="1.1" reprev="1" version="3"}%
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Description | text | 80 | |
+| Dns Name | text  | 80 | |
+| Http proto | select | 1 | https, http |
+| Site alias | text | 80 | |
+| Site IP | text | 20 | |
+| Backend | select+value | 1 | Nginx, Apache, Nginx+Apache, Nginx+fsgi, Nginx+uWSGI, Other |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/05
+
+%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
+%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
+%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%

+ 12 - 0
docs/wiki/foswiki/data/FormSubnet.txt

@@ -0,0 +1,12 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604901710" format="1.1" reprev="2" version="3"}%
+---+ Basic info for subnet
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Subnet Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Subnet | text  | 80 | |
+| Description | text | 255 | |
+| Subnet Type | select+values | 1 | Public, Private |
+| Subnet Mask | select+values | 1 | 255.0.0.0=8, 255.128.0.0=9, 255.192.0.0=10, 255.224.0.0=11, 255.240.0.0=12, 255.248.0.0=13, 255.252.0.0=14, 255.254.0.0=15, 255.255.0.0=16, 255.255.128.0=17, 255.255.192.0=18, 255.255.224.0=19, 255.255.240.0=20, 255.255.248.0=21, 255.255.252.0=22, 255.255.254.0=23, 255.255.255.0=24, 255.255.255.128=25, 255.255.255.192=26, 255.255.255.224=27, 255.255.255.240=28, 255.255.255.248=29, 255.255.255.252=30, 255.255.255.254=31, 255.255.255.255=32 |
+| Subnet Dhcp Pool | select | 1 | , %SEARCH{"\.*" scope="topic" topic="DhcpPool*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+-- Main.RomanDmitriev - 2020/10/11

+ 32 - 0
docs/wiki/foswiki/data/FormUps.txt

@@ -0,0 +1,32 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604238916" format="1.1" reprev="1" version="4"}%
+---+ Basic info for network device
+
+This is a topic, used for create UPS
+
+---++ Data form definition of UPS
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Last battery changed | date | | |
+| Number Input Lines | select | 1 | 1, 3 |
+| SN | text | 80 | |
+| Community | text | 20 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | select | 1 | UPS |
+| Device Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 16 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 30 - 0
docs/wiki/foswiki/data/FormVideoReg.txt

@@ -0,0 +1,30 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Rack | select | 1 | , %SEARCH{scope="topic" topic="Rack*" nototal="on" nosummary="on" nosearch="on" type="query" format="$topic" separator=", " order="formfield(Parent)"}% |
+| Unit | text | 10 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Camera Count | text | 10 | |
+| IQN | text | 100 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Type | text | 10 | VideoRegistrator  |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 16 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 23 - 0
docs/wiki/foswiki/data/FormVirtual.txt

@@ -0,0 +1,23 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1603006547" format="1.1" reprev="6" version="3"}%
+---++ Data form
+
+| *Name*  | *Type* | *Size* | *Values* |
+| ParentHost | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Cluster*,Server*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Dns Name | text | 80 | |
+| Description | text | 80 | |
+| Device Type | select | 1 | Virtual KVM, Virtual OpenVZ, Virtual Docker, Virtual ESXi |
+| Device OS | select | 1 | Windows 2003, Windows 2008, Windows 2012, Windows 2016, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Centos 5, Centos 6, Centos 7, Centos 8, Ubuntu 14, Ubuntu 16, Ubuntu 18, Ubuntu 20, Linux, Windows |
+| Device CPU | text | 20 | |
+| Device Memory | text | 20 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Server*,Router*,Switch*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Device IP | text | 20 | |
+| Mac | text | 16 | |
+| User List | text | 80 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/05

+ 12 - 0
docs/wiki/foswiki/data/FormVlan.txt

@@ -0,0 +1,12 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1603215408" format="1.1" reprev="2" version="2"}%
+---++ Data form definition of vlan
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Router*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Name | text  | 80 | %BASETOPIC% |
+| Vlan Name | text | 80 | |
+| Vlan tag | text  | 4 | |
+| Description | text | 80 | |
+| Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 30 - 0
docs/wiki/foswiki/data/FormVoipGate.txt

@@ -0,0 +1,30 @@
+%META:TOPICINFO{author="roman" comment="reprev" date="1604772215" format="1.1" reprev="1" version="7"}%
+---+ Basic info for network device
+
+This is a topic, used for create network device
+
+---++ Data form definition of server os settings
+
+| *Name*  | *Type* | *Size* | *Values* |
+| Device Type | text | 10 | VoipGate |
+| Name | text  | 80 | %BASETOPIC% |
+| Place | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Building*,Room*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| ATS | select+multi | 2 | , %SEARCH{"\.*" scope="topic" topic="DeviceATS*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Phone Number | text | 30 | |
+| Dns Name | text  | 80 | |
+| Description | text | 80 | |
+| Vendor | select | 1 | %DATABASE_SQL{description="stat" sql="SELECT name FROM vendors ORDER BY name" format=" $name," }% |
+| Device Model | text | 80 | |
+| Firmware | text | 100 | |
+| Community | text | 20 | |
+| SN | text | 80 | |
+| Uplink | text | 20 | |
+| Parent | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Switch*,Router*,Gateway*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Name)"}% |
+| Parent Port | text | 20 | |
+| Device Subnet | select | 1 | , %SEARCH{"\.*"  scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Device IP | text | 20 | |
+| Mac | text | 20 | |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/12

+ 12 - 0
docs/wiki/foswiki/data/FormWirelessProfile.txt

@@ -0,0 +1,12 @@
+%META:TOPICINFO{author="roman" date="1604786685" format="1.1" version="5"}%
+| *Name* | *Type* | *Size* | *Values* |
+| Name | text | 20 | %BASETOPIC% |
+| Wireless SSID | text | 20 | |
+| Vlan | text | 4 | |
+| Subnet | select | 1 | , %SEARCH{"\.*" scope="topic" topic="Subnet-*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", " order="formfield(Subnet)"}% |
+| Description | text | 80 | |
+| Wireless PSK | select | 1 | , %SEARCH{search="\.*" scope="topic" topic="AuthWirelessPSK*" nototal="on" nosummary="on" nosearch="on" regex="on" format="$topic" separator=", "}% |
+| Disabled | checkbox | 1 |  Yes |
+| Deleted | checkbox | 1 |  Yes |
+
+-- Main.RomanDmitriev - 2020/10/13

+ 21 - 0
docs/wiki/foswiki/data/IncludeATSPhoneList.txt

@@ -0,0 +1,21 @@
+---++ Список телефонов на этой АТС
+
+%SEARCH{
+"Disabled='' and (ATS=~'%BASETOPIC%\b' or ATS=~'\b%BASETOPIC%\b' or ATS=~'\b%BASETOPIC%$' or ATS='%BASETOPIC%')"
+type="query"
+topic="DevicePhone*"
+nosearch="on"
+header="|*Name*|*Model*|*Type*|*Number*|*Description*|"
+format="| [[$topic][$formfield(Name)]] | $formfield(Vendor) $formfield(DeviceModel)| $formfield(DeviceType) | $formfield(Number) | $formfield(Description) |"
+}%
+
+---++ Список шлюзов на АТС
+
+%SEARCH{
+"Disabled='' and (ATS=~'%BASETOPIC%\b' or ATS=~'\b%BASETOPIC%\b' or ATS=~'\b%BASETOPIC%$' or ATS='%BASETOPIC%')"
+type="query"
+topic="DeviceVoipGate*"
+nosearch="on"
+header="|*Name*|*Model*|*IP*|*Number*|*Description*|"
+format="| [[$topic][$formfield(Name)]] | $formfield(Vendor) $formfield(DeviceModel)| $formfield(IP) | $formfield(Number) | $formfield(Description) |"
+}%

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddAP.txt

@@ -0,0 +1,9 @@
+<form name="newAP" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить ТД:
+     <input type="text" name="topic" value="DeviceAP" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultNetdeviceTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormAP" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddATS.txt

@@ -0,0 +1,9 @@
+<form name="newATS" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить АТС:
+     <input type="text" name="topic" value="DeviceATS" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultATSTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormATS" />
+     <input type="submit" value="Create" />
+</form>

+ 8 - 0
docs/wiki/foswiki/data/IncludeAddAcl.txt

@@ -0,0 +1,8 @@
+<form name="newAcl" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить список доступа:
+     <input type="text" name="topic" value="Acl%BASETOPIC%" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultAclTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="submit" value="Create" />
+</form>

+ 8 - 0
docs/wiki/foswiki/data/IncludeAddAuth.txt

@@ -0,0 +1,8 @@
+<form name="newAuth" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить пароли:
+     <input type="text" name="topic" value="Auth%BASETOPIC%" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultAuthTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="submit" value="Create" />
+</form>

+ 8 - 0
docs/wiki/foswiki/data/IncludeAddAuthPSK.txt

@@ -0,0 +1,8 @@
+<form name="newAuthPSK" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить ключ сети:
+     <input type="text" name="topic" value="AuthWirelessPSK" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultAuthWirelessPSK" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddBuilding.txt

@@ -0,0 +1,9 @@
+<form name="newBuilding" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить здание:
+     <input type="text" name="topic" value="Building" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultBuildingTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormBuilding" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddCPO.txt

@@ -0,0 +1,9 @@
+<form name="newCPO" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить управляемую розетку/пилот:
+     <input type="text" name="topic" value="DeviceCPO" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultCPOTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormCPO" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddCert.txt

@@ -0,0 +1,9 @@
+<form name="newCert" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить сертификат:
+     <input type="text" name="topic" value="Cert" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultCertTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormCertificate" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddDnsZone.txt

@@ -0,0 +1,9 @@
+<form name="newDnsZone" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить днс-зону:
+     <input type="text" name="topic" value="DnsZone" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultDnsZoneTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormDnsZone" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddDomain.txt

@@ -0,0 +1,9 @@
+<form name="newDomain" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить домен:
+     <input type="text" name="topic" value="Domain" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultDomainTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormDomain" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddEsxi.txt

@@ -0,0 +1,9 @@
+<form name="newEsxi" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить гипервизор:
+     <input type="text" name="topic" value="VmwareESXI" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultEsxiTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormServerOs" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddGateway.txt

@@ -0,0 +1,9 @@
+<form name="newGateway" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить шлюз:
+     <input type="text" name="topic" value="Gateway" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultGatewayTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormNetDevice" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddHardware.txt

@@ -0,0 +1,9 @@
+<form name="newHardware" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить аппаратную часть для сервера:
+     <input type="text" name="topic" value="Hardware" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultHardwareTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormHardware" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddIPCAM.txt

@@ -0,0 +1,9 @@
+<form name="newIPCAM" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить камеру:
+     <input type="text" name="topic" value="DeviceIPCAM" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultNetdeviceTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormIPCAM" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddKvmHost.txt

@@ -0,0 +1,9 @@
+<form name="newKvmHost" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить Host-сервер:
+     <input type="text" name="topic" value="Server" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultKvmHostTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormKvmHost" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddNetDevice.txt

@@ -0,0 +1,9 @@
+<form name="newNetDev" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить устройство:
+     <input type="text" name="topic" value="Device" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultNetdeviceTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormNetDevice" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddPhone.txt

@@ -0,0 +1,9 @@
+<form name="newPhone" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить телефон:
+     <input type="text" name="topic" value="DevicePhone" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultPhoneTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormPhone" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddPool.txt

@@ -0,0 +1,9 @@
+<form name="newPool" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить dhcp-пул:
+     <input type="text" name="topic" value="DhcpPool" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultPoolTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormDhcpPool" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddPrinter.txt

@@ -0,0 +1,9 @@
+<form name="newPrinter" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить принтер:
+     <input type="text" name="topic" value="DevicePrinter" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultNetdeviceTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormPrinter" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddRack.txt

@@ -0,0 +1,9 @@
+<form name="newRack" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить стойку/шкаф:
+     <input type="text" name="topic" value="Rack" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultRackTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormRack" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddRoom.txt

@@ -0,0 +1,9 @@
+<form name="newRoom" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить комнату:
+     <input type="text" name="topic" value="Room" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultRoomTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormRoom" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddRouter.txt

@@ -0,0 +1,9 @@
+<form name="newRouter" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить маршрутизатор:
+     <input type="text" name="topic" value="Router" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultRouterTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormNetDevice" />
+     <input type="submit" value="Create" />
+</form>

+ 9 - 0
docs/wiki/foswiki/data/IncludeAddSensor.txt

@@ -0,0 +1,9 @@
+<form name="newSensor" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
+   * Добавить датчик:
+     <input type="text" name="topic" value="Sensor" size="40" />
+     <input type="hidden" name="templatetopic" value="DefaultNetdeviceTemplate" />
+     <input type="hidden" name="onlywikiname" value="off" />
+     <input type="hidden" name="topicparent" value="%BASETOPIC%" />
+     <input type="hidden" name="formtemplate" value="FormSensor" />
+     <input type="submit" value="Create" />
+</form>

Some files were not shown because too many files changed in this diff