Пример #1
0
 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]))
Пример #2
0
    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)
Пример #3
0
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)