Fujitsu Network Communications (FNC) is making a strategic shift to open source. They are using the open source Warrior Framework for automation. Warrior is a keyword and data driven framework that was originally developed by FNC. It supports the automation of multiple protocols and devices. FNC is now open sourcing Warrior to enhance it through collaborative development and align with their open strategy.
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Making the Strategic Shift to Open Source @ Fujitsu Network Communication
1. Making the Strategic Shift to Open Source
@Fujitsu Network Communication
Presented By: Karan Marjara
Open Source Process Lead
Fujitsu Network Communications
2. Fujitsu Limited
About Us
Note: All yen figures have been converted to U.S.dollars for convenience only at a uniform rate of
US$1=108yen,the approximate closing rate on March 31,2017.
Headquarters:
Tokyo, Japan
Established:
1935
President:
Tatsuya Tanaka
Principal Business Areas:
Technology Solutions
Ubiquitous Solutions
Device Solutions
Employees:
155,000 worldwide
Revenue:
4,509.6 billion yen
(US$41.7 billion)
Operating profit:
128.8 billion yen
(US$1,192 million)
R&D Expenses:
173.9 billion yen
(Approx. 3.9% of Revenue)
Stock Exchange Listings:
Tokyo (Code:6702), Nagoya
3. FNC at a Glance
Headquartered in Richardson, Texas
Fujitsu Network Communications Inc. (FNC) is an
innovator in Connection-Oriented Ethernet and
optical transport technologies, and is a market-
leading provider of SONET, WDM, and packet
optical networking solutions. We also support
network operators and enterprise customers of all
types and sizes with our vendor-neutral, custom
professional service solutions.
10. OSS Usage Challenges
Copyright 2017 FUJITSU LIMITED
Manually
searching
OSS in the
Source
Code
Maintenance
and
Monitoring of
OSS
Operational
Challenges
(Keeping the
old version
of OSS)
Security
Vulnerability
11. Overcome Challenges
Started Using
BlackDuck Suite
ProductsContinuous
Training of
Developers
Auditing the Source
Code
Regular follow-up
with Engineering,
Legal and Security
OSS Component
Approvals
12. FNC’s Open Source Usage
Procedure & Policy
The procedures/policy designed to facilitate the identification, tracking, and
review of OSS used in FNC products in order to insure the terms of the
associated OSS license are being met and track OSS packages with well
known security vulnerabilities and include procedures to address these
vulnerabilities.
18. Open ROADM
Open ROADM Multi-Source Agreement (MSA), which defines interoperability
specifications for Reconfigurable Optical Add/Drop Multiplexers (ROADMs),
including the ROADM switches, transponders and pluggable optics. The goal of
the MSA is to move away from a traditionally closed ROADM optical transport
network and toward a disaggregated open transport network, while allowing for
centralized software control
21. Warrior Framework
Warrior is a generic automation framework that
automates software tasks and processes, in
addition to functional, performance and solutions
testing.
Under Apache License 2.0
23. • Permissive
• Very well written
• Popular Open Source License
• Apache v2.0 license provides developers the freedom to use the software for all
purpose—to not only distribute it, but also to modify and then distribute the
modified versions without concern for royalties.”
Why Apache License 2.0
27. 27
Warrior Framework is an open source automation framework designed to
enable anyone to automate their testing, processes, and repetitive tasks by
simplifying the complex process of building an automation infrastructure.
As a keyword and data driven framework, Warrior’s infrastructure is built to maximize
on reusability of built in keywords.
Warrior’s app based platform provides the users with native apps to easily implement
their automation needs, while providing the user with the ability to customize their own
workflow apps.
Warrior Framework – Open Source App Based Automation Platform
29. 29
FNC’s Automation Challenges
Automation to support multiple devices using multiple protocols with the
need to add new protocols as new technologies emerge.
Automation must be extensible to support the unknown requirements of
future equipment.
30. 30
FNC’s Automation Challenges
Automation to be run on multiple devices at the same time and in sequence on other
devices, while taking output results as input to another automation case.
Automation
31. 31
FNC’s Automation Challenges
Users of the automation are not programmers but rather users with technical
skills using the equipment and protocols manually.
33. 33
Keyword Driven : Warrior keywords are
python functions that are designed to
achieve a single purpose and be re-usable
when possible.
Built In Keywords: Warrior includes
hundreds of reusable generic built in
keywords. Keywords are grouped together
to form steps in a Warrior automation case.
Data Driven : Warrior is built on separating
data from the automation logic. This allows
users to change their data without any need
to change the automation logic.
The Solution: Warrior Framework
Keyword
Keyword
Keyword
Keyword
Keyword
Step
Step
Step
Step
Step
Case
34. 34
Warrior Flow
Control:
Data Repository to allow for data
sharing among steps, case, suites
and projects
Execution Type: Sequential and
Parallel
Data Type: Iterative, Custom and
Hybrid
Conditional Execution
Error Handling: Next, Abort, Goto
Run Mode : RMT, RUP, RUF
Impact : No or Yes
Looping : Goto
Context : Positive , Negative
The Solution: Warrior Framework
Projects
Suites
Cases
Steps
System 1
System 2
System 3
System 4
System 5
Data File
35. 35
The Solution: Warrior Framework
Uses Fujitsu Organically Developed and Proven Warrior Framework
Keyword &
Data Driven
Automation
Flow
Solution
Device 1
Result File
Log Files
Solution
Device 2
Solution
Device 3
Solution
Device 7
Solution
Device 6
Warrior
Framework
Solution
Device 5
Example of Solution-Centric Automation
Protocol A
Protocol B
Protocol C
Protocol E
Protocol D
Protocol F
• Python based automation framework
• Device independent supporting any
automatable device.
• Currently supports automation of the following
protocols: REST, NETCONF, TL1, CLI, SNMP,
web based UI. Extensible to support others.
• Allows for execution of automation flows in
sequence, in parallel and as a combination of
both
• Allows to use output from one automation step
or flow to be used as input to another or in the
decision making of what to do next.
• Provides an app based platform that allows
users to use apps to create automation without
coding knowledge.
36. 36
App Based: Warrior’s UI is an app based platform that provides users with 10 native apps that provide the users a
simple way to create their automation cases and organize them into suites, and projects.
Users can execute their automation from within the native apps.
Warrior’s Infrastructure supports creation of user’s own custom apps.
The Solution: Warrior Framework
37. 37
Developers will be able to publish their apps
and share them on the Wapp store. Users can
download apps developed by 3rd party
developer to fit their automation needs.
Coming Soon: Wapp Store
39. 39
Easily Integrates With Support Systems
It’s All Automated
3rd
Party SW
Jenkins
Selenium
Jira
Testlink
Cloudshell
Scheduler automatically triggers
automation execution at a scheduled
time or occurrence of an event
Automatically creates a Jira
entry (defect) when an
unexpected result is
detected
If Warrior is being executed
as a Jira issue, it can also
auto update the status of
the Jira issue accordingly
Automation of WebUI
applications
Auto update execution
results in TestLink’s Test
Case Management
Automates lab equipment
and topology management
via Cloudshell integration
Warrior automation results
in text, XML, HTML and
Junit easily integrates with
3rd party tools
WARRIOR
40. 40
Warrior Optional Support Tools
That Can Be Used as Needed
App Base UI
Web-based App based UI for
all automation development
and execution
WARHORN
Warrior Installation & Setup
IRONCLAW
XML Validation Tool
WARMOCK
CLI & Rest Simulation &
Validation Tool
JENKINS PLUGIN
Schedule and Execute
Warrior Automation from
Jenkins
SPHINX
Python Documentation
44. 44
Why Use Warrior
• Infrastructure for
common functions for
test-automation
• Error handling, looping
and conditional
execution.
• Unified test cases and
report for all integrated
frameworks
• Keyword driven – allows
users to automate without
scripting
• Parallel automation flow and
keyword development
• Supports Agile by allowing
developers and testers to
provide quick turnaround
testing
• Data-driven configuration
to avoid duplication of
scripts and maximize
reuse
• Suite and project support
without copying and
duplication
• Component tests
developed individually,
reused later in solution
test without script
changes
• End-to-end synchronized
automation of diverse set of
components
• Easily integrate into any
framework that a component
already uses
• Flexibility to support future
solutions quickly – allow for
easy introduction of
tools/test libraries/processes
SOLUTIONS
EFFICIENC
Y
FRAMEWO
RK
AGIL
E
45. 45
Warrior Framework
For the End-to-End Automation of Processes
MULTIPLE PROTOCOLS
DEVICE INDEPENDENT
Supports common protocols,
such as REST, NETCONF, TL1,
CLI, SNMP, etc.
Can be extended to support
Support any devices that use
protocols supported by the
framework
Embedded systems, web
applications, GUIs, CLI
applications, test sets, etc.
Key words define automation
building blocks
Key words combinations
define automation flow
Flow control to support
conditions, looping and
negative scenarios
Results from one step
determine actions in next
Drives one or more
SCALABLE MULTI-THREADED
AUTOMATED EXECUTION
DATA DRIVEN
Accepts input from data
files, previous Warrior
results or from user
Standard XML, TXT
formats
Result File (in TXT, XML, HTML and Junit formats)
Log Files
Data
WARRIOR FLEXIBLE FRAMEWORK
46. 46
Warrior Framework
MULTIPLE PROTOCOLS
DEVICE INDEPENDENT
Supports common protocols, such as
REST, NETCONF, TL1, CLI, SNMP, etc.
Can be extended to support others
Support any devices that use protocols
supported by the framework
Embedded systems, web applications,
GUIs, CLI applications, test sets, etc.
Keywords are the automation building
blocks
Keywords combinations define
automation flow
Flow control to support conditions,
looping and negative scenarios
Results from one step determine actions
in next
Drives one or more automation units in
sequence and/or in parallel
SCALABLE MULTI-THREADED
AUTOMATED EXECUTION
App Based
Warrior is an app based platform
Includes Native apps to simplify use
Allows for creating user specific workflow
apps
Result Files
Log Files
Data
WARRIOR FRAMEWORK
DATA DRIVEN
Accepts input from data files,
previous Warrior results or from
user
Standard xml, json, and txt
formats
Automation
Flow
47. 47
Automation Configuration Example
For Typical Solution-Centric Testing
Keyword and
Data Driven
Automation
Flow
1Finity
Network
Element
Result
File
Log Files
Virtuora
NC
Spirent Test
Set
GUI
Virtuora
NFV
Verify
Flows
Verify GUI
Behavior
Monitor Traffic
1
Warrior
Framework
WireShark
Traffic
Monitor
Initial
Provisionin
g
Start Controller
Start Traffic
2
4
5
3
6
7
Multiple Components Tested Together with Separate Tests and Test Data, but Unified Log Files
Network Equipment
Fujitsu network elements (1FINITY,
VIRTUORA, FLASHWAVE, FLM)
Cisco switches and routers
Juniper switches and routers
Spirent
Ixia
Wireshark
Any identified in future…
Support Systems
Jenkins
JIRA
Selenium
Testlink
CloudShell
Easy Integration
48. 48
Warrior Continuous Improvement
Initially by Fujitsu Internal User Group
Now by the Larger User Community
Time
Improvements
Warrior
Inceptio
n
Fujitsu Continuous
Improvement
Continuous
Improvement by Larger
User Community
Warrior
Open
Sourced
Warrior Framework developed by Fujitsu
Approximately 2000 Keywords developed
to date and growing
Warrior Framework is an open sourced
project
All users can add enhancements
Over 30 work items developed and
integrated into Warrior by Fujitsu engineers
Warrior Continuous
Improvements
Hinweis der Redaktion
More info about Fujitsu:
Financial Information
http://www.fujitsu.com/global/about/ir/data/
Financial Results Announcements
http://www.fujitsu.com/global/about/ir/data/results/
We used to build discrete, purpose built networks
A Customer would get us to build the network and it would run for 15 or 20 years.
This is no longer the case in our cultural revolution, it is revolutionary what we are doing with our 1FINITY portfolio
It can be called revolutionary, more accurately is can be described as Evolutionary.
Gone is the 20 year network, that is okay by me, what we have now is the continually changing, adapting and evolving network. The old network can’t keep up with what we are experiencing in technology changes.
Fujitsu improvements
Created Python Library for Spirent Test center
Converted Test Result file into XML format
Created Python library to generate Suite result file using Junit XML format
Added support for Category in test cases
Supported the impact selection in test suites
Added data file support for Test Suites
Allowed steps to be inserted in Katana
Added Network Driver to Warrior
Added Support for SNMP
Added Support for NETCONF - 373 1finity Keywords
CLI Command Printer
SSH login without password prompt
Trap stdout to logfiles
Added ssh util using Paramiko module
Enhanced connect keywords to save pre and post login messages
Enabled Ironclaw to handle logsdir, resultsdir, testsuite datafile
Created Core Keywords for ssh using paramiko library
Supported Nested Keywords in XML results file
Made enhancement for the SSH utils to support connections via another host
Enhanced data utils to handle variable substitution
Disconnected pexpect session and support variable substitution
Created libraries for parsing variale config file
Added test data response support
Added an option to remove ssh host key
Added the sftp ,ftp, ping ,traceroute core keywords
Added set session_timeout & verify session_timedout core keywords
Added DCN OPS core Keywords
Modified connect_telnet to accommodate for connection via serial port
Created Library and keywords for Ixia test set
Training and support of offshore teams