Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
bf63231
flexible server migration
DaeunYim Feb 7, 2021
a018b7d
single server migration draft
DaeunYim Feb 8, 2021
65fe403
style fixed
DaeunYim Feb 8, 2021
5abef3c
allow large reponse for proxy test
DaeunYim Feb 8, 2021
8b16281
singles server test fixed
DaeunYim Feb 9, 2021
75cd854
minor bugs fixed
DaeunYim Feb 9, 2021
822c738
linter and style issues fixed
DaeunYim Feb 9, 2021
dfe3896
config files added
DaeunYim Feb 10, 2021
bdd876c
empty commit
DaeunYim Feb 10, 2021
7a144d7
empty commit
DaeunYim Feb 18, 2021
ecd6dd2
pulled dev repo
DaeunYim Mar 2, 2021
6d83a71
pulled from dev
DaeunYim Mar 3, 2021
221f2e4
fix recording files for the migration code
DaeunYim Mar 3, 2021
f037cac
fixed mariadb failing test case
DaeunYim Mar 3, 2021
8acc000
fix for failing test cases
DaeunYim Mar 4, 2021
8fd0fa0
fixed typo
DaeunYim Mar 4, 2021
0c25766
Merge branch 'dev' of https://github.com/Azure/azure-cli into python-…
DaeunYim Mar 5, 2021
fdce3c9
change datetime function to accomodate python 3.6
DaeunYim Mar 6, 2021
cc30375
takes care of two different time input
DaeunYim Mar 6, 2021
ab1eb2e
style fixed
DaeunYim Mar 6, 2021
2154e3a
restore source parameter added
DaeunYim Mar 9, 2021
7486023
bug fix auth, LRO polling commands, object create by dict
DaeunYim Mar 10, 2021
16aa866
Merge branch 'python-sdk-migration-2' of https://github.com/DaeunYim/…
DaeunYim Mar 10, 2021
dfe33e0
restore reverted to no source parameters
DaeunYim Mar 10, 2021
62d0d4c
db for pg
DaeunYim Mar 10, 2021
d317139
added pg db tests
DaeunYim Mar 10, 2021
dc9e44c
help text updated and recording files updated with the database change
DaeunYim Mar 11, 2021
0ef1240
empty commit
DaeunYim Mar 11, 2021
98b9265
Merge branch 'dev' into python-sdk-migration-2
DaeunYim Mar 11, 2021
e85714d
empty commit
DaeunYim Mar 11, 2021
f2e589f
Merge branch 'dev' into s184
DaeunYim Mar 11, 2021
5477413
revert resource module
DaeunYim Mar 11, 2021
61ce4e1
Merge branch 's184' of https://github.com/DaeunYim/azure-cli into s184
DaeunYim Mar 11, 2021
3d71790
id = child name fix
DaeunYim Mar 12, 2021
bb840b3
Merge branch 'python-sdk-migration-2' of https://github.com/DaeunYim/…
DaeunYim Mar 12, 2021
45703ac
Merge branch 'dev' of https://github.com/Azure/azure-cli into python-…
DaeunYim Mar 15, 2021
945de4d
network module test failure fixed
DaeunYim Mar 15, 2021
415d161
pulled migration branch
DaeunYim Mar 15, 2021
1953b87
pulled merged sdk migration
DaeunYim Mar 16, 2021
11cc8ea
remove and fix rdbms params file
DaeunYim Mar 16, 2021
52feb43
fix typo
DaeunYim Mar 17, 2021
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
Prev Previous commit
Next Next commit
bug fix auth, LRO polling commands, object create by dict
  • Loading branch information
