Skip to content
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
Original file line number Diff line number Diff line change
Expand Up @@ -355,9 +355,9 @@ def cf_postgres_flexible_db(cli_ctx, _):
return get_postgresql_flexible_management_client(cli_ctx).databases


def resource_client_factory(cli_ctx, **_):
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES)
def resource_client_factory(cli_ctx, subscription_id=None):
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES, subscription_id=subscription_id)


def network_client_factory(cli_ctx):
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_NETWORK)
def network_client_factory(cli_ctx, subscription_id=None):
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_NETWORK, subscription_id=subscription_id)
6 changes: 3 additions & 3 deletions src/azure-cli/azure/cli/command_modules/rdbms/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ def _flexible_server_params(command_group):
validator=retention_validator)
c.argument('version', default='12', options_list=['--version'],
help='Server major version.')
c.argument('zone', options_list=['--zone, -z'],
c.argument('zone', options_list=['--zone', '-z'],
help='Availability zone into which to provision the resource.')
elif command_group == 'mysql':
c.argument('tier', default='Burstable',
Expand All @@ -275,7 +275,7 @@ def _flexible_server_params(command_group):
help='The number of days a backup is retained. Range of 7 to 35 days. Default is 7 days.')
c.argument('version', default='5.7', options_list=['--version'],
help='Server major version.')
c.argument('zone', options_list=['--zone, -z'],
c.argument('zone', options_list=['--zone', '-z'],
help='Availability zone into which to provision the resource.')
c.argument('iops', type=int, options_list=['--iops'],
help='Number of IOPS to be allocated for this server. You will get certain amount of free IOPS based '
Expand All @@ -289,7 +289,7 @@ def _flexible_server_params(command_group):
help='Resource ID of an existing subnet. Please note that the subnet will be delegated to Microsoft.DBforPostgreSQL/flexibleServers/Microsoft.DBforMySQL/flexibleServers.After delegation, this subnet cannot be used for any other type of Azure resources.')
c.argument('server_name', options_list=['--name', '-n'], arg_type=server_name_setter_arg_type)
c.argument('location', arg_type=get_location_type(self.cli_ctx))
c.argument('administrator_login', default=generate_username(), options_list=['--admin-user, -u'], arg_group='Authentication', arg_type=administrator_login_setter_arg_type,
c.argument('administrator_login', default=generate_username(), options_list=['--admin-user', '-u'], arg_group='Authentication', arg_type=administrator_login_setter_arg_type,
help='Administrator username for the server. Once set, it cannot be changed. ')
c.argument('administrator_login_password', options_list=['--admin-password', '-p'],
help='The password of the administrator. Minimum 8 characters and maximum 128 characters. Password must contain characters from three of the following categories: English uppercase letters, English lowercase letters, numbers, and non-alphanumeric characters.',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ def database_create_func(client, resource_group_name=None, server_name=None, dat
charset = 'utf8'
collation = 'utf8_general_ci'
logger.warning("Creating database with utf8 charset and utf8_general_ci collation")
elif charset or collation:
elif (not charset and collation) or (charset and not collation):
raise RequiredArgumentMissingError("charset and collation have to be input together.")

parameters = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ def database_create_func(client, resource_group_name=None, server_name=None, dat
charset = 'utf8'
collation = 'en_US.utf8'
logger.warning("Creating database with utf8 charset and en_US.utf8 collation")
elif charset or collation:
elif (not charset and collation) or (charset and not collation):
raise RequiredArgumentMissingError("charset and collation have to be input together.")

parameters = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
DEFAULT_SUBNET_PREFIX = '10.0.0.0/24'


# pylint: disable=too-many-locals, too-many-statements
# pylint: disable=too-many-locals, too-many-statements, too-many-branches
def prepare_vnet(cmd, server_name, vnet, subnet, resource_group_name, loc, delegation_service_name, vnet_address_pref, subnet_address_pref):
Delegation, Subnet, VirtualNetwork, AddressSpace, ServiceEndpoint = cmd.get_models('Delegation', 'Subnet', 'VirtualNetwork',
'AddressSpace', 'ServiceEndpointPropertiesFormat',
Expand All @@ -35,16 +35,18 @@ def prepare_vnet(cmd, server_name, vnet, subnet, resource_group_name, loc, deleg
vnet_name = parsed_subnet_id['name']
resource_group = parsed_subnet_id['resource_group']
subscription = parsed_subnet_id['subscription']
resource_client = resource_client_factory(cmd.cli_ctx)
resource_client = resource_client_factory(cmd.cli_ctx, subscription_id=subscription)
rg = resource_client.resource_groups.get(resource_group)
location = rg.location
validate_rg_loc_sub(subscription, location, get_subscription_id(cmd.cli_ctx), loc)
subnet_result = check_resource_existence(cmd, subnet_name, vnet_name, resource_group)
if subscription != get_subscription_id(cmd.cli_ctx):
logger.warning('The subnet is in different subscription from the server')
nw_client = network_client_factory(cmd.cli_ctx, subscription_id=subscription)
subnet_result = check_resource_existence(cmd, subnet_name, vnet_name, resource_group, subscription)
if subnet_result:
logger.info('Using existing subnet "%s" in resource group "%s"', subnet_result.name, resource_group)
logger.warning('Using existing subnet "%s" in resource group "%s"', subnet_result.name, resource_group)

if not subnet_result.delegations:
logger.info('Adding "%s" delegation to the existing subnet.', )
logger.warning('Adding "%s" delegation to the existing subnet.', delegation_service_name)
subnet_result.delegations = [delegation]
subnet_result.service_endpoints = [service_endpoint]
subnet_result = nw_client.subnets.begin_create_or_update(resource_group, vnet_name, subnet_name,
Expand All @@ -55,7 +57,7 @@ def prepare_vnet(cmd, server_name, vnet, subnet, resource_group_name, loc, deleg
raise CLIError("Can not use subnet with existing delegations other than {}".format(
delegation_service_name))
else:
logger.warning("The supplied subnet id does not exist.")
logger.warning("The supplied subnet id does not exist. Creating the subnet first..")
subnet_result = _create_vnet_subnet_delegation(nw_client, resource_group_name, vnet_name,
'Subnet' + server_name[6:], location, server_name,
delegation, service_endpoint,
Expand Down Expand Up @@ -125,10 +127,10 @@ def _create_with_resource_names(cmd, vnet, subnet, resource_group_name, delegati
# pylint: disable=no-else-return
# disabling no-else-return as both if and else return or raise a CLI error, which is needed
if subnet_result:
logger.info('Using existing subnet "%s" in resource group "%s"', subnet_result.name, resource_group_name)
logger.warning('Using existing subnet "%s" in resource group "%s"', subnet_result.name, resource_group_name)

if not subnet_result.delegations:
logger.info('Adding "%s" delegation to the existing subnet.', )
logger.warning('Adding "%s" delegation to the existing subnet.', )
subnet_result.delegations = [delegation]
subnet_result.service_endpoints = [service_endpoint]
subnet_result = nw_client.subnets.begin_create_or_update(resource_group_name, vnet, subnet,
Expand Down Expand Up @@ -156,8 +158,8 @@ def validate_rg_loc_sub(s_subscription, s_location, subscription, location):
"Incorrect Usage : The location and subscription of the server,Vnet and Subnet should be same.")


def check_resource_existence(cmd, subnet_name, vnet_name, resource_group_name, ):
nw_client = network_client_factory(cmd.cli_ctx)
def check_resource_existence(cmd, subnet_name, vnet_name, resource_group_name, subscription=None):
nw_client = network_client_factory(cmd.cli_ctx, subscription_id=subscription)
subnet = _get_resource(nw_client.subnets, resource_group_name, vnet_name, subnet_name)
return subnet

Expand All @@ -168,8 +170,8 @@ def _create_vnet_subnet_delegation(nw_client, resource_group, vnet_name, subnet_
try:
vnet_exist = _get_resource(nw_client.virtual_networks, resource_group, vnet_name)
if not vnet_exist:
logger.info('The Vnet does not exist. Creating new vnet "%s" in resource group "%s"',
vnet_name, resource_group)
logger.warning('The Vnet does not exist. Creating new vnet "%s" in resource group "%s"',
vnet_name, resource_group)
nw_client.virtual_networks.begin_create_or_update(resource_group,
vnet_name,
VirtualNetwork(name=vnet_name,
Expand All @@ -184,7 +186,7 @@ def _create_vnet_subnet_delegation(nw_client, resource_group, vnet_name, subnet_
delegations=[delegation],
service_endpoints=[service_endpoint])

logger.info('Creating new subnet "%s" in resource group "%s"', subnet_name, resource_group)
logger.warning('Creating new subnet "%s" in resource group "%s"', subnet_name, resource_group)
return nw_client.subnets.begin_create_or_update(resource_group, vnet_name, subnet_name,
subnet_result).result()
except HttpResponseError as err:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ def _test_flexible_server_vnet_server_delete(self, database_engine, resource_gro
.format(database_engine, resource_group, restore_server), checks=NoneCheck())

# Wait until vnet can be detached from the deleted server
time.sleep(5 * 60)
time.sleep(15 * 60)

def _test_flexible_server_vnet_server_mgmt_delete(self, resource_group):
self.cmd('az group delete --name {} --yes --no-wait'.format(resource_group), checks=NoneCheck())
Expand Down Expand Up @@ -639,7 +639,7 @@ def _test_flexible_server_replica_create(self, database_engine, resource_group,
JMESPathCheck('sourceServerId', result['id']),
JMESPathCheck('replicaCapacity', '0')])

time.sleep(5 * 60)
time.sleep(15 * 60)

def _test_flexible_server_replica_list(self, database_engine, resource_group, master_server):

Expand Down
Loading