| # |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| from muchos.config import AzureDeployConfig |
| |
| |
| def test_azure_cluster(): |
| c = AzureDeployConfig( |
| "muchos", |
| "../conf/muchos.props.example", |
| "../conf/hosts/example/example_cluster", |
| "../conf/checksums", |
| "../conf/templates", |
| "mycluster", |
| ) |
| |
| # since we are sharing a single muchos.props.example file, we need to stub |
| # the cluster type to be azure (as the file itself has a default of ec2) |
| |
| c.cluster_type = "azure" |
| |
| assert c.checksum_ver("accumulo", "1.9.0") == ( |
| "sha256:" |
| "f68a6145029a9ea843b0305c90a7f5f0334d8a8ceeea94734267ec36421fe7fe" |
| ) |
| assert c.checksum("accumulo") == ( |
| "sha512:" |
| "b443839443a9f5098b55bc5c54be10c11fedbaea554ee6cd42eaa9311068c70b" |
| "d611d7fc67698c91ec73da0e85b9907aa72b98d5eb4d49ea3a5d51b0c6c5785f" |
| ) |
| assert c.get("azure", "vm_sku") == "Standard_D8s_v3" |
| assert c.get("azure", "data_disk_sku") == "Standard_LRS" |
| assert c.user_home() == "/home/centos" |
| assert c.mount_root() == "/var/data" |
| assert c.use_multiple_vmss() is False |
| assert c.worker_data_dirs() == ["/var/data1", "/var/data2", "/var/data3"] |
| assert c.default_data_dirs() == ["/var/data1", "/var/data2", "/var/data3"] |
| assert c.metrics_drive_ids() == ["var-data1", "var-data2", "var-data3"] |
| assert c.shutdown_delay_minutes() == "0" |
| assert c.mounts(2) == ["/var/data0", "/var/data1"] |
| assert c.node_type("worker1") == "worker" |
| assert c.node_type("leader1") == "default" |
| assert c.has_option("azure", "resource_group") |
| assert c.has_option("azure", "vnet") |
| assert c.has_option("azure", "vnet_cidr") |
| assert c.has_option("azure", "subnet") |
| assert c.has_option("azure", "subnet_cidr") |
| assert c.has_option("azure", "numnodes") |
| assert c.has_option("azure", "location") |
| assert len(c.nodes()) == 6 |
| assert c.get_node("leader1") == [ |
| "namenode", |
| "resourcemanager", |
| "accumulomaster", |
| "zookeeper", |
| ] |
| assert c.get_node("leader2") == ["metrics"] |
| assert c.get_node("worker1") == ["worker", "swarmmanager"] |
| assert c.get_node("worker2") == ["worker"] |
| assert c.get_node("worker3") == ["worker"] |
| assert c.has_service("accumulomaster") |
| assert not c.has_service("fluo") |
| assert c.get_service_hostnames("worker") == [ |
| "worker1", |
| "worker2", |
| "worker3", |
| "worker4", |
| ] |
| assert c.get_service_hostnames("zookeeper") == ["leader1"] |
| assert c.get_hosts() == { |
| "leader2": ("10.0.0.1", None), |
| "leader1": ("10.0.0.0", "23.0.0.0"), |
| "worker1": ("10.0.0.2", None), |
| "worker3": ("10.0.0.4", None), |
| "worker2": ("10.0.0.3", None), |
| "worker4": ("10.0.0.5", None), |
| } |
| assert c.get_public_ip("leader1") == "23.0.0.0" |
| assert c.get_private_ip("leader1") == "10.0.0.0" |
| assert c.cluster_name == "mycluster" |
| assert c.get_cluster_type() == "azure" |
| assert c.version("accumulo").startswith("2.") |
| assert c.version("fluo").startswith("1.") |
| assert c.version("hadoop").startswith("3.") |
| assert c.version("zookeeper").startswith("3.") |
| assert c.get_service_private_ips("worker") == [ |
| "10.0.0.2", |
| "10.0.0.3", |
| "10.0.0.4", |
| "10.0.0.5", |
| ] |
| assert c.get("general", "proxy_hostname") == "leader1" |
| assert c.proxy_public_ip() == "23.0.0.0" |
| assert c.proxy_private_ip() == "10.0.0.0" |
| assert c.get("general", "cluster_user") == "centos" |
| assert c.get("general", "cluster_group") == "centos" |
| assert c.get_non_proxy() == [ |
| ("10.0.0.1", "leader2"), |
| ("10.0.0.2", "worker1"), |
| ("10.0.0.3", "worker2"), |
| ("10.0.0.4", "worker3"), |
| ("10.0.0.5", "worker4"), |
| ] |
| assert c.get_host_services() == [ |
| ("leader1", "namenode resourcemanager accumulomaster zookeeper"), |
| ("leader2", "metrics"), |
| ("worker1", "worker swarmmanager"), |
| ("worker2", "worker"), |
| ("worker3", "worker"), |
| ("worker4", "worker"), |
| ] |
| |
| # TODO: add test cases for the validations |