Add machine ID label without 'property of'

master
Skylar Ittner 4 years ago
parent 79d5697a27
commit de11c9c550

@ -0,0 +1,111 @@
#!/usr/bin/python3
import subprocess
def scanSystem():
global serial, model, manufacturer, os
serialfiles = ['/sys/class/dmi/id/product_serial', '/sys/class/dmi/id/chassis_serial', '/sys/class/dmi/id/board_serial']
serial = findInfo(serialfiles, [], "system serial number")
modelfiles = ['/sys/class/dmi/id/board_name', '/sys/class/dmi/id/product_name']
model = findInfo(modelfiles, [], "system model")
manufacturerfiles = ['/sys/class/dmi/id/board_vendor', '/sys/class/dmi/id/chassis_vendor', '/sys/class/dmi/id/product_vendor']
manufacturer = findInfo(manufacturerfiles, [], "manufacturer")
osfiles = ['/etc/issue.net']
oscmds = ['/bin/bash -c "lsb_release -d | cut -c 14-"',
'/bin/bash -c "cat /etc/os-release | grep \\"PRETTY_NAME\\" | head -n 1 | cut -c 14- | sed \\"s/\\\\\\"//\\""',
'/bin/bash -c "cat /etc/issue | head -n 1 | sed \\"s/ \\\\\\\\\\\\n \\\\\\\\\\\\l//\\""']
os = findInfo(osfiles, oscmds, "operating system")
print("\nMachine Info:")
print("\tSerial: " + serial)
print("\tModel: " + model)
print("\tManufacturer: " + manufacturer)
print("\tOS: " + os)
print()
promptUpload()
def findInfo(filenames, commands, human_name):
bad_values = ["", "Default string", "Not Present", "None", "Not Specified", "Other", "UNKNOWN", "Unknown", "<OUT OF SPEC>", "0x00000000", "To Be Filled By O.E.M.", "<BAD INDEX>", "NO DIMM", "No Module Installed", "0123456789"]
items = []
for filename in filenames:
try:
with open(filename, 'r') as filefile:
value = str(filefile.read()).strip()
if value not in bad_values:
items.append(value)
except:
pass
for command in commands:
try:
stdout = subprocess.check_output(command, shell=True)
value = stdout.decode().strip()
if value not in bad_values:
items.append(value)
except:
pass
deduped = list(set(items))
if len(deduped) == 1:
return deduped[0]
elif len(deduped) > 1:
print("\nMultiple values found for the " + human_name + ":")
value = 1
for item in deduped:
print("\t" + str(value) + ": " + item);
value += 1
manual_entry = input("Choose an option or type a manual entry: ")
try:
index = int(manual_entry)
if index - 1 < len(deduped):
return deduped[index - 1]
except ValueError:
pass
return manual_entry.strip()
else:
manual_entry = input("No value found for the " + human_name + ". Enter one manually: ")
return manual_entry.strip()
def upload(id, serial, model, manufacturer, os):
print(', '.join([id, serial, model, manufacturer, os]))
print("Uploading... (NOT IMPLEMENTED)")
print("Finished!")
def promptUpload():
q = input("Upload to MachineManager (u for update, r for rescan) (y/N/u/r)? ").lower()
if q == "y":
upload("", serial, model, manufacturer, os)
elif q == "u":
id = input("Enter machine ID to update: ")
if len(id.strip()) > 0:
upload(id.strip(), serial, model, manufacturer, os)
else:
print("Invalid machine ID.")
promptUpload()
elif q == "n":
print("Exiting.")
exit()
elif q == "r":
print("Rescanning system...")
scanSystem()
else:
print("Invalid selection.")
promptUpload()
if (__name__ == "__main__"):
print("MachineManager automatic machine uploader script v1.0")
print("Copyright (c) 2020 Netsyms Technologies")
scanSystem()

