4 years agofixup transparency in a few images
Denis Ovsienko [Tue, 6 Jun 2017 15:53:18 +0000 (16:53 +0100)] 
fixup transparency in a few images

4 years agorefine delivery of rack thumb images
Denis Ovsienko [Tue, 6 Jun 2017 10:27:54 +0000 (11:27 +0100)] 
refine delivery of rack thumb images

A read-only RackTables instance would display an error image instead of
the thumbnail image for any rack that has invalidated thumbnail cache.
This change makes it deliver the thumbnail even if the attempted cache
update failed because of insufficient database permissions.

* RTDBTableAccessDenied: a new exception class
* convertPDOException(): add a respective case block for the error code
* dispatchMiniRackThumbRequest(): use the above for its REPLACE and
  update the comment

4 years agoprintTagsPickerUl(): don't modify foreach argument
Denis Ovsienko [Fri, 2 Jun 2017 15:20:51 +0000 (16:20 +0100)] 
printTagsPickerUl(): don't modify foreach argument

4 years agoreplace a couple default values with explicit ones
Denis Ovsienko [Fri, 2 Jun 2017 12:43:28 +0000 (13:43 +0100)] 
replace a couple default values with explicit ones

There is no reason to specify a default value for $input_name in
printTagsPickerInput() and printTagsPickerUl() so long as
printTagsPicker() is the only function that calls those functions.

4 years agofix a typo in README.md
Denis Ovsienko [Tue, 30 May 2017 12:26:50 +0000 (13:26 +0100)] 
fix a typo in README.md

4 years agoimprove CodeMirror integration
Denis Ovsienko [Fri, 26 May 2017 18:07:34 +0000 (19:07 +0100)] 
improve CodeMirror integration

Reimplement the RackCode language mode in rackcode.js using simpler
JavaScript code and define a standalone "rackcode" theme in rackcode.css
instead of overriding the default theme. In renderRackCodeEditor() pass
more properties to CodeMirror constructor and make minor HTML fixups.
In renderRackCodeViewer() rewrite the code to use CodeMirror in read-only
mode and to scroll to requested line on request. Amend the URL format in
refRCLineno() respectively.

4 years agoremove remaining stray props of CodePress
Denis Ovsienko [Fri, 26 May 2017 16:28:12 +0000 (17:28 +0100)] 
remove remaining stray props of CodePress

This completes the changes done in commit cf5da67.

* renderRackCodeEditor()
* renderTextEditor()

4 years agoupgrade CodeMirror from 3.24 to 5.26.0
Denis Ovsienko [Thu, 25 May 2017 17:16:42 +0000 (18:16 +0100)] 
upgrade CodeMirror from 3.24 to 5.26.0

For simpler maintenance the RackTables-specific CSS modifications now
reside in css/codemirror/rackcode.css. Do not include the CSS, HTML,
JavaScript, PHP and SQL CodeMirror tokenizers anymore as they had not
proved to be useful.

4 years agorevert to pristine CodeMirror-3.24
Denis Ovsienko [Thu, 25 May 2017 08:54:12 +0000 (09:54 +0100)] 
revert to pristine CodeMirror-3.24

4 years agobetter display objects that have no common name
Denis Ovsienko [Wed, 24 May 2017 17:54:31 +0000 (18:54 +0100)] 
better display objects that have no common name

Address a long-standing glitch: when a port on the currently displayed
object was (or was suggested to be) linked to a port of an object that
had no name, the displayed remote object name would be an empty string.
This change makes the interface display a standard substitute instead,
which among other things makes the remote object hyperlink clickable.

* fetchPortList(): add remote object type ID to the result columns
* renderObjectPortRow(): make use of formatObjectDisplayedName()
* renderPortsForObject(): idem
* findSparePorts(): all of the above

4 years agorecognize context in CodeMirror RackCode lexer
Denis Ovsienko [Wed, 24 May 2017 11:08:35 +0000 (12:08 +0100)] 
recognize context in CodeMirror RackCode lexer

4 years agoEdge-Core had the product discontinued
Shazaum [Tue, 23 May 2017 13:15:23 +0000 (10:15 -0300)] 
Edge-Core had the product discontinued

4 years agosetUserConfigVar(): use REPLACE INTO consistently
Denis Ovsienko [Tue, 23 May 2017 11:27:04 +0000 (12:27 +0100)] 
setUserConfigVar(): use REPLACE INTO consistently

