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

[Service Fabric] Add Service Fabric Application commands #10666

Merged
merged 16 commits into from
Jan 30, 2020
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
11 changes: 10 additions & 1 deletion azure-cli.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -654,10 +654,15 @@
<Compile Include="command_modules\azure-cli-role\azure_bdist_wheel.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\commands.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\custom.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\latest\test_sf_commands.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\operations\applications.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\latest\test_util.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\latest\test_sf_application.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\latest\test_sf_cluster.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\_arm_deployment_utils.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\_client_factory.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\_help.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\_params.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\_validators.py" />
<Compile Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\__init__.py" />
<Compile Include="command_modules\azure-cli-servicefabric\setup.py" />
<Compile Include="command_modules\azure-cli-sql\azure\cli\command_modules\sql\commands.py" />
Expand Down Expand Up @@ -1065,8 +1070,10 @@
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\operations\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\linux\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\service\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\windows\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\" />
<Folder Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\latest\" />
Expand Down Expand Up @@ -1337,6 +1344,8 @@
<Content Include="command_modules\azure-cli-role\HISTORY.rst" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\linux\parameter.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\linux\template.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\service\parameter.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\service\template.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\windows\parameter.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\template\windows\template.json" />
<Content Include="command_modules\azure-cli-servicefabric\azure\cli\command_modules\servicefabric\tests\policy.json" />
Expand Down
13 changes: 12 additions & 1 deletion azure-cli2017.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -842,10 +842,15 @@
<Compile Include="azure-cli\azure\cli\command_modules\servicebus\__init__.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\commands.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\custom.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\tests\latest\test_sf_commands.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\operations\applications.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\tests\latest\test_util.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\tests\latest\test_sf_application.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\tests\latest\test_sf_cluster.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\_arm_deployment_utils.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\_client_factory.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\_help.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\_params.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\_validators.py" />
<Compile Include="azure-cli\azure\cli\command_modules\servicefabric\__init__.py" />
<Compile Include="azure-cli\azure\cli\command_modules\signalr\commands.py" />
<Compile Include="azure-cli\azure\cli\command_modules\signalr\custom.py" />
Expand Down Expand Up @@ -1167,9 +1172,13 @@
<Folder Include="azure-cli\azure\cli\command_modules\servicebus\tests\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicebus\tests\latest\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\operations\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\template\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\template\linux\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\template\service\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\template\windows\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\tests\" />
<Folder Include="azure-cli\azure\cli\command_modules\servicefabric\tests\latest\" />
<Folder Include="azure-cli\azure\cli\command_modules\signalr\" />
<Folder Include="azure-cli\azure\cli\command_modules\signalr\tests\" />
<Folder Include="azure-cli\azure\cli\command_modules\signalr\tests\latest\" />
Expand Down Expand Up @@ -1421,6 +1430,8 @@
<Content Include="azure-cli\azure\cli\command_modules\role\tests\latest\cert.pem" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\linux\parameter.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\linux\template.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\service\parameter.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\service\template.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\windows\parameter.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\template\windows\template.json" />
<Content Include="azure-cli\azure\cli\command_modules\servicefabric\tests\policy.json" />
Expand Down
25 changes: 25 additions & 0 deletions src/azure-cli/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ Release History
* `az storage remove`: Change `--inlcude` and `--exclude` parameters to `--include-path`, `--include-pattern`, `--exclude-path` and`--exclude-pattern` parameters
* `az storage sync`: Add `--include-pattern`, `--exclude-path` and`--exclude-pattern` parameters

**ServiceFabric**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have to update release note in history.rst at right position.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


* Adding new commands to manage appliaction and services.
- sf application-type
- list
- delete
- show
- create
- sf application-type version
- list
- delete
- show
- create
- sf application
- list
- delete
- show
- create
- update
- sf service
- list
- delete
- show
- create

2.0.80
++++++

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

import datetime

from azure.cli.core.util import CLIError, sdk_no_wait
from azure.cli.core.commands import LongRunningOperation
from azure.cli.core.profiles import ResourceType
from knack.log import get_logger
from ._client_factory import (resource_client_factory)

logger = get_logger(__name__)


def validate_and_deploy_arm_template(cmd, resource_group_name, template, parameters):
suffix = datetime.datetime.now().strftime("%Y%m%d%H%M")
deployment_name = 'AzurePSDeployment-' + suffix

logger.info("Validating the deployment")
validate_result = _deploy_arm_template_core(
cmd, resource_group_name, template, parameters, deployment_name, 'incremental', True)
if validate_result.error is not None:
errors_detailed = _build_detailed_error(validate_result.error, [])
errors_detailed.insert(0, "Error validating template. See below for more information.")
raise CLIError('\n'.join(errors_detailed))
logger.info("Deployment is valid, and begin to deploy")
_deploy_arm_template_core(cmd, resource_group_name, template,
parameters, deployment_name, 'incremental', False)


def _deploy_arm_template_core(cmd,
resource_group_name,
template,
parameters,
deployment_name=None,
mode='incremental',
validate_only=False,
no_wait=False):
DeploymentProperties = cmd.get_models('DeploymentProperties', resource_type=ResourceType.MGMT_RESOURCE_RESOURCES)
properties = DeploymentProperties(
template=template, template_link=None, parameters=parameters, mode=mode)
client = resource_client_factory(cmd.cli_ctx)
if validate_only:
return sdk_no_wait(no_wait, client.deployments.validate, resource_group_name, deployment_name, properties)

deploy_poll = sdk_no_wait(no_wait, client.deployments.create_or_update, resource_group_name,
deployment_name, properties)
result = LongRunningOperation(cmd.cli_ctx)(deploy_poll)
return result


def _build_detailed_error(top_error, output_list):
if output_list:
output_list.append(' Inner Error - Code: "{}" Message: "{}"'.format(top_error.code, top_error.message))
else:
output_list.append('Error - Code: "{}" Message: "{}"'.format(top_error.code, top_error.message))

if top_error.details:
for error in top_error.details:
_build_detailed_error(error, output_list)

return output_list
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,30 @@ def servicefabric_client_factory(cli_ctx, **_):
return get_mgmt_service_client(cli_ctx, ServiceFabricManagementClient)


def servicefabric_fabric_client_factory(cli_ctx, kwargs):
def servicefabric_client_factory_all(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs)


def servicefabric_clusters_client_factory(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs).clusters


def servicefabric_application_type_client_factory(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs).application_types


def servicefabric_application_type_version_client_factory(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs).application_type_versions


def servicefabric_application_client_factory(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs).applications


def servicefabric_service_client_factory(cli_ctx, kwargs):
return servicefabric_client_factory(cli_ctx, **kwargs).services


def resource_client_factory(cli_ctx, **_):
from azure.cli.core.commands.client_factory import get_mgmt_service_client
from azure.cli.core.profiles import ResourceType
Expand Down
Loading