@ -26,6 +26,9 @@ if (!empty($VARS["labeltype"])) {
case "doortag":
$labeltype = "doortag";
break;
case "machineidanonymous":
$labeltype = "machineidanonymous";
break;
case "machineid":
default:
$labeltype = "machineid";
@ -44,6 +47,9 @@ $pdfurl = "./print/print.php?labeltype=$labeltype&id=$machineid";
<li class="nav-item">
<a class="nav-link<?php echo ($labeltype == "doortag" ? " active" : "") ?>" href="./app.php?page=printlabel&id=<?php echo $machine->getID(); ?>&labeltype=doortag">Door Tag</a>
</li>
<li class="nav-item">
<a class="nav-link<?php echo ($labeltype == "machineidanonymous" ? " active" : "") ?>" href="./app.php?page=printlabel&id=<?php echo $machine->getID(); ?>&labeltype=machineidanonymous">Machine ID Label (No "Property Of")</a>
</li>
</ul>
<div class="ml-auto">
<a href="./app.php?page=viewmachine&id=<?php echo $machine->getID(); ?>" class="btn btn-info btn-sm"><i class="fas fa-eye"></i> <?php $Strings->get("Go to machine"); ?></a>
@ -52,4 +58,4 @@ $pdfurl = "./print/print.php?labeltype=$labeltype&id=$machineid";
<div>
<iframe src="./print/pdfjs/web/viewer.html?<?php echo "labeltype=$labeltype&id=$machineid"; ?>" width="100%" height="500px"></iframe>
</div>
</div>

@ -29,6 +29,9 @@ switch ($VARS["labeltype"]) {
case "doortag":
$labeltype = "doortag";
break;
case "machineidanonymous":
$labeltype = "machineidanonymous";
break;
case "machineid":
default:
$labeltype = "machineid";
@ -117,4 +120,4 @@ header('Accept-Ranges: bytes');
echo file_get_contents($pdffile);
unlink($csvfile);
unlink($pdffile);
unlink($pdffile);

@ -0,0 +1,83 @@
/*
-- Query:
-- Date: 2020-05-14 20:59
*/
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (1,'Tested');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (2,'Sold');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (3,'Wiped');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (4,'Refunded');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (5,'Repaired');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (6,'Released to Owner');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (7,'Upgraded');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (8,'Received');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (9,'In Transit');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (10,'Picked Up');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (11,'Delivered');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (12,'Attempted');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (13,'Delayed');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (14,'Delivery Scheduled');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (15,'Note');
INSERT INTO `event_types` (`eventid`,`eventname`) VALUES (16,'Other');
-- MySQL Workbench Synchronization
-- Generated: 2020-06-02 22:54
-- Model: New Model
-- Version: 1.0
-- Project: Name of the project
-- Author: Skylar Ittner
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
ALTER TABLE `c1machinemanager`.`components`
ADD COLUMN `manufacturer` VARCHAR(255) NULL DEFAULT NULL AFTER `price`;
CREATE TABLE IF NOT EXISTS `c1machinemanager`.`trackingcodes` (
`trackid` INT(11) NOT NULL AUTO_INCREMENT,
`machineid` VARCHAR(20) NOT NULL,
`code` VARCHAR(255) NOT NULL,
`codetype` VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (`trackid`, `machineid`),
UNIQUE INDEX `trkid_UNIQUE` (`trackid` ASC),
INDEX `fk_trackingcodes_machines1_idx` (`machineid` ASC),
CONSTRAINT `fk_trackingcodes_machines1`
FOREIGN KEY (`machineid`)
REFERENCES `c1machinemanager`.`machines` (`machineid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
CREATE TABLE IF NOT EXISTS `c1machinemanager`.`containers` (
`containerid` INT(11) NOT NULL AUTO_INCREMENT,
`barcode` VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (`containerid`),
UNIQUE INDEX `containerid_UNIQUE` (`containerid` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
CREATE TABLE IF NOT EXISTS `c1machinemanager`.`container_contents` (
`containerid` INT(11) NOT NULL,
`machineid` VARCHAR(20) NOT NULL,
PRIMARY KEY (`containerid`, `machineid`),
INDEX `fk_containers_has_machines_machines1_idx` (`machineid` ASC),
INDEX `fk_containers_has_machines_containers1_idx` (`containerid` ASC),
CONSTRAINT `fk_containers_has_machines_containers1`
FOREIGN KEY (`containerid`)
REFERENCES `c1machinemanager`.`containers` (`containerid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_containers_has_machines_machines1`
FOREIGN KEY (`machineid`)
REFERENCES `c1machinemanager`.`machines` (`machineid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Loading…
Cancel
Save