Add machine ID label without 'property of'
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()
|
Binary file not shown.
@ -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…
Reference in New Issue