Revision 062a7100

b/lib/cli.py
111 111
  "ON_PRIMARY_OPT",
112 112
  "ON_SECONDARY_OPT",
113 113
  "OFFLINE_OPT",
114
  "OSPARAMS_OPT",
114 115
  "OS_OPT",
115 116
  "OS_SIZE_OPT",
116 117
  "RAPI_CERT_OPT",
......
616 617
                    metavar="<os>",
617 618
                    completion_suggest=OPT_COMPL_ONE_OS)
618 619

  
620
OSPARAMS_OPT = cli_option("-O", "--os-parameters", dest="osparams",
621
                         type="keyval", default={},
622
                         help="OS parameters")
623

  
619 624
FORCE_VARIANT_OPT = cli_option("--force-variant", dest="force_variant",
620 625
                               action="store_true", default=False,
621 626
                               help="Force an unknown variant")
......
1833 1838
                                hypervisor=hypervisor,
1834 1839
                                hvparams=hvparams,
1835 1840
                                beparams=opts.beparams,
1841
                                osparams=opts.osparams,
1836 1842
                                mode=mode,
1837 1843
                                start=start,
1838 1844
                                os_type=os_type,
b/lib/cmdlib.py
6130 6130
  _OP_REQP = ["instance_name", "disks",
6131 6131
              "mode", "start",
6132 6132
              "wait_for_sync", "ip_check", "nics",
6133
              "hvparams", "beparams"]
6133
              "hvparams", "beparams", "osparams"]
6134 6134
  REQ_BGL = False
6135 6135

  
6136 6136
  def CheckArguments(self):
......
6580 6580
    utils.ForceDictType(self.op.beparams, constants.BES_PARAMETER_TYPES)
6581 6581
    self.be_full = cluster.SimpleFillBE(self.op.beparams)
6582 6582

  
6583
    # build os parameters
6584
    self.os_full = cluster.SimpleFillOS(self.op.os_type, self.op.osparams)
6585

  
6583 6586
    # now that hvp/bep are in final format, let's reset to defaults,
6584 6587
    # if told to do so
6585 6588
    if self.op.identify_defaults:
......
6807 6810
    _CheckHVParams(self, nodenames, self.op.hypervisor, self.op.hvparams)
6808 6811

  
6809 6812
    _CheckNodeHasOS(self, pnode.name, self.op.os_type, self.op.force_variant)
6813
    # check OS parameters (remotely)
6814
    _CheckOSParams(self, True, nodenames, self.op.os_type, self.os_full)
6810 6815

  
6811 6816
    _CheckNicsBridgesExist(self, self.nics, self.pnode.name)
6812 6817

  
......
6863 6868
                            beparams=self.op.beparams,
6864 6869
                            hvparams=self.op.hvparams,
6865 6870
                            hypervisor=self.op.hypervisor,
6871
                            osparams=self.op.osparams,
6866 6872
                            )
6867 6873

  
6868 6874
    if self.adopt_disks:
b/lib/opcodes.py
480 480
    "wait_for_sync", "ip_check", "name_check",
481 481
    "file_storage_dir", "file_driver",
482 482
    "iallocator",
483
    "hypervisor", "hvparams", "beparams",
483
    "hypervisor", "hvparams", "beparams", "osparams",
484 484
    "source_handshake",
485 485
    "source_x509_ca",
486 486
    "source_instance_name",
b/scripts/gnt-backup
144 144
  NONAMECHECK_OPT,
145 145
  NONICS_OPT,
146 146
  NWSYNC_OPT,
147
  OSPARAMS_OPT,
147 148
  OS_SIZE_OPT,
148 149
  SRC_DIR_OPT,
149 150
  SRC_NODE_OPT,
b/scripts/gnt-instance
1367 1367
  NONICS_OPT,
1368 1368
  NOSTART_OPT,
1369 1369
  NWSYNC_OPT,
1370
  OSPARAMS_OPT,
1370 1371
  OS_OPT,
1371 1372
  FORCE_VARIANT_OPT,
1372 1373
  NO_INSTALL_OPT,
b/tools/burnin
114 114
                 metavar="<OS>",
115 115
                 completion_suggest=cli.OPT_COMPL_ONE_OS),
116 116
  cli.HYPERVISOR_OPT,
117
  cli.OSPARAMS_OPT,
117 118
  cli.cli_option("--disk-size", dest="disk_size",
118 119
                 help="Disk size (determines disk count)",
119 120
                 default="128m", type="string", metavar="<size,size,...>",
......
570 571
                                    beparams=self.bep,
571 572
                                    hvparams=self.hvp,
572 573
                                    hypervisor=self.hypervisor,
574
                                    osparams=self.opts.osparams,
573 575
                                    )
574 576
      remove_instance = lambda name: lambda: self.to_rem.append(name)
575 577
      self.ExecOrQueue(instance, [op], post_process=remove_instance(instance))
......
722 724
                                        iallocator=self.opts.iallocator,
723 725
                                        beparams=self.bep,
724 726
                                        hvparams=self.hvp,
727
                                        osparams=self.opts.osparams,
725 728
                                        )
726 729

  
727 730
      erem_op = opcodes.OpRemoveExport(instance_name=instance)

Also available in: Unified diff