Age | Commit message (Collapse) | Author | Files | Lines |
|
Project: fuel dc7f16e0fa9545021b2673e18eff421221ba06c0
vitual_fuel: set_vm_nic() takes no parameters
Fixes: https://jira.opnfv.org/browse/FUEL-148
Change-Id: Id5a1d710abf425e75b6ff9eaa7b372285e200702
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel 109b0e70eb9963fd5d4aa8e7fda3cc30ec7752b9
Add OVS with NSH/DPDK build
Change-Id: I6cdcc56024a4d9fe305783f45856f388e62c0ba8
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
|
|
Project: fuel b0670cfd013bf0ef4a1c1b3723fa3f5da6dd108d
virtual_fuel: add XML tree as attribute of VirtualFuel
With this patch, the VM XML definition tree is an attribute of the
object, this way it can be used by all methods without having to re-read
the file.
Methods added:
update_vm_template_file: Flushes the contents of the in-memory XML
representation of the VM to the backing file.
Change-Id: I18d3f606b0c02cd589cb0f657599e8b03b0e817e
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel b86d8e65f9a8a3e52a7f06f8ac9d32963c9df6d4
ipmi_adapter: add delay to stabilize command action
We should allow the nodes some time to stabilize after sending a command
to them. Currently we are checking the status too fast.
Change-Id: I26a60d2bb6a43edbec842b727f825057e2778981
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel 523ae3b3247412daff4c127f505fc64d6dc67696
Mask ipmitool credentials
Change-Id: I328432e6b30437e8a83065859cd80358d4c3c468
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 7994abe6083f408823149669fa2e51ef7d341a8e
Mask impitool credentials
Change-Id: I0103082672259eaf4b1c2be8ca3a1236fc6137eb
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel f2c53cb47c52f295568639919c407080ecf92b03
Add command line argument masking for exec_cmd
exec_cmd() now takes 2 additional optional arguments: mask_args and
mask_str. The former expects an array of positions to mask, the latter
expects a string to be used as mask.
Change-Id: I445141a68929a0d2837e7692ce8b4d071154cfa7
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel aace3a2620c1c49932c7c82ed6cc154c78d19bef
Remove unused function: usage()
Change-Id: I648821262a7bfd77e59f4411380020c49306ff5e
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 294150c7f9e36477ff0a25f947fb2c8002999a3b
Introducing collection of all fuel and stack deployment logs.
The purpose of this patch is to collect all available Fuel snapshots- and
stack/node ldeployment logs for later off-line troubleshooting.
The intention is that Jenkins, or other deployment robots will be able to
collect all logs from the deployment and store it at some repository where
developers can fetch it and perform off-line post deployment trouble-shooting.
Following script arguments have been added:
CI Arg changes:
Added an argument to ci/deploy.sh:
-L [Deploy log path and file name], E.g.
-L ~/jenkins/deploy/deploy-888.log.tar.gz
This will create an tar gzip archive at the path and filename pointed out.
If -L is not specified, the log archive will be placed under the CI directory
with the following name convention: deploy-YYMMDD-HHMMSS.log.tar.gz
Fuel Internal deploy changes:
Added an argument to ci/deploy.py
-log [Deploy log path and file name], E.g.
-log ~/jenkins/deploy/deploy-888.log.tar.gz
This will create an tar gzip archive at the path and filename pointed out.
If -log is not specified, the log archive will be placed under the CI
directory with the following name convention:
deploy-YYMMDD-HHMMSS.log.tar.gz
READY TO MERGE!
VERIFIED!
Change-Id: Icb75d9d2e66bdd47f75dcca29071943444d5c823
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
Project: fuel 58b6866358c503f6ac588629b705867863523e69
Clarify docker installation instructions
Change-Id: I8738798eac64c44a66e4fcab9758094e26a5a69f
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 7361290e6eef010ee646d98f90b3c3fa00ee2b38
Add missing package dependency: libyaml-dev
Change-Id: I058f6bc54e1c6b0a0c20eeaa2ea09f2f9a2e80ce
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 3cddf277c5966c5cc584a493d5923cc5dcdc7820
virtual_fuel: initial support for remote libvirt
With this patch it should be possible to create a fuel VM on a remote
libvirt server by properly defining the LIBVIRT_DEFAULT_URI [1]
environment variable. If the variable is not defined, then there should
be no percievable change in behaviour for the script.
This patch introduces the ability to create volumes (images) on a
remote libvirt host where the Fuel VM is to be deployed. For now
the volumes are created by default in a pool named jenkins, but
the idea is to allow this to be configured, probably in the POD's
DHA file.
Since all virsh commands honor LIBVIRT_DEFAULT_URI, we use this
environment variable to detect wheter we should create a volume or not.
The rationale being that the variable will only be set if the user wants
to to do the VM deployment on a remote libvirt host.
We need to create a volume because we can not rely on being able to
access the remote server's file system directly.
The images are then transferred to the libvirt host using virsh
commands. All this could also be done using scp and a user directory
on the host machine, but using pools allows us to take advantage of
libvirt's policies and file permissions.
CHANGE: when LIBVIRT_DEFAULT_URI is defined, the script will not check
for the presence of the required PXE bridge. This will still be checked
when the Fuel VM is started and the bridge not found, but this happens
at a later point than it does today.
CHANGE: before this patch, the file system image was named like the VM:
vm_name.raw. This patch introduces a change and adds a timestamp suffix
to the image: vm_name-timestamp.raw. This is so to avoid collisions with
an image with the same name on the remote pool (two PODs may be using
the same pool). It may also be useful to keep around old file system
images.
FIXME: This patch requires a pool named "jenkins" in the remote libvirt
server, and it will fail if it is not present. This should be
configurable.
Notice though that we can still define LIBVIRT_DEFAULT_URI as
"qemu:///system" to create the Fuel VM on the local host.
[1] https://libvirt.org/remote.html#Remote_URI_reference
Change-Id: I40925ed31337d3ad9cf505f284f5c3d14e9129a0
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel f09f2e3c661b8fcb1c82151e1ad17eea7275b417
VirtualFuel: Add temp_dir and vm_name attributes
These two variables are defined in one of the methods right now. They
will be useful to other methods too, so we add them as attributes to the
object here.
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
virtual_fuel: make vm_template an attribute
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
virtual_fuel: factor out image creation into a method
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel aa58ccd04bfa98ae2bfbf2e37a180020e331deaf
common.py: allow specifying number of attempts in exec_cmd
Some commands executed by exec_cmd may fail because of a temporary
cause, and it may be desirable to retry the same command several times
until it succeeds. One example of this are the ipmitool commands, which
may fail temorarily on some targets if they get too many requests
simultaneously.
In this patch three new optional parameters are introduced to the
function signature, which do not break backward compatibility:
attempts: which indicates how many times the command should be run if
it returns a non-zero value*, and defaults to 1 (as today).
delay: which indicates the delay in seconds between attempts, and
defaults to 5 seconds.
verbose: It will print the remaining attempts left for the current
command if set to True.
* It may be desirable to add yet another parameter to indicate what
return value should be considered an error, but non-zero for now
seems a reasonable default.
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
ipmi_adapter: simplify, retry if command fails
The method get_node_state has been added to the the IpmiAdapter class.
In addition, now the power on/off methods will try several times to
perform their IPMI command before giving up, instead of bailing out at
the first error.
After the power on/off command is completed, the method will wait until
the node is in the desired state.
NOTE: a command could potentially take several minutes if the defaults
are used; each IPMI command can take up to 1 minute, and there can be 3
commands issued per operation, one of them may be retried 20 times with
the current defaults. Ideally we would use eventlet or something similar
to allow each command a limited time to execute, instead:
with eventlet.timeout.Timeout(seconds) as t:
power_on/off_command
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel c47a7f7a0198e2ce6ba54cbe485ae87983f785d2
ODL build: Allow customizing JAVA URL
For Armband, JAVA8_URL hardcode needs to be patched outside of the
build system, so make related var overrideable.
Change-Id: I308074a4ae0c5f8b22e5e5128965ce90fea3734e
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Signed-off-by: Stanislaw Kardach <Stanislaw.Kardach@cavium.com>
|
|
Project: fuel f9e8c1a361d3673df9fcde83e46d265ed49fa499
repobuild: Allow customizing fuel-mirror repo URL
For Armband, fuel-mirror code needs to be patched outside of the build
system, so we factor out the repo URL into an overrideable variable
(FUEL_MIRROR_URL).
Change-Id: Icf26f1b84f5a653f541819a42980377f51c7f299
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Signed-off-by: Stanislaw Kardach <Stanislaw.Kardach@cavium.com>
|
|
Project: fuel ba99c6e97a4dc9db8165edc7d95a254892f59830
Build: Allow customizing FUEL_MAIN_TAG (commit)
FUEL_MAIN_TAG is currently hard set to 9.0 (not overridable).
While this is a sane assumption for the usual scenarios,
Armband applies a series of patches on top of Fuel@OPNFV, hence
requiring us to override this variable.
WARNING: FUEL_MAIN_TAG is reused for fuel-mirror tag, so if you
override this variable, make sure the same tag exists in fuel-mirror.
Change-Id: Ided75cf0c3b5ad18cf7ef1ec88b5d2dc3aada511
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Signed-off-by: Stanislaw Kardach <Stanislaw.Kardach@cavium.com>
|
|
Project: fuel 301ce6a92c82f65df08d75995d35316005e38ff9
Build local mirrors for stable/mitaka
Change-Id: I3128652aeb87cb2cfaa91ded1b8d9ebeeb70d33b
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
|
|
Project: fuel a2ee8e7efc66be53645c8b1d7c43b7740bc999cd
deploy: ipmi adapter: Add <port> config support.
Sometimes the IPMI lanplus protocol listens on a non-standard
remote port, e.g. when target nodes are interfaced through a
fake IPMI BMC application that listens on multiple ports on the
same IP address.
Therefore, allow setting IPMI port in the DHA using a new
property named `ipmiPort`, and pass it along to `ipmitool` when set.
CHANGE: get_access_info now also supports specifying the IPMI
port to use with `ipmitool` by configuring the `ipmiPort`
property in the DHA.
hp_adapter.py: updated `get_access_info` return signature with
the new (unused there) `ipmiport`.
Change-Id: I620176bd7f466aa460518cf12d15ccbe86a22560
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Project: fuel 8b192597ef66f45a820886bfe2489548a9fa807f
build and deploy onos plugin for fuel9
Change-Id: I04dd8b4bdddc5678b158d7287c6ffc52d1bce135
Signed-off-by: wuwb1989 <wuwenbin2@huawei.com>
|
|
Project: fuel 53ddd94cc6a61c4121300b529209662755f36b5a
Enable vsperf plugin in fuel 9.0
Change-Id: I96b59e22fcc0269aa3ae0b04587c8ca7d0fab867
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
|
|
Project: fuel eb299372fbb32f93cac6c92060e37bd21c7d8ba0
Update configuration for fuel 9 virtual deployment in Huawei-China.
Change-Id: I9d2fc979886510c165af8dbac93ddcdc954727cf
Signed-off-by: wuwenbin2 <wuwenbin2@huawei.com>
|
|
Project: fuel dac2b89d574c21951a82e9408e58e5b92ac33763
Fixing erroneous hypervisor type
A "qemu" snuck in instead of "kvm".
Change-Id: Ibe704103cd1bab6e127a31d08d53f53518033539
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel 406636f26873d551c1adcf10275d0064c22d2b40
Updated devel-pipeline DEA overrides for Fuel 9.0
Minor fix in the ELX version.
Update to Fuel 9.0 in the default version.
Change-Id: Ic084b86e7f6d2dfc3d15b10f0ef72e04ef2b7bf6
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel eb94725aae686ac519070f00ee9628ae0725d00f
Modification of deployment config for Fuel 9 and ELX lab
Change-Id: I380087889cda079a56c8cea3acc13145dcd49046
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel c6da8551bcdc1762a3135fcaabee7e5f98e6fcb9
Revert "Temporary fix for PXE booting from the wrong NIC"
This reverts commit 5926bcddca0eca28a33ae43aadf90b9263ae6b84.
Change-Id: Ibea4ca5d38ce2e10ab6d5bb1d7ccdf666ee149d5
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel b598e13d935c29e5bbc3d2be3a2731b2b63d3ec5
Temporary fix for PXE booting from the wrong NIC
Change-Id: I1f6d38da24d5a4e66061b9bdfe576fbbda7fb624
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
IMPORTANT:
Drop `fuel-astute` submodule, and patch it instead during the Fuel
Master node bootstrapping process, using an OPNFV post.d script.
Luckily, this fits well with the recently added script that prepares
FM for cross-building.
One step closer to un-forking.
Change-Id: Ia612e0ad4077b16baf54f1b9ebf9d207daca0be4
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Project: fuel 14f07bc7ecb9f166d5244abcc5789d8fd584c0dd
ISO: Use --joliet-long names.
Armband adds similar files, which tend to have long names and only
differ in suffixes (e.g. DEBs for amd64 vs arm64).
This works around ISO build error(s) like:
"genisoimage: Error:
./ubuntu/pool/main/g/golang-gogoprotobuf/golang-gogoprotobuf\
-dev_0.0~git20150828.0.6cab0cc-1~u14.04+mos1_amd64.deb and
./ubuntu/pool/main/g/golang-gogoprotobuf/golang-gogoprotobuf\
-dev_0.0~git20150828.0.6cab0cc-1~u14.04+mos1_arm64.deb
have the same Joliet name"
Change-Id: I89d9816d86176d80bcc76f5f90c8391b0664ab82
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Project: fuel 6f9e8e2c829412d350644fa6a820a8a2890f69b7
Do not create files when check connectivity
Change-Id: If0ab25ee843f9892510da3d3c8d1f10a54440545
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
|
|
Project: fuel a87426e28f604517de39f778b7a216ecf75e172a
Script to clean expired build cache items
Change-Id: I5e466c89c05eb4d637778218cfe03b88d569f331
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel 7b6a386fe58d96ff476cd8c34a18c6e7bce8895f
Fix for not reaping 'ssh_network'
Change-Id: Ib225701a808211e50554c8f1762325aa75ecc33f
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel c4afb1da513ef3230432fff400ea231660b230c9
Build odl plugin for mitaka
Change-Id: I59b96a424a753f880b4ac16abd806851ad3f9533
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
|
|
|
|
Project: fuel 6c498c04a9843bcc99dc94650e5d0b31490dfa1b
Download deployment config after modification
Modified network or interface configurations were not reflected in
the deployment config, resulting in faulty node configurations.
Change-Id: I4ca20702c0171e7995f2b4f46317557ec9d5beac
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 2498bbb0354fd7abbbb408810f419c2999c23a31
Auto deploy corrections for Fuel 9.0
- The auto deployer's detection of nodes being up corrected as "fuel node"
now returns "1" instead of "True" to denote that the node is up.
- The location of bootstrap_admin_node.sh has changed so the detection of
whether the Fuel node installation needed a correction for the deployer
not to throw an exit code and terminate prematurely.
- Small fix: deploy.py is now executable (just a chmod change).
Change-Id: I8fed7bafe6912f8b4278619bbdaa16577a82737b
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel 0ac1af6354f57c389b407cb1ea1e0365027704a6
docs: Mitaka Build req: Add p7zip-full.
Build system uplift to Fuel 9.0/Mitaka now requires `7z` cmd utility
also on the builder host (not only inside docker containers), so
document this as a prereq in the build instructions.
[1] https://gerrit.opnfv.org/gerrit/#/c/13919/
Change-Id: Icb57ac58c499272fce0a27bb2d25383e933c7814
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
Project: fuel 74454885828f33629f0355616017b67768bc7bd8
Clean up after ourselves
Change-Id: Id7579ef618b8cd922de325d9dc1c0b7a6c5587a7
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel 1378a27086272efec083778dd52fb27511b88167
A small edit for the uplift to Mitaka from Liberty
Signed-off-by: Daiel Smith <daniel.smith@ericsson.com>
JIRA:0
|
|
Project: fuel 3b8db706acb60b680bcf220bd0236d5efcc66d07
common.py: catch stderr in exec_cmd
When running commands with exec_cmd(), the stderr of the command is
sent to /dev/null and ignored, and only stdout is retrieved. Thus, when
a command fails and check is enabled, only the output of stdout is
presented to the user, which normally holds no information about the
error.
In this patch we retrieve stderr, and when an error occurs, an exception
is raised with that message.
Fixes https://jira.opnfv.org/browse/FUEL-142
Change-Id: I3940e1a43963a6abec362481b1d4ce7bd7cb816d
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Project: fuel ec0c7698cd363b71694ca33e87f65fc382acda8d
Build system uplift to Fuel 9.0/Mitaka
Switching to Fuel 9.0/Mitaka for the build system.
Overhaul of the patching mechanism. As bootstrap_admin_node.sh has
been transitioned into an RPM (fuel-support), the lazy designer found
it more simple to patch that script during the Fuel build phase than
at the OPNFV ISO generation. The patch mechanism has been changed to a
normal context diff instead of the orig/modified file tuples
previously used. Hopefully this will require fewer manual rebases (may
the fuzz be with us!).
Also the ks.cfg patching has transitioned to a context based ordinary
patch for the same reasons, but this is as before taking place during
OPNFV ISO generation.
Patch naming made more descriptive.
The reaping mechanism has been slightly modified due to a change in
the naming of the node files when these are generated by the Fuel CLI.
IMPORTANT 1: The package cache mechanism is currently disabled, it is
only possible to install Fuel with a direct internet connection. This
will be fixed in a later change set!
IMPORTANT 2: All plugins has been disabled! As you have re-certified
your plugin with Fuel 9.0, please re-enable it in build/Makefile!
Change-Id: Ia918d16a74b68f89d178e06befe6e8a7a9367bf9
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Project: fuel ebb5b355ba542fc22b8f96f952439251d4b2c90b
Remove residual Lab & configuration DEA and DHA from the unprotected Fuel repo
This needs testing!!!!
On a follow-up release, this also needs rebasement, the libvirt templates
are still in here - they shouldnt, sinse we dont want Lab specific
configs in the Fuel repo.
NOT VERIFIED
DO NOT MERGE
Change-Id: I069ced81b886405463f27f37a6ec78e3748b37b7
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
Project: fuel 370cf3546e2f5e3a7afa69b4f306bd7c90d44397
More rigorous Fuel environment check
get_env() used to raise an unhandled exception when reap.py was run on a
Fuel node which didn't yet have an environment set up.
Change-Id: I07c37db2d80e416d26fa4fb4907f4e438f1c44e5
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Project: fuel b0b2e869cae884aaed305f2984701dc813a469ec
docs/install-instr: Add target specific cfg sect.
Fuel 8.0 adds support for setting up "Offloading Modes" for
target nodes.
Document how this features should be used (and why/when it's
necessary), and also its common limitation of not being applied
during Verify Networks step (see related Fuel bug report [1]).
While at it, fix minor reference to branch in git tag checkout
instructions, as we'd be in detached HEAD and not on a new branch.
[1] https://jira.opnfv.org/browse/FUEL-134
[Alexandru.Avadanii@enea.com]
Only minor edits and prepared for upstreaming, this is mostly
based on previous work from Florin.
Change-Id: If7a8ca44541903dbeb6db36bc64fe56b132165cb
Signed-off-by: Florin Dumitrascu <florin.dumitrascu@enea.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Project: fuel 439f684991c36f61483b12134a8c981f78f0e473
Remove coexistence configuration from post script
This is not more needed as the config comes from FUEL ODL plug-in
Change-Id: Ie09a52ac3919ac641924d41431dc000910e6d4f4
Signed-off-by: Manuel Buil <manuel.buil@ericsson.com>
|
|
Since fuel-plugin-opendaylight and fuel are OPNFV components,
they do not have a stable/mitaka branch, so use master for them.
Change-Id: Ie8ae0e458953bae7006e0d411b4680f20b87a13c
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Since `execute_shell_command` mcagent is used for building the target
image and the timeout provided in the astute task is just respected on
the Astute level (on mcollective level this timeout is actually a
minumum between value provided and ddl value) we need to increase it
for Armband operation.
Because Armband builds the target image via `qemu-debootstrap`, it can
take more than 1 hour to finish the building. Therefore aside of
increasing the timeout in the Astute task, the maximum timeout value
for mcagent has to be increased.
Change-Id: Iab94e794e36bb7e887e8f334daa46e82fe0c6f94
Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
|
|
Change-Id: If1895891c28b7d8d8d109539357475ac578bfc38
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Since we only build ODL plugin on arm64 for now, kill
fuel-plugin-qemu submodule in armband repo.
Change-Id: Ib7a6dfe7e1dbd03771e3f28d2769d54659280901
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|