4 years agorefine renderPortsForObject()
Denis Ovsienko [Tue, 23 May 2017 11:09:34 +0000 (12:09 +0100)] 
refine renderPortsForObject()

Convert a repeated code block to a function, fixup a TD alignment,
simplify portlet rendering, do not show the multiport form if
permissions would not allow to submit.

4 years agosimplify a few functions
Denis Ovsienko [Fri, 19 May 2017 12:03:45 +0000 (13:03 +0100)] 
simplify a few functions

* lastInsertID(): use PDOStatement::fetchColumn()
* getIPv4Stats(): idem
* getIPv6Stats(): idem
* getRackspaceStats(): idem
* sortPortList(): use array_fetch()

4 years agoset Port.label to NULL instead of an empty string
Denis Ovsienko [Fri, 19 May 2017 11:04:35 +0000 (12:04 +0100)] 
set Port.label to NULL instead of an empty string

This is how it was originally intended (also update the sample dataset).

* commitAddPortReal(): use nullIfEmptyStr()
* commitUpdatePortReal(): idem
* upgrade.php: queue an UPDATE for 0.21.0

4 years agorenderSNMPPortFinder(): remove excess LABELs
Denis Ovsienko [Fri, 19 May 2017 10:43:55 +0000 (11:43 +0100)] 
renderSNMPPortFinder(): remove excess LABELs

4 years agotests: add a missing newline at EOF
Denis Ovsienko [Fri, 19 May 2017 09:48:53 +0000 (10:48 +0100)] 
tests: add a missing newline at EOF

4 years agosuppress some more unnecessary default values
Denis Ovsienko [Fri, 19 May 2017 09:45:38 +0000 (10:45 +0100)] 
suppress some more unnecessary default values

Amend respective test to fail the right way.

* usePreparedDeleteBlade()
* usePreparedUpdateBlade()

4 years agocopy complete 0.20.x releases only into master
Denis Ovsienko [Thu, 18 May 2017 11:56:42 +0000 (12:56 +0100)] 
copy complete 0.20.x releases only into master

4 years agodisplay MySQL warnings in debug mode
Denis Ovsienko [Thu, 18 May 2017 11:26:40 +0000 (12:26 +0100)] 
display MySQL warnings in debug mode

This optional means of debugging can provide a feedback loop when the
strict SQL mode is not enabled.

* collectMySQLWarnings(): new function to buffer the warnings
* usePreparedInsertBlade(): amend to call the above
* usePreparedDeleteBlade(): idem
* usePreparedUpdateBlade(): idem
* showMySQLWarnings(): new function to display the buffer
* index.php: call the above in the "redirect" case

4 years agoupgrade.php: add a section for 0.21.0
Denis Ovsienko [Thu, 18 May 2017 09:05:11 +0000 (10:05 +0100)] 
upgrade.php: add a section for 0.21.0

4 years agorefine the use of $debug_mode
Denis Ovsienko [Tue, 16 May 2017 17:16:57 +0000 (18:16 +0100)] 
refine the use of $debug_mode

* authenticated_via_saml(): remove an unused global
* EntityNotFoundException::dispatch(): check isset() first

4 years agofixup the has_problems table column for rack rows
Denis Ovsienko [Tue, 16 May 2017 12:22:40 +0000 (13:22 +0100)] 
fixup the has_problems table column for rack rows

Commits 873c6a5 and 725d2f6 took care of the subsequent updates, this
change addresses any old rows that may have been written by the old

4 years agoupgrade.php: add a section for 0.20.14
Denis Ovsienko [Tue, 16 May 2017 11:59:49 +0000 (12:59 +0100)] 
upgrade.php: add a section for 0.20.14

4 years agoTravis CI: stick with PHPUnit 5 to fix PHP 7 build
Denis Ovsienko [Tue, 16 May 2017 11:44:35 +0000 (12:44 +0100)] 
Travis CI: stick with PHPUnit 5 to fix PHP 7 build

Travis CI support has troubleshooted the issue, this change implements
one of the solutions they suggest. Commit 42f767b describes the previous
workaround for the same problem.

