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