Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add custom domain #1

Merged
merged 1 commit into from
Nov 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions src/spring-cloud/azext_spring_cloud/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ def load_command_table(self, _):
client_factory=cf_spring_cloud_20210901preview
)

certificate_routing_util = CliCommandType(
operations_tmpl='azext_spring_cloud.tier_routing_certificate#{}',
client_factory=cf_spring_cloud_20210901preview
)

service_registry_cmd_group = CliCommandType(
operations_tmpl='azext_spring_cloud.service_registry#{}',
client_factory=cf_spring_cloud_enterprise
Expand Down Expand Up @@ -93,6 +98,7 @@ def load_command_table(self, _):
g.custom_command('start', 'app_start', supports_no_wait=True)
g.custom_command('stop', 'app_stop', supports_no_wait=True)
g.custom_command('restart', 'app_restart', supports_no_wait=True)
g.custom_command('append-loaded-public-certificate', 'app_append_loaded_public_certificate')

with self.command_group('spring-cloud app', client_factory=cf_spring_cloud_20210601preview,
exception_handler=handle_asc_exception) as g:
Expand All @@ -103,7 +109,6 @@ def load_command_table(self, _):
supports_no_wait=True)
g.custom_command('logs', 'app_tail_log')
g.custom_command('append-persistent-storage', 'app_append_persistent_storage')
g.custom_command('append-loaded-public-certificate', 'app_append_loaded_public_certificate')

with self.command_group('spring-cloud app identity', custom_command_type=app_routing_util,
exception_handler=handle_asc_exception) as g:
Expand Down Expand Up @@ -149,21 +154,21 @@ def load_command_table(self, _):
g.custom_command('remove', 'storage_remove')
g.custom_command('list-persistent-storage', "storage_list_persistent_storage", table_transformer=transform_app_table_output)

