Skip to content

Commit

Permalink
Merge branch 'develop' into feature/apiddubny_add_start_end_logs_to_t…
Browse files Browse the repository at this point in the history
…he_operations
  • Loading branch information
alexazarh committed Dec 6, 2016
2 parents cb1ec21 + b692afa commit 88dce77
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class ValidationError(Exception):
pass
13 changes: 8 additions & 5 deletions package/cloudshell/cp/azure/common/validtors/validators.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Validators
from azure.mgmt.storage.models import StorageAccount

from cloudshell.cp.azure.common.exceptions.validation_error import ValidationError


class ValidationRule(object):
def __init__(self, rule_name, decription):
def __init__(self, rule_name, description):
self.rule_name = rule_name
self.decription = decription
self.description = description

def validate_rule(self, resource):
return False
Expand All @@ -29,10 +31,11 @@ def validate(self, resource):
failed_rules.append(rule)

if failed_rules:
err_msg = ""
err_msgs = []
for failed_rule in failed_rules:
err_msg += " failed validating " + failed_rule.description + "rule name:" + failed_rule.name + "\n"
raise Exception("Validation error " + err_msg)
err_msgs.append("{}: {}".format(failed_rule.rule_name, failed_rule.description))

raise ValidationError("Failed rules: [{}]".format(", ".join(err_msgs)))


class NetworkValidator(Validator):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def __init__(self):

# Adding subnet validator
storage_validation_rule_none_vnet = StorageValidationRuleOneVnet('StorageValidationRuleNoneVnet',
'Resource Group should contain Only One Storage.')
'Resource Group should contain Only One Storage')

self.validator_factory.add_validator(StorageValidator([storage_validation_rule_none_vnet]))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,15 @@ def _get_public_ip_address(self, network_client, azure_vm_deployment_model, grou

return ip_address

def _prepare_computer_name(self, name):
"""Prepare computer name for the VM
:param name: (str) app_name name
:return: (str) computer name
"""
# max length for the Windows computer name must 15
return OperationsHelper.generate_name(name, length=15)

def deploy_from_custom_image(self, azure_vm_deployment_model, cloud_provider_model, reservation, network_client,
compute_client, storage_client, validator_factory, logger):
"""Deploy Azure VM from custom image URN
Expand All @@ -175,7 +184,7 @@ def deploy_from_custom_image(self, azure_vm_deployment_model, cloud_provider_mod
random_name = OperationsHelper.generate_name(base_name)
interface_name = random_name
ip_name = random_name
computer_name = random_name
computer_name = self._prepare_computer_name(random_name)
vm_name = random_name
group_name = str(reservation_id)

Expand Down Expand Up @@ -332,7 +341,7 @@ def deploy(self, azure_vm_deployment_model,
group_name = str(reservation_id)
interface_name = random_name
ip_name = random_name
computer_name = random_name
computer_name = self._prepare_computer_name(random_name)
vm_name = random_name

self._validate_deployment_model(azure_vm_deployment_model)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,3 +455,15 @@ def test_validate_resource_is_single_per_group_missing_resource(self):

with self.assertRaises(Exception):
self.deploy_operation._validate_resource_is_single_per_group(resource_list, group_name, resource_name)

@mock.patch("cloudshell.cp.azure.domain.vm_management.operations.deploy_operation.OperationsHelper.generate_name")
def test_prepare_computer_name(self, generate_name):
"""Check that method will use OperationsHelper.generate_name to process computer name"""
computer_name = MagicMock()
generate_name.return_value = computer_name
name = "test_name"
# Act
res = self.deploy_operation._prepare_computer_name(name)
# Verify
generate_name.assert_called_once_with(name, length=15)
self.assertEqual(res, computer_name)

0 comments on commit 88dce77

Please sign in to comment.