aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2019-08-12 16:49:32 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2019-08-12 16:49:32 +0300
commit7c2f14d30c8882eafb58a78e715fa76760884e13 (patch)
tree098c629f16024533fb83f1db31b3312c245e0aeb
downloadassignments-7c2f14d30c8882eafb58a78e715fa76760884e13.tar.gz
assignments-7c2f14d30c8882eafb58a78e715fa76760884e13.tar.bz2
Initial commit
-rw-r--r--.gitignore8
-rw-r--r--Makefile48
-rw-r--r--OWS-STATS.txt176
-rw-r--r--SESSION-STATS.txt83
-rw-r--r--graphics/bwd.pngbin0 -> 180 bytes
-rw-r--r--graphics/ctx.pngbin0 -> 312 bytes
-rw-r--r--graphics/fwd.pngbin0 -> 180 bytes
-rw-r--r--graphics/idx.pngbin0 -> 164 bytes
-rw-r--r--graphics/left.pngbin0 -> 193 bytes
-rw-r--r--graphics/right.pngbin0 -> 191 bytes
-rw-r--r--graphics/top.pngbin0 -> 149 bytes
-rw-r--r--graphics/up.pngbin0 -> 193 bytes
-rw-r--r--gray-assignments.texi237
-rw-r--r--gray.css49
-rw-r--r--gray.schema171
-rw-r--r--html.init139
-rw-r--r--umi.schema523
17 files changed, 1434 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c672b36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+*.inc
+*.info
+*~
+SENDMAIL-STATS.txt
+MYSQL-STAT-MIB.txt
+TALLYMAN-MIB.txt
+*.html
+gray-assignments
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f0581d4
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,48 @@
+SCHEMES = gray.scheme umi.scheme
+MIBS = OWS-STATS.txt SESSION-STATS.txt
+REFMIBS = TALLYMAN-MIB.txt MYSQL-STAT-MIB.txt SENDMAIL-STATS.txt
+
+TEXINFO_SOURCES = $(SCHEMES:.scheme=.inc) $(MIBS:.txt=.inc) $(REFMIBS:.txt=.inc)
+SOURCES = gray-assignments.texi version.texi $(TEXINFO_SOURCES)
+
+gray-assignments.info: $(SOURCES)
+ makeinfo gray-assignments.texi
+
+html: $(SOURCES)
+ makeinfo --html --init-file=html.init gray-assignments.texi
+
+version.texi: gray-assignments.texi
+ @echo "@set UPDATED " \
+ $$(date +"%d %B %Y" --date "$$(stat -c %y gray-assignments.texi)") > version.texi
+
+.schema.inc:
+ @sed -e 's/\([{}@]\)/@\1/g' $< > $@
+
+.txt.inc:
+ @sed -e 's/\([{}@]\)/@\1/g' $< > $@
+
+.SUFFIXES: .schema .txt .inc
+
+define localcopy
+$(1):;
+ @curl -sS -o $(1).tmp $(2)
+ @if test -f $(1) && cmp $(1).tmp $(1) >/dev/null 2>&1; then \
+ rm $(1).tmp; \
+ else \
+ mv $(1).tmp $(1); \
+ fi
+endef
+
+.PHONY: $(REFMIBS)
+
+$(call localcopy,SENDMAIL-STATS.txt,http://git.gnu.org.ua/cgit/netsnmp-sendmail.git/plain/SENDMAIL-STATS.txt)
+$(call localcopy,MYSQL-STAT-MIB.txt,http://git.gnu.org.ua/cgit/mysqlstat.git/plain/src/MYSQL-STAT-MIB.txt)
+$(call localcopy,TALLYMAN-MIB.txt,http://git.gnu.org.ua/cgit/tallyman.git/plain/src/TALLYMAN-MIB.txt)
+
+install: html
+ @if test -z "$(DESTDIR)"; then \
+ echo >&2 "usage: make install DESTDIR=DIR"; \
+ exit 1; \
+ fi
+ test -d $(DESTDIR) || mkdir -p $(DESTDIR)
+ rsync -az --delete --exclude=build/ gray-assignments/ gray.css graphics $(DESTDIR)
diff --git a/OWS-STATS.txt b/OWS-STATS.txt
new file mode 100644
index 0000000..0d9e8d9
--- /dev/null
+++ b/OWS-STATS.txt
@@ -0,0 +1,176 @@
+OWS-STATS DEFINITIONS ::= BEGIN
+
+-- *************************************************************
+--
+-- OWS statistics MIB
+--
+-- *************************************************************
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC
+ OBJECT-GROUP, MODULE-COMPLIANCE
+ FROM SNMPv2-CONF;
+
+ows MODULE-IDENTITY
+ LAST-UPDATED "201811301640Z"
+ ORGANIZATION "Gray Software"
+ CONTACT-INFO "Sergey Poznyakoff <gray@gnu.org>"
+ DESCRIPTION
+ "This MIB module defines objects for OWS statistics."
+ REVISION "201811301640Z"
+ DESCRIPTION
+ "First revision."
+ ::= { enterprises 9163 110 }
+
+EndpointNameString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "256t"
+ STATUS current
+ DESCRIPTION "A string containing endpoint name."
+ SYNTAX OCTET STRING (SIZE (0..256))
+
+EndpointURLString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "256t"
+ STATUS current
+ DESCRIPTION
+ "A string containing endpoint URL."
+ SYNTAX OCTET STRING (SIZE (0..256))
+
+EndpointCheckStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents the status of the endpoint check"
+ SYNTAX INTEGER { failure(0), success(1) }
+
+EndpointService ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "64t"
+ STATUS current
+ DESCRIPTION "A string containing the service name."
+ SYNTAX OCTET STRING (SIZE (0..64))
+
+EndpointAction ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "64t"
+ STATUS current
+ DESCRIPTION "A string containing action name."
+ SYNTAX OCTET STRING (SIZE (0..64))
+
+EndpointResponseMessage ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "512t"
+ STATUS current
+ DESCRIPTION "A string containing action name."
+ SYNTAX OCTET STRING (SIZE (0..512))
+
+EndpointEntry ::= SEQUENCE {
+ endpointIndex Integer32,
+ endpointName EndpointNameString,
+ endpointURL EndpointURLString,
+ endpointResponseTime Integer32,
+ endpointCheckStatus EndpointCheckStatus,
+ endpointErrorService EndpointService,
+ endpointErrorAction EndpointAction,
+ endpointLastResponseStatus Integer32,
+ endpointLastResponseMessage EndpointResponseMessage
+}
+
+endpointTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EndpointEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Endpoint statistics table."
+ ::= { ows 1 }
+
+endpointEntry OBJECT-TYPE
+ SYNTAX EndpointEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry (conceptual row) describing an endpoint."
+ INDEX { endpointIndex }
+ ::= { endpointTable 1 }
+
+endpointIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A number uniquely identifying each endpoint."
+ ::= { endpointEntry 1 }
+
+endpointName OBJECT-TYPE
+ SYNTAX EndpointNameString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the endpoint."
+ ::= { endpointEntry 2 }
+
+endpointURL OBJECT-TYPE
+ SYNTAX EndpointURLString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "URL of the endpoint."
+ ::= { endpointEntry 3 }
+
+endpointResponseTime OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Response time (milliseconds)."
+ ::= { endpointEntry 4 }
+
+endpointCheckStatus OBJECT-TYPE
+ SYNTAX EndpointCheckStatus
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Status of the last check."
+ ::= { endpointEntry 5 }
+
+endpointErrorService OBJECT-TYPE
+ SYNTAX EndpointService
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Name of the service that failed."
+ ::= { endpointEntry 6 }
+
+endpointErrorAction OBJECT-TYPE
+ SYNTAX EndpointAction
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Name of the action that failed."
+ ::= { endpointEntry 7 }
+
+endpointLastResponseStatus OBJECT-TYPE
+ SYNTAX Integer32 (100..600)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "HTTP status code of the failed response"
+ ::= { endpointEntry 8 }
+
+endpointLastResponseMessage OBJECT-TYPE
+ SYNTAX EndpointResponseMessage
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "HTTP status message of the failed response"
+ ::= { endpointEntry 9 }
+
+END
+
+-- Local variables:
+-- eval: (add-hook 'write-file-hooks 'time-stamp)
+-- time-stamp-start: "\\(LAST-UPDATED\\|REVISION\\) *\""
+-- time-stamp-end: "\""
+-- time-stamp-format: "%:y%02m%02d%02H%02MZ"
+-- time-stamp-line-limit: 32
+-- time-stamp-count: 2
+-- end:
+
diff --git a/SESSION-STATS.txt b/SESSION-STATS.txt
new file mode 100644
index 0000000..a14838e
--- /dev/null
+++ b/SESSION-STATS.txt
@@ -0,0 +1,83 @@
+SESSION-STATS DEFINITIONS ::= BEGIN
+
+-- *************************************************************
+--
+-- PHP session statistics MIB
+--
+-- *************************************************************
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, enterprises, Counter64, Integer32
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, DisplayString
+ FROM SNMPv2-TC
+ OBJECT-GROUP, MODULE-COMPLIANCE
+ FROM SNMPv2-CONF;
+
+phpsession MODULE-IDENTITY
+ LAST-UPDATED "201604141630Z"
+ ORGANIZATION "Gray Software"
+ CONTACT-INFO "Sergey Poznyakoff <gray@gnu.org>"
+ DESCRIPTION
+ "This MIB module defines objects for PHP session statistics."
+ REVISION "201604141630Z"
+ DESCRIPTION
+ "First revision."
+ ::= { enterprises 9163 101 }
+
+totalSessionFiles OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of session files in use."
+ ::= { phpsession 1 }
+
+totalSessionProcesses OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Total number of processes using the session files."
+ ::= { phpsession 2 }
+
+avgProcessesPerSession OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Average number of processes using a singe session,
+ rounded to the nearest integer digit."
+ ::= { phpsession 3 }
+
+maxProcessesPerSession OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Maximum number of processes using a singe session."
+ ::= { phpsession 4 }
+
+mostUsedSessionFile OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..1024))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Name of the session file corresponding to
+ maxProcessesPerSession value."
+ ::= { phpsession 5 }
+
+END
+
+-- Local variables:
+-- eval: (add-hook 'write-file-hooks 'time-stamp)
+-- time-stamp-start: "\\(LAST-UPDATED\\|REVISION\\) *\""
+-- time-stamp-end: "\""
+-- time-stamp-format: "%:y%02m%02d%02H%02MZ"
+-- time-stamp-line-limit: 32
+-- time-stamp-count: 2
+-- end:
+
+
+
+
diff --git a/graphics/bwd.png b/graphics/bwd.png
new file mode 100644
index 0000000..0142be8
--- /dev/null
+++ b/graphics/bwd.png
Binary files differ
diff --git a/graphics/ctx.png b/graphics/ctx.png
new file mode 100644
index 0000000..4a86f08
--- /dev/null
+++ b/graphics/ctx.png
Binary files differ
diff --git a/graphics/fwd.png b/graphics/fwd.png
new file mode 100644
index 0000000..2e63647
--- /dev/null
+++ b/graphics/fwd.png
Binary files differ
diff --git a/graphics/idx.png b/graphics/idx.png
new file mode 100644
index 0000000..fd9356b
--- /dev/null
+++ b/graphics/idx.png
Binary files differ
diff --git a/graphics/left.png b/graphics/left.png
new file mode 100644
index 0000000..1eeebee
--- /dev/null
+++ b/graphics/left.png
Binary files differ
diff --git a/graphics/right.png b/graphics/right.png
new file mode 100644
index 0000000..0d1c199
--- /dev/null
+++ b/graphics/right.png
Binary files differ
diff --git a/graphics/top.png b/graphics/top.png
new file mode 100644
index 0000000..6544b17
--- /dev/null
+++ b/graphics/top.png
Binary files differ
diff --git a/graphics/up.png b/graphics/up.png
new file mode 100644
index 0000000..65a1897
--- /dev/null
+++ b/graphics/up.png
Binary files differ
diff --git a/gray-assignments.texi b/gray-assignments.texi
new file mode 100644
index 0000000..0676f4f
--- /dev/null
+++ b/gray-assignments.texi
@@ -0,0 +1,237 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename gray-assignments.info
+@settitle OID Assignments in 1.3.6.1.4.1.9163
+
+@include version.texi
+
+@ifinfo
+@dircategory References
+@direntry
+* Gray Software OID Assignments (gray-assignments). Assignments in 1.3.6.1.4.1.9163.
+@end direntry
+@end ifinfo
+
+@copying
+Copyright @copyright{} 2019 Sergey Poznyakoff
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover, and no Back-Cover texts.
+An online copy of the license is available at
+@uref{https://www.gnu.org/licenses/fdl.html}.
+@end copying
+
+@titlepage
+@title OID Assignments in 1.3.6.1.4.1.9163
+@subtitle version 1.0, @value{UPDATED}
+@author Sergey Poznyakoff.
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@ifnottex
+@node Top
+@top Overview
+This edition of the @cite{Assignments}, last updated on
+@value{UPDATED}, documents OID assignments within 1.3.6.1.4.1.9163 IANA
+Private Enterprise Number node.
+
+@insertcopying
+
+@menu
+* Assignments::
+
+Apendices
+
+* gray.schema::
+* SENDMAIL-STATS.txt::
+* SESSION-STATS.txt::
+* MYSQL-STAT-MIB.txt::
+* TALLYMAN-MIB.txt::
+* OWS-STATS.txt::
+* umi.schema::
+@end menu
+@end ifnottex
+@contents
+
+@node Assignments
+@unnumbered Assignments
+
+The enterprise number 9163 is listed in @cite{IANA enterprise list}@footnote{
+@uref{https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers}}
+at line 36608. Initially it was registered for GNU Radius Project.
+Since then the project has moved its MIB to the Free Software
+Foundation enterprise number (11591) and 9163 got reused for the needs
+of various free software projects by Sergey Poznyakoff.
+
+This document lists current assignments. For additional information,
+including allocation requests,
+please contact @email{gray@@gnu.org, Sergey Poznyakoff}.
+
+@defvr {OID} 1.3.6.1.4.1.9163.2
+Name: @samp{gray.schema}
+@*Purpose: Various LDAP assignments.
+@*References: @xref{gray.schema}.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.100
+Name: @samp{SENDMAIL-STATS.txt}
+@*Purpose: MIB assignment for the @command{NetSNMP::Sendmail} project.
+@*Project: @uref{https://metacpan.org/pod/NetSNMP::Sendmail}.
+@*References: @xref{SENDMAIL-STATS.txt}.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.101
+Name: @samp{SESSION-STATS.txt}
+@*Purpose: MIB assignment for @command{NetSNMP::PHPSession}.
+@*References: @xref{SESSION-STATS.txt}.
+@*Notes: The project exists only in my local repository. It is
+unlikely that it will be ever published. This OID can be regarded as
+a candidate for the re-assignment.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.102
+Name: @samp{MYSQL-STAT-MIB.txt}
+@*Purpose: MIB assignment for @command{mysqlstat}.
+@*Project: @uref{https://puszcza.gnu.org.ua/projects/mysqlstat}
+@*References: @xref{MYSQL-STAT-MIB.txt}.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.103
+Name: @samp{TALLYMAN-MIB.txt}
+@*Purpose: MIB assignment for @command{talliman}
+@*Project: @uref{https://puszcza.gnu.org.ua/projects/tallyman}
+@*References: @xref{TALLYMAN-MIB.txt}.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.110
+Name: @samp{OWS-STATS.txt}
+@*Purpose: MIB assignment for @command{NetSNMP::OWSProbe}
+@*References: @xref{OWS-STATS.txt}.
+@*Note: The project exists only in my local repository. It is
+unlikely that it will be ever published. This OID can be regarded as
+a candidate for the re-assignment.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.111
+Name: check_class_snmp
+@*Purpose: MIB assignment for @command{check_class_snmp}
+@*Note: Project is in development.
+@end defvr
+
+@defvr {OID} 1.3.6.1.4.1.9163.864
+Name: @samp{umi.schema}
+@*Purpose: LDAP assignments for @command{UMI}.
+@*Project: @uref{https://github.com/z-eos/umi}
+@*References: @xref{umi.schema}.
+@end defvr
+
+@node gray.schema
+@appendix gray.schema
+
+The LDAP schema below defines various accounting objects I use on my
+servers.
+
+Base OID: 1.3.6.1.4.1.9163.2
+
+@example
+@include gray.inc
+@end example
+
+@node SENDMAIL-STATS.txt
+@appendix SENDMAIL-STATS.txt
+
+This MIB provides access to the Sendmail statistics information
+obtained by mailq and mailstats. It is used by the
+@command{NetSNMP::Sendmail} module (see
+@uref{https://metacpan.org/pod/NetSNMP::Sendmail}).
+
+The most recent version of this MIB is available from
+@uref{http://git.gnu.org.ua/cgit/netsnmp-sendmail.git/tree/SENDMAIL-STATS.txt}.
+
+Base OID: 1.3.6.1.4.1.9163.100
+
+@example
+@include SENDMAIL-STATS.inc
+@end example
+
+@node SESSION-STATS.txt
+@appendix SESSION-STATS.txt
+
+This MIB is used by the @command{NetSNMP::PHPSession} module, which
+provides statistics about the usage of PHP session files. The module
+is Linux-specific. Although it is widely used on servers of Norse
+Digital, I feel that it is too specific to merit any interest.
+Therefore I have never published it. Quite possibly the module would
+phase out some of these days, and the OID will be reused for some
+other purpose.
+
+Base OID: 1.3.6.1.4.1.9163.101
+
+@example
+@include SESSION-STATS.inc
+@end example
+
+@node MYSQL-STAT-MIB.txt
+@appendix MYSQL-STAT-MIB.txt
+
+This MIB is used by the @command{mysqlstat} project - a loadable
+module for @command{snmpd} which provides access to the process list
+statistics and replication status of @command{mysqld} servers. The
+module is available at @uref{https://puszcza.gnu.org.ua/projects/mysqlstat}.
+
+The most recent version of this MIB is available from
+@uref{http://git.gnu.org.ua/cgit/mysqlstat.git/tree/src/MYSQL-STAT-MIB.txt}
+
+Base OID: 1.3.6.1.4.1.9163.102
+
+@example
+@include MYSQL-STAT-MIB.inc
+@end example
+
+@node TALLYMAN-MIB.txt
+@appendix TALLYMAN-MIB.txt
+
+This MIB is used by the @command{talliman} package.
+@command{Tallyman} is an SNMP monitor for docker containers. It is
+avaialable from @uref{https://puszcza.gnu.org.ua/projects/tallyman}.
+
+The most recent version of this MIB is available from
+@uref{http://git.gnu.org.ua/cgit/tallyman.git/tree/src/TALLYMAN-MIB.txt}.
+
+Base OID: 1.3.6.1.4.1.9163.103
+
+@example
+@include TALLYMAN-MIB.inc
+@end example
+
+@node OWS-STATS.txt
+@appendix OWS-STATS.txt
+
+Yet another unpublished project: @command{NetSNMP::OWSProbe}. Will
+hopefully be withdrawn.
+
+Base OID: 1.3.6.1.4.1.9163.110
+
+@example
+@include OWS-STATS.inc
+@end example
+
+@node umi.schema
+@appendix umi.schema
+
+LDAP schema used in the @cite{Unified Management Interface} by
+Zeus Panchenko: @uref{https://github.com/z-eos/umi}.
+
+@example
+@include umi.inc
+@end example
+
+@bye
+
+
+
+
diff --git a/gray.css b/gray.css
new file mode 100644
index 0000000..f1450ee
--- /dev/null
+++ b/gray.css
@@ -0,0 +1,49 @@
+/* Basic settings */
+body {
+ font-family: serif;
+ font-size: 120%;
+ color: #333;
+ background: white;
+ padding: 4px;
+ margin-top: 0;
+ margin-bottom: 2em;
+ margin-left: 5%;
+ margin-right: 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+img {
+ border: none 0;
+ vertical-align: top;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+.right {
+ text-align: right;
+}
+
+dt {
+ font-weight: bold;
+}
+
+/* Copyright section */
+div.copyright {
+ font-size: 80%;
+ padding: 4px;
+ border-top: solid 2px black;
+}
+
+div.header {
+ border-bottom: solid 2px black;
+}
diff --git a/gray.schema b/gray.schema
new file mode 100644
index 0000000..7c60a73
--- /dev/null
+++ b/gray.schema
@@ -0,0 +1,171 @@
+################################################################################
+# Gray's experimental LDAP schema items
+#
+# depends upon:
+# nis.schema
+#
+# Revision: 201908111852Z
+################################################################################
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.0 NAME 'grayPublicKey'
+ DESC 'SSH public key'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.1 NAME 'grayHost'
+ DESC 'host computer'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+# Object Class Definitions
+
+objectclass ( 1.3.6.1.4.1.9163.2.2.0 NAME 'grayAccount'
+ DESC 'Abstraction of an employee account'
+ SUP posixAccount AUXILIARY
+ MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
+ MAY ( userPassword $ loginShell $ gecos $ grayPublicKey $ grayHost $ mail ) )
+
+objectclass ( 1.3.6.1.4.1.9163.2.2.1 NAME 'grayGroup'
+ DESC 'Abstraction of an access group'
+ SUP posixGroup STRUCTURAL
+ MUST ( cn $ gidNumber )
+ MAY ( grayHost ) )
+#
+attributetype ( 1.3.6.1.4.1.9163.2.1.2 NAME 'grayInstanceID'
+ DESC 'Virtual Instance ID'
+ EQUALITY caseExactIA5Match
+ SUBSTR caseExactIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.3 NAME 'grayInstanceType'
+ DESC 'Virtual Instance Type'
+ EQUALITY caseExactIA5Match
+ SUBSTR caseExactIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.4 NAME 'grayInstanceRegion'
+ DESC 'Region where the instance is located'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.5 NAME 'grayDeviceMapping'
+ DESC 'Mapping of a virtual device'
+ EQUALITY caseExactMatch
+ SUBSTR caseExactSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.6 NAME 'grayStatus'
+ DESC 'Status of the Instance'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.7 NAME 'grayMasterAccount'
+ DESC 'Master account this machine/instance belongs to'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.8 NAME 'grayWSUser'
+ DESC 'Primary user of a workstation'
+ EQUALITY caseExactMatch
+ SUBSTR caseExactSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.9 NAME 'grayHostingID'
+ DESC 'Hosting ID for the machine'
+ EQUALITY caseExactMatch
+ SUBSTR caseExactSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.10 NAME 'grayHostName'
+ DESC 'Host name'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.11 NAME 'grayCPUCount'
+ DESC 'Number of CPUs on the machine'
+ EQUALITY integerMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.12 NAME 'grayRAMSize'
+ DESC 'Available RAM'
+ EQUALITY integerMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.13 NAME 'grayOSName'
+ DESC 'Name of the operating system'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.14 NAME 'grayOSDistribution'
+ DESC 'OS Distribution'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.15 NAME 'grayOSDistributionFamily'
+ DESC 'OS Distribution Family'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.16 NAME 'grayOSVersion'
+ DESC 'Version of the operating system'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.17 NAME 'grayOSDistributionVersion'
+ DESC 'Version of the operating system distribution'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.9163.2.1.18 NAME 'grayOSArchitecture'
+ DESC 'Hardware architecture string'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+# grayInstanceID Virtual Instance ID, when applicable
+# grayInstanceType Virtual Instance Type, when applicable
+# grayInstanceRegion Zone
+# grayDeviceMapping Device mapping, one attr per device
+# grayStatus Machine status: up/down
+# grayMasterAccount Master account ID (key for EC2 instances)
+#* grayHostingID Hosting ID
+#* grayHostName
+#* ipHostNumber Primary IP address (from nis.schema)
+# description Free-text description
+# cn Common Name
+
+objectclass ( 1.3.6.1.4.1.9163.2.2.2 NAME 'grayMachine'
+ DESC 'Abstraction for a machine or instance'
+ SUP account STRUCTURAL
+ MAY ( grayInstanceID $ grayInstanceType $ grayInstanceRegion $
+ grayDeviceMapping $ grayStatus $ grayMasterAccount $
+ grayHostingID $ ipHostNumber $ grayHostName $
+ grayCPUCount $ grayRAMSize $
+ description $ cn $ grayOSName $ grayOSDistribution $
+ grayOSDistributionFamily $ grayOSVersion $
+ grayOSDistributionVersion $ grayOSArchitecture ) )
+
+objectclass ( 1.3.6.1.4.1.9163.2.2.3 NAME 'grayWorkStation'
+ DESC 'Abstraction for a workstation in a LAN'
+ SUP account STRUCTURAL
+ MUST ( uid $ grayWSUser $ macAddress $ ipHostNumber )
+ MAY ( cn $ memberUid $ description ) )
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "# *Revision: *"
+# time-stamp-end: " *$"
+# time-stamp-format: "%:y%02m%02d%02H%02MZ"
+# time-stamp-line-limit: 32
+# time-stamp-count: 1
+# end:
diff --git a/html.init b/html.init
new file mode 100644
index 0000000..93b27d7
--- /dev/null
+++ b/html.init
@@ -0,0 +1,139 @@
+# Texi2any configuration for mailfromd documentation. -*- perl -*-
+# Copyright (C) 2009-2019 Sergey Poznyakoff
+#
+# Mailfromd is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# Mailfromd is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Mailfromd. If not, see <http://www.gnu.org/licenses/>.
+use strict;
+
+my $top_html_dir="/software/assignments";
+my $graphics_dir="$top_html_dir/graphics";
+
+# Show TOC in place of the @contents directive.
+set_from_init_file('INLINE_CONTENTS', 1);
+# Do not show Texinfo menus.
+set_from_init_file('SHOW_MENU', 0);
+# Inhibit output of CSS lines in page headers.
+set_from_init_file('CSS_LINES', '');
+
+set_from_init_file('BODYTEXT', "");
+
+set_from_init_file('EXTRA_HEAD', "\
+ <link rev=\"made\" href=\"mailto:gray\@gnu.org.ua\">\
+ <link rel=\"stylesheet\" type=\"text/css\" href=\"${top_html_dir}/gray.css\">
+ <link rel=\"icon\" type=\"image/png\" href=\"/graphics/gnu-head-icon.png\">");
+
+sub gray_end_file($)
+{
+ my $self = shift;
+ my $program_text = '';
+ if ($self->get_conf('PROGRAM_NAME_IN_FOOTER')) {
+ my $program_string = &{$self->{'format_program_string'}}($self);
+ $program_text = "<p>
+ $program_string
+</p>";
+ }
+ my $pre_body_close = $self->get_conf('PRE_BODY_CLOSE');
+ $pre_body_close = '' if (!defined($pre_body_close));
+ return "
+<div class=\"copyright\">
+$program_text
+
+$pre_body_close
+</div>
+</body>
+</html>
+";
+}
+
+texinfo_register_formatting_function('end_file', \&gray_end_file);
+
+set_from_init_file('PRE_BODY_CLOSE',
+ 'Content is available under <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License 1.3</a>.');
+
+# Print generating program name at the bottom of a page.
+set_from_init_file('PROGRAM_NAME_IN_FOOTER',1);
+
+# Disable horizontal bars
+set_from_init_file('DEFAULT_RULE', '');
+set_from_init_file('BIG_RULE', '');
+
+sub split_mode() { get_conf('SPLIT') // 'node' }
+
+# Turn off navigation bars at the bottom of each section.
+set_from_init_file('HEADERS', undef);
+
+# Use navigation icons
+set_from_init_file('ICONS', 1);
+
+set_from_init_file('ACTIVE_ICONS',
+ {
+ 'Top' => "$graphics_dir/top.png",
+ 'Contents' => "$graphics_dir/ctx.png",
+ 'Overview' => '',
+ 'Index' => "$graphics_dir/idx.png",
+ 'This' => '',
+ 'Back' => "$graphics_dir/left.png",
+ 'FastBack' => "$graphics_dir/bwd.png",
+ 'Prev' => "",
+ 'Up' => "$graphics_dir/up.png",
+ 'Next' => "$graphics_dir/right.png",
+ 'NodeUp' => "$graphics_dir/left.png",
+ 'NodeNext' => "$graphics_dir/up.png",
+ 'NodePrev' => "$graphics_dir/right.png",
+ 'Following' => "$graphics_dir/right.png",
+ 'Forward' => "$graphics_dir/right.png",
+ 'FastForward' => "$graphics_dir/fwd.png",
+ 'About' => '',
+ 'First' => '',
+ 'Last' => '',
+ ' ' => ''
+ });
+
+sub gray_document_title($$)
+{
+ my $self = shift;
+ my $direction = shift;
+
+ return q{<span class="title">} . $self->{title_string} . ':</span>';
+}
+
+sub gray_sec_ref($$)
+{
+ return q{<span class="navtext">Section:</span>};
+}
+
+sub gray_chap_ref($$)
+{
+ return q{<span class="navtext">Chapter:</span>};
+}
+
+my @gray_buttons = (\&gray_document_title, ' ',
+ # There are no sections in the document, so the Section
+ # buttons are disabled.
+ ' ', ' ', ' ', ' ',
+ \&gray_chap_ref,
+ 'FastBack', ' ', 'Up', ' ', 'FastForward', ' ',
+ 'Contents', 'Index' );
+
+set_from_init_file('TOP_BUTTONS', undef);
+set_from_init_file('SECTION_BUTTONS', \@gray_buttons);
+set_from_init_file('CHAPTER_BUTTONS', \@gray_buttons);
+set_from_init_file('NODE_FOOTER_BUTTONS', \@gray_buttons);
+set_from_init_file('SECTION_FOOTER_BUTTONS', \@gray_buttons);
+set_from_init_file('MISC_BUTTONS',
+ [\&gray_document_title,
+ 'Contents',
+ 'Index',
+ ' ',
+ 'About'
+ ]);
diff --git a/umi.schema b/umi.schema
new file mode 100644
index 0000000..6e4c4ac
--- /dev/null
+++ b/umi.schema
@@ -0,0 +1,523 @@
+################################################################################
+# UMI OIDs
+# version: 20170809155847 by zeus
+################################################################################
+
+# Main OID: 1.3.6.1.4.1.9163
+# Sub OID: .864
+#
+# OID Tree:
+# .864
+# |
+# +--.10 userCertificate amendments
+# |
+# +--.11 openvpn(8) options attributes
+# |
+# +--.12 additional, not openvpn(8), attributes
+# |
+# +--.13.0 objectClass: umiOvpnCfg
+# |
+# +--.14.0 objectClass: umiUserCertificate
+# |
+# +--.15 Inventory
+# | |
+# | +--.15.1 HardWare Inventory attributes
+# | |
+# | +--.15.2 HardWare Inventory object-classes
+# | |
+# | +--.15.3 Virtual Machines Inventory attributes
+# | |
+# | +--.15.4 Virtual Machines Inventory object-classes
+# |
+# +--.16 UMI Settings
+# |
+# +--.16.1 UMI Settings attributes
+# |
+# +--.16.2 UMI Settings objectclass
+#
+
+#===========================================================
+# .10 strongAuthenticationUser amendation attributes
+#===========================================================
+attributetype ( 1.3.6.1.4.1.9163.864.10.1 NAME 'umiUserCertificateSn'
+ DESC 'User Certificate SN'
+ EQUALITY caseIgnoreMatch
+ SUBS