summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* node: Fix string/list concatenation error in update_firmwarev0.9.0George Kraft2013-07-221-1/+1
| | | | | This was preventing the ubootenv boot order and pxe config from being preserved.
* node: Remove try/catch of Exception around the UbootEnv classGeorge Kraft2013-07-223-20/+20
| | | | | | | | | | It's squashing another error that prevents ubootenv updates from working -- boot order and pxe config aren't preserved as they should be. To fix this, replace UnknownBootCmdError with UbootenvError. Just something more general to say "we can't recognize the environment". UbootEnv can raise that instead of Exception.
* Bump to version v0.9.0, bump ipmitool/pyipmi version requirementsGeorge Kraft2013-07-222-4/+4
| | | | pyipmi v0.8.0, ipmitool 1.8.11-cx7
* Fabric: Add a CompositeBMC class for parallelizing BMC method callsGeorge Kraft2013-07-223-4/+72
| | | | | | | | This provides a mechanism so we can easily parallelize BMC calls without having to manually write wrapper functions in the Node and Fabric classes. >>> fabric.cbmc.sel_clear()
* SW-2207: Fabric: Add methods for macaddr_base and macaddr_maskGeorge Kraft2013-07-223-4/+106
| | | | And unit tests!
* CXMAN-210: Persist pxe interface setting across firmware updatesRipal Nathuji2013-07-181-0/+1
|
* CXMAN-210: Add command for modifying pxe interfaceRipal Nathuji2013-07-187-2/+251
| | | | | | | | | | | You can now run things like: cxmanage config pxe status cxmanage config pxe eth1 cxmanage config pxe eth0 The command modifies the u-boot environment underneath in order to perist the setting.
* Moved tftp to lazy init.evasquez2013-07-121-3/+3
| | | | | | | | | When we load tests from modules, each testcase gets initialized, therefore a fabric is created for every test case based on the manifest. This caused a problem with LTP which generated ~1000 tests, thus ~1000 fabrics and finally ~1000 Internal tftp servers. Move tftp to lazy init so we only create one when we need one, on demand.
* Added examples for get_linkmap() and get_routing_table().evasquez2013-07-111-1/+10
| | | Fixed set_uplink() example to be more verbose.
* Added doc examples for get_link_stats() and get_depth_chart().evasquez2013-07-111-0/+41
|
* Added doc example usage for get_sel().evasquez2013-07-111-0/+12
|
* Added doc example usage for get_fabric_macaddrs().evasquez2013-07-111-0/+14
|
* Added doc example usage for get_depth_chart()evasquez2013-07-111-0/+5
|
* Added doc example usage for get_routing_table.evasquez2013-07-111-0/+3
|
* Added doc example for get_linkmap()evasquez2013-07-111-0/+3
|
* Added doc example for get_link_stats()evasquez2013-07-111-0/+21
|
* Fixed example usage that had fabric instead of node.evasquez2013-07-111-19/+19
| | | Oh yea .. Eclipse was kind enough to clean up some whitespace ...
* Added loggers to the API index for cxmanage_api.evasquez2013-07-111-0/+1
|
* node_test.pySheldon Sandbekkhaug2013-07-021-0/+6
| | | | Give each node a node_id.
* (CXMAN-203) Firmware Update LogsSheldon Sandbekkhaug2013-07-021-7/+6
| | | | | node.py Cleaned up code
* (CXMAN-203) Firmware Update LogsSheldon Sandbekkhaug2013-07-022-23/+10
| | | | | | | | | | | | node.py Logs are now saved to: ~/.cxmanage/logs/<node.ip_address>/<timestamp>-fwupdate.log Removed arguments to update_firmware() (formerly needed for the old way of saving logs) Removed a logger.info() stating the time (every message states the time) fw.py Removed unneeded arguments to the call to update_firmware()
* (CXMAN-203) Firmware Update LogsSheldon Sandbekkhaug2013-07-023-90/+426
| | | | | | | | | | node.py Uses loggers.FileLogger instead of FileLogger.py Removed unneeded function _append_to_file() Removed unneeded imports Removed filelogger.py Added loggers.py (copied from cx_automation)
* (CXMAN-203) Firmware Update LogsSheldon Sandbekkhaug2013-07-024-184/+166
| | | | | | | | | | | | | | | | | filelogger.py Simple class to log messages to files node.py Always log messages Use filelogger.py to write messages to file Removed optional arguments for updating firmware (no longer needed) fw.py Saves firmware update logs to directories in /.cxmanage Removed unneeded arguments cxmanage Removed unneeded optional arguments for fwupdate command
* (CXMAN-203) Log status during firmware updateSheldon Sandbekkhaug2013-06-283-3/+225
| | | | | | | | | | | | | | | node.py Save a log of events during a firmware update. scripts/cxmanage.py Added arguments to fwupdate: --no_log (to NOT save logs of a firmware update) By default, logs are saved --log_directory (place to save firmware update logs) Default directory set to "./fwupdate_logs" fw.py Changed the run_command in fwupdate_command to include the new arguments
* Merge branch 'master' of ssh://git.calxeda.com/var/git/cx_manage_utilSheldon Sandbekkhaug2013-06-253-184/+68
|\
| * CXMAN-205: Test TFTP download before doing firmware updatesGeorge Kraft2013-06-242-2/+4
| | | | | | | | | | | | | | | | | | Should ensure that TFTP communication is working before we start. We can't really test an upload, but uploads and downloads are pretty similar anyway. May want to add some kind of local crc32 check to verify that the downloaded image is actually valid.
| * CXMAN-206: Remove unnecessary checks around bmc firmware callsGeorge Kraft2013-06-241-12/+0
| | | | | | | | We're getting proper IPMI errors now.
| * CXMAN-206: Remove NoFirmwareInfoErrorGeorge Kraft2013-06-242-32/+2
| | | | | | | | pyipmi should raise a proper IpmiError now.
| * CXMAN-213: Allow firmware updates with a single UBOOTENV partitionGeorge Kraft2013-06-211-6/+14
| | | | | | | | | | If there's only one partition, just treat it like any other image. This means the boot order won't be preserved.
| * node.py: Clean up some old, obsolete behaviorGeorge Kraft2013-06-201-11/+0
| | | | | | | | Don't need to infer anything about the CDB's in-use state anymore.
| * CXMAN-206: Remove the _parse_ipmierror methodGeorge Kraft2013-06-201-137/+70
| | | | | | | | Yeah, let's just do that in pyipmi where it belongs.
| * CXMAN-206: Remove error handling around bmc.check_firmware()George Kraft2013-06-201-8/+2
| | | | | | | | We expect it to raise a proper IpmiError now.
* | (CXMAN-194) Create a command to get all dataSheldon Sandbekkhaug2013-06-254-54/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | tspackage.py Formatted comments removed unneeded return statement Changed string formatting node.py Added comments to get_sel() __init__.py Changed get_components() to a global variable COMPONENTS, and updated info.py and tspackage.py accordingly
* | (CXMAN-194) Create a command to get all dataSheldon Sandbekkhaug2013-06-246-535/+402
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | coredump.py/tspackage.py Changed coredump.py to tspackage.py ("troubleshoot package") Removed code to check for server IP Removed requirement to power on nodes Uses python's tempfile module instead of trying to manually find unused temporary filenames No longer calls ipmitool directly, only functions in node.py are used Removed function to get SDR (already had another function to get sensor information) Uses node.ip_address instead of custom function to get ip_addresses of nodes Removed function to delete files. Now uses python's shutil.rmtree() Archives files using python's tarfile module instead of using subprocess.call Archived filenames now contain the date and time they were created. Various minor changes scripts/cxmanage Reflects name change (coredump to tspackage) Removed unneeded arguments for tspackage node.py Added a function to get the SEL cxmanage/__init__.py Moved the components dictionary from cxmanage/commands/info.py to here, so other files can access it info.py Now references the components dictionary from __init__.py
* | (CXMAN-194) Create a command to get all dataSheldon Sandbekkhaug2013-06-212-0/+525
|/ | | | | | | | coredump.py Added cxmanage command to get a lot of data and store it in a .tar cxmanage Added the coredump command
* AIT:Added a refresh() function for Fabrics.evasquez2013-06-131-17/+19
| | | | | Sometimes when tests power on/off systems or MC_RESET node IPs change. We want the ability to get the new ips for the current fabric object without a complete re-init.
* CXMAN-207: Retry firmware TFTP transfers up to 3 timesGeorge Kraft2013-06-071-8/+16
| | | | | | | | If the initial RRQ or WRQ packet out is dropped, tftpy seems to break and never retries. We need to be more tolerant than that, so just retry the transfer a couple of times. We used to do that anyway.
* bump to v0.8.2v0.8.2George Kraft2013-05-091-1/+1
|
* CXMAN-202: Abort fwupdate --full if any step fails along the wayGeorge Kraft2013-05-091-13/+14
| | | | This was the original intention, but somehow I missed that. Oops.
* bump to v0.8.1v0.8.1George Kraft2013-05-081-1/+1
|
* setup.py: Move sphinx, cloud_sptheme to optional dependenciesGeorge Kraft2013-05-081-2/+3
|
* bump to v0.8.0v0.8.0George Kraft2013-05-031-1/+1
|
* Bump requirements: pyipmi>=0.7.1, ipmitool>=-cx5George Kraft2013-05-032-3/+3
|
* pylint warningsGeorge Kraft2013-05-032-1/+3
|
* Fabric: Re-order a couple of methodsGeorge Kraft2013-05-031-30/+30
| | | | | Just group the nodes and primary_nodes properties together, and move private methods to the bottom.
* Node: Remove "fabric" from many of the method namesGeorge Kraft2013-05-034-35/+35
| | | | | | | | To align them with the method names in the Fabric class. In general, Node methods should have "fabric" in the name if it applies to all the nodes in the fabric, i.e. get_fabric_ipinfo which returns IP addresses for ALL the nodes.
* Fabric: Fix get_link_stats to match Node.get_fabric_link_stats()George Kraft2013-05-031-9/+10
| | | | | | | | For commands that run across all nodes, we want the interface of Fabric and Node to be very similar. This means Fabric.get_link_stats now takes a "link" parameter as well, instead of returning results for all links.
* Fabric: Parallelize get_linkmap, get_routing_table, get_depth_chartGeorge Kraft2013-05-031-21/+20
| | | | Need to use _run_on_all_nodes for these.
* Fabric: Simplify get_firmware_info_dict and get_versions_dictGeorge Kraft2013-05-031-9/+3
| | | | | Instead of building up the dictionaries ourselves, let's use the Node method that already does that for us.
* Fabric: Clean up docstringsGeorge Kraft2013-05-031-4/+4
| | | | Mostly just fixing up incorrect method names in the examples.