4 years agosplit CREATE USER and GRANT (Mantis#1727)
Denis Ovsienko [Mon, 15 May 2017 16:46:54 +0000 (17:46 +0100)] 
split CREATE USER and GRANT (Mantis#1727)

4 years ago0.20.13: cut the release RackTables-0.20.13
Denis Ovsienko [Fri, 12 May 2017 12:57:56 +0000 (13:57 +0100)] 
0.20.13: cut the release

4 years agoadd two more integrity tests for object ports
Denis Ovsienko [Wed, 10 May 2017 17:28:31 +0000 (18:28 +0100)] 
add two more integrity tests for object ports

Follow up with the recent commits in renderDataIntegrityReport().

4 years agocheckPortRole(): don't put "else" after "return"
Denis Ovsienko [Tue, 9 May 2017 08:28:16 +0000 (09:28 +0100)] 
checkPortRole(): don't put "else" after "return"

4 years agoimprove the L2 address constraint check
Denis Ovsienko [Mon, 8 May 2017 15:38:48 +0000 (16:38 +0100)] 
improve the L2 address constraint check

Add a new function assertUniqueL2Addresses(), which accepts a list of
L2 addresses and tests them all with at most one SQL query. It also
incorporates the existing convention of an empty L2 address being OK,
such that the calling functions now have less checks to make.

Make alreadyUsedL2Address() just a wrapper for the above. Switch
commitAddPort(), commitUpdatePort() and syncObjectPorts() to the new
function. Since syncObjectPorts() does not throw IRAE anymore, add
missing try/catch blocks to doSwitchSNMPmining() and doPDUSNMPmining().

4 years agorefine more exception classes in port management
Denis Ovsienko [Mon, 8 May 2017 11:52:13 +0000 (12:52 +0100)] 
refine more exception classes in port management

InvalidArgException means that a parameter has an invalid value in
general, whereas InvalidRequestArgException specifically means that
in addition to that the parameter value is the user input from a more
or less interactive session.

In the latter case the error message should be displayed back to the user
or, if the code does not expect the IRAE class for whatever reason, the
exception should land in the [supposedly present] more general IAE catch

With that in mind fix a long-standing anomaly by making commitAddPort()
and commitUpdatePort() throw an IAE object instead of IRAE. Make changes
to addPortForObject(), editPortForObject(), autoPopulateUCS() and
renameObjectPorts() such that those functions expect an IAE and can
reasonably handle it. Amend test declarations as necessary.

While at it, move code around in syncObjectPorts() to make sure all
exceptions cause the tables lock released soonest possible.

4 years agorefine exception class in addMultiPorts()
Denis Ovsienko [Mon, 8 May 2017 09:31:11 +0000 (10:31 +0100)] 
refine exception class in addMultiPorts()

The default case stands for a bug in software as the invalid input does
not come from the user. Dispatch it as such.

4 years agofixup formatting nits after commit 2e912e8
Denis Ovsienko [Mon, 8 May 2017 09:28:46 +0000 (10:28 +0100)] 
fixup formatting nits after commit 2e912e8

* getSelect(): escape the single option case properly
* renderPortsForObject(): add a missing space char

4 years agoautoPopulateUCS(): just use switch()
Denis Ovsienko [Sun, 7 May 2017 16:53:56 +0000 (17:53 +0100)] 
autoPopulateUCS(): just use switch()

4 years agoremove obsolete port declaration formats
Denis Ovsienko [Sun, 7 May 2017 15:32:51 +0000 (16:32 +0100)] 
remove obsolete port declaration formats

* renderPortsForObject()
* addMultiPorts()

4 years agogeneratePortsForCatModule(): unused, remove
Denis Ovsienko [Sun, 7 May 2017 15:26:21 +0000 (16:26 +0100)] 
generatePortsForCatModule(): unused, remove

4 years agoremove a stale comment
Denis Ovsienko [Sun, 7 May 2017 13:09:43 +0000 (14:09 +0100)] 
remove a stale comment

4 years agorefine exception handling in the "redirect" module
Denis Ovsienko [Thu, 4 May 2017 16:11:57 +0000 (17:11 +0100)] 
refine exception handling in the "redirect" module

Add a catch-all block that prints an exception. This displays an error
message instead of a blank page when in the "redirect" case there is an
exception that isn't one of the listed "soft" errors. In particular,
this change makes it possible to see PDOException errors.

4 years agorenderUpgraderHTML(): update an error message
Denis Ovsienko [Thu, 4 May 2017 16:10:22 +0000 (17:10 +0100)] 
renderUpgraderHTML(): update an error message

This is a follow-up to commit 34ed028.

4 years agoadd a SNMP block for WS-C3560X-24T (Mantis#1343)
Denis Ovsienko [Thu, 4 May 2017 16:07:33 +0000 (17:07 +0100)] 
add a SNMP block for WS-C3560X-24T (Mantis#1343)

4 years agoreplace port triggers with table locking
Denis Ovsienko [Thu, 4 May 2017 15:57:41 +0000 (16:57 +0100)] 
replace port triggers with table locking

It turned out after the 0.20.12 release that error handling in MySQL
triggers works differently across different installations. Several users
had reported that trying to call a non-existent stored procedure from a
trigger may fail in more than one way. The call often fails during the
trigger run time when the L2 address voilates the custom constraint (and
thus rolls the transaction back as originally intended) but sometimes it
fails at the trigger creation time (and thus fails to create the
trigger). On my installation it seems to fail on UPDATE even when the
l2address column is not involved.

Another issue was, the transaction in syncObjectPorts() used SELECT ...
FOR UPDATE to lock the rows that is was going to update or delete, but it
was not clear if the constraint would be reliably enforced for all newly
inserted L2 addresses. This way two or more concurrent transactions could
potentially execute their triggers successfully independently of each
other and insert conflicting rows afterwards.

This change addresses the above issues by switching from triggers back to
table-level locking with PHP constraint implementation. It preserves the
recently added ability to make multiple changes within a single table
lock through addDesiredPort() and syncObjectPorts(). As before, the whole
set of changes does not happen if any individual change fails a sanity

* getObjectPortsAndLinksTerse(): add a new helper function to avoid table
  locking complexity
* commitAddPort(): Restore the use of alreadyUsedL2Address() and the
  locking removed in commit e6b7635.
* commitUpdatePort(): idem
* convertPDOException(): remove the trigger-specific error code
* alreadyUsedL2Address(): reinstate the revision before commit e6b7635
* exceptions.php: remove the now unused L2AddressException class
* syncObjectPorts(): replace the transaction with a table lock and
  rearrange the code to have all checks done before making any changes
* upgrade.php: drop the triggers
* install.php: ditto

4 years agosimplify some more port management code
Denis Ovsienko [Fri, 28 Apr 2017 10:51:05 +0000 (11:51 +0100)] 
simplify some more port management code

* syncObjectPorts(): update to take object ID only
* doSwitchSNMPmining(): update respectively
* doPDUSNMPmining(): ditto
* commitUpdatePortReal(): drop a temporary variable and switch to use a
  simpler function to retrieve the comment

4 years agosplit some port management code
Denis Ovsienko [Fri, 28 Apr 2017 10:02:20 +0000 (11:02 +0100)] 
split some port management code

Leave commitAddPort() to deal with exceptions only and make actual
changes to the database in commitAddPortReal(), a new function. Arrange
the code across commitUpdatePort() and commitUpdatePortReal() in a
similar way.

4 years agorefine port IIF and OIF ID parsing
Denis Ovsienko [Thu, 27 Apr 2017 15:54:38 +0000 (16:54 +0100)] 
refine port IIF and OIF ID parsing

Move the code common to commitAddPort(), commitUpdatePort() and
addDesiredPort() out of those functions into a new helper function

4 years agoMerge pull request #195 from xornet-sl/maintenance-0.20.x
Alexey Andriyanov [Mon, 24 Apr 2017 11:10:37 +0000 (14:10 +0300)] 
Merge pull request #195 from xornet-sl/maintenance-0.20.x

resolve ambiguous port types in selectbox

4 years agoresolve ambiguous port types in selectbox 195/head
Vladimir Sukhonosov [Fri, 21 Apr 2017 15:01:07 +0000 (18:01 +0300)] 
resolve ambiguous port types in selectbox

add port inner type prefix into a select box when outer type is ambiguous.
ex. inner types "QSFP+" and "QSFP28" have the same "empty QSFP" outer

4 years agoadd Huawei CE8850-32CQ-EI
Vladimir Sukhonosov [Thu, 20 Apr 2017 23:28:44 +0000 (02:28 +0300)] 
add Huawei CE8850-32CQ-EI

4 years agoupdate ChangeLog for the previous commit
Denis Ovsienko [Wed, 19 Apr 2017 08:54:44 +0000 (09:54 +0100)] 
update ChangeLog for the previous commit

4 years agoUpdated to work with Cisco ucsmsdk 193/head
Brian [Tue, 18 Apr 2017 22:56:28 +0000 (15:56 -0700)] 
Updated to work with Cisco ucsmsdk

Old Python UcsSdk is deprecated as of 0.8.3 (https://communities.cisco.com/docs/DOC-36899).
New SDK is ucsmsdk (https://communities.cisco.com/docs/DOC-64378)
New ucsmsdk 0.9 and above changed syntax and functions.

4 years agodictionary: add a recent OpenBSD release
Denis Ovsienko [Wed, 12 Apr 2017 13:53:36 +0000 (14:53 +0100)] 
dictionary: add a recent OpenBSD release

4 years agospell Content-Type header name consistently
Denis Ovsienko [Tue, 14 Mar 2017 17:25:37 +0000 (17:25 +0000)] 
spell Content-Type header name consistently

Although RFC 2616 Section 4.2 specifies header names as being
case-insensitive, Section 14.17 ibid spells "Content-Type" and that is
exactly how it appears throughout the rest of the document. Thus let's
keep it consistent in the source code too.

4 years agoTravis CI: also test "make install"
Denis Ovsienko [Tue, 14 Mar 2017 11:25:52 +0000 (11:25 +0000)] 
Travis CI: also test "make install"

4 years agoupdate the installation notes in README
Denis Ovsienko [Mon, 13 Mar 2017 17:27:54 +0000 (17:27 +0000)] 
update the installation notes in README

Remove the notes on OS distributions that were released in or before
2009. Improve the remaining FreeBSD-specific notes.

4 years agorenderMuninServersEditor(): reformat some code
Denis Ovsienko [Mon, 13 Mar 2017 16:46:19 +0000 (16:46 +0000)] 
renderMuninServersEditor(): reformat some code

This repeats an earlier change to renderCactiServersEditor().

4 years agocommitSupplementAttrMap(): make a few cleanups
Denis Ovsienko [Sun, 12 Mar 2017 17:41:42 +0000 (17:41 +0000)] 
commitSupplementAttrMap(): make a few cleanups

Drop a range check that makes no sense because of the foreign key. Add
new checks to enforce that AttributeMap.chapter_id is set to a non-NULL
value iff attribute type is "dict". Manage default values for the
function parameters.

4 years agoSNMP: replace a FIXME with a draft pattern
Denis Ovsienko [Sun, 12 Mar 2017 17:10:48 +0000 (17:10 +0000)] 
SNMP: replace a FIXME with a draft pattern

4 years agosimplify updateUI() a bit
Denis Ovsienko [Sun, 12 Mar 2017 15:56:29 +0000 (15:56 +0000)] 
simplify updateUI() a bit

Place the try-catch block around the iteration, not inside.

4 years agorefine minor nits around getBypassValue()
Denis Ovsienko [Sun, 12 Mar 2017 15:46:35 +0000 (15:46 +0000)] 
refine minor nits around getBypassValue()

4 years agoeditUserProperties(): remove a debug line
Denis Ovsienko [Sun, 12 Mar 2017 11:19:55 +0000 (11:19 +0000)] 
editUserProperties(): remove a debug line

4 years agoTravis CI: allow PHP 7.0 to fail
Denis Ovsienko [Fri, 10 Mar 2017 22:34:22 +0000 (22:34 +0000)] 
Travis CI: allow PHP 7.0 to fail

This is because it seems to be broken on Travis CI side, as the same
commit that passed the build a few days ago (012f09a) does not pass
it (as well as subsequent commits) with an error that has to do with
PHPUnit class autoloading:

PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in
on line 3

In my working copy (PHP 7.0.15) the tests pass as before. This change
does not exclude PHP 7.0 from the Travis CI build matrix so it should
be easy to see the recovery later.

While at it, reduce the git clone depth to reduce the amount of
unnecessary work.

4 years agorefine some code around readChapter()
Denis Ovsienko [Fri, 10 Mar 2017 21:59:57 +0000 (21:59 +0000)] 
refine some code around readChapter()

Don't specify the default value for chapter_id (as in earlier commits),
throw an exception if the chapter does not exist, manage SQL lettercase
and string quoting, add more tests.

4 years agoreformat SQL code in getChapterRefc()
Denis Ovsienko [Thu, 9 Mar 2017 18:42:01 +0000 (18:42 +0000)] 
reformat SQL code in getChapterRefc()

4 years agotests: cover more attributes and dictionary code
Denis Ovsienko [Thu, 9 Mar 2017 18:39:08 +0000 (18:39 +0000)] 
tests: cover more attributes and dictionary code

This change mainly focuses on getChapterRefc() but also adds basic
coverage for:

* commitSupplementAttrMap()
* commitUpdateAttrValue()
* getObjTypeAttrMap()
* readChapter()
* getChapterList()

4 years agorefine code in discardLDAPCache()
Denis Ovsienko [Sun, 5 Mar 2017 13:17:49 +0000 (13:17 +0000)] 
refine code in discardLDAPCache()

4 years agoaddBulkPorts(): imply %u for labels (Mantis#1739)
Gianluca Laudano [Fri, 3 Mar 2017 14:06:51 +0000 (14:06 +0000)] 
addBulkPorts(): imply %u for labels (Mantis#1739)

4 years agoaddBulkPorts(): fixup code formatting
Denis Ovsienko [Fri, 3 Mar 2017 13:56:53 +0000 (13:56 +0000)] 
addBulkPorts(): fixup code formatting

4 years agoloadEntityTags(): make SQL upper-case
Denis Ovsienko [Fri, 3 Mar 2017 12:34:35 +0000 (12:34 +0000)] 
loadEntityTags(): make SQL upper-case

4 years agotests: cover loadEntityTags()
Denis Ovsienko [Fri, 3 Mar 2017 12:32:45 +0000 (12:32 +0000)] 
tests: cover loadEntityTags()

4 years agoloadScript(): make SQL upper-case
Denis Ovsienko [Fri, 3 Mar 2017 10:11:24 +0000 (10:11 +0000)] 
loadScript(): make SQL upper-case

4 years agoadd a new gateway script: git-commit
Denis Ovsienko [Thu, 2 Mar 2017 20:31:11 +0000 (20:31 +0000)] 
add a new gateway script: git-commit

4 years agoimprove some spelling
Denis Ovsienko [Thu, 2 Mar 2017 16:56:43 +0000 (16:56 +0000)] 
improve some spelling

4 years agoremove all mentions of versions 0.18.x and 0.19.x
Denis Ovsienko [Wed, 1 Mar 2017 15:23:52 +0000 (15:23 +0000)] 
remove all mentions of versions 0.18.x and 0.19.x

Those vere released in 2010~2012 and are not supported in any way.

4 years agodictionary: add a router model
Denis Ovsienko [Tue, 28 Feb 2017 11:44:14 +0000 (11:44 +0000)] 
dictionary: add a router model

4 years agoimprove wording in README.md
Denis Ovsienko [Tue, 28 Feb 2017 11:10:34 +0000 (11:10 +0000)] 
improve wording in README.md

4 years agodictionary: add some server OS entries
Denis Ovsienko [Thu, 16 Feb 2017 20:59:38 +0000 (20:59 +0000)] 
dictionary: add some server OS entries

4 years agodictionary: add some missing Arista switches
Denis Ovsienko [Thu, 16 Feb 2017 13:47:48 +0000 (13:47 +0000)] 
dictionary: add some missing Arista switches

4 years agoupdate $breed_by_swcode for Mantis#1721 too
Denis Ovsienko [Tue, 14 Feb 2017 16:09:43 +0000 (16:09 +0000)] 
update $breed_by_swcode for Mantis#1721 too

4 years agoexpand the comment for scanArrayForItem()
Denis Ovsienko [Tue, 14 Feb 2017 12:00:14 +0000 (12:00 +0000)] 
expand the comment for scanArrayForItem()

4 years agodictionary: make some fixups for Mantis#1721
Denis Ovsienko [Tue, 14 Feb 2017 11:27:29 +0000 (11:27 +0000)] 
dictionary: make some fixups for Mantis#1721

4 years agoupgrade.php: add an empty section for 0.20.13
Denis Ovsienko [Thu, 9 Feb 2017 17:10:48 +0000 (17:10 +0000)] 
upgrade.php: add an empty section for 0.20.13

4 years agoupdate ChangeLog
Denis Ovsienko [Thu, 9 Feb 2017 16:00:18 +0000 (16:00 +0000)] 
update ChangeLog

4 years agofixup the previous change
Denis Ovsienko [Thu, 9 Feb 2017 15:50:53 +0000 (15:50 +0000)] 
fixup the previous change

...to follow the usual convention for the interface short names.

4 years agoAdd Brocade ICX7250-48 and VDX 6740
Chris Jones [Thu, 6 Oct 2016 16:37:20 +0000 (17:37 +0100)] 
Add Brocade ICX7250-48 and VDX 6740

4 years agoUse getimagesizefromstring() to get image size
Michael A. Mikhailov [Mon, 26 Dec 2016 09:19:27 +0000 (16:19 +0700)] 
Use getimagesizefromstring() to get image size

Speed up pages with image files preview.
In my case a rack page with 14 images was taking 5 seconds to load.
With this change load time dropped to 300ms.

4 years agoTravis CI: use the mysql DB for the 1st connection
Denis Ovsienko [Wed, 8 Feb 2017 18:33:50 +0000 (18:33 +0000)] 
Travis CI: use the mysql DB for the 1st connection

4 years agoinstall.php: refine file mode suggestions RackTables-0.20.12
Denis Ovsienko [Wed, 8 Feb 2017 16:52:58 +0000 (16:52 +0000)] 
install.php: refine file mode suggestions

4 years agotests: add data/0.20.12.sql
Denis Ovsienko [Wed, 8 Feb 2017 16:36:56 +0000 (16:36 +0000)] 
tests: add data/0.20.12.sql

4 years agodisable NO_ZERO_DATE in the sample SQL dump
Denis Ovsienko [Wed, 8 Feb 2017 16:12:06 +0000 (16:12 +0000)] 
disable NO_ZERO_DATE in the sample SQL dump

4 years ago0.20.12: cut the release
Denis Ovsienko [Wed, 8 Feb 2017 14:32:15 +0000 (14:32 +0000)] 
0.20.12: cut the release

4 years agodictionary: add a few Cisco models (Mantis #1721)
Denis Ovsienko [Wed, 8 Feb 2017 14:24:31 +0000 (14:24 +0000)] 
dictionary: add a few Cisco models (Mantis #1721)

4 years agofixup a 802.1Q configuration variable name 169/head
Denis Ovsienko [Tue, 28 Jun 2016 17:49:31 +0000 (18:49 +0100)] 
fixup a 802.1Q configuration variable name


4 years agobump the copyright line up for 2017
Denis Ovsienko [Mon, 6 Feb 2017 14:23:28 +0000 (14:23 +0000)] 
bump the copyright line up for 2017

4 years agoadd JunOS switch sw types into $breed_by_swcode
Alexey Andriyanov [Wed, 1 Feb 2017 16:33:56 +0000 (19:33 +0300)] 
add JunOS switch sw types into $breed_by_swcode

4 years agooptimize write in callScript()
Alexey Andriyanov [Thu, 26 Jan 2017 16:12:06 +0000 (19:12 +0300)] 
optimize write in callScript()

If a huge buffer was passed into callScript (tens of Mb), it took much
time to write it into pipe using small 4k blocks, even if system not
blocking us. That was because of re-allocating this huge string buffer ($in variable)
on every write iteration ($in = substr($in, $written)).

Now changed to tracking write cursor in the constant $in buffer and
making a small substring (4k) on every iteration.

4 years agosnmp sync support for Huawei CE6870
Alexey Andriyanov [Thu, 19 Jan 2017 17:59:55 +0000 (20:59 +0300)] 
snmp sync support for Huawei CE6870

4 years agonew iif type 'QSFP28'
Alexey Andriyanov [Thu, 19 Jan 2017 17:24:38 +0000 (20:24 +0300)] 
new iif type 'QSFP28'

4 years agoMerge pull request #191 from xornet-sl/maintenance-0.20.x
Alexey Andriyanov [Thu, 19 Jan 2017 12:38:30 +0000 (15:38 +0300)] 
Merge pull request #191 from xornet-sl/maintenance-0.20.x

ability to buffer messages in script mode

4 years agoability to buffer messages in script mode 191/head
Vladimir Sukhonosov [Wed, 18 Jan 2017 18:09:54 +0000 (21:09 +0300)] 
ability to buffer messages in script mode

sometimes in auxiliary scripts that run with $script_mode == TRUE in
background you may need to suppress or rewrite showError/showWarning
messages (ex. format and redirect messages to email)
Now it is possible to mute errors and store them in $log_messages for
further processing.

4 years agouse var_dump() in dump()
Denis Ovsienko [Tue, 10 Jan 2017 17:21:10 +0000 (17:21 +0000)] 
use var_dump() in dump()

This allows to see the difference between an empty string and NULL.