示例#1
0
def _build_cloud(cli_ctx, cloud_name, cloud_config=None, cloud_args=None):
    from msrestazure.azure_cloud import _populate_from_metadata_endpoint, MetadataEndpointError

    if cloud_config:
        # Using JSON format so convert the keys to snake case
        for key in cloud_config:
            cloud_config[to_snake_case(key)] = cloud_config.pop(key)
        cloud_args = cloud_config
    c = Cloud(cloud_name)
    c.profile = cloud_args.get('profile', None)
    for arg in cloud_args:
        if arg.startswith('endpoint_') and cloud_args[arg] is not None:
            setattr(c.endpoints, arg.replace('endpoint_', ''), cloud_args[arg])
        elif arg.startswith('suffix_') and cloud_args[arg] is not None:
            setattr(c.suffixes, arg.replace('suffix_', ''), cloud_args[arg])
    arm_endpoint = cloud_args.get('endpoint_resource_manager', None)
    try:
        _populate_from_metadata_endpoint(c, arm_endpoint)
    except MetadataEndpointError as err:
        raise CLIError(err)
    required_endpoints = {'resource_manager': '--endpoint-resource-manager',
                          'active_directory': '--endpoint-active-directory',
                          'active_directory_resource_id': '--endpoint-active-directory-resource-id',
                          'active_directory_graph_resource_id': '--endpoint-active-directory-graph-resource-id'}
    missing_endpoints = [e_param for e_name, e_param in required_endpoints.items()
                         if not c.endpoints.has_endpoint_set(e_name)]
    if missing_endpoints and not cloud_is_registered(cli_ctx, cloud_name):
        raise CLIError("The following endpoints are required for the CLI to function and were not specified on the "
                       "command line, in the cloud config or could not be autodetected.\n"
                       "Specify them on the command line or through the cloud config file:\n"
                       "{}".format(', '.join(missing_endpoints)))
    return c
示例#2
0
def _build_cloud(cli_ctx, cloud_name, cloud_config=None, cloud_args=None):
    from msrestazure.azure_cloud import _populate_from_metadata_endpoint, MetadataEndpointError

    if cloud_config:
        # Using JSON format so convert the keys to snake case
        for key in cloud_config:
            cloud_config[to_snake_case(key)] = cloud_config.pop(key)
        cloud_args = cloud_config
    c = Cloud(cloud_name)
    c.profile = cloud_args.get('profile', None)
    for arg in cloud_args:
        if arg.startswith('endpoint_') and cloud_args[arg] is not None:
            setattr(c.endpoints, arg.replace('endpoint_', ''), cloud_args[arg])
        elif arg.startswith('suffix_') and cloud_args[arg] is not None:
            setattr(c.suffixes, arg.replace('suffix_', ''), cloud_args[arg])
    arm_endpoint = cloud_args.get('endpoint_resource_manager', None)
    try:
        _populate_from_metadata_endpoint(c, arm_endpoint)
    except MetadataEndpointError as err:
        raise CLIError(err)
    required_endpoints = {'resource_manager': '--endpoint-resource-manager',
                          'active_directory': '--endpoint-active-directory',
                          'active_directory_resource_id': '--endpoint-active-directory-resource-id',
                          'active_directory_graph_resource_id': '--endpoint-active-directory-graph-resource-id'}
    missing_endpoints = [e_param for e_name, e_param in required_endpoints.items()
                         if not c.endpoints.has_endpoint_set(e_name)]
    if missing_endpoints and not cloud_is_registered(cli_ctx, cloud_name):
        raise CLIError("The following endpoints are required for the CLI to function and were not specified on the "
                       "command line, in the cloud config or could not be autodetected.\n"
                       "Specify them on the command line or through the cloud config file:\n"
                       "{}".format(', '.join(missing_endpoints)))
    return c
示例#3
0
 def test_cloud_is_registered(self):
     cli = DummyCli()
     self.assertTrue(cloud_is_registered(cli, AZURE_PUBLIC_CLOUD.name))
     self.assertFalse(cloud_is_registered(cli, 'MyUnknownCloud'))
示例#4
0
 def test_cloud_is_registered(self):
     cli = TestCli()
     self.assertTrue(cloud_is_registered(cli, AZURE_PUBLIC_CLOUD.name))
     self.assertFalse(cloud_is_registered(cli, 'MyUnknownCloud'))