def testUpgradeEnabledDiskTemplates(self): cfg = objects.ConfigData() cfg.cluster = objects.Cluster() cfg.cluster.volume_group_name = "myvg" instance1 = objects.Instance() instance1.disk_template = constants.DT_DISKLESS instance2 = objects.Instance() instance2.disk_template = constants.DT_RBD cfg.instances = {"myinstance1": instance1, "myinstance2": instance2} nodegroup = objects.NodeGroup() nodegroup.ipolicy = {} nodegroup.ipolicy[constants.IPOLICY_DTS] = [instance1.disk_template, \ constants.DT_BLOCK] cfg.cluster.ipolicy = {} cfg.cluster.ipolicy[constants.IPOLICY_DTS] = \ [constants.DT_EXT, constants.DT_DISKLESS] cfg.nodegroups = {"mynodegroup": nodegroup} cfg._UpgradeEnabledDiskTemplates() expected_disk_templates = [ constants.DT_DRBD8, constants.DT_PLAIN, instance1.disk_template, instance2.disk_template ] self.assertEqual(set(expected_disk_templates), set(cfg.cluster.enabled_disk_templates)) self.assertEqual(set([instance1.disk_template]), set(cfg.cluster.ipolicy[constants.IPOLICY_DTS]))
def _CreateConfig(self): self._config_data = objects.ConfigData( version=constants.CONFIG_VERSION, cluster=None, nodegroups={}, nodes={}, instances={}, networks={}, disks={}) master_node_uuid = self._GetUuid() self._cluster = objects.Cluster( serial_no=1, rsahostkeypub="", highest_used_port=(constants.FIRST_DRBD_PORT - 1), tcpudp_port_pool=set(), mac_prefix="aa:00:00", volume_group_name="xenvg", reserved_lvs=None, drbd_usermode_helper="/bin/true", master_node=master_node_uuid, master_ip="192.0.2.254", master_netdev=constants.DEFAULT_BRIDGE, master_netmask=None, use_external_mip_script=None, cluster_name="cluster.example.com", file_storage_dir="/tmp", shared_file_storage_dir=None, enabled_hypervisors=[ constants.HT_XEN_HVM, constants.HT_XEN_PVM, constants.HT_KVM ], hvparams=constants.HVC_DEFAULTS.copy(), ipolicy=None, os_hvp={self.GetDefaultOs().name: constants.HVC_DEFAULTS.copy()}, beparams=None, osparams=None, osparams_private_cluster=None, nicparams={constants.PP_DEFAULT: constants.NICC_DEFAULTS}, ndparams=None, diskparams=None, candidate_pool_size=3, modify_etc_hosts=False, modify_ssh_setup=False, maintain_node_health=False, uid_pool=None, default_iallocator="mock_iallocator", hidden_os=None, blacklisted_os=None, primary_ip_family=None, prealloc_wipe_disks=None, enabled_disk_templates=list(constants.DISK_TEMPLATE_PREFERENCE), ) self._cluster.ctime = self._cluster.mtime = time.time() self._cluster.UpgradeConfig() self._ConfigData().cluster = self._cluster self._default_group = self.AddNewNodeGroup(name="default") self._master_node = self.AddNewNode(uuid=master_node_uuid)
def InitConfig(version, cluster_config, master_node_config, cfg_file=pathutils.CLUSTER_CONF_FILE): """Create the initial cluster configuration. It will contain the current node, which will also be the master node, and no instances. @type version: int @param version: configuration version @type cluster_config: L{objects.Cluster} @param cluster_config: cluster configuration @type master_node_config: L{objects.Node} @param master_node_config: master node configuration @type cfg_file: string @param cfg_file: configuration file path """ uuid_generator = config.TemporaryReservationManager() cluster_config.uuid = uuid_generator.Generate([], utils.NewUUID, _INITCONF_ECID) master_node_config.uuid = uuid_generator.Generate([], utils.NewUUID, _INITCONF_ECID) cluster_config.master_node = master_node_config.uuid nodes = { master_node_config.uuid: master_node_config, } default_nodegroup = objects.NodeGroup( uuid=uuid_generator.Generate([], utils.NewUUID, _INITCONF_ECID), name=constants.INITIAL_NODE_GROUP_NAME, members=[master_node_config.uuid], diskparams={}, ) nodegroups = { default_nodegroup.uuid: default_nodegroup, } now = time.time() maintenance = objects.Maintenance(serial_no=1, ctime=now, mtime=now) config_data = objects.ConfigData(version=version, cluster=cluster_config, nodegroups=nodegroups, nodes=nodes, instances={}, networks={}, disks={}, filters={}, maintenance=maintenance, serial_no=1, ctime=now, mtime=now) utils.WriteFile(cfg_file, data=serializer.Dump(config_data.ToDict()), mode=0600)