示例#1
0
def _unlink(name):
    """
    Unlink a DC/OS cluster.

    :param name: ID or name of the cluster
    :type name: str
    :returns: process status
    :rtype: int
    """

    c = cluster.get_cluster(name)
    if c:
        name = c.get_cluster_id()

    dcos_url = config.get_config_val('core.dcos_url')
    endpoint = urllib.parse.urljoin(dcos_url, '/cluster/v1/links/' + name)

    try:
        http.delete(endpoint)
    except DCOSHTTPException as e:
        if e.status() == 404:
            raise DCOSException('Unknown cluster link {}.'.format(name))
        raise

    return 0
示例#2
0
def _rename(name, new_name):
    """
    :param name: name of cluster
    :type name: str
    :param new_name: new_name of cluster
    :type new_name: str
    :rtype: None
    """

    c = cluster.get_cluster(name)
    other = cluster.get_cluster(new_name)
    if c is None:
        raise DCOSException("Cluster [{}] does not exist".format(name))
    elif other and other != c:
        msg = "A cluster with name [{}] already exists"
        raise DCOSException(msg.format(new_name))
    else:
        config.set_val("cluster.name", new_name, c.get_config_path())
示例#3
0
def _attach(name):
    """
    :param name: name of cluster
    :type name: str
    :rtype: None
    """

    c = cluster.get_cluster(name)
    if c is not None:
        return cluster.set_attached(c.get_cluster_path())
    else:
        raise DCOSException("Cluster [{}] does not exist".format(name))
示例#4
0
文件: main.py 项目: ksauzz/dcos-cli
def _attach(name):
    """
    :param name: name of cluster
    :type name: str
    :rtype: None
    """

    c = cluster.get_cluster(name)
    if not c:
        raise DCOSException("Cluster [{}] does not exist".format(name))

    if c.get_status() == cluster.STATUS_UNCONFIGURED:
        return setup(c.get_url(), provider=c.get_provider().get('id'))

    return cluster.set_attached(c.get_cluster_path())
示例#5
0
def test_get_cluster(get_clusters):
    clusters = [_cluster("its_me_mario"), _cluster("its_me_luigi")]
    get_clusters.return_value = clusters

    expected_msg = ('Multiple clusters matching "cluster-its_me", '
                    'please use the cluster ID.')
    with pytest.raises(errors.DCOSException, message=expected_msg):
        assert cluster.get_cluster("its_me")

    assert cluster.get_cluster("cluster-its_me_mario") == clusters[0]
    assert cluster.get_cluster("its_me_m") == clusters[0]
    assert cluster.get_cluster("its_me_mario") == clusters[0]

    assert cluster.get_cluster("cluster-its_me_luigi") == clusters[1]
    assert cluster.get_cluster("its_me_l") == clusters[1]
    assert cluster.get_cluster("its_me_luigi") == clusters[1]

    assert cluster.get_cluster("cluster-its_not_me") is None
示例#6
0
文件: main.py 项目: ksauzz/dcos-cli
def _unlink(name):
    """
    Unlink a DC/OS cluster.

    :param name:  name of the cluster
    :type name: str
    :returns: process status
    :rtype: int
    """

    c = cluster.get_cluster(name)
    if not c:
        raise DCOSException('Unknown cluster {}.'.format(name))

    dcos_url = config.get_config_val('core.dcos_url')
    endpoint = urllib.parse.urljoin(
            dcos_url, '/cluster/v1/links/' + c.get_cluster_id())

    http.delete(endpoint)

    return 0
示例#7
0
def test_get_cluster(clusters):
    clusters.return_value = _test_cluster_list()
    assert cluster.get_cluster("a") == _cluster("a")
    assert cluster.get_cluster("cluster-b") == _cluster("b")