with self.command_group('spring-cloud certificate', client_factory=cf_spring_cloud_20210901preview,
with self.command_group('spring-cloud certificate', custom_command_type=certificate_routing_util,
exception_handler=handle_asc_exception) as g:
g.custom_command('add', 'certificate_add')
g.custom_show_command('show', 'certificate_show', table_transformer=transform_spring_cloud_certificate_output)
g.custom_command('list', 'certificate_list', table_transformer=transform_spring_cloud_certificate_output)
g.custom_command('remove', 'certificate_remove')
g.custom_command('list-reference-app', 'certificate_list_reference_app', table_transformer=transform_app_table_output)

with self.command_group('spring-cloud app custom-domain', client_factory=cf_spring_cloud,
with self.command_group('spring-cloud app custom-domain', custom_command_type=app_routing_util,
exception_handler=handle_asc_exception) as g:
g.custom_command('bind', 'domain_bind')
g.custom_show_command('show', 'domain_show', table_transformer=transform_spring_cloud_custom_domain_output)
g.custom_command('list', 'domain_list', table_transformer=transform_spring_cloud_custom_domain_output)
g.custom_command('update', 'domain_update')
g.custom_command('unbind', 'domain_unbind')
g.custom_command('bind', 'app_domain_bind')
g.custom_show_command('show', 'app_domain_show', table_transformer=transform_spring_cloud_custom_domain_output)
g.custom_command('list', 'app_domain_list', table_transformer=transform_spring_cloud_custom_domain_output)
g.custom_command('update', 'app_domain_update')
g.custom_command('unbind', 'app_domain_unbind')

with self.command_group('spring-cloud app-insights',
client_factory=cf_spring_cloud_20201101preview,
Expand Down
24 changes: 12 additions & 12 deletions src/spring-cloud/azext_spring_cloud/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -911,7 +911,7 @@ def app_unset_deployment(cmd, client, resource_group, service, name):
return client.apps.begin_update(resource_group, service, name, app_resource)


def app_append_loaded_public_certificate(cmd, client, resource_group, service, name, certificate_name, load_trust_store):
def app_append_loaded_public_certificate(cmd, client, resource_group, service, name, certificate_name, load_trust_store, models=None):
app_resource = client.apps.get(resource_group, service, name)
certificate_resource = client.certificates.get(resource_group, service, certificate_name)
certificate_resource_id = certificate_resource.id
Expand All @@ -925,7 +925,7 @@ def app_append_loaded_public_certificate(cmd, client, resource_group, service, n
if loaded_certificate.resource_id == certificate_resource.id:
raise ClientRequestError("This certificate has already been loaded.")

loaded_certificates.append(models_20210901preview.
loaded_certificates.append(models.
LoadedCertificate(resource_id=certificate_resource_id,
load_trust_store=load_trust_store))

Expand Down Expand Up @@ -1835,7 +1835,7 @@ def storage_list_persistent_storage(client, resource_group, service, name):
return reference_apps


def certificate_add(cmd, client, resource_group, service, name, only_public_cert=None,
def certificate_add(cmd, client, resource_group, service, name, models=None, only_public_cert=None,
vault_uri=None, vault_certificate_name=None, public_certificate_file=None):
if vault_uri is None and public_certificate_file is None:
raise InvalidArgumentValueError("One of --vault-uri and --public-certificate-file should be provided")
Expand All @@ -1848,7 +1848,7 @@ def certificate_add(cmd, client, resource_group, service, name, only_public_cert
if vault_uri is not None:
if only_public_cert is None:
only_public_cert = False
properties = models_20210901preview.KeyVaultCertificateProperties(
properties = models.KeyVaultCertificateProperties(
type="KeyVaultCertificate",
vault_uri=vault_uri,
key_vault_cert_name=vault_certificate_name,
Expand All @@ -1864,14 +1864,14 @@ def certificate_add(cmd, client, resource_group, service, name, only_public_cert
raise FileOperationError('Failed to decode file {} - unknown decoding'.format(public_certificate_file))
else:
raise FileOperationError("public_certificate_file %s could not be found", public_certificate_file)
properties = models_20210901preview.ContentCertificateProperties(
properties = models.ContentCertificateProperties(
type="ContentCertificate",
content=content
)
certificate_resource = models_20210901preview.CertificateResource(properties=properties)
certificate_resource = models.CertificateResource(properties=properties)

def callback(pipeline_response, deserialized, headers):
return models_20210901preview.CertificateResource.deserialize(json.loads(pipeline_response.http_response.text()))
return models.CertificateResource.deserialize(json.loads(pipeline_response.http_response.text()))

return client.certificates.begin_create_or_update(
resource_group_name=resource_group,
Expand Down Expand Up @@ -1920,7 +1920,7 @@ def certificate_list_reference_app(cmd, client, resource_group, service, name):
return reference_apps


def domain_bind(cmd, client, resource_group, service, app,
def app_domain_bind(cmd, client, models, resource_group, service, app,
domain_name,
certificate=None,
enable_end_to_end_tls=None):
Expand Down Expand Up @@ -1956,17 +1956,17 @@ def _update_app_e2e_tls(cmd, resource_group, service, app, enable_end_to_end_tls
return poller.result()


def domain_show(cmd, client, resource_group, service, app, domain_name):
def app_domain_show(cmd, client, resource_group, service, app, domain_name):
_check_active_deployment_exist(client, resource_group, service, app)
return client.custom_domains.get(resource_group, service, app, domain_name)


def domain_list(cmd, client, resource_group, service, app):
def app_domain_list(cmd, client, resource_group, service, app):
_check_active_deployment_exist(client, resource_group, service, app)
return client.custom_domains.list(resource_group, service, app)


def domain_update(cmd, client, resource_group, service, app,
def app_domain_update(cmd, client, models, resource_group, service, app,
domain_name,
certificate=None,
enable_end_to_end_tls=None):
Expand All @@ -1986,7 +1986,7 @@ def domain_update(cmd, client, resource_group, service, app,
domain_name, custom_domain_resource)


def domain_unbind(cmd, client, resource_group, service, app, domain_name):
def app_domain_unbind(cmd, client, resource_group, service, app, domain_name):
client.custom_domains.get(resource_group, service, app, domain_name)
return client.custom_domains.begin_delete(resource_group, service, app, domain_name)

Expand Down
65 changes: 59 additions & 6 deletions src/spring-cloud/azext_spring_cloud/tier_routing_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,16 @@
app_start as app_start_standard, app_stop as app_stop_standard,
app_identity_assign as identity_assign,
app_identity_remove as identity_remove,
app_identity_show as identity_show)
app_identity_show as identity_show,
app_domain_bind as domain_bind,
app_domain_show as domain_show,
app_domain_list as domain_list,
app_domain_update as domain_update,
app_domain_unbind as domain_unbind,
app_append_loaded_public_certificate as append_loaded_public_certificate)
from knack.log import get_logger
from .vendored_sdks.appplatform.v2022_05_01_preview import models as models_20220501preview
from .vendored_sdks.appplatform.v2021_06_01_preview import models as models_20210601preview
from .vendored_sdks.appplatform.v2021_09_01_preview import models as models_20210901preview

logger = get_logger(__name__)

Expand Down Expand Up @@ -143,6 +149,7 @@ def app_scale(cmd, client, resource_group, service, name,
def app_deploy(cmd, client, resource_group, service, name,
version=None,
deployment=None,
disable_validation=None,
artifact_path=None,
builder=None,
target_module=None,
Expand All @@ -160,20 +167,20 @@ def app_deploy(cmd, client, resource_group, service, name,
else:
# config_file_patterns not support
return app_deploy_standard(cmd, client, resource_group, service, name,
version, deployment, artifact_path, target_module, runtime_version,
version, deployment, disable_validation, artifact_path, target_module, runtime_version,
jvm_options, main_entry, env, no_wait)


def app_identity_assign(cmd, client, resource_group, service, name, role=None, scope=None):
models = models_20210601preview
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
return identity_assign(cmd, client, models, resource_group, service, name, role, scope)


def app_identity_remove(cmd, client, resource_group, service, name):
models = models_20210601preview
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
Expand All @@ -182,4 +189,50 @@ def app_identity_remove(cmd, client, resource_group, service, name):

def app_identity_show(cmd, client, resource_group, service, name):
client = get_client(cmd) if is_enterprise_tier(cmd, resource_group, service) else client
return identity_show(cmd, client, resource_group, service, name)
return identity_show(cmd, client, resource_group, service, name)


def app_domain_bind(cmd, client, resource_group, service, app, domain_name,
certificate=None,
enable_end_to_end_tls=None):
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
return domain_bind(cmd, client, models, resource_group, service, app, domain_name, certificate, enable_end_to_end_tls)


def app_domain_show(cmd, client, resource_group, service, app, domain_name):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return domain_show(cmd, client, resource_group, service, app, domain_name)


def app_domain_list(cmd, client, resource_group, service, app):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return domain_list(cmd, client, resource_group, service, app)


def app_domain_update(cmd, client, resource_group, service, app, domain_name,
certificate=None,
enable_end_to_end_tls=None):
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
return domain_update(cmd, client, models, resource_group, service, app, domain_name, certificate, enable_end_to_end_tls)


def app_domain_unbind(cmd, client, resource_group, service, app, domain_name):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return domain_unbind(cmd, client, resource_group, service, app, domain_name)


def app_append_loaded_public_certificate(cmd, client, resource_group, service, name, certificate_name, load_trust_store):
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
return append_loaded_public_certificate(cmd, client, resource_group, service, name, certificate_name, load_trust_store, models)
51 changes: 51 additions & 0 deletions src/spring-cloud/azext_spring_cloud/tier_routing_certificate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

# pylint: disable=wrong-import-order
from ._util_enterprise import (is_enterprise_tier, get_client)
from .custom import (certificate_add as custom_certificate_add,
certificate_show as custom_certificate_show,
certificate_list as custom_certificate_list,
certificate_remove as custom_certificate_remove,
certificate_list_reference_app as custom_certificate_list_reference_app)
from knack.log import get_logger
from .vendored_sdks.appplatform.v2022_05_01_preview import models as models_20220501preview
from .vendored_sdks.appplatform.v2021_09_01_preview import models as models_20210901preview

logger = get_logger(__name__)


def certificate_add(cmd, client, resource_group, service, name, only_public_cert=None,
vault_uri=None, vault_certificate_name=None, public_certificate_file=None):
models = models_20210901preview
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
models = models_20220501preview
return custom_certificate_add(cmd, client, resource_group, service, name, models, only_public_cert,
vault_uri, vault_certificate_name, public_certificate_file)


def certificate_show(cmd, client, resource_group, service, name):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return custom_certificate_show(cmd, client, resource_group, service, name)


def certificate_list(cmd, client, resource_group, service, certificate_type=None):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return custom_certificate_list(cmd, client, resource_group, service, certificate_type)


def certificate_remove(cmd, client, resource_group, service, name):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return custom_certificate_remove(cmd, client, resource_group, service, name)


def certificate_list_reference_app(cmd, client, resource_group, service, name):
if is_enterprise_tier(cmd, resource_group, service):
client = get_client(cmd)
return custom_certificate_list_reference_app(cmd, client, resource_group, service, name)
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def deployment_delete(cmd, client, resource_group, service, app, name):
def deployment_create(cmd, client, resource_group, service, app, name,
skip_clone_settings=False,
version=None,
disable_validation=None,
artifact_path=None,
builder=None,
target_module=None,
Expand All @@ -55,5 +56,5 @@ def deployment_create(cmd, client, resource_group, service, app, name,
jvm_options, cpu, memory, instance_count, env, config_file_patterns, no_wait)
else:
return deployment_create_standard(cmd, client, resource_group, service, app, name,
skip_clone_settings, version, artifact_path, target_module, runtime_version,
skip_clone_settings, version, disable_validation, artifact_path, target_module, runtime_version,
jvm_options, main_entry, cpu, memory, instance_count, env, no_wait)
Loading