March 2015¶
March 17¶
Changed Modules |
Versions |
|---|---|
|
1.0.9 |
Bug Fixes¶
Fixed ssh protocol issue with Vty connections.
Minor fix in set_csccon_xxx APIs
March 13¶
Changed Modules |
Versions |
|---|---|
|
1.1.1 |
Added alias access to
topology. See alias section under topology usage documentation. (this feature is expected to be backwards compatible)
March 11¶
Changed Modules |
Versions |
|---|---|
|
1.0.4 |
|
1.0.5 |
|
1.0.7 |
|
REMOVED |
|
1.0.6 |
|
1.0.8 |
|
1.0.0 |
|
1.0.9 |
|
1.0.3 |
|
1.0.4 |
|
1.0.2 |
|
1.1.0 |
|
1.0.4 |
Highlights¶
added
__init__toTestResultobject, and added unittest coverage forresultsmodule.Renamed
attrdictmodule todatastructuresmodule, enabling it to contain more than the attribute dictionary datastructures.The runinfo directory will contains taskresults directory which allows at runtime to see the result of each section, subtest, testcase and so on. The directory is deleted after the run is completed.
Tims result file is always created even when post information is not provided. It then can be uploaded manually later on.
Loop ids are retrieved with an extra
str()call. Example updated to provide an example (eg, int to str)topologymodule completely refactored, with documentation updated. See below for details on changesaetestinternally refactored. See below for detailsTestbed schema change: removed
servers:section from devices, consolidated intoservers:section undertestbed:.Loop can be now declared directly in the @test decorator. @aetest.test(ids=[1,2]) or @aetest.test(variants=[1,2]). However, @aetest.loop still exists and can be used.
A new naming convention is followed for CLI arguments:
All infra arguments use the single dash format (e.g. -tf, -testbed)
All infra arguments use underscore separated words for multi-word arguments
All user defined arguments should use the double dash format (e.g. –my_arg)
Argument -user is now -submitter
Loop can be now declared directly in the @test decorator. @aetest.test(ids=[1,2]) or @aetest.test(variants=[1,2]). However, @aetest.loop still exists and can be used.
Easypynow allowsios_commands_file,folder,importer_optionsto be passed to tims via the control file.When connecting using
Device.connect()andvia='..'argument,vianow no longer requires the prefixconnections.. Eg:# before: device.connect(via = 'connections.alt') # now: device.connect(via = 'alt')
Example¶
To replace the default email subject with a custom one:
easypy /path/to/job/file -mail_subject "my subject here"
AEtest Changes¶
incl_common_resultwhich defaulted toTrueis now changed toexclude_common_results, defaulting toFalse. This is to be more inline with the command line argument. The behavior is not changed.Changed the following arguments to AEtest run script:
mode: removed. (no user impacting)testReport: renamed totestreporterruninfo_dir,task_id,log_per_testcase,verbose,quiet: all removed. (no user impacting)script_args: removed. all user arguments to script automatically gets stored in**kwargs.unittest: removed. engine automatically figures out if the script is unittest.
Changed the following
python -m ats.aetestcommand line arguments:using
-single dash style arguments instead of--.added
-submitterargument (changes the CES user)beefed
-hhelp info
Added
aetest.runtimemodule to enable querying runtime information by the user.
Topology Changes¶
Topology documentation fully updated with schema & etc. All details covered in this section is covered in the documentation with details.
All internal references of parent object (eg,
Device.testbed) is now done using weak references, allowing proper python garbage collection behavior.all
deleteAPIs removed from all objects
Topology objects singleton behavior (eg, Device) is gone, users are free to create and re-create testbeds and devices.
MgmtandConsoleclasses removed altogether. Connections will now solely be stored as dictionaries support kwargs internally.all
deleteAPIs removedTopology creation using testbed file now is done via
topology.loader, and no longer through instantiatingTestbedobject.Linkobject changes:get_link()removed, links are no longer singletonsadd_interface()->connect_interface()remove_interface()->disconnect_interface()new properties
connected_devices,connected_interfacesLink.interfacesis now aWeakListadded alias property
Interfaceobject changes:Interface.deviceis now a weakref to device objectget_remote_interfaces()API ->remote_interfacespropertynew properties
remote_devicesadded alias property
Deviceobject changes:added alias property
Device.testbedis now a weakref to testbed objectmodified how
ConnectionManagerintegrates withDeviceobjectremoved
get_device()api. Devices are no longer unique.get_links()api ->linkspropertyget_interfaces()api removednew properties:
remote_devices,remote_interfacesget_connections()->find_links()
Testbedobject changesno longer instantiates with a YAML testbed file (do this with loader instead).
Testbedis now a proper container top-level class.get_links()api ->linkspropertyget_devicesremoved. useTestbed.devicesdict
New:
topology.loaderloads a YAML testbed file and returns the corresponding topology objects contained within a
Testbedobject.
from ats.topology import loader testbed = loader.load('/path/to/yaml')
New feature: providing alternative subclasses of
Testbed,Device,Link,Interfacethrough testbed yaml loading.
Datastructures & AttrDict¶
Attribute Dictionary AttrDict module ats.attrdict is now consolidated
into a new module named ats.datastructures, where overtime we will introduce
new datastructures that will help with the community.
ats.attrdictremovedats.datastructuresaddedNew datastructures:
WeakList,ListDict