Commit Graph

692 Commits

Author SHA1 Message Date
Kate Shin
db32cee0d7 Fix filebrowser to handle cancellation and multiple open/expand requests (#499)
* add cancel filebrowser request

* update expand request contract

* cleanup

* add queue

* add expand queue and update cancellation

* dispose cancelsource

* remove unnecessary field

* cleanup using directives

* address pr comment

* more changes

* change contract
2017-10-21 11:05:31 -07:00
Benjamin Russell
605f5e9f7b Adding more continuewithonfaulted handlers (#507) 2017-10-20 11:31:31 -07:00
Kevin Cunnane
d222af7824 Fix numerous Azure property issues (#511)
* Avoid crashing if azure edition is System.

* Add new Azure-specific options to the prototype and return through the service calls

* Send azure properties over database info request

* IsCloud should include Azure SQL DW
- Fixed references to this feature flag
- Updated edition handling to include ManagedInstance and removed AzureV1 check since it's never used and it's been retired.
2017-10-19 22:08:33 -07:00
Aditya Bist
49f0221dc8 updated smo nuget package with latest bits (#508)
* updated smo nuget package with latest bits

* added new nupkg

* fixed peek definition test

* fixed batch parser wrapper tests
2017-10-19 18:02:47 -07:00
Karl Burtram
328fb30db2 Switch back to Tasks in binding queue (#510) 2017-10-19 16:05:24 -07:00
Karl Burtram
c2b2d16b6c Reduce OE timeout to 45 seconds (#509) 2017-10-19 15:42:37 -07:00
Benjamin Russell
01c414a65a Fixing backup service tests that utilized the file browser service host 2017-10-19 14:52:00 -07:00
Benjamin Russell
4016a05b48 Actually fixing the service host requirements by using the EventFlowValidator 2017-10-19 14:39:20 -07:00
Benjamin Russell
639cd91fe2 Moving event flow validatior into test.common 2017-10-19 14:27:37 -07:00
Benjamin Russell
9600125186 File Browser: Adding async task exception handling (#504)
* Replacing Dictionary with ConcurrentDictionary since values are accessed in async contexts

* Adding new method to allow async tasks to be executed in the exception continuation

* Adding unit tests for the aforementioned

* Adding exception handling to async tasks in file browser service

* Updating query execution async handling to use the async version

* Removing unnecesary send result from continuewithonfaulted
2017-10-19 11:25:29 -07:00
Kevin Cunnane
4b66203dfc Fix tools service crash + improve server edition naming (#506)
* Fix https://github.com/Microsoft/vscode-mssql/issues/986 and add better server edition naming
- Fixed a number of issues related to the binding queue, specifically the fact that it didn't capture exceptions that occurred on the binding thread. This caused the thread to crash the service.
  - The root cause of the error was when you get a connection error during init of the SmoMetadataProvider which threw an exception. Because of this no Binder was created, and the code would null ref later during processing
  - Added logic to handle null ref issue and other related code
  - Added a unit test for the new error handling path, and supported still returning some value in this case
- Separately, have a fix for an issue where the edition is shown as "SQL Azure" for all Azure connections. Fixing to be "Azure SQL DB" for this case and handle when the database reports as DW or Stretch instead. This maps better to users concept of what the edition should be and avoids returning what is an outdated term.

* Messed up the test - fixing this by returning the expected return object
2017-10-19 10:42:26 -07:00
Anthony Dresser
680f9f47d0 added change database handler (#505) 2017-10-18 19:09:55 -07:00
Benjamin Russell
705a89624a Query Execution: Better exception handling on unawaited async tasks (#502)
* WIP

* This code makes it work!

* Adding similar exception hanling behavior to saving result sets

* Adding unit tests for new extension methods
Auto-cleanup of proj file whitespace

* Implementing changes as per code review comments
2017-10-18 12:52:45 -07:00
Leila Lali
8db19d4b61 fixed the issue with parsing a windows path was failing in mac (#503)
* fixed the issue with parsing a windows path was failing in mac
2017-10-18 12:02:24 -07:00
Kevin Cunnane
4bf9b9ddae Improve database properties view: (#501)
- Compatibility Level should be a numerical value. In using `enum.ToString()` the result was `Version140` instead of `140`
- Backup date should be sensible if never backed up. Added a simple check that states it was never backed up if the backup date is before 1900.
2017-10-18 09:51:00 -07:00
Kate Shin
e52d95cebf update filebrowser expand contract and methods (#500) 2017-10-16 17:05:02 -07:00
Benjamin Russell
5d11654a10 Query Execution: Adding better cancellation support (#498)
* Adding better cancellation support

* Changing implementation as per @pensivebrian's comment
2017-10-16 11:26:15 -07:00
Kevin Cunnane
0c7f559315 Improve error message handling (#497)
- Add special handling for token expired errors so they send with a clear flag that'll allow clients to take action on this case
- Send error message instead of callstack for all messages, and ensure all resource manager paths send back inner exceptions so users can understand the true root cause.
2017-10-13 17:48:25 -07:00
Kevin Cunnane
b416951414 Unit tests for Azure scenarios (#495)
* Test firewall rule handling is able to process through the service layer

* Additional tests for authentication and the resource wrapper code

* Positive test case for CreateFirewallRule

* Fixed copyright and usings
2017-10-12 17:23:34 -07:00
Karl Burtram
14e3b3a3f6 Increase OE timeout to 60 seconds (#492) 2017-10-12 16:56:20 -07:00
Ronald Quan
0ab1dd4c55 Adding linux-x64 runtime id to build script and .csprojs. (#494) 2017-10-12 16:10:19 -07:00
Leila Lali
89d01000e9 fix the backup file path of a db file that's created in different platform (#493) 2017-10-11 15:43:45 -07:00
Kevin Cunnane
077ce4de1b Fix travis (#490)
* Also disabled flaky test and disable macOS build
2017-10-11 15:27:40 -07:00
Leila Lali
7fb09a0284 Fix/restore db files (#491)
* fixed an issue with target database name should replcae the original db name in the db file path
2017-10-11 14:48:51 -07:00
Kevin Cunnane
eab9339c14 Improve performance of Create Firewall Rule code (#489)
* Multi-thread server lookup to increase perf for multiple subscriptions

* Use parallel execution for listsubscriptions
- Also refactored parallel execution code to be a bit more generic
2017-10-11 11:14:47 -07:00
Karl Burtram
4945aead96 Increase parsing thread stack size to avoid stack overflow (#486)
* Increase parsing thread stack size to avoid stack overflow

* Fix extra space

* Remove extra spaces
2017-10-10 16:33:04 -07:00
Karl Burtram
11cb154d6d Add Database status to OE tree node (#485) 2017-10-10 16:32:54 -07:00
Leila Lali
284a3e0ee4 Fixing more restore connection issues (#488) 2017-10-10 14:32:45 -07:00
Aditya Bist
a4376732ce peek and go to definition less verbose now (#484)
* peek and go to definition less verbose now

* untabify files
2017-10-10 10:56:10 -07:00
Kevin Cunnane
7acc668c04 Create Firewall Rule support with a simple Resource Provider implementation
Implementation of the resource provider APIs in order to support Create Firewall Rule. Provides definition for a ResourceProvider and Authentication service. The ResourceProvider supports firewall rules for now, and since authentication is routed through that method it will call into the auth service to set up the current account to be used.

Additional notes:
- Fixed deserialization by adding an Accept header. This shouldn't be necessary, but for some reason the firewall rule defaults to XML without this
- Use generic server list and parse the ID to get the resource group, avoiding a large number of extra calls for each RG
- Errors now include error message from the API
2017-10-09 15:45:33 -07:00
Leila Lali
fecf56bce2 closing the default connections that are opned just for validating the connections. Added the feature to application name in the connection (#483) 2017-10-09 10:49:12 -07:00
Praveen Barli
a8f3503c00 comment changes (#482) 2017-10-06 15:42:22 -07:00
Praveen Barli
8b86279c3d send empty response for non-ms sql peekdef calls (#480) 2017-10-06 15:32:11 -07:00
Kate Shin
2c4f2cf6b8 Fix restore service to set target db same as source db (#479)
* fix restore service to change target db

* add overwriteTargetDb param

* update comment
2017-10-06 11:31:10 -07:00
Leila Lali
f09b9f4c30 Fixing the bug with connections on database make restore fail (#473)
* closing the connections that don't need to be open and keeping track of the connections that should stay open
2017-10-05 20:06:31 -07:00
Aditya Bist
7444939335 Task/script refactor (#478)
* scripting working with race conditions

* new service works with no race conditions

* use new scripting service and commented out tests

* refactored peek definition to use mssql-scripter

* fixed peek definition tests

* removed auto gen comment

* fixed peek definition highlighting bug

* made scripting async and fixed event handlers

* fixed tests (without cancel and plan notifs)

* removed dead code

* added nuget package

* CR comments + select script service implementation

* minor fixes and added test

* CR comments and script select

* added unit tests

* code review comments and cleanup

* fixed failing scripting tests

* fixed failing scripting tests

* fixed select script test

* code review comments
2017-10-05 12:19:08 -07:00
Kevin Cunnane
ac64ac063b Port Azure code from SSDT to the tools service (#477)
Porting of the vast majority of Azure-related code from SSDT. This is very large, so I want to put this out as one large "lift and shift" PR before I do the tools-service specific JSON-RPC service handlers, connect a new account handler (as the code to get necessary info from accounts and subscriptions isn't fully complete) and add tests over these

**What's in this PR**:

- Created 3 new projects:
  - Microsoft.SqlTools.ResourceProvider will host the executable that accepts requests for Azure-related actions over the JSON-RPC protocol. This must be separate from other DLLs since a direct dependency on the Azure SDK DLLs fails (they're NetStandard 1.4 and you can't reference them if you have RuntimeIdentifiers in your .csproj file)
  - Microsoft.SqlTools.ResourceProvider.Core is where all the main business logic is, including definitions and logic on how to navigate over resources and create firewall rules, etc.
  - Microsoft.SqlTools.ResourceProvider.DefaultImpl is the actual Azure implementation of the resource provider APIs. The reason for separating this is to support eventual integration back into other tools (since their Azure and Identity services will be different).
- Implemented the AzureResourceManager that connects to Azure via ARM APIs and handles creating firewall rule and querying databases. The dependent DLLs have had major breaking changes, so will need additional verification to ensure this works as expected
- Ported the unit tests for all code that was not a viewmodel. Viewmodel test code will be ported in a future update as we plumb through a service-equivalent to these. Also, the DependencyManager code which has overlap with our service provider code is commented out. Will work to uncomment in a future update as it has value to test some scenarios

**What's not in this PR**:
- Identity Services. We currently just have a stub for the interface, and even that will likely change a little
- anything JSON-RPC or registered service related. These will be adapted from the viewmodels and added in a separate PR
2017-10-04 12:37:20 -07:00
Anthony Dresser
98f7e59f1a fixed indexing and selection logic (#471) 2017-10-03 18:03:00 -07:00
Kate Shin
d30b9c870d Update restore service to return default backup folder (#475)
* Fix restore to return default backup folder

* fix break

* fix tests

* fix file validator for invalid filepath
2017-10-03 16:11:30 -07:00
Aditya Bist
05702182ab Task/script refactor (#476)
* scripting working with race conditions

* new service works with no race conditions

* use new scripting service and commented out tests

* refactored peek definition to use mssql-scripter

* fixed peek definition tests

* removed auto gen comment

* fixed peek definition highlighting bug

* made scripting async and fixed event handlers

* fixed tests (without cancel and plan notifs)

* removed dead code

* added nuget package

* CR comments + select script service implementation

* minor fixes and added test

* CR comments and script select

* added unit tests

* code review comments and cleanup

* fixed failing scripting tests
2017-10-03 14:41:18 -07:00
Karl Burtram
9091df8f62 Fix some issues with Script As Select (#474) 2017-10-03 14:39:29 -07:00
Kate Shin
8e78ecf9a4 Fix backup file validation error message (#472)
* Fix backup error message

* check for file existence for restore

* chang error message

* address pr comment

* cleanup
2017-10-02 15:45:28 -07:00
Aditya Bist
e7756b0bf1 Task/script refactor (#446)
* scripting working with race conditions

* new service works with no race conditions

* use new scripting service and commented out tests

* refactored peek definition to use mssql-scripter

* fixed peek definition tests

* removed auto gen comment

* fixed peek definition highlighting bug

* made scripting async and fixed event handlers

* fixed tests (without cancel and plan notifs)

* removed dead code

* added nuget package

* CR comments + select script service implementation

* minor fixes and added test

* CR comments and script select

* added unit tests

* code review comments and cleanup
2017-10-02 12:02:43 -07:00
Leila Lali
9d898f0d0c fixed couple of issues in restore (#470) 2017-09-29 09:46:44 -07:00
Kate Shin
b46c4b4381 Fix issues in file browser service (#469)
* fix file browser service bug

* modify filebrowser service

* change filebrowser contract

* fix contract

* fix file browser add/expand event contracts

* remove commented code
2017-09-28 13:02:57 -07:00
Leila Lali
3510ad7d5c Fixing the perf tests (#468)
fixed the pref tests
2017-09-27 13:52:50 -07:00
Matt Irvine
924709af79 More ConcurrentDictionary test changes - Fix build error from PR #456 (#467) 2017-09-21 16:21:47 -07:00
Matt Irvine
339a9c0fe2 Use a concurrent dict when mocking file stream factory (#465) 2017-09-21 10:27:03 -07:00
Karl Burtram
60aad9cf7e Allow connections on non-default port (#462)
* Allow custom port

* Update unit tests for port property
2017-09-21 08:26:13 -07:00
Monasr
c90fd3410d Localization check-in for September update (#464)
* Localization check-in for September update

* Fix format of test check that was failing so that if it fails in lab we'll get useful error message
2017-09-20 16:15:55 -07:00