DaeunYim committed Mar 10, 2021
commit 74860236ce5a7e92c712c5c69231aebb02030397
2 changes: 1 addition & 1 deletion scripts/sdk_process/patch_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ def find_autorest_generated_folder(module_prefix="azure.mgmt"):
'azure.mgmt.network',
'azure.mgmt.monitor',
'azure-mgmt-loganalytics'
'azure-mgmt.rdbms'
'azure.mgmt.rdbms'
]
prefix = sys.argv[1] if len(sys.argv) >= 2 else "azure.mgmt"
for autorest_package in find_autorest_generated_folder(prefix):
Expand Down
40 changes: 20 additions & 20 deletions src/azure-cli/azure/cli/command_modules/rdbms/_client_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ def get_mariadb_management_client(cli_ctx, **_):
if rm_uri_override:
client_id = getenv(CLIENT_ID)
if client_id:
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
from azure.identity import ClientSecretCredential
credentials = ClientSecretCredential(
client_id=client_id,
secret=getenv(CLIENT_SECRET),
tenant=getenv(TENANT_ID))
client_secret=getenv(CLIENT_SECRET),
tenant_id=getenv(TENANT_ID))
else:
from msrest.authentication import Authentication # pylint: disable=import-error
credentials = Authentication()
Expand All @@ -54,11 +54,11 @@ def get_mysql_management_client(cli_ctx, **_):
if rm_uri_override:
client_id = getenv(CLIENT_ID)
if client_id:
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
from azure.identity import ClientSecretCredential
credentials = ClientSecretCredential(
client_id=client_id,
secret=getenv(CLIENT_SECRET),
tenant=getenv(TENANT_ID))
client_secret=getenv(CLIENT_SECRET),
tenant_id=getenv(TENANT_ID))
else:
from msrest.authentication import Authentication # pylint: disable=import-error
credentials = Authentication()
Expand All @@ -82,11 +82,11 @@ def get_mysql_flexible_management_client(cli_ctx, **_):
if rm_uri_override:
client_id = getenv(CLIENT_ID)
if client_id:
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
from azure.identity import ClientSecretCredential
credentials = ClientSecretCredential(
client_id=client_id,
secret=getenv(CLIENT_SECRET),
tenant=getenv(TENANT_ID))
client_secret=getenv(CLIENT_SECRET),
tenant_id=getenv(TENANT_ID))
else:
from msrest.authentication import Authentication # pylint: disable=import-error
credentials = Authentication()
Expand All @@ -110,11 +110,11 @@ def get_postgresql_management_client(cli_ctx, **_):
if rm_uri_override:
client_id = getenv(CLIENT_ID)
if client_id:
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
from azure.identity import ClientSecretCredential
credentials = ClientSecretCredential(
client_id=client_id,
secret=getenv(CLIENT_SECRET),
tenant=getenv(TENANT_ID))
client_secret=getenv(CLIENT_SECRET),
tenant_id=getenv(TENANT_ID))
else:
from msrest.authentication import Authentication # pylint: disable=import-error
credentials = Authentication()
Expand All @@ -137,11 +137,11 @@ def get_postgresql_flexible_management_client(cli_ctx, **_):
if rm_uri_override:
client_id = getenv(CLIENT_ID)
if client_id:
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
from azure.identity import ClientSecretCredential
credentials = ClientSecretCredential(
client_id=client_id,
secret=getenv(CLIENT_SECRET),
tenant=getenv(TENANT_ID))
client_secret=getenv(CLIENT_SECRET),
tenant_id=getenv(TENANT_ID))
else:
from msrest.authentication import Authentication # pylint: disable=import-error
credentials = Authentication()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def create_firewall_rule(db_context, cmd, resource_group_name, server_name, star
firewall = firewall_rule_create_func(firewall_client, resource_group_name, server_name, firewall_rule_name=firewall_name,
start_ip_address=start_ip, end_ip_address=end_ip)

return firewall.result()
return firewall.result().name


# pylint: disable=inconsistent-return-statements
Expand Down
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 @@ -115,7 +115,7 @@ def _complex_params(command_group):

with self.argument_context('{} server configuration set'.format(command_group)) as c:
c.argument('value', help='Value of the configuration. If not provided, configuration value will be set to default.', validator=configuration_value_validator)
c.argument('configuration_name', options_list=['--name', '-n'], help='The name of the configuration')
c.argument('configuration_name', options_list=['--name', '-n'], id_part='child_name_1', help='The name of the configuration')
c.ignore('source')

with self.argument_context('{} server wait'.format(command_group)) as c:
Expand All @@ -134,7 +134,7 @@ def _complex_params(command_group):
c.argument('server_name', id_part=None, help='Name of the Server.')

with self.argument_context('{} db'.format(command_group)) as c:
c.argument('database_name', options_list=['--name', '-n'], help='The name of the database')
c.argument('database_name', options_list=['--name', '-n'], id_part='child_name_1', help='The name of the database')
c.argument('charset', options_list=['--charset'], help='The charset of the database')
c.argument('collation', options_list=['--collation'], help='The collation of the database')

Expand Down Expand Up @@ -162,7 +162,7 @@ def _complex_params(command_group):

with self.argument_context('{} server configuration'.format(command_group)) as c:
c.argument('server_name', options_list=['--server-name', '-s'])
c.argument('configuration_name', id_part='child_name_1', options_list=['--name', '-n'])
c.argument('configuration_name', options_list=['--name', '-n'], id_part='child_name_1')

with self.argument_context('{} server replica list'.format(command_group)) as c:
c.argument('server_name', options_list=['--server-name', '-s'], help='Name of the master server.')
Expand Down
19 changes: 2 additions & 17 deletions src/azure-cli/azure/cli/command_modules/rdbms/_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from knack.log import get_logger
from azure.cli.core.commands import AzArgumentContext
from azure.cli.core.util import CLIError
from azure.mgmt.rdbms import postgresql, mysql, mariadb
from ._client_factory import cf_mariadb_firewall_rules, cf_postgres_firewall_rules, cf_mysql_firewall_rules

logger = get_logger(__name__)
Expand Down Expand Up @@ -78,24 +77,10 @@ def create_firewall_rule(cmd, resource_group_name, server_name, start_ip, end_ip
firewall_client = cf_postgres_firewall_rules(cmd.cli_ctx, None)
if db_engine == 'mysql':
firewall_client = cf_mysql_firewall_rules(cmd.cli_ctx, None)
parameters = mysql.models.FirewallRule(
name=firewall_name,
start_ip_address=start_ip,
end_ip_address=end_ip
)
elif db_engine == 'mariadb':
firewall_client = cf_mariadb_firewall_rules(cmd.cli_ctx, None)
parameters = mariadb.models.FirewallRule(
name=firewall_name,
start_ip_address=start_ip,
end_ip_address=end_ip
)
else:
parameters = postgresql.models.FirewallRule(
name=firewall_name,
start_ip_address=start_ip,
end_ip_address=end_ip
)

parameters = {'name': firewall_name, 'start_ip_address': start_ip, 'end_ip_address': end_ip}

firewall = firewall_client.begin_create_or_update(resource_group_name, server_name, firewall_name, parameters)

Expand Down
3 changes: 1 addition & 2 deletions src/azure-cli/azure/cli/command_modules/rdbms/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ def load_command_table(self, _):
g.show_command('show', 'get')
g.command('list', 'list_by_server')

with self.command_group('mariadb server-logs', mariadb_log_sdk, client_factory=cf_mariadb_log,) as g:
with self.command_group('mariadb server-logs', mariadb_log_sdk, client_factory=cf_mariadb_log) as g:
g.custom_command('list', '_list_log_files_with_filter')
g.custom_command('download', '_download_log_files')

Expand Down Expand Up @@ -490,7 +490,6 @@ def load_command_table(self, _):
g.command('list', 'list')
g.command('delete', 'begin_delete', confirmation=True)
g.show_command('show', 'get')
g.custom_wait_command('wait', 'server_ad_admin_get')
g.wait_command('wait')

with self.command_group('postgres server ad-admin',
Expand Down
158 changes: 36 additions & 122 deletions src/azure-cli/azure/cli/command_modules/rdbms/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,6 @@
from azure.cli.core.local_context import ALL
from azure.mgmt.rdbms import postgresql, mysql, mariadb
from azure.mgmt.rdbms.mysql.operations._servers_operations import ServersOperations as MySqlServersOperations
from azure.mgmt.rdbms.mysql.operations._virtual_network_rules_operations import VirtualNetworkRulesOperations as MySqlVirtualNetworkRulesOperations
from azure.mgmt.rdbms.mysql.operations._configurations_operations import ConfigurationsOperations as MySqlConfigurationsOperations
from azure.mgmt.rdbms.mysql.operations._firewall_rules_operations import FirewallRulesOperations as MySqlFirewallRulesOperations

from azure.mgmt.rdbms.mysql.operations._databases_operations import DatabasesOperations as MySqlDatabasesOperations
from azure.mgmt.rdbms.mysql.operations._server_keys_operations import ServerKeysOperations as MySqlServerKeysOperations
from azure.mgmt.rdbms.mysql.operations._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations as MySqlPrivateEndpointConnectionsOperations
from azure.mgmt.rdbms.postgresql.operations._firewall_rules_operations import FirewallRulesOperations as PostgreSqlFirewallRulesOperations
from azure.mgmt.rdbms.postgresql.operations._virtual_network_rules_operations import VirtualNetworkRulesOperations as PostgreSqlVirtualNetworkRulesOperations
from azure.mgmt.rdbms.postgresql.operations._configurations_operations import ConfigurationsOperations as PostgreSqlConfigurationsOperations
from azure.mgmt.rdbms.postgresql.operations._databases_operations import DatabasesOperations as PostgreSqlDatabasesOperations
from azure.mgmt.rdbms.postgresql.operations._server_keys_operations import ServerKeysOperations as PostgreSqlServerKeysOperations
from azure.mgmt.rdbms.postgresql.operations._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations as PostgreSqlPrivateEndpointConnectionsOperations
from azure.mgmt.rdbms.postgresql.operations._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations as PostgreSQLLocationOperations
from azure.mgmt.rdbms.mariadb.operations._servers_operations import ServersOperations as MariaDBServersOperations
from azure.mgmt.rdbms.mariadb.operations._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations as MariaDBLocationOperations
Expand Down Expand Up @@ -483,24 +470,9 @@ def _get_sku_name(tier, family, capacity):


def _firewall_rule_create(client, resource_group_name, server_name, firewall_rule_name, start_ip_address, end_ip_address):
if isinstance(client, MySqlFirewallRulesOperations):
parameters = mysql.models.FirewallRule(
name=firewall_rule_name,
start_ip_address=start_ip_address,
end_ip_address=end_ip_address
)
elif isinstance(client, PostgreSqlFirewallRulesOperations):
parameters = postgresql.models.FirewallRule(
name=firewall_rule_name,
start_ip_address=start_ip_address,
end_ip_address=end_ip_address
)
else:
parameters = mariadb.models.FirewallRule(
name=firewall_rule_name,
start_ip_address=start_ip_address,
end_ip_address=end_ip_address
)

parameters = {'name': firewall_rule_name, 'start_ip_address': start_ip_address, 'end_ip_address': end_ip_address}

return client.begin_create_or_update(resource_group_name, server_name, firewall_rule_name, parameters)


Expand All @@ -525,24 +497,12 @@ def _firewall_rule_update_custom_func(instance, start_ip_address=None, end_ip_ad


def _vnet_rule_create(client, resource_group_name, server_name, virtual_network_rule_name, virtual_network_subnet_id, ignore_missing_vnet_service_endpoint=None):
if isinstance(client, MySqlVirtualNetworkRulesOperations):
parameters = mysql.models.VirtualNetworkRule(
name=virtual_network_rule_name,
virtual_network_subnet_id=virtual_network_subnet_id,
ignore_missing_vnet_service_endpoint=ignore_missing_vnet_service_endpoint
)
elif isinstance(client, PostgreSqlVirtualNetworkRulesOperations):
parameters = postgresql.models.VirtualNetworkRule(
name=virtual_network_rule_name,
virtual_network_subnet_id=virtual_network_subnet_id,
ignore_missing_vnet_service_endpoint=ignore_missing_vnet_service_endpoint
)
else:
parameters = mariadb.models.VirtualNetworkRule(
name=virtual_network_rule_name,
virtual_network_subnet_id=virtual_network_subnet_id,
ignore_missing_vnet_service_endpoint=ignore_missing_vnet_service_endpoint
)

parameters = {
'name': virtual_network_rule_name,
'virtual_network_subnet_id': virtual_network_subnet_id,
'ignore_missing_vnet_service_endpoint': ignore_missing_vnet_service_endpoint
}

return client.begin_create_or_update(resource_group_name, server_name, virtual_network_rule_name, parameters)

Expand All @@ -569,48 +529,22 @@ def _vnet_rule_update_custom_func(instance, virtual_network_subnet_id, ignore_mi

def _configuration_update(client, resource_group_name, server_name, configuration_name, value=None, source=None):

if isinstance(client, MySqlConfigurationsOperations):
parameters = mysql.models.Configuration(
name=configuration_name,
value=value,
source=source,
)
elif isinstance(client, PostgreSqlConfigurationsOperations):
parameters = postgresql.models.Configuration(
name=configuration_name,
value=value,
source=source,
)
else:
parameters = mariadb.models.Configuration(
name=configuration_name,
value=value,
source=source,
)
parameters = {
'name': configuration_name,
'value': value,
'source': source
}

return client.begin_create_or_update(resource_group_name, server_name, configuration_name, parameters)


def _db_create(client, resource_group_name, server_name, database_name, charset=None, collation=None):

if isinstance(client, MySqlDatabasesOperations):
parameters = mysql.models.Database(
name=database_name,
charset=charset,
collation=collation
)
elif isinstance(client, PostgreSqlDatabasesOperations):
parameters = postgresql.models.Database(
name=database_name,
charset=charset,
collation=collation
)
else:
parameters = mariadb.models.Database(
name=database_name,
charset=charset,
collation=collation
)
parameters = {
'name': database_name,
'charset': charset,
'collation': collation
}

return client.begin_create_or_update(resource_group_name, server_name, database_name, parameters)

Expand Down Expand Up @@ -673,21 +607,10 @@ def _update_private_endpoint_connection_status(cmd, client, resource_group_name,
private_endpoint_connection_name=private_endpoint_connection_name)
new_status = 'Approved' if is_approved else 'Rejected'

if isinstance(client, MySqlPrivateEndpointConnectionsOperations):
private_link_service_connection_state = mysql.models.ServerPrivateLinkServiceConnectionStateProperty(
status=new_status,
description=description
)
elif isinstance(client, PostgreSqlPrivateEndpointConnectionsOperations):
private_link_service_connection_state = postgresql.models.ServerPrivateLinkServiceConnectionStateProperty(
status=new_status,
description=description
)
else:
private_link_service_connection_state = mariadb.models.ServerPrivateLinkServiceConnectionStateProperty(
status=new_status,
description=description
)
private_link_service_connection_state = {
'status': new_status,
'description': description
}

private_endpoint_connection.private_link_service_connection_state = private_link_service_connection_state

Expand Down Expand Up @@ -721,16 +644,10 @@ def server_key_create(client, resource_group_name, server_name, kid):

key_name = _get_server_key_name_from_uri(kid)

if isinstance(client, MySqlServerKeysOperations):
parameters = mysql.models.ServerKey(
uri=kid,
server_key_type="AzureKeyVault"
)
elif isinstance(client, PostgreSqlServerKeysOperations):
parameters = postgresql.models.ServerKey(
uri=kid,
server_key_type="AzureKeyVault"
)
parameters = {
'uri': kid,
'server_key_type': "AzureKeyVault"
}

return client.begin_create_or_update(server_name, key_name, resource_group_name, parameters)

Expand Down Expand Up @@ -784,16 +701,11 @@ def server_ad_admin_set(client, resource_group_name, server_name, login=None, si
Sets a server's AD admin.
'''

if isinstance(client, MySqlServersOperations):
parameters = mysql.models.ServerAdministratorResource(
login=login,
sid=sid,
tenant_id=_get_tenant_id())
else:
parameters = postgresql.models.ServerAdministratorResource(
login=login,
sid=sid,
tenant_id=_get_tenant_id())
parameters = {
'login': login,
'sid': sid,
'tenant_id': _get_tenant_id()
}

return client.begin_create_or_update(
server_name=server_name,
Expand Down Expand Up @@ -829,10 +741,12 @@ def create_database(cmd, resource_group_name, server_name, database_name, engine
if engine_name == 'mysql':
# check for existing database, create if not present
database_client = cf_mysql_db(cmd.cli_ctx, None)
parameters = mysql.models.Database(name=database_name, charset='utf8')
elif engine_name == 'mariadb':
database_client = cf_mariadb_db(cmd.cli_ctx, None)
parameters = mariadb.models.Database(name=database_name, charset='utf8')
parameters = {
'name': database_name,
'charset': 'utf8'
}
try:
database_client.get(resource_group_name, server_name, database_name)
except ResourceNotFoundError:
Expand Down
Loading