|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
From d33da223da1160b1ad2a8d02316b6b435bee9c29 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
From: Tomas Jelinek <tjelinek@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Date: Wed, 10 Oct 2012 03:06:21 -0400
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Subject: [PATCH 6/6] Integrate Smartcard support
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
This patch is a VDSM part of the integrating
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
the smartcard support to the ovirt:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
This VDSM part integrates the smartcard in
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
a supported way, not just as an unsupported custom hook.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
It also removes the smartcard hook itself.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Change-Id: I7cdaef420c8381d588f6215e66e6a80dd9d2e44b
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Signed-off-by: Tomas Jelinek <tjelinek@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Signed-off-by: Peter V. Saveliev <peet@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Signed-off-by: Antoni S. Puimedon <asegurap@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Reviewed-on: http://gerrit.ovirt.org/10547
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Tested-by: Omer Frenkel <ofrenkel@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
---
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
configure.ac | 1 -
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
tests/libvirtvmTests.py | 7 +++++
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm.spec.in | 12 --------
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm/libvirtvm.py | 44 ++++++++++++++++++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm/vm.py | 19 +++++++++++--
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_api/vdsmapi-schema.json | 49 +++++++++++++++++++++++++++++++--
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/Makefile.am | 1 -
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/README | 4 +--
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/smartcard/Makefile.am | 18 ------------
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/smartcard/README | 9 ------
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/smartcard/before_vm_start.py | 29 -------------------
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
11 files changed, 116 insertions(+), 77 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
delete mode 100644 vdsm_hooks/smartcard/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
delete mode 100644 vdsm_hooks/smartcard/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
delete mode 100755 vdsm_hooks/smartcard/before_vm_start.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/configure.ac b/configure.ac
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index a6265b5..3489e38 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/configure.ac
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/configure.ac
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -209,7 +209,6 @@ AC_OUTPUT([
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/qos/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/qemucmdline/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/scratchpad/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- vdsm_hooks/smartcard/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/smbios/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/sriov/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vdsm_hooks/vhostmd/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/tests/libvirtvmTests.py b/tests/libvirtvmTests.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 4ed7318..bd68f2a 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/tests/libvirtvmTests.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/tests/libvirtvmTests.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -91,6 +91,13 @@ class TestLibvirtvm(TestCaseBase):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
domxml.appendOs()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
self.assertXML(domxml.dom, xml, 'os')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ def testSmartcardXML(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ smartcardXML = '<smartcard mode="passthrough" type="spicevmc"/>'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ dev = {'device': 'smartcard',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'specParams': {'mode': 'passthrough', 'type': 'spicevmc'}}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ smartcard = libvirtvm.SmartCardDevice(self.conf, self.log, **dev)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ self.assertXML(smartcard.getXML(), smartcardXML)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
def testFeaturesXML(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
featuresXML = """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
<features>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm.spec.in b/vdsm.spec.in
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 1978fa9..f9e238b 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm.spec.in
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm.spec.in
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -353,14 +353,6 @@ Hook creates a disk for a VM onetime usage,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
the disk will be erased when the VM destroyed.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
VM cannot be migrated when using scratchpad hook
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-%package hook-smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-Summary: Smartcard support for Spice protocol in VDSM
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-BuildArch: noarch
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-%description hook-smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-Smartcard hook add support for spice in VDSM.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-Smartcard hook enable user to use its smartcard inside virtual machines.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%package hook-smbios
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Summary: Adding custom smbios entries to libvirt domain via VDSM
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
BuildArch: noarch
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -887,10 +879,6 @@ exit 0
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_scratchpad
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_scratchpad
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-%files hook-smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-%defattr(-, root, root, -)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%files hook-smbios
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%defattr(-, root, root, -)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_smbios
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm/libvirtvm.py b/vdsm/libvirtvm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 219e382..fe140ec 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm/libvirtvm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm/libvirtvm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1243,6 +1243,21 @@ class WatchdogDevice(LibvirtVmDevice):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
return m
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+class SmartCardDevice(LibvirtVmDevice):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ def getXML(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ Add smartcard section to domain xml
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ <smartcard mode='passthrough' type='spicevmc'>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ <address ... />
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ </smartcard>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ card = self.createXmlElem(self.device, None, ['address'])
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ card.setAttribute('mode', self.specParams['mode'])
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ card.setAttribute('type', self.specParams['type'])
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ return card
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
class RedirDevice(LibvirtVmDevice):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
def getXML(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
"""
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1395,6 +1410,7 @@ class LibvirtVm(vm.Vm):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
self._getUnderlyingControllerDeviceInfo()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
self._getUnderlyingBalloonDeviceInfo()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
self._getUnderlyingWatchdogDeviceInfo()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ self._getUnderlyingSmartcardDeviceInfo()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# Obtain info of all unknown devices. Must be last!
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
self._getUnderlyingUnknownDeviceInfo()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1486,7 +1502,8 @@ class LibvirtVm(vm.Vm):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vm.BALLOON_DEVICES: BalloonDevice,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vm.WATCHDOG_DEVICES: WatchdogDevice,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vm.REDIR_DEVICES: RedirDevice,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- vm.CONSOLE_DEVICES: ConsoleDevice}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ vm.CONSOLE_DEVICES: ConsoleDevice,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ vm.SMARTCARD_DEVICES: SmartCardDevice}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
for devType, devClass in devMap.items():
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
for dev in devices[devType]:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -2800,6 +2817,31 @@ class LibvirtVm(vm.Vm):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
dev['address'] = address
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
dev['alias'] = alias
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ def _getUnderlyingSmartcardDeviceInfo(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ Obtain smartcard device info from libvirt.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ smartcardxml = _domParseStr(self._lastXMLDesc).childNodes[0].\
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ getElementsByTagName('devices')[0].\
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ getElementsByTagName('smartcard')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ for x in smartcardxml:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ if not x.getElementsByTagName('address'):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ continue
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ address = self._getUnderlyingDeviceAddress(x)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ alias = x.getElementsByTagName('alias')[0].getAttribute('name')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ for dev in self._devices[vm.SMARTCARD_DEVICES]:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ if not hasattr(dev, 'address'):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ dev.address = address
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ dev.alias = alias
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ for dev in self.conf['devices']:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ if dev['device'] == vm.SMARTCARD_DEVICES and \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ not dev.get('address'):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ dev['address'] = address
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ dev['alias'] = alias
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
def _getUnderlyingWatchdogDeviceInfo(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
"""
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Obtain watchdog device info from libvirt.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm/vm.py b/vdsm/vm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 49fcb11..9610644 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm/vm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm/vm.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -47,6 +47,7 @@ BALLOON_DEVICES = 'balloon'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
REDIR_DEVICES = 'redir'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
WATCHDOG_DEVICES = 'watchdog'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
CONSOLE_DEVICES = 'console'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+SMARTCARD_DEVICES = 'smartcard'
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
"""
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
A module containing classes needed for VM communication.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -364,7 +365,8 @@ class Vm(object):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
SOUND_DEVICES: [], VIDEO_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
CONTROLLER_DEVICES: [], GENERAL_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
BALLOON_DEVICES: [], REDIR_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- WATCHDOG_DEVICES: [], CONSOLE_DEVICES: []}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ WATCHDOG_DEVICES: [], CONSOLE_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ SMARTCARD_DEVICES: []}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
def _get_lastStatus(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
PAUSED_STATES = ('Powering down', 'RebootInProgress', 'Up')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -447,7 +449,8 @@ class Vm(object):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
SOUND_DEVICES: [], VIDEO_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
CONTROLLER_DEVICES: [], GENERAL_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
BALLOON_DEVICES: [], REDIR_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- WATCHDOG_DEVICES: [], CONSOLE_DEVICES: []}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ WATCHDOG_DEVICES: [], CONSOLE_DEVICES: [],
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ SMARTCARD_DEVICES: []}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
for dev in self.conf.get('devices'):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
try:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[dev['type']].append(dev)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -485,6 +488,7 @@ class Vm(object):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[GENERAL_DEVICES] = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[BALLOON_DEVICES] = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[WATCHDOG_DEVICES] = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ devices[SMARTCARD_DEVICES] = self.getConfSmartcard()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[REDIR_DEVICES] = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
devices[CONSOLE_DEVICES] = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
else:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -549,6 +553,17 @@ class Vm(object):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
return vcards
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ def getConfSmartcard(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ Normalize smartcard device (now there is only one)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ """
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ cards = []
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ if self.conf.get('smartcard'):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ cards.append({'device': SMARTCARD_DEVICES,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'specParams': {'mode': 'passthrough',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'type': 'spicevmc'}})
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ return cards
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
def getConfSound(self):
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
"""
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
Normalize sound device provided by conf.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_api/vdsmapi-schema.json b/vdsm_api/vdsmapi-schema.json
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index c72ec4b..7c9ef22 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_api/vdsmapi-schema.json
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm_api/vdsmapi-schema.json
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1685,11 +1685,13 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# @console: A console device
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @smartcard: A smartcard device
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# Since: 4.10.0
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
{'enum': 'VmDeviceType',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
'data': ['disk', 'interface', 'video', 'sound', 'controller', 'balloon',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- 'channel', 'console']}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'channel', 'console', 'smartcard']}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# @VmDiskDeviceType:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -2356,6 +2358,48 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
'address': 'VmDeviceAddress', 'alias': 'str', 'deviceId': 'UUID'}}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @VmSmartcardDeviceSpecParams:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# Additional VM smartcard device parameters.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# Since: 4.10.3
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+{'type': 'VmSmartcardDeviceSpecParams', 'data': {}}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @VmSmartcardDeviceType:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# An enumeration of VM smartcard device types.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @smartcard: A smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# Since: 4.10.3
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+{'enum': 'VmSmartcardDeviceType', 'data': ['smartcard']}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @VmSmartcardDevice:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# Properties of a VM smartcard device.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @deviceType: The device type (always @smartcard)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @device: The the type of smartcard device
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @address: Device hardware address
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @alias: Alias used to identify this device in commands
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# @specParams: #optional Additional device parameters
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+# Since: 4.10.3
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+{'type': 'VmSmartcardDevice',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'data': {'deviceType': 'VmDeviceType', 'device': 'VmSmartcardDeviceType',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'address': 'VmDeviceAddress', 'alias': 'str',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ '*specParams': 'VmSmartcardDeviceSpecParams'}}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# @VmConsoleDevice:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# Properties of a VM console device.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -2382,7 +2426,8 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
'data': {'deviceType': 'VmDeviceType',},
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
'union': ['VmDiskDevice', 'VmInterfaceDevice', 'VmVideoDevice',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
'VmSoundDevice', 'VmControllerDevice', 'VmBalloonDevice',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- 'VmChannelDevice', 'VmWatchdogDevice', 'VmConsoleDevice']}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'VmChannelDevice', 'VmWatchdogDevice', 'VmConsoleDevice',
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ 'VmSmartcardDevice']}
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
##
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
# @VmShortStatus:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_hooks/Makefile.am b/vdsm_hooks/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 9f00d4d..0e27a98 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_hooks/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm_hooks/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -37,7 +37,6 @@ SUBDIRS += \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
promisc \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
qos \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
scratchpad \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- smartcard \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
smbios \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
sriov \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
vmdisk \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_hooks/README b/vdsm_hooks/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index b45b93e..1659610 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_hooks/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ b/vdsm_hooks/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -24,7 +24,7 @@ To work with VDSM hooks you need first to do the following:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
If you want to enable more then one custom hook use the semicolon as
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
a separator:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- # rhevm-config -s UserDefinedVMProperties='pincpu=^[0-9]+$;smartcard=^(true|false)$' --cver=3.0
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ # rhevm-config -s UserDefinedVMProperties='pincpu=^[0-9]+$;sap_agent=^(true|false)$' --cver=3.0
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
The convention is [hook name]=[value], the value is evaluate with regular expression,
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
If you find regular expression too complex, you can always use the following command:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -47,7 +47,7 @@ To work with VDSM hooks you need first to do the following:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
pincpu=1
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
if you want to use more then on hook and you did enable it with the rhevm-config
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
tool, you can use the semicolon as a separator:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- pincpu=1;smartcard=true
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+ pincpu=1;sap_agent=true
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
b. Another option is to use "Run Once" dialog which mean that you add a custom property
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
only this time to the VM, next time that you run the VM it will run without the
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
custom property that you provided.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_hooks/smartcard/Makefile.am b/vdsm_hooks/smartcard/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
deleted file mode 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index dfefff5..0000000
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_hooks/smartcard/Makefile.am
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1,18 +0,0 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-# Copyright 2008 Red Hat, Inc. and/or its affiliates.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-# Licensed to you under the GNU General Public License as published by
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-# the Free Software Foundation; either version 2 of the License, or
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-# (at your option) any later version. See the files README and
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-# LICENSE_GPL_v2 which accompany this distribution.
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-#
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-EXTRA_DIST = \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- before_vm_start.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-install-data-local:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- $(MKDIR_P) $(DESTDIR)$(vdsmhooksdir)/before_vm_start
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- $(INSTALL_SCRIPT) $(srcdir)/before_vm_start.py \
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- $(DESTDIR)$(vdsmhooksdir)/before_vm_start/50_smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-uninstall-local:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- $(RM) $(DESTDIR)$(vdsmhooksdir)/before_vm_start/50_smartcard
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_hooks/smartcard/README b/vdsm_hooks/smartcard/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
deleted file mode 100644
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index bd376bf..0000000
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_hooks/smartcard/README
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1,9 +0,0 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-smartcard hook:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-===============
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-add smartcard support for spice
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-syntax:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-smartcard: smartcard=true
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-libvirt xml:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-<smartcard mode='passthrough' type='spicevmc'/>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
diff --git a/vdsm_hooks/smartcard/before_vm_start.py b/vdsm_hooks/smartcard/before_vm_start.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
deleted file mode 100755
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
index 1944978..0000000
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--- a/vdsm_hooks/smartcard/before_vm_start.py
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
+++ /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
@@ -1,29 +0,0 @@
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-#!/usr/bin/python
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-import os
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-import sys
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-import hooking
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-import traceback
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-'''
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-smartcard vdsm hook
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-adding to domain xml
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-<smartcard mode='passthrough' type='spicevmc'/>
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-'''
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-if 'smartcard' in os.environ:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- try:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- sys.stderr.write('smartcard: adding smartcard support\n')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- domxml = hooking.read_domxml()
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- devices = domxml.getElementsByTagName('devices')[0]
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- card = domxml.createElement('smartcard')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- card.setAttribute('mode', 'passthrough')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- card.setAttribute('type', 'spicevmc')
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- devices.appendChild(card)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
-
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- hooking.write_domxml(domxml)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- except:
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- sys.stderr.write('smartcard: [unexpected error]: %s\n' % traceback.format_exc())
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
- sys.exit(2)
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
--
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
1.7.11.7
|
|
![](https://seccdn.libravatar.org/avatar/2773d2483798bb4b6cc803ce4e9f241cc158e91836a52e54565e0eb98e450d96?s=16&d=retro) |
83d581e |
|