Revision 53e791bf

b/image_creator/os_type/windows.py
52 52

  
53 53
BOOT_TIMEOUT = 300
54 54

  
55
# For more info see: http://technet.microsoft.com/en-us/library/jj612867.aspx
56
KMS_CLIENT_SETUP_KEYS = {
57
    "Windows 8 Professional": "NG4HW-VH26C-733KW-K6F98-J8CK4",
58
    "Windows 8 Professional N": "XCVCF-2NXM9-723PB-MHCB7-2RYQQ",
59
    "Windows 8 Enterprise": "32JNW-9KQ84-P47T8-D8GGY-CWCK7",
60
    "Windows 8 Enterprise N": "JMNMF-RHW7P-DMY6X-RF3DR-X2BQT",
61
    "Windows Server 2012 Core": "BN3D2-R7TKB-3YPBD-8DRP2-27GG4",
62
    "Windows Server 2012 Core N": "8N2M2-HWPGY-7PGT9-HGDD8-GVGGY",
63
    "Windows Server 2012 Core Single Language":
64
    "2WN2H-YGCQR-KFX6K-CD6TF-84YXQ",
65
    "Windows Server 2012 Core Country Specific":
66
    "4K36P-JN4VD-GDC6V-KDT89-DYFKP",
67
    "Windows Server 2012 Server Standard": "XC9B7-NBPP2-83J2H-RHMBY-92BT4",
68
    "Windows Server 2012 Standard Core": "XC9B7-NBPP2-83J2H-RHMBY-92BT4",
69
    "Windows Server 2012 MultiPoint Standard": "HM7DN-YVMH3-46JC3-XYTG7-CYQJJ",
70
    "Windows Server 2012 MultiPoint Premium": "XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G",
71
    "Windows Server 2012 Datacenter": "48HP8-DN98B-MYWDG-T2DCC-8W83P",
72
    "Windows Server 2012 Datacenter Core": "48HP8-DN98B-MYWDG-T2DCC-8W83P",
73
    "Windows 7 Professional": "FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4",
74
    "Windows 7 Professional N": "MRPKT-YTG23-K7D7T-X2JMM-QY7MG",
75
    "Windows 7 Professional E": "W82YF-2Q76Y-63HXB-FGJG9-GF7QX",
76
    "Windows 7 Enterprise": "33PXH-7Y6KF-2VJC9-XBBR8-HVTHH",
77
    "Windows 7 Enterprise N": "YDRBP-3D83W-TY26F-D46B2-XCKRJ",
78
    "Windows 7 Enterprise E": "C29WB-22CC8-VJ326-GHFJW-H9DH4",
79
    "Windows Server 2008 R2 Web": "6TPJF-RBVHG-WBW2R-86QPH-6RTM4",
80
    "Windows Server 2008 R2 HPC edition": "TT8MH-CG224-D3D7Q-498W2-9QCTX",
81
    "Windows Server 2008 R2 Standard": "YC6KT-GKW9T-YTKYR-T4X34-R7VHC",
82
    "Windows Server 2008 R2 Enterprise": "489J6-VHDMP-X63PK-3K798-CPX3Y",
83
    "Windows Server 2008 R2 Datacenter": "74YFP-3QFB3-KQT8W-PMXWJ-7M648",
84
    "Windows Server 2008 R2 for Itanium-based Systems":
85
    "GT63C-RJFQ3-4GMB6-BRFB9-CB83V",
86
    "Windows Vista Business": "YFKBB-PQJJV-G996G-VWGXY-2V3X8",
87
    "Windows Vista Business N": "HMBQG-8H2RH-C77VX-27R82-VMQBT",
88
    "Windows Vista Enterprise": "VKK3X-68KWM-X2YGT-QR4M6-4BWMV",
89
    "Windows Vista Enterprise N": "VTC42-BM838-43QHV-84HX6-XJXKV",
90
    "Windows Web Server 2008": "WYR28-R7TFJ-3X2YQ-YCY4H-M249D",
91
    "Windows Server 2008 Standard": "TM24T-X9RMF-VWXK6-X8JC9-BFGM2",
92
    "Windows Server 2008 Standard without Hyper-V":
93
    "W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ",
94
    "Windows Server 2008 Enterprise":
95
    "YQGMW-MPWTJ-34KDK-48M3W-X4Q6V",
96
    "Windows Server 2008 Enterprise without Hyper-V":
97
    "39BXF-X8Q23-P2WWT-38T2F-G3FPG",
98
    "Windows Server 2008 HPC": "RCTX3-KWVHP-BR6TB-RB6DM-6X7HP",
99
    "Windows Server 2008 Datacenter": "7M67G-PC374-GR742-YH8V4-TCBY3",
100
    "Windows Server 2008 Datacenter without Hyper-V":
101
    "22XQ2-VRXRG-P8D42-K34TD-G3QQC",
102
    "Windows Server 2008 for Itanium-Based Systems":
103
    "4DWFP-JF3DJ-B7DTH-78FJB-PDRHK"}
104

  
55 105

  
56 106
class Windows(OSBase):
57 107
    """OS class for Windows"""
......
72 122

  
73 123
        assert self.system_drive
74 124

  
125
        self.product_name = self.g.inspect_get_product_name(self.root)
126

  
75 127
    def needed_sysprep_params(self):
76 128
        """Returns a list of needed sysprep parameters. Each element in the
77 129
        list is a SysprepParam object.
......
138 190
                         r'/quiet /generalize /oobe /shutdown')
139 191
        self.syspreped = True
140 192

  
193
    @sysprep('Converting the image into a KMS client', enabled=False)
194
    def kms_client_setup(self):
195
        """Install the appropriate KMS client setup key to the image to convert
196
        it to a KMS client. Computers that are running volume licensing
197
        editions of Windows 8, Windows Server 2012, Windows 7, Windows Server
198
        2008 R2, Windows Vista, and Windows Server 2008 are, by default, KMS
199
        clients with no additional configuration needed.
200
        """
201
        try:
202
            setup_key = KMS_CLIENT_SETUP_KEYS[self.product_name]
203
        except KeyError:
204
            self.out.warn(
205
                "Don't know the KMS client setup key for product: `%s'" %
206
                self.product_name)
207
            return
208

  
209
        self._guest_exec(
210
            "cscript \Windows\system32\slmgr.vbs /ipk %s" % setup_key)
211

  
141 212
    @sysprep('Shrinking the last filesystem')
142 213
    def shrink(self):
143 214
        """Shrink the last filesystem. Make sure the filesystem is defragged"""

Also available in: Unified diff