Compare commits

...

194 Commits

Author SHA1 Message Date
Chris LaFreniere
4095037f25 Fix Notebook Viewlet Highlighting (#10868) (#10870)
* Stop double tree data provider registrations

* revert book finding logic, leverage currentBook
2020-06-10 22:56:57 -07:00
Karl Burtram
7091480c55 Update SQL Tools Service to include "use master" revert (#10834) (#10835) 2020-06-09 17:37:20 -07:00
Hale Rankin
b6b360de10 Fixed notebook toolbar icon issue in dark and hc-black themes. (#10802) (#10830) 2020-06-09 15:41:41 -07:00
Maddy
d6ba3c5d48 highlight correct notebook on navigation. (#10807) (#10812)
* highlight correct notebook on navigation.

* add back behavior of highight on viewlet visible

* optimize bookViewer create

* createTreeView for every book
2020-06-08 20:02:25 -07:00
Aasim Khan
5de8b066e7 Fix for "Run Current Query" keybind no longer behaving as expected (#10538) (#10557) (#10804)
* -"Run current" command runs the entire selection instead of only first statement in the selection

* -brought some logic back from the  old code to correct the behavior

* -Added unit tests for runCurrent command

* -Fixed a comment

* - Added checks for run input parameters

* -Added some extra checks

* -Fixed some spacing issue

* Changed to using verify instead of a counter variable
2020-06-08 18:34:42 -07:00
Amir Omidi
9962363f4c Fixes the azure auth for postgresql (#10662) (#10753) 2020-06-08 13:55:52 -07:00
Hale Rankin
1c0a9a1849 10712, 10677 - Fixed focus indicators for both main toolbar and cell … (#10756) (#10785)
* 10712, 10677 - Fixed focus indicators for both main toolbar and cell toolbar.

* Removed duplicated line
2020-06-08 09:51:35 -07:00
Hale Rankin
a871b03550 Reduced margin between notebook cells. Increased space at top of page. (#10735) (#10783) 2020-06-08 09:20:53 -07:00
Hale Rankin
5e6e9fcc2f Removed style that was interfering with text selection within code cell. (#10769) (#10786) 2020-06-05 18:32:10 -07:00
Hale Rankin
f130ced71c Switched order of the two dropdowns in main toolbar in preview. (#10717) (#10784)
* Switched order of the two dropdowns in main toolbar in preview.

* Reverting this single line b/c it's out of scope for the PR.
2020-06-05 18:16:06 -07:00
Chris LaFreniere
d7d4c26780 Bring back hover state setting on cell model (#10758) (#10782) 2020-06-05 17:43:05 -07:00
Alan Ren
7b382794e2 reduce max memory (#10775) (#10778) 2020-06-05 15:32:28 -07:00
Cory Rivera
b6be7f1218 Add custom width to Python wizard to reduce wasted space. (#10705) (#10755)
* Also use double quotes for localize calls in the wizard.
2020-06-05 12:17:00 -07:00
Karl Burtram
ca7ee35993 Add Redgate Search to recommendation list (#10749) (#10764) 2020-06-05 09:05:21 -07:00
Chris LaFreniere
46192ae754 Change markdown cell to text cell (#10715) (#10744) 2020-06-04 15:00:12 -07:00
Chris LaFreniere
f5b0141763 Only show edit cell action for markdown cells (#10719) (#10743) 2020-06-04 14:36:52 -07:00
Sakshi Sharma
c903112451 Tests for round tripping with SSDT projects (#10646)
* Test code for round tripping feature

* Fixed tests. Edited updateImportedTargetsToProjFile method to push newly added import target to the list.

* Added couple more tests

* Addressed comment
2020-06-03 14:02:50 -07:00
Amir Omidi
3860f07cab Make azure portal work from server area (#10699) 2020-06-03 14:02:23 -07:00
Alan Ren
61dce39f5a disable the sql proj tests (#10704) 2020-06-03 13:44:51 -07:00
Alan Ren
c4be667567 add custom width support for dialogs (#10641)
* add custom width support for dialogs

* comments

* fix test
2020-06-03 13:08:48 -07:00
Cory Rivera
2e4aee944c Disable some unreliable notebook integration tests. (#10701) 2020-06-03 12:30:36 -07:00
Leila Lali
fb9ca4c021 fixed the issue with opening none SQL editor for predict script (#10693) 2020-06-03 10:56:30 -07:00
Arvind Ranasaria
f7c3484438 Unique title for opened notebooks (#10673)
* removing debug log

* Ensure unique title for Nb launch

* pr feedback

* pr feedback

* pr fedback

* pr feedback
2020-06-02 15:21:34 -07:00
Charles Gagnon
da41fda4bb Update to latest vscodetestcover (#10680)
* Update to latest vscodetestcover

* Remove unused config
2020-06-02 13:33:30 -07:00
Charles Gagnon
4d6ec69eba Fetch password from credential store before connecting to knox endpoint (#10666)
* Fetch password from credential store before connecting to knox endpoint

* Add combined code coverage script

* Revert "Add combined code coverage script"

This reverts commit e538f2fb2a79993a77f749f384fbc306b18b9f64.
2020-06-02 13:27:37 -07:00
Hale Rankin
d247af6619 Adjusted + Cell element height to fix layout on Mac and Windows. (#10681) 2020-06-02 13:11:37 -07:00
Charles Gagnon
2879da5ca5 Add script to combine coverage files (#10674)
* Add script to combine coverage files

* add script

* Add core coverage file as well

* Add json reporting

* Update README

* more
2020-06-02 12:53:58 -07:00
Alan Ren
c057dddb25 show username for azure sql db (#10679) 2020-06-02 12:49:24 -07:00
Charles Gagnon
453f7fa5a4 Disable sql-database-projects tests (#10675) 2020-06-02 10:03:38 -07:00
Benjin Dubishar
0ac6a07c5f Fix for Sqlproj tree bug (#10605)
Fixes bug where files located in a subfolder defined before the folders themselves in .sqlproj would result in those files not appearing in the ADS treeview
2020-06-01 22:41:00 -07:00
Arvind Ranasaria
8fc8a79e26 removing debug log (#10671) 2020-06-01 18:24:44 -07:00
Maddy
3088c73e2b Feat/notebooks viewlet (#10170)
* clean up unsavedBooks to providedBooks

* added notebooks viewley contribution

* added notebookExporerAction context

* temp shortcut key B

* remove commenred code

* changes with master merge

* fix comments

* initial tests

* fix casing and description

* merged master and resolved errors

* remove extension point & add custom view container

* merge latest from master

* remove unused files

* move book images to common

* remove notebookExplorer contrib & move to notebook

* build fix

* remove explorer specific sryles from common

* vscode convention to define container actions

* rename notebooks/title
2020-06-01 15:47:56 -07:00
Charles Gagnon
7305bdaec4 Add integration-test code coverage (#10632)
* wip

* Update to latest vscodetestcover and add tests back in

* Update to latest version of vscodetestcover

* updates

* another yarn.lock

* update version

* Revert import path change
2020-06-01 14:54:07 -07:00
Aditya Bist
f2c3320f0e use inbuilt codicon instead of image (#10664) 2020-06-01 14:37:11 -07:00
Aditya Bist
6816d2bd78 add icon for disabled triggers (#10663) 2020-06-01 14:10:06 -07:00
Leila Lali
269318f7ef ML - Modified sqmlutils version to fix Windows auth issue (#10639)
* Modified sqmlutils version
2020-06-01 13:06:34 -07:00
Amir Omidi
534eb3a6f8 Add unused contribution point to workbench file (#10594)
* Remove unused file

* Revert "Remove unused file"

This reverts commit 788538aa01f4a146a08340a9890e0e2e6bd98d0d.

* Add to workbench
2020-06-01 11:25:57 -07:00
Arvind Ranasaria
678bbe3142 Custom Summary Page for NotebookWizard and notebook Cell with wizard variables (#10297)
* save not yet tested work

* Merge from master.

* Screeens Shared for Feeedback

* Code complete

* remove unneeded changes

* remove unnecessary comma

* remov wss

* remove dead code

* PR feedback

* checkpoint fixes

* PR & minor fixes

* minor fix for feature of  resourceType options being optional.

* reverting experimental change

* separating out changes for future featurework.

* revert unneeded change

* review feedback fixes

* review feedback

* rename InputFieldComponent to InputComponent

* working version of custom summary page

* add option to align items in a flex- container.

* changes to support labelColor

* save work , still pending issue with labelCSSStyles

* Summary page and setting variabless in notebook.

* minor fixes.

* pr feedbck

* fix formatting issues

* pr feedback

* pr feedback

* pr feedback

* fixing docs

* summary page value setting fix

* rename children of RowInfo to items

* rename a method

* rename summary_text to evaluated_text

* rename properties of fieldInfo

* revert inadvertent change

* rename linked_texttext to hyperlinked_text and removing linking facility from readonly_text

* pr feedback

* fix setting tools variables in env and notebook

* removing saving of originalValues for EvaluatedText

* await on launchNotebookWithEdits

* await on launchNotebookWithContent

* merge RadioOptions & Options into 1

* merge ReadOnlyText, links  & evaluatedText

* Samples for new generic wizard features

* fix comment

* fix assertions

* return type and comment for getClusterContext

* fix inadvertent change

* increase minimum required azdata version

* remove unneeded environment variable settings

* not leaking passwords in notebooks
2020-06-01 11:14:59 -07:00
Sakshi Sharma
84492049e8 Enable sql-database-projects tests with few fixes (#10610)
* Added 2tests related to import. Fixed a few issues. Enable sql-database-projects

* Addressed comment
2020-05-30 09:05:55 -07:00
Amir Omidi
7d31239e64 Open in azure portal (#10535)
* initial commit to get it working

* Change configuration to use package.nls.json

* Make the necessary plumbing

* Support multi cloud

* Move the menu item to the bottom

* Fix failing tests

* Fix the tests
2020-05-29 19:59:29 -07:00
Hale Rankin
b2e0291a95 10551 - Notebook UI: Added cell toolbar component (#10558)
* 10551 - Notebook UI: Added cell toolbar component, actions scaffolding, styles and theme colors. Removed markup for legacy, hidden hover buttons. Updated instaces of icon class: mask to masked-icon.

* Uncommented lines for CellToggleMoreActions so we can see how the ellipses currently work.

* Added EditCellAction which toggles between two icons.

* Cleaned up comments and removed some unused code.

* Copied DeleteCellAction into celltoolbarActions

* Connecting model and cell model to toolbar component for necessary context.

* Pass in cell + nb model from notebook component

* Adding context for EditCellAction so we can activate a cell via icon.

* Removed my copy of AddCellAction and simply referred to the existing one.

* Fixes to propogate cell model edit mode changes

* Added onCellModeChanged event registration to code.component.

* Moved cellToggleMoreActions into cellToolbarActions. Suppressing ellipses in code and textCell components.

* Fix adding cells

* Copied and modified ToggleMoreWidgetAction for use in cellToolbarActions. Instantiating cellToggleMoreActions and adding to toolbar.

* Removed unused markup, code and styles. Moved cell toolbar template into compoent.

* Removed double-click from textCell. Changed message to indicate where content goes - without it the cell does not have dimension and cannot be found by the user.

* Removed unused code file.

* Fixing my boo boo

* Updated AddCellAction with null coalescer. Set Promise to type: void.

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-05-29 18:27:36 -07:00
Cory Rivera
98ce3c74e6 Hide installation options in Configure Python wizard if python is already setup. (#10635) 2020-05-29 17:28:02 -07:00
Leila Lali
d1b1550ce5 Added documents for MI (#10634) 2020-05-29 14:27:48 -07:00
Charles Gagnon
4f603888b9 Adds README to sql assessment and bump min ADS version (#10628)
* Adds README to sql assessment and bump min ADS version

* Bump version
2020-05-29 14:08:28 -07:00
Leila Lali
5955953b4a ML - displaying all Python and R packages (including system ones) (#10603)
* displaying all packages including readonly
2020-05-29 13:52:37 -07:00
Kim Santiago
0e0eb7f237 bump SqlToolsService to 2.0.0-release.68 (#10631) 2020-05-29 12:46:14 -07:00
Brian Bergeron
e9e2a0b8b4 Add refresh support to Arc Postgres pages (#10607) 2020-05-29 10:24:24 -07:00
Alan Ren
1305743479 fix object filtering regression (#10609)
* fix object filtering regression

* add comments
2020-05-29 10:19:44 -07:00
Alan Ren
7e49eb85fb table style clean up (#10608) 2020-05-29 10:19:09 -07:00
Charles Gagnon
107b3171f2 Add isBigDataCluster property to connection event (#10606) 2020-05-29 06:47:03 -07:00
Vladimir Chernov
8288360cc4 Assessment core extension (#10154) 2020-05-29 01:17:41 +03:00
Leila Lali
0d544660e0 MI now supports ONNX runtime so the extension should support is as well (#10604) 2020-05-28 13:36:16 -07:00
Alan Ren
6cf8f9ff35 format and add metadata (#10598) 2020-05-28 10:23:56 -07:00
Alan Ren
3bcc2ce334 update bdc tab category (#10592) 2020-05-28 10:22:30 -07:00
Charles Gagnon
9db16c1f26 Disable sql-database-projects tests (#10602) 2020-05-28 09:42:24 -07:00
Charles Gagnon
968f2d11f1 Switch to DownloadBuildArtifacts task (#10597)
* Switch to download build artifact task

* Update download location

* Fix path
2020-05-28 07:56:09 -07:00
Kim Santiago
d59411c191 a few fixes for dacpac extension (#10595) 2020-05-27 18:14:29 -07:00
Alan Ren
032b625ed1 check undefined (#10596) 2020-05-27 16:51:52 -07:00
Charles Gagnon
e7f65f45f2 Don't run platform builds if compile fails (#10564)
* Don't run platform builds if compile fails

* Switch to use suceeded

* Fix condition

* Undo compilie changes
2020-05-27 14:07:09 -07:00
khoiph1
d49c1c9c2b updated the localization section (#10527) 2020-05-27 10:18:40 -07:00
Charles Gagnon
f568ff82d8 Fix HDFS support for CU5+ BDC instances (#10577)
* Fix HDFS node auth for non-root username

* more changes
2020-05-27 10:17:28 -07:00
Aditya Bist
e8dc0d15b7 hotfix change log (#10580) 2020-05-27 09:06:48 -07:00
Amir Omidi
fbb701d49c Fixes integration tests (#10582) 2020-05-27 08:49:16 -07:00
Sakshi Sharma
f49bfbc91b Round trip with SSDT (#10563)
* Initial changes

* Round trip feature implementation

* Addressed PR comments

* Addressed comments
2020-05-27 07:23:47 -07:00
Charles Gagnon
7496d09eb9 Add and fix Notebook tests (#10488)
* Add and fix Notebook tests

* Fix name

* Fix compile

* Acutally fix error

* Add Notebook title test and fix command

* Add extra check and add comments

* Remove extra show error message
2020-05-26 17:27:43 -07:00
Amir Omidi
8f33e1c4c0 Introduces decorators to handle multiple authorities for URIs (#10507)
* Introduces decorators to handle multiple authorities for URIs

* Check for undefined first

* Add result type checking
2020-05-26 16:32:25 -07:00
Sakshi Sharma
9a55b0275d Import project from database (#10326)
* Initial changes for Import database as new project

* Functionally complete code

* Initial changes for Import database as new project

* Functionally complete code

* Resolved conflicts with latest changes. Also did some code refactoring.

* Addressed comments. Added unit tests.

* Addressed comments

* Moved ExtractTarget enum from azdata to mssql

* Addressed comments

* Fixed indentation in project templates
2020-05-26 16:08:24 -07:00
Benjin Dubishar
f0d86f8acb Database projects deploy (#10417)
* Hooking up deployment of SQL projects to the project build functionality and database selection UI
* Adding ADS-side plumbing for sqlcmdvars
2020-05-26 14:28:09 -07:00
Aditya Bist
690e3c582c fix horizontal scroll bug (#10554) 2020-05-26 12:51:18 -07:00
Charles Gagnon
62a0cb4dc9 Update test readme (#10552) 2020-05-26 10:47:45 -07:00
Amir Omidi
65a4a56fd7 Prompt for consent when interaction is required (#10373)
* Reprompt for consent

* Remove unused imports

* Fix typos

* Change the tenant we re-auth too

* Handle the prompt properly

* prompt for consent dialog

* Information message modal

* product name

* Change message per PM feedback
2020-05-21 00:03:21 -07:00
Benjin Dubishar
efb890697c Adding sqlproj extension to coveralls workflow (#10468) 2020-05-20 18:26:33 -07:00
Udeesha Gautam
ea80202cf7 Bug/fix for mssql path (#10522)
* Correcting to right path and making file exist calls async
2020-05-20 17:35:24 -07:00
Charles Gagnon
14554f0d11 Fix some issues with book tree view (#10521) 2020-05-20 11:54:25 -07:00
Aditya Bist
5f003d996f Update agent screenshot (#10524) 2020-05-20 11:30:58 -07:00
Aditya Bist
3dfc9ddf92 Release updates (#10510)
* update ads version

* update readme
2020-05-20 10:54:54 -07:00
Chris LaFreniere
6d710c7144 Add plumbing and simple notebookService tests (#10349) 2020-05-19 21:36:59 -07:00
Anthony Dresser
5136a8b54c distro (#10509) 2020-05-19 16:04:17 -07:00
Anthony Dresser
0ad7810ba0 fix styles to apply to error message correctly (#10505) 2020-05-19 15:42:34 -07:00
Maddy
76c80943ba set ignoreOverrides false for ipynb and sql files (#10499)
* set ignoreOverrides false for ipynb and sql files

* toLowerCase

* null checks added
2020-05-19 13:25:24 -07:00
Amir Omidi
b02b41815d Don't do any extra parsing, put the responsibility on the caller (#10489)
* Don't do any extra parsing, put the responsibility on the caller

* make integrated default

* Fix the tests

* Fix test
2020-05-19 12:18:18 -07:00
Charles Gagnon
d6b5489f93 Update arc extension icon (#10494) 2020-05-19 09:57:11 -07:00
Charles Gagnon
d733cba35a Update area assignees (#10493) 2020-05-19 06:55:39 -07:00
Leila Lali
f73d81bc13 ML- Fixed the issue with wrong title in predict page (#10467)
* Fixed the issue with wrong title in predict page

* Fixed the type of ml settings

* Increased timeout

* Fixed the bug with R package management and Windows auth

* fixed the tests

* fixed a typo
2020-05-18 17:12:02 -07:00
Kim Santiago
c98eaaf5a1 Fix sql project build on mac (#10485)
* update sqlproj template

* add condition for netcorebuild=true
2020-05-18 17:08:50 -07:00
Brian Bergeron
283ffd7af6 Azure Arc extension (#10400)
Adds an extension for Azure Arc with some initial Postgres pages
2020-05-18 14:32:48 -07:00
Amir Omidi
21b650ba49 Fixes the DE icons (#10478)
* Fixes the DE icons

* Fixes the commands
2020-05-18 14:04:37 -07:00
Anthony Dresser
4763685237 Add more testing in the pipelines (#10455)
* run tests in every pipeline and include integration tests

* fix test env

* fix integration test scripts

* remove windows unit tests

* remove unused tests in integrations

* add comments
2020-05-18 13:54:19 -07:00
Maddy
e46521cafc open viewlet on showPreview (#10474)
* open viewlet on shoePreview

* on showPreview reveal explorer
2020-05-18 13:46:55 -07:00
Karl Burtram
d60b094e9b Fix extension manager single-click (#10473)
* Fix extension manager single-click

* Port over additional change to fix same issue in git viewlet

* Remove unneeded param to match vscode source
2020-05-18 10:35:28 -07:00
Maddy
12ee13240a vbump (#10423) 2020-05-18 09:14:07 -07:00
Charles Gagnon
c70d68f889 Fix text component link to use link component directly (#10457)
* Fix text component link to use link component directly

* Attach styler
2020-05-18 08:25:39 -07:00
Hale Rankin
47687ff6b2 Notebook main toolbar additions (#10271)
* Reworking notebook action bar functionality and appearance.

* added separator

* Revised notebookActions for collapse, clear and trusted such that they can be implemented with a boolean set to T of F and show labels or shift them into tooltip for accessibility. Updated styles for select boxes. Added toolbar icons to common icon location. Split icon definition for use as masked or background-image.

* Completed styles for action icons: collapse, clear and trusted. Added theme colors. Simplified icon behavior styles.

* Made maskedIconClass optional. Added theme colors for toolbar icons, select box border and dropdown arrow. Experimenting with adding masked icon to pseudo element so I can pull out label text from icons.

* Added icons styles to handle masked SVG elements as pseudo element beside button text. Added icons using this method to respect the color theming system.

* Adjusted styles for the cell and run all icons in notebook toolbar.

* Prepped notebook toolbar with placeholder icon for Underline action. Implemented Underline action. Added custom --wip-- ButtonMenu control, a modified copy of DropDown.

* Revised colorRegistry and corresponding notebook styles. Removed unused code from new custom control: buttonMneu. Revised icon styles to create a dropdown arrow for buttonMenu.

* Added new icon for Underline action.

* Removed comment from needed markup.

* Replaced actionItemProvider with optional undefined per DropdownMenuActionViewItem constructor.

* Cleaned up new control, removing unneeded code and referencing what the class needs. Corrected style declaration for overriding input box padding. Removed unused notebook color styles. Scoped element styles to the toolbar so others outside the toolbar are not affected.

* Removed unnecessary !important from style override.

* Removed reference to unused color entry.

* Syntax cleanup.

* Put notebook toolbar improvements behind the preview flag. This involves some conditionals and CSS classes.

* Updated icon used for Manage Packages. Created and updated styles for notebook toolbar icon spacing. Modified notebook.component contributed actions so that the label text is shifted into the title attribute. Added new icon for Not Trusted toggle.

* Replaced SVG code for not-trusted icon.

* Addressed PR feedback: changed masked classname. Revised component and CSS accordingly. Removed unnecessary instance of in-preview class. Fixed code logic that assigns label text to tooltip on incoming contributed action
2020-05-15 19:13:31 -07:00
Charles Gagnon
0f10f44755 Fix link styling for text components (#10449) 2020-05-15 15:20:19 -07:00
Anthony Dresser
e0bdfc8b21 modify git edits to make webpack not be stupid (#10442) 2020-05-15 15:00:22 -07:00
Kim Santiago
b83279c24c Add sql proj schema compare for dacpac (#10388)
* add support for schema compare to specify source dacpac

* add build and dacpac produced from build

* check if dacpac exists

* add tests

* move exists check code to utils

* fix test run failing
2020-05-15 13:03:08 -07:00
Charles Gagnon
ef4ab4a59f remove config update (#10440) 2020-05-15 12:59:21 -07:00
Chris LaFreniere
452bd6a0cb Notebook model ready sooner (#10420) 2020-05-15 11:48:11 -07:00
Karl Burtram
ebf47224b7 Properly initialize scenario recommendations (#10434) 2020-05-15 11:38:15 -07:00
Anthony Dresser
dd697b337d clear buffer when a batch is completed (#10382) 2020-05-15 11:34:48 -07:00
Leila Lali
1bcda64a1b Fixed ML urls in dashboard (#10411)
* Fixed ML urls in dashboard
2020-05-15 11:07:31 -07:00
Karl Burtram
1d1e21b579 Turn-off file extension recommendations (#10431) 2020-05-15 11:05:24 -07:00
Amir Omidi
b519d51052 Replace the ID of the generated connection profile with the one through edit data (#10413) 2020-05-15 10:48:56 -07:00
Arvind Ranasaria
19fab3fc9c fix azure account corenes case handling (#10428) 2020-05-15 08:47:09 -07:00
Alan Ren
9680b1e2cf create a new connection (#10412) 2020-05-14 16:07:51 -07:00
Amir Omidi
aea772d631 Add pwa-chrome for attach to azuredatastudio (#10414)
* Add pwa-chrome for attach to azuredatastudio

* Why did you get in here
2020-05-14 15:51:50 -07:00
Kim Santiago
abdd9af931 update deploy dialog to not show dropdown when there aren't any data sources (#10404) 2020-05-14 14:31:47 -07:00
Charles Gagnon
e95650da89 Fix message branding VS Code -> ADS (#10407)
* Fix message branding VS Code -> ADS

* Add edit comment
2020-05-14 14:26:45 -07:00
Alan Ren
f934dea6ea use listdatabases for sqlondemand (#10398)
* use listdatabases for sqlondemand

* comments

* use enum
2020-05-14 14:25:29 -07:00
Alex Ma
8f7861deac Keybinding for Show SQL Pane (#9750)
* WIP registerKeybind

* testing command

* Moved command to query.contribution

* Moved command to editData.contribution

* simplified command

* more simplification

* Working keybind for toggle query pane added.

* removed space

* added option to always show sql pane

* removed keybind default and changed option
2020-05-14 14:06:58 -07:00
Alex Ma
e3218ade02 Alex/fixforqueryrefresh (#9032)
* added some checks

* Added return undefined

* added handling for multiple loads

* added more error handling

* minor space change

* added explanation message

* simplification

* added changes from create new row

* added some checks

* Added return undefined

* added handling for multiple loads

* added more error handling

* minor space change

* added explanation message

* simplification

* editDataGridPanel corrected

* updated to most recent master version

* removed space at end

* added newline

* added another try catch

* changed message

* added check and message

* added clarifying message

* removed redundant try catch loop

* grid data is now backed up

* wording change
2020-05-14 14:06:26 -07:00
David Peter Hansen
8eb67d58b3 Update readme for ML extension in Azure Data Studio (#10355)
* Update readme for ML extension in Azure Data Studio
2020-05-14 13:54:05 -07:00
Leila Lali
0258b1727a Machine Learning - Bug fixes (#10377)
* Fixing ML extension bugs
2020-05-14 12:46:47 -07:00
Cory Rivera
d3e1675fc5 Only check if python is running before trying to overwrite an existing installation. (#10383) 2020-05-14 11:37:06 -07:00
Alan Ren
3212b06d49 set context (#10391) 2020-05-14 10:56:58 -07:00
Anthony Dresser
35236a6107 distro (#10376) 2020-05-13 23:40:56 -07:00
Udeesha Gautam
18128d700d Updating the new Proj template such that it builds correctly in ADS and SSDT (#10387)
* Updating the new Proj template such that it works in ADS and SSDT

* Fixing test for baseline compare

* Space fix for xml

* Trying again to fix space
2020-05-13 20:47:08 -07:00
Anthony Dresser
f550002d33 Remove web smoke tests (#10380)
* remove smoke tests

* use run_tests
2020-05-13 16:29:15 -07:00
Alan Ren
0ad2a351f8 move icon to where it is being used (#10375) 2020-05-13 13:40:31 -07:00
Anthony Dresser
dee02796c9 ensure we can still write version infomation if we don't recompile (#10365) 2020-05-13 10:21:21 -07:00
Udeesha Gautam
ddb9a806cc Feature/project build (#10332)
* initial build command execution

* adding tests

* Clean up test names

* update SqltoolsService release in ADS for Build

* Updating as per PR comments

* updating yarn lock

* Adding one more test for command run

* Test fixes
2020-05-12 20:17:37 -07:00
alljamziMicrosoft
ab374e362a Enabling Script as Create for SqlOnDemand (#10362)
* Update scriptingUtils.ts

* Update scripting.contribution.ts
2020-05-12 14:53:45 -07:00
Cory Rivera
fc548be2c1 Uncheck unselected radio buttons in Configure Python wizard. (#10344) 2020-05-12 13:02:35 -07:00
Charles Gagnon
3fa0deed71 Add doAction API call for ModelView (#10345)
* Add doAction API call for ModelView

* cleanup
2020-05-12 10:47:20 -07:00
Anthony Dresser
ff848b5903 Remove request promise for request-light (#10346)
* remove request promise for request-light

* make sure data is a string not a json

* add configure call

* remove unused reference

* more fixes

* Move configure calls

* clean up

* fix name

* move test deps as dev

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-05-12 10:27:11 -07:00
Charles Gagnon
eda25f72c1 Improve logging for MSSQL errors to handle HTTP request errors (#10348)
* Improve logging for MSSQL errors to handle HTTP request errors

* stringify
2020-05-12 09:03:39 -07:00
Kim Santiago
f3d36c1b86 Initial project deploy dialog (#10288)
* connection picking dialog for deploy

* add data source option

* fix errors

* merge fix

* show connection name instead of connection string if there is one

* remove unnecessary async

* async (#10292)

* Revert "async (#10292)"

This reverts commit c94139aa45d8f1d868ebd251f3016315718b56ae.

* add a few tests

* addressing comments

* remove cancel click handler

* remove text box for generate script file path because it will just open up a new editor with the script

* fix test

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-05-11 18:12:29 -07:00
Leila Lali
301ce1cf87 ML- Added a radio button to enter new model table name (#10343) 2020-05-11 17:29:28 -07:00
Christopher Suh
21e6ba92c2 fixed icon spacing in query editor toolbar (#10329) 2020-05-11 18:23:47 -04:00
Charles Gagnon
264c34af97 Add more debug logging to fillInOrClearAzureToken (#10336)
* Add more debug logging to fillInOrClearAzureToken

* Use toErrorMessage
2020-05-11 15:09:34 -07:00
Amir Omidi
923272f989 Let's log every potential failure (#10342)
* Let's log every potential failure

* Add more context to the error
2020-05-11 13:02:28 -07:00
Charles Gagnon
567c1be9fb Refactor BDC dashboard to use ModelView Dashboard (#10327)
* WIP refactor

* More changes

* More changes

* Remove unused styles

* Uncomment code
2020-05-11 09:21:03 -07:00
Leila Lali
3d2d791f18 ML extension - Improving predict parameter mapping experience (#10264) 2020-05-10 18:10:17 -07:00
Maddy
f6e7b56946 opening as text document launches json (#10323) 2020-05-08 23:28:28 -07:00
Charles Gagnon
2893659983 Hyperlink Component improvements (#10330)
* Hyperlink Component improvements

* Remove hyperlink CSS styles
2020-05-08 16:49:07 -07:00
Amir Omidi
f220f6486a Stops caching the AAD token (#10251) 2020-05-08 16:46:18 -07:00
Cory Rivera
f94a9d0d58 Update Configure Python dialog to allow packages to be installed for specific kernels. (#10286) 2020-05-08 16:02:59 -07:00
Charles Gagnon
9bcd7cdd80 Fix tabbed panel not updating correctly when layout updated (#10328)
* Fix tabbed panel not updating correctly when layout updated

* Add comment
2020-05-08 15:56:59 -07:00
Chris LaFreniere
5e1978e29f Ensure ipynb is associated with editor (#10055) 2020-05-08 14:50:48 -07:00
Chris LaFreniere
e4614582cd Cleanup nbformat, more common tests (#10311) 2020-05-08 14:50:24 -07:00
Chris LaFreniere
0fbc3d1cb6 Get rid of red herrings (#10309) 2020-05-08 14:49:49 -07:00
Alan Ren
3a70bea70d fix button column accessibility issue (#10307)
* fix accessibility issue

* comment
2020-05-08 14:24:03 -07:00
Kim Santiago
ea84e60fa0 Add a few dacpac extension tests (#10322)
* add controller test

* Add a few wizard tests

* Addressing comment

* fix compile error
2020-05-08 14:04:11 -07:00
Kim Santiago
10ac5fdfab Revert "Dacpac extension tests (#10305)" (#10321)
This reverts commit 1c621da4c7.
2020-05-08 10:32:22 -07:00
Kim Santiago
1c621da4c7 Dacpac extension tests (#10305)
* add controller test

* Add a few wizard tests

* Addressing comment
2020-05-08 10:11:51 -07:00
Charles Gagnon
6e5fc9c495 Add ModelView method SetItemLayout (#10306)
* Add ModelView method SetItemLayout

* Remove extra line break
2020-05-08 08:38:36 -07:00
Anthony Dresser
e3daec38c6 Merge branch 'ads-master-vscode-2020-05-08T03-58-31' 2020-05-08 00:58:57 -07:00
Anthony Dresser
11636f8fc3 remove crash reporting 2020-05-07 22:34:46 -07:00
Anthony Dresser
8c08d5117b revert workflow changes 2020-05-07 21:02:48 -07:00
ADS Merger
fa62ec1f34 Merge from vscode 7653d836944892f83ce9e1f95c1204bafa1aec31 2020-05-08 03:58:34 +00:00
Chris LaFreniere
dac1970c43 Notebooks: Refactor Empty Session Classes (#10265)
* Cleanup empty sessionmanager

* Cleanup

* PR Feedback import noKernel from notebookActions
2020-05-07 16:20:14 -07:00
Alan Ren
e27a57715c set provider (#10302) 2020-05-07 13:46:04 -07:00
Amir Omidi
e6ca724571 Add new error message to console (#10303) 2020-05-07 13:28:45 -07:00
Vladimir Chernov
57d2ceec9d mssql sqlAssessmentService (#10299)
mssql sqlAssessmentService
2020-05-07 21:35:44 +03:00
Alan Ren
d87855cf1f force the isDirty flag to always be false (#10295) 2020-05-07 10:08:22 -07:00
Jeff Trimmer
1656a9c285 upgrade the STS version (#10289) 2020-05-07 07:12:07 -07:00
Aasim Khan
89a845d994 -Changed from AutoFit to DataFit for better visibility of cell content (#10278) 2020-05-06 20:41:50 -07:00
Benjin Dubishar
80901c9a7b Swapping vscode calls for ApiWrapper for testability (#10267)
* swapping vscode calls for apiwrapper for testability

* Adding mainController tests

* Adding unit tests for input validation

* Adding project controller tests, reorganizing error handling

* Removing commented-out code
2020-05-06 14:16:27 -07:00
Alan Ren
0ace033a6f table based explorer widget (#10279)
* bump sts

* extend widget container

* remove title

* wip

* refactoring

* Revert "extend widget container"

* showTitle option

* fix properties widget error

* icon column

* icon and button columns

* use textwithicon column

* icon

* refactor and filter

* context menu

* refactor

* tests

* fix hygiene

* tests

* comments
2020-05-06 13:52:20 -07:00
Anthony Dresser
df5df38a55 Query Runner Tests (#10252)
* rework some code and write an inital test

* fix strict

* add more to standard test

* add to existing workflow test

* fix tests

* simplify the code

* add more tests

* remove bad import

* fix compile

* fix timestampiong
2020-05-06 13:38:12 -07:00
rajeshka
4199cec393 Add Cell after current active cell (#10203)
* Add Cell after current active cell

* fixed error

* more fixes

* Addressed PR

* merged with master

* Fixed the tests and code

* removed try catch and modified the test to check the method does not throw.

Co-authored-by: Rajesh Kamath <rajkashop@hotmail.com>
2020-05-06 11:42:01 -07:00
Benjin Dubishar
9b296c9f42 Organizes context menus for database projects tree (#10266)
* reoranizing existing context menu commands

* adding build/deploy/import stubs

* Update error message

* adding for schemaCompare
2020-05-06 11:31:17 -07:00
Anthony Dresser
dbb40d820c Merge branch 'ads-master-vscode-2020-05-06T02-35-47' 2020-05-05 23:21:01 -07:00
Aasim Khan
2ca6e7ae64 Removed PG connections and the refresh button from the import wizard. (#10248)
* - Removed PG connections in the new connection wizard
- If a PG database is active sending an error
- Removed refresh button #6611

* Added back the refresh

* -Using getConnection only once.

* -Fixed the error message
-Fixed the bugs mentioned in the PR

Co-authored-by: Aasim Khan <aaskhan@microsoft.com>
2020-05-05 20:13:16 -07:00
Anthony Dresser
d7d13c7218 update sqlite in smoke tests 2020-05-05 19:41:28 -07:00
Anthony Dresser
485e185270 remove workflows 2020-05-05 19:38:07 -07:00
ADS Merger
8420d9f04e Merge from vscode bd0efff9e3f36d6b3e1045cee9887003af8034d7 2020-05-06 02:35:49 +00:00
Alex Ma
9a7810cbee removal of unnecessary spaces. (#10275) 2020-05-05 14:58:13 -07:00
Alan Ren
0fd3b25ccd remove table setActive (#10256)
* remove setActive method

* another place
2020-05-05 13:21:26 -07:00
Alex Ma
921e546fd7 Edit Connection Feature added, edit existing connection in connection tree. (#10214)
* Added Edit Connection Command

* Wip changes for new connection dialog

* Testing

* WIP commit

* added ID check to ensure connection

* wip commit

* model id check implemented

* addfooterbutton now accepts events

* wip commit

* message explaining check

* temporary change

* connectionManagementService restored

* Revert "connectionManagementService restored"

This reverts commit 9704a63184a06a33bee2648ef0a899229d117cc0.

* formatting test

* editConnection promise testing

* edit existing connection command added

* WIP Connection Edit

* disconnect added to editConnection promise

* WIP on editExistingConnection

* changed isEdit to true

* Amir/edit connection (#10112)

* Get edit connection working

* Delete unused code

* check for isEdit as well

* connection tree test added

* WIP connection management tests

* comment out test to find out what's wrong

* fix for one error

* added note about test skipped

* changed signature of saveprofile

* saveprofile fixed

* wrote working test

* added additional test

* changed message

* Fixes made

* fix for matcher

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-05-05 13:21:05 -07:00
Kim Santiago
5fe72d318b Fix toolbar overflow focus not always going to first element in overflow (#10246)
* fix overflow focus not always going to first element in overflow

* adding tests
2020-05-05 13:02:06 -07:00
Amir Omidi
5105694fb3 Render before adding to the splitView (#10261) 2020-05-05 12:05:12 -07:00
Jeff Trimmer
53cb97af9b Add Always Encrypted Parameterization Option (#10182) 2020-05-05 12:01:01 -07:00
Leila Lali
a7c4a259ad Fixed an issue with setting the default location in package management (#10263) 2020-05-04 17:00:51 -07:00
Benjin Dubishar
5498c1c3a9 Knobs for unit-testing extensions (#10178)
Converted `test-extensions-unit.bat` to javascript to add a small QoL improvement that I think people will find useful: specifying which extension(s) you want to run tests for instead of commenting out lines of a script.

In addition to existing behavior being mostly preserved (node test-extensions-unit.js defaults to running all unit tests), you can specify one or more:

```
node test-extensions-unit.js sql-database-projects
node test-extensions-unit.js sql-database-projects schema-compare
```
2020-05-04 13:07:52 -07:00
Anthony Dresser
3e5b7fd3e6 Fix errors in message panel (#10257)
* fix errors in message panel

* fix compile
2020-05-02 19:37:42 -07:00
Udeesha Gautam
e3873828e0 Feature/dotnet popup (#10231)
* Add a pop up for dotnet install if not present

* Second option of default location for mac/linux

* correcting the pop up message

* remove extra dependency

* updating as per PR comments
2020-05-02 16:29:36 -07:00
Karl Burtram
db57eb9581 Fix hygine error (#10255) 2020-05-02 12:04:08 -07:00
Karl Burtram
8d46aef40c Port/welcomeflag (#10254)
* Put new welcome page behind preview features flag (#10099)

* import correct welcome page (#10117)

Co-authored-by: Anthony Dresser <andresse@microsoft.com>
2020-05-02 10:27:47 -07:00
Alan Ren
cb2a02d82c add option to hide the widget title (#10222)
* extend widget container

* remove title

* Revert "extend widget container"

* showTitle option

* rename to showHeader

* comments and refactoring
2020-05-01 16:58:30 -07:00
Chris LaFreniere
52abcd68af Tweak cell margin (#10247) 2020-05-01 14:12:41 -07:00
Anthony Dresser
5cb9b36329 Add tests for statusmodeselect (#10235)
* add tests for statusmodeselect

* add another test
2020-05-01 13:52:20 -07:00
Charles Gagnon
13d2ce7d5d Update coveralls task (#10241)
* Update coveralls task

* Undo sql change
2020-05-01 11:37:37 -07:00
Aasim Khan
64c375a12d Import Flat File Wizard - hangs at table schema (#10216)
* Using azure sql compatible query

* Included changes requested in PR for azure specific DBs and then fixed issue #9361 for contained databases.

* Made some changes mentioned in the PR
- Converted let to const
- Logging the error
2020-05-01 10:53:02 -07:00
Kim Santiago
8449888db8 fix overflow menu disappearing (#10236) 2020-05-01 10:19:33 -07:00
Anthony Dresser
cebbd04d10 Merge from vscode 2a36b7d0d527bf408bae4f96b8386db9d9455113 (#10237) 2020-04-30 23:41:35 -07:00
Cory Rivera
d7a425239b Only reveal items in the books viewlet if the viewlet is visible. (#10234) 2020-04-30 20:10:27 -07:00
Anthony Dresser
b4deca3b4b update token for copycat (#10232) 2020-04-30 14:25:11 -07:00
Anthony Dresser
92e0b2e130 Rework message panel (#10177)
* wip

* fix compile

* fix look

* fix hygiene errors

* add back functionality

* fix some issues with accessibility

* proper dispose template

* handle state properly in message panel
2020-04-30 13:49:18 -07:00
dependabot[bot]
28230b67d4 Bump jquery from 3.4.0 to 3.5.0 (#10227)
* Bump jquery from 3.4.0 to 3.5.0

Bumps [jquery](https://github.com/jquery/jquery) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.4.0...3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Update remote

* Update remote web

* Update jquery again

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-04-30 13:17:52 -07:00
Leila Lali
af36d79c53 MLS - Setting the right url to install sqlmlutils from for MAC and Linux (#9962)
* Setting the right url to install sqlmlutils from for MAC and Linux
2020-04-30 12:09:05 -07:00
Alan Ren
0999060827 bump sts (#10225) 2020-04-30 10:51:46 -07:00
Charles Gagnon
0e6117f044 Only filter preview extensions when preview feat disabled (#10212)
* Filter database preview tabs

* Update comment

* Revert changes - just update comment
2020-04-30 10:46:16 -07:00
Karl Burtram
fdc21bfb9e Changelog for 1.17.1 (#10224) 2020-04-30 10:18:29 -07:00
1084 changed files with 38559 additions and 11736 deletions

View File

@@ -8,11 +8,13 @@
Area - Acquisition: [],
Area - Azure: [],
Area - Backup\Restore: [],
Area - Big Data Cluster: [ charles-gagnon ],
Area - Charting\Insights: [],
Area - Connection: [ charles-gagnon ],
Area - Connection: [ ],
Area - DacFX: [],
Area - Dashboard: [],
Area - Data Explorer: [],
Area - Data Virtualization: [ charles-gagnon ],
Area - Edit Data: [],
Area - Extensibility: [],
Area - External Table: [],
@@ -22,6 +24,7 @@
Area - Notebooks: [ chlafreniere ],
Area - Performance: [],
Area - Query Editor: [ anthonydresser ],
Area - Query History: [ charles-gagnon ],
Area - Query Plan: [],
Area - Reliability: [],
Area - Resource Deployment: [],

View File

@@ -51,16 +51,14 @@ jobs:
name: Run Unit Tests (Electron)
- run: DISPLAY=:10 ./scripts/test-extensions-unit.sh
name: Run Extension Unit Tests (Electron)
# {{SQL CARBON EDIT}} Add coveralls. We merge first to get around issue where parallel builds weren't being combined correctly
- run: |
mkdir .build/coverage-combined
cat .build/coverage-single/lcov.info ./extensions/admin-tool-ext-win/coverage/lcov.info ./extensions/agent/coverage/lcov.info ./extensions/azurecore/coverage/lcov.info ./extensions/cms/coverage/lcov.info ./extensions/dacpac/coverage/lcov.info ./extensions/schema-compare/coverage/lcov.info ./extensions/notebook/coverage/lcov.info ./extensions/resource-deployment/coverage/lcov.info ./extensions/machine-learning/coverage/lcov.info > .build/coverage-combined/lcov.info
name: Merge coverage reports
# {{SQL CARBON EDIT}} Add coveralls. We merge first to get around issue where parallel builds weren't being combined correctly
- run: node test/combineCoverage
name: Combine code coverage files
- name: Upload Code Coverage
uses: coverallsapp/github-action@v1.0.1
uses: coverallsapp/github-action@v1.1.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: '.build/coverage-combined/lcov.info'
path-to-lcov: 'test/coverage/lcov.info'
# Fails with cryptic error (e.g. https://github.com/microsoft/vscode/pull/90292/checks?check_run_id=433681926#step:13:9)
# - run: DISPLAY=:10 yarn test-browser --browser chromium

View File

@@ -19,5 +19,6 @@ jobs:
- name: Run CopyCat
uses: ./actions/build/actions/copycat
with:
token: ${{secrets.TRIAGE_PAT}}
owner: anthonydresser
repo: testissues

View File

@@ -1,6 +0,0 @@
{
"useTabs": true,
"printWidth": 120,
"semi": true,
"singleQuote": true
}

21
.vscode/launch.json vendored
View File

@@ -69,7 +69,7 @@
}
},
{
"type": "chrome",
"type": "pwa-chrome",
"request": "attach",
"name": "Attach to azuredatastudio",
"timeout": 50000,
@@ -145,6 +145,25 @@
"order": 2
}
},
{
"type": "node",
"request": "launch",
"name": "Main Process",
"runtimeExecutable": "${workspaceFolder}/scripts/code.sh",
"windows": {
"runtimeExecutable": "${workspaceFolder}/scripts/code.bat",
},
"runtimeArgs": [
"--no-cached-data"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"presentation": {
"group": "1_vscode",
"order": 1
}
},
{
"type": "chrome",
"request": "launch",

View File

@@ -2,7 +2,24 @@
# Flags: CaseSensitive WordMatch
# ContextLines: 2
10 results - 4 files
16 results - 5 files
src/vs/base/browser/dom.ts:
81 };
82
83: /** @deprecated ES6 - use classList*/
84 export const hasClass: (node: HTMLElement | SVGElement, className: string) => boolean = _classList.hasClass.bind(_classList);
85: /** @deprecated ES6 - use classList*/
86 export const addClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.addClass.bind(_classList);
87: /** @deprecated ES6 - use classList*/
88 export const addClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.addClasses.bind(_classList);
89: /** @deprecated ES6 - use classList*/
90 export const removeClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.removeClass.bind(_classList);
91: /** @deprecated ES6 - use classList*/
92 export const removeClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.removeClasses.bind(_classList);
93: /** @deprecated ES6 - use classList*/
94 export const toggleClass: (node: HTMLElement | SVGElement, className: string, shouldHaveIt?: boolean) => void = _classList.toggleClass.bind(_classList);
95
src/vs/base/common/arrays.ts:
401

View File

@@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
target "7.2.2"
target "7.2.4"
runtime "electron"

View File

@@ -1,5 +1,32 @@
# Change Log
## Version 1.18.1
* Release date: May 27, 2020
* Release status: General Availability
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10538
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10537
## Version 1.18.0
* Release date: May 20, 2020
* Release status: General Availability
* Announcing Redgate SQL Prompt extension - This extension lets you manage formatting styles directly within Azure Data Studio, so you can create and edit your styles without leaving the IDE.
* Announcing the new machine learning extension. This extension enables you to:
* Manage Python and R packages with SQL Server machine learning services with Azure Data Studio.
* Use ONNX model to make predictions in Azure SQL Edge.
* View ONNX models in an Azure SQL Edge database.
* Import ONNX models from a file or Azure Machine Learning into Azure SQL Edge database.
* Create a notebook to run experiments.
* New notebook features:
* Added new Python dependencies wizard
* Improvements to the notebook markdown toolbar
* Added support for parameterization for Always Encrypted - Allows you to run queries that insert, update or filter by encrypted database columns.
* Bug fixes
## Version 1.17.1
* Release date: April 29, 2020
* Release status: General Availability
* Hotfix for https://github.com/microsoft/azuredatastudio/milestone/54?closed=1
## Version 1.17.0
* Release date: April 27, 2020
* Release status: General Availability

View File

@@ -60,9 +60,7 @@ please see the document [How to Contribute](https://github.com/Microsoft/azureda
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Localization
Azure Data Studio localization is now open for community contributions. You can contribute to localization for both software and docs. https://aka.ms/SQLOpsStudioLoc
Localization is now opened for 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). Help us make Azure Data Studio available in your language!
Azure Data Studio is localized into 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). The language packs are available in the Extension Manager marketplace. Simply, search for the specific language using the extension marketplace and install. Once you install the selected language, Azure Data Studio will prompt you to restart with the new language.
## Privacy Statement
The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement) describes the privacy statement of this software.
@@ -122,17 +120,6 @@ We would like to thank all our users who raised issues, and in particular the fo
* SebastianPfliegel `Remove sqlExtensionHelp (#312)`
* olljanat for `Implemented npm version check (#314)`
* Adam Machanic for helping with the `whoisactive` extension
* All community localization contributors:
* French: Adrien Clerbois, ANAS BELABBES, Antoine Griffard, Arian Papillon, Eric Macarez, Eric Van Thorre, Jérémy LANDON, Matthias GROSPERRIN, Maxime COQUEREL, Olivier Guinart, thierry DEMAN-BARCELÒ, Thomas Potier
* Italian: Aldo Donetti, Alessandro Alpi, Andrea Dottor, Bruni Luca, Gianluca Hotz, Luca Nardi, Luigi Bruno, Marco Dal Pino, Mirco Vanini, Pasquale Ceglie, Riccardo Cappello, Sergio Govoni, Stefano Demiliani
* German: Anna Henke-Gunvaldson, Ben Weissman, David Ullmer, J.M. ., Kai Modo, Konstantin Staschill, Kostja Klein, Lennart Trunk, Markus Ehrenmüller-Jensen, Mascha Kroenlein, Matthias Knoll, Mourad Louha, Thomas Hütter, Wolfgang Straßer
* Spanish: Alberto Poblacion, Andy Gonzalez, Carlos Mendible, Christian Araujo, Daniel D, Eickhel Mendoza, Ernesto Cardenas, Ivan Toledo Ivanovic, Fran Diaz, JESUS GIL, Jorge Serrano Pérez, José Saturnino Pimentel Juárez, Mauricio Hidalgo, Pablo Iglesias, Rikhardo Estrada Rdez, Thierry DEMAN, YOLANDA CUESTA ALTIERI
* Japanese: Fujio Kojima, Kazushi KAMEGAWA, Masayoshi Yamada, Masayuki Ozawa, Seiji Momoto, Takashi Kanai, Takayoshi Tanaka, Yoshihisa Ozaki, 庄垣内治
* Chinese (simplified): DAN YE, Joel Yang, Lynne Dong, RyanYu Zhang, Sheng Jiang, Wei Zhang, Zhiliang Xu
* Chinese (Traditional): Bruce Chen, Chiayi Yen, Kevin Yang, Winnie Lin, 保哥 Will, 謝政廷
* Korean: Do-Kyun Kim, Evelyn Kim, Helen Jung, Hong Jmee, jeongwoo choi, Jun Hyoung Lee, Jungsun Kim정선, Justin Yoo, Kavrith mucha, Kiwoong Youm, MinGyu Ju, MVP_JUNO BEA, Sejun Kim, SOONMAN KWON, sung man ko, Yeongrak Choi, younggun kim, Youngjae Kim, 소영 이
* Russian: Andrey Veselov, Anton Fontanov, Anton Savin, Elena Ostrovskaia, Igor Babichev, Maxim Zelensky, Rodion Fedechkin, Tasha T, Vladimir Zyryanov
* Portuguese Brazil: Daniel de Sousa, Diogo Duarte, Douglas Correa, Douglas Eccker, José Emanuel Mendes, Marcelo Fernandes, Marcondes Alexandre, Roberto Fonseca, Rodrigo Crespi
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/ThirdPartyNotices.txt)
@@ -142,10 +129,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [Source EULA](LICENSE.txt).
[win-user]: https://go.microsoft.com/fwlink/?linkid=2127556
[win-system]: https://go.microsoft.com/fwlink/?linkid=2127555
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2127476
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2127554
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2127553
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2127552
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2127551
[win-user]: https://go.microsoft.com/fwlink/?linkid=2127522
[win-system]: https://go.microsoft.com/fwlink/?linkid=2127432
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2127716
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2127431
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2127523
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2127433
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2127524

View File

@@ -49,6 +49,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
node-fetch: https://github.com/bitinn/node-fetch
node-pty: https://github.com/Tyriar/node-pty
nsfw: https://github.com/Axosoft/nsfw
optimist: https://github.com/substack/node-optimist
primeng: https://github.com/primefaces/primeng
process-nextick-args: https://github.com/calvinmetcalf/process-nextick-args
pty.js: https://github.com/chjj/pty.js
@@ -72,6 +73,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
vscode-textmate: https://github.com/Microsoft/vscode-textmate
winreg: https://github.com/fresc81/node-winreg
xterm: https://github.com/sourcelair/xterm.js
yargs: https://github.com/yargs/yargs
yauzl: https://github.com/thejoshwolfe/yauzl
zone.js: https://www.npmjs.com/package/zone
@@ -1451,6 +1453,32 @@ SOFTWARE.
=========================================
END OF nsfw NOTICES AND INFORMATION
%% optimist NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright 2010 James Halliday (mail@substack.net)
This project is free software released under the MIT/X11 license:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=========================================
END OF optimist NOTICES AND INFORMATION
%% primeng NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
@@ -2222,6 +2250,32 @@ THE SOFTWARE.
=========================================
END OF xterm NOTICES AND INFORMATION
%% yargs NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=========================================
END OF yargs NOTICES AND INFORMATION
%% yauzl NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)

View File

@@ -2,54 +2,76 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
yarn electron x64
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: | # {{SQL CARBON EDIT}} add step
yarn strict-vscode
displayName: Run Strict Null Check.
# - script: | {{SQL CARBON EDIT}} remove step
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
# - script: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- script: |
./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser webkit --browser firefox
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
# ./scripts/test-integration.sh --tfs "Integration Tests"
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# inputs:
# artifactName: crash-dump-macos
# targetPath: .build/crashes
# displayName: 'Publish Crash Reports'
# condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -2,13 +2,5 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>

View File

@@ -152,15 +152,29 @@ steps:
displayName: Run smoke tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-macos
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
condition: succeededOrFailed()
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
HELPER_APP_NAME="`echo $APP_NAME | sed -e 's/^Visual Studio //;s/\.app$//'`"
APP_FRAMEWORK_PATH="$APP_ROOT/$APP_NAME/Contents/Frameworks"
security create-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
security default-keychain -s $(agent.tempdirectory)/buildagent.keychain
security unlock-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
echo "$(macos-developer-certificate)" | base64 -D > $(agent.tempdirectory)/cert.p12
security import $(agent.tempdirectory)/cert.p12 -k $(agent.tempdirectory)/buildagent.keychain -P "$(macos-developer-certificate-key)" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd $(agent.tempdirectory)/buildagent.keychain
codesign -s 99FM488X57 --deep --force --options runtime --entitlements build/azure-pipelines/darwin/entitlements.plist $(agent.builddirectory)/VSCode-darwin/*.app
codesign -s 99FM488X57 --deep --force --options runtime --entitlements build/azure-pipelines/darwin/entitlements.plist "$APP_ROOT"/*.app
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-gpu-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (GPU).app"
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-plugin-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (Plugin).app"
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-renderer-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (Renderer).app"
displayName: Set Hardened Entitlements
- script: |

View File

@@ -104,24 +104,37 @@ steps:
- script: |
set -e
./scripts/test.sh --build --coverage --reporter mocha-junit-reporter
./scripts/test.sh --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests"
displayName: Run unit tests
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-darwin" \
./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
# - script: |
# set -e
# VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
# yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
# displayName: Run smoke tests (Browser)
# condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e

View File

@@ -65,17 +65,17 @@ steps:
node build/azure-pipelines/mixin
displayName: Mix in quality
- task: DownloadPipelineArtifact@2
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
targetPath: '$(Build.SourcesDirectory)/.build'
downloadPath: '$(Build.SourcesDirectory)/.build'
artifactName: drop
itemPattern: |
drop/linux/server/*.tar.gz
- script: |
set -e
for f in $(Build.SourcesDirectory)/.build/linux/server/*.tar.gz
for f in $(Build.SourcesDirectory)/.build/drop/linux/server/*.tar.gz
do
tar -C $(agent.builddirectory) -zxvf $f
rm $f

View File

@@ -7,57 +7,80 @@ steps:
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
yarn electron x64
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: | # {{SQL CARBON EDIT}} add strict null check
yarn strict-vscode
displayName: Run Strict Null Check
# - script: | {{SQL CARBON EDIT}} remove monaco editor checks
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
# - script: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- script: |
DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 yarn test-browser --browser chromium
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# inputs:
# artifactName: crash-dump-linux
# targetPath: .build/crashes
# displayName: 'Publish Crash Reports'
# condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -140,6 +140,13 @@ steps:
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-linux
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
condition: succeededOrFailed()
- script: |
set -e
yarn gulp "vscode-linux-x64-build-deb"

View File

@@ -94,12 +94,6 @@ steps:
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
- script: |
set -e
service xvfb start
displayName: Start xvfb
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn gulp package-rebuild-extensions
@@ -107,6 +101,31 @@ steps:
yarn gulp package-external-extensions
displayName: Package External extensions
- script: |
set -e
service xvfb start
displayName: Start xvfb
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests"
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-linux-x64
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-linux-x64" \
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-linux-x64

View File

@@ -17,7 +17,7 @@ jobs:
- template: sql-product-compile.yml
- job: macOS
condition: eq(variables['VSCODE_BUILD_MACOS'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
pool:
vmImage: macOS-latest
dependsOn:
@@ -27,7 +27,7 @@ jobs:
timeoutInMinutes: 180
- job: Linux
condition: eq(variables['VSCODE_BUILD_LINUX'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: linux-x64
@@ -48,7 +48,7 @@ jobs:
- template: docker/sql-product-build-docker.yml
- job: Windows
condition: eq(variables['VSCODE_BUILD_WIN32'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
pool:
vmImage: VS2017-Win2016
dependsOn:

View File

@@ -16,12 +16,10 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: "1.x"
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -56,26 +54,25 @@ steps:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- script: |
set -e
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), eq(variables['CacheRestored'], 'true'))
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
# Mixin must run before optimize, because the CSS loader will
# inline small SVGs
@@ -113,7 +110,6 @@ steps:
node build/azure-pipelines/common/copyArtifacts.js
displayName: Write Version Information
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'

View File

@@ -2,59 +2,83 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
versionSpec: "1.x"
- task: UsePythonVersion@0
inputs:
versionSpec: '2.x'
addToPath: true
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- powershell: |
yarn --frozen-lockfile
env:
CHILD_CONCURRENCY: "1"
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- powershell: |
yarn electron
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: | # {{SQL CARBON EDIT}} add step
yarn strict-vscode
displayName: Run Strict Null Check
# - powershell: | {{SQL CARBON EDIT}} remove step
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- powershell: |
yarn compile
displayName: Compile Sources
# - powershell: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- powershell: |
.\scripts\test.bat --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
# - powershell: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser firefox
# displayName: Run Unit Tests (Browser)
# - powershell: | {{SQL CARBON EDIT}} disable
# .\scripts\test-integration.bat --tfs "Integration Tests"
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# displayName: 'Publish Crash Reports'
# inputs:
# artifactName: crash-dump-windows
# targetPath: .build\crashes
# condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -149,6 +149,13 @@ steps:
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-windows-$(VSCODE_ARCH)
targetPath: .build\crashes
displayName: 'Publish Crash Reports'
condition: succeededOrFailed()
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'ESRP CodeSign'

View File

@@ -103,6 +103,27 @@ steps:
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
# - powershell: | @anthonydresser unit tests timeout never existing the node process
# . build/azure-pipelines/win32/exec.ps1
# $ErrorActionPreference = "Stop"
# exec { yarn electron x64 }
# exec { .\scripts\test.bat --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests" }
# displayName: Run unit tests (Electron)
# condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- powershell: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$AppRoot = "$(agent.builddirectory)\azuredatastudio-win32-x64"
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\azuredatastudio-reh-win32-x64"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"

View File

@@ -103,9 +103,11 @@ const indentationFilter = [
'!extensions/resource-deployment/notebooks/**',
'!extensions/mssql/notebooks/**',
'!extensions/integration-tests/testData/**',
'!extensions/arc/src/controller/generated/**',
'!extensions/sql-database-projects/resources/templates/*.xml',
'!extensions/sql-database-projects/src/test/baselines/*.xml',
'!extensions/sql-database-projects/src/test/baselines/*.json',
'!extensions/sql-database-projects/src/test/baselines/*.sqlproj',
'!extensions/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts',
'!extensions/big-data-cluster/src/bigDataCluster/controller/clusterApiGenerated2.ts',
'!resources/linux/snap/electron-launch'

View File

@@ -44,7 +44,7 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME_SHORT@@', product.nameShort))
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(replace('@@EXEC@@', `/usr/share/${product.applicationName}/${product.applicationName}`))
.pipe(replace('@@ICON@@', `/usr/share/pixmaps/${product.linuxIconName}.png`))
.pipe(replace('@@ICON@@', product.linuxIconName))
.pipe(replace('@@URLPROTOCOL@@', product.urlProtocol));
const appdata = gulp.src('resources/linux/code.appdata.xml', { base: '.' })

View File

@@ -198,6 +198,7 @@ const externalExtensions = [
// Any extension not included here will be installed by default.
'admin-tool-ext-win',
'agent',
'arc',
'import',
'profiler',
'admin-pack',
@@ -207,7 +208,8 @@ const externalExtensions = [
'query-history',
'liveshare',
'sql-database-projects',
'machine-learning'
'machine-learning',
'sql-assessment'
];
// extensions that require a rebuild since they have native parts
const rebuildExtensions = [

View File

@@ -233,6 +233,7 @@ const externalExtensions = [
// Any extension not included here will be installed by default.
'admin-tool-ext-win',
'agent',
'arc',
'import',
'profiler',
'admin-pack',
@@ -242,7 +243,8 @@ const externalExtensions = [
'query-history',
'liveshare',
'sql-database-projects',
'machine-learning'
'machine-learning',
'sql-assessment'
];
// extensions that require a rebuild since they have native parts

View File

@@ -430,6 +430,7 @@ function markNodes(languageService, options) {
|| ts.isIndexSignatureDeclaration(member)
|| ts.isCallSignatureDeclaration(member)
|| memberName === '[Symbol.iterator]'
|| memberName === '[Symbol.toStringTag]'
|| memberName === 'toJSON'
|| memberName === 'toString'
|| memberName === 'dispose' // TODO: keeping all `dispose` methods

View File

@@ -548,6 +548,7 @@ function markNodes(languageService: ts.LanguageService, options: ITreeShakingOpt
|| ts.isIndexSignatureDeclaration(member)
|| ts.isCallSignatureDeclaration(member)
|| memberName === '[Symbol.iterator]'
|| memberName === '[Symbol.toStringTag]'
|| memberName === 'toJSON'
|| memberName === 'toString'
|| memberName === 'dispose'// TODO: keeping all `dispose` methods
@@ -795,8 +796,8 @@ function getRealNodeSymbol(checker: ts.TypeChecker, node: ts.Node): [ts.Symbol |
let symbol = (
ts.isShorthandPropertyAssignment(node)
? checker.getShorthandAssignmentValueSymbol(node)
: checker.getSymbolAtLocation(node)
? checker.getShorthandAssignmentValueSymbol(node)
: checker.getSymbolAtLocation(node)
);
let importNode: ts.Declaration | null = null;

View File

@@ -48,7 +48,7 @@
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"terser": "4.3.8",
"typescript": "^3.9.0-dev.20200427",
"typescript": "^3.9.1-rc",
"vsce": "1.48.0",
"vscode-telemetry-extractor": "^1.5.4",
"xml2js": "^0.4.17"

View File

@@ -3462,10 +3462,10 @@ typescript@^3.0.1:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
typescript@^3.9.0-dev.20200427:
version "3.9.0-dev.20200427"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200427.tgz#e42d606d938575dfb7b0b66f04a31b5f0eb0be57"
integrity sha512-ja/GhL7BHT+VQZiLoYMGJt2CP1Pdr0EhYefv4LLw4tVooSuCDB8SDKT/i/HwsoPgQ4ZaYfg1vPl+1RhiO3bwJg==
typescript@^3.9.1-rc:
version "3.9.1-rc"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.1-rc.tgz#81d5a5a0a597e224b6e2af8dffb46524b2eaf5f3"
integrity sha512-+cPv8L2Vd4KidCotqi2wjegBZ5n47CDRUu/QiLVu2YbeXAz78hIfcai9ziBiNI6JTGTVwUqXRug2UZxDcxhvFw==
typical@^4.0.0:
version "4.0.0"

View File

@@ -60,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
"commitHash": "959e80cc53cbebf8eb1d62eb2d14fa8fd86b0394"
"commitHash": "0552e0d5de46ffa3b481d741f1db5c779e201565"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
"version": "7.2.2"
"version": "7.2.4"
},
{
"component": {

View File

@@ -6,10 +6,10 @@
"**/node_modules/**",
"**/test/**"
],
"includePid": false,
"reports": [
"cobertura",
"lcov"
"lcov",
"json"
],
"verbose": false,
"remapOptions": {

View File

@@ -85,7 +85,7 @@
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"should": "^13.2.3",
"vscodetestcover": "github:corivera/vscodetestcover#1.0.6"
"vscodetestcover": "^1.0.9"
},
"__metadata": {
"id": "41",

View File

@@ -935,9 +935,10 @@ vscode-nls@^3.2.1:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4"
integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw==
"vscodetestcover@github:corivera/vscodetestcover#1.0.6":
version "1.0.5"
resolved "https://codeload.github.com/corivera/vscodetestcover/tar.gz/14e0f2c46346b31bc1af2c590febeaf69a9112eb"
vscodetestcover@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.0.9.tgz#0191f403dd59ba1153fc57979e281e992ce63731"
integrity sha512-8z2961KF9Tuz5XdHAC6RMV3CrzAoUcfIK7wLYjLIXD4dbHIT7ceZMhoxToW1olyi3pFnThlS4lRXtx8Q5iyMMQ==
dependencies:
decache "^4.4.0"
glob "^7.1.2"

View File

@@ -8,7 +8,8 @@ basic functionality for the following.
* View Job History with job execution results
* Basic Job Control to start and stop jobs
<img src="https://user-images.githubusercontent.com/599935/39215738-d3a52580-47cd-11e8-9788-b290048c270e.png" alt="SQL Agent" style="width:800px;"/>
<img src="https://user-images.githubusercontent.com/6411451/82481964-f7b1a400-9a8a-11ea-8b25-2a6958a41e25.png" alt="SQL Agent" style="width:800px;"/>
## Code of Conduct

View File

@@ -6,10 +6,10 @@
"**/node_modules/**",
"**/test/**"
],
"includePid": false,
"reports": [
"cobertura",
"lcov"
"lcov",
"json"
],
"verbose": false,
"remapOptions": {

View File

@@ -90,7 +90,7 @@
"mocha-multi-reporters": "^1.1.7",
"should": "^13.2.1",
"typemoq": "^2.1.0",
"vscodetestcover": "github:corivera/vscodetestcover#1.0.6"
"vscodetestcover": "^1.0.9"
},
"__metadata": {
"id": "10",

View File

@@ -769,9 +769,10 @@ vscode-nls@^3.2.1:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4"
integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw==
"vscodetestcover@github:corivera/vscodetestcover#1.0.6":
version "1.0.5"
resolved "https://codeload.github.com/corivera/vscodetestcover/tar.gz/14e0f2c46346b31bc1af2c590febeaf69a9112eb"
vscodetestcover@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.0.9.tgz#0191f403dd59ba1153fc57979e281e992ce63731"
integrity sha512-8z2961KF9Tuz5XdHAC6RMV3CrzAoUcfIK7wLYjLIXD4dbHIT7ceZMhoxToW1olyi3pFnThlS4lRXtx8Q5iyMMQ==
dependencies:
decache "^4.4.0"
glob "^7.1.2"

1
extensions/arc/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.vsix

View File

@@ -0,0 +1,6 @@
.gitignore
src/**
out/**
extension.webpack.config.js
tsconfig.json
yarn.lock

17
extensions/arc/README.md Normal file
View File

@@ -0,0 +1,17 @@
# Microsoft Azure Arc Extension for Azure Data Studio
Welcome to Microsoft Azure Arc Extension for Azure Data Studio!
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Privacy Statement
The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement) describes the privacy statement of this software.
## License
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [Source EULA](https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/LICENSE.txt).

View File

@@ -0,0 +1,17 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
//@ts-check
'use strict';
const withDefaults = require('../shared.webpack.config');
module.exports = withDefaults({
context: __dirname,
entry: {
extension: './src/extension.ts'
}
});

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.999 7V8H7.99902V15H6.99902V8H-0.000976562V7H6.99902V0H7.99902V7H14.999Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 206 B

View File

@@ -0,0 +1,17 @@
<svg id="b82fda19-b66e-482f-99d7-d23ab8197f70" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
<defs>
<radialGradient id="b46a80d9-b426-4f30-a6c3-25ae6fc3fffb" cx="7.18" cy="9.5" r="7.38" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#76bc2d"/>
<stop offset="0.41" stop-color="#74b92c"/>
<stop offset="0.66" stop-color="#6fb12a"/>
<stop offset="0.88" stop-color="#66a227"/>
<stop offset="1" stop-color="#5e9624"/>
</radialGradient>
</defs>
<title>Icon-general-12</title>
<path d="M10,10.24a1,1,0,0,1-.31.79,1.49,1.49,0,0,1-.89.37V12H8.36v-.62a2.36,2.36,0,0,1-1.1-.28v-.81a1.8,1.8,0,0,0,.5.25,2.49,2.49,0,0,0,.6.14V9.64a2.42,2.42,0,0,1-.91-.53,1.15,1.15,0,0,1,.06-1.55,1.41,1.41,0,0,1,.85-.38V6.63h.43v.54a2.21,2.21,0,0,1,.92.2v.8a2.28,2.28,0,0,0-.92-.31V9a2.34,2.34,0,0,1,.92.54A1,1,0,0,1,10,10.24ZM8.36,8.81V7.88A.4.4,0,0,0,8,8.3c0,.21.13.38.4.51Zm.85,1.47c0-.19-.14-.34-.42-.47v.9c.28-.05.42-.19.42-.43Z" fill="#258277"/>
<path d="M16.54,9.49h-3.6a4.43,4.43,0,0,1-1.48,3.3l2.39,2.69a8,8,0,0,0,2.69-6" fill="#ffca00"/>
<path d="M8.52,13.93a4.43,4.43,0,0,1,0-8.86V1.49a8,8,0,0,0-8,8h0a8,8,0,0,0,8,8h0a8,8,0,0,0,5.34-2l-2.4-2.69A4.38,4.38,0,0,1,8.52,13.93Z" fill="url(#b46a80d9-b426-4f30-a6c3-25ae6fc3fffb)"/>
<path d="M8.15.48h0V4.64h0a5.09,5.09,0,0,1,5.17,5.18H17.5A9.34,9.34,0,0,0,8.15.48Z" fill="#ccc"/>
<path d="M13.34,9.82A5.13,5.13,0,0,0,8.28,4.64H8.15l.33.62a4.5,4.5,0,0,1,4.23,4.25Z" fill="#999"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1 @@
<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"> <g id="svg_1"> <polygon transform="rotate(90 12.967000007629395,8.000000000000002) " fill="#ffffff" points="7.549000024795532,-4.9200000166893005 5.464999999850988,-2.8359999656677246 16.300999641418457,8 5.464999999850988,18.836000442504883 7.549000024795532,20.920000076293945 20.4689998626709,8 " id="svg_2"/> <polygon transform="rotate(90 12.96700096130371,18.90800476074219) " fill="#ffffff" points="7.5490007400512695,5.988004416227341 5.465001106262207,8.07200500369072 16.301002502441406,18.908005446195602 5.465001106262207,29.744003981351852 7.5490007400512695,31.828003615140915 20.46900177001953,18.908005446195602 " id="svg_3"/> </g> </svg>

After

Width:  |  Height:  |  Size: 717 B

View File

@@ -0,0 +1 @@
<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"> <g transform="rotate(90 12.967000007629395,13.500000000000002) " id="svg_1"> <polygon id="svg_2" points="2.049,0.58 -0.035,2.664 10.801,13.5 -0.035,24.336 2.049,26.42 14.969,13.5 " fill="#231F20"/> <polygon id="svg_3" points="13.049,0.58 10.965,2.664 21.801,13.5 10.965,24.336 13.049,26.42 25.969,13.5 " fill="#231F20"/> </g> </svg>

After

Width:  |  Height:  |  Size: 398 B

View File

@@ -0,0 +1 @@
<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"> <g id="svg_1"> <polygon transform="rotate(-90 12.718243598937994,19.000000000000004) " fill="#ffffff" points="7.300243854522705,6.079999923706055 5.216243773698807,8.164000034332275 16.05224323272705,19 5.216243773698807,29.836000442504883 7.300243854522705,31.920000076293945 20.220243453979492,19 " id="svg_2"/> <polygon transform="rotate(-90 12.718244552612306,8.000000953674316) " fill="#ffffff" points="7.300244331359863,-4.919999122619629 5.216244697570801,-2.835999011993408 16.052245140075684,8.000000953674316 5.216244697570801,18.8360013961792 7.300244331359863,20.92000102996826 20.22024440765381,8.000000953674316 " id="svg_3"/> </g> </svg>

After

Width:  |  Height:  |  Size: 716 B

View File

@@ -0,0 +1 @@
<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"> <g transform="rotate(-90 12.967000007629396,13.5) " id="svg_1"> <polygon id="svg_2" points="2.049,0.58 -0.035,2.664 10.801,13.5 -0.035,24.336 2.049,26.42 14.969,13.5 " fill="#231F20"/> <polygon id="svg_3" points="13.049,0.58 10.965,2.664 21.801,13.5 10.965,24.336 13.049,26.42 25.969,13.5 " fill="#231F20"/> </g> </svg>

After

Width:  |  Height:  |  Size: 385 B

View File

@@ -0,0 +1,4 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.9 25.5L19.1 17H12.75V8.5H9.75C7.85 8.5 6.55 10.2 6.35 12.75H0V21.25H6.4C6.85 23.6 7.9 25.5 9.8 25.5H18.9Z" fill="#59B4D9"/>
<path d="M14.8999 8.5V14.9H21.2999V25.5H23.4499C23.8499 25.5 24.0999 25.5 24.4999 25.3C25.7999 24.9 26.8499 23.15 27.2499 21.25H33.9999V12.75H27.1999C26.7999 10.4 25.2999 8.5 23.3499 8.5H14.8999Z" fill="#3999C6"/>
</svg>

After

Width:  |  Height:  |  Size: 454 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 6.3V16H5V13H1V0H7.7L10.7 3H11.7L15 6.3ZM5 3H9.3L7.3 1H2V12H5V3ZM14 7H11V4H6V15H14V7ZM12 6H13.3L12 4.7V6Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 239 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.5 3.0001H13.5V14.5001C13.5146 14.7052 13.4803 14.9108 13.4 15.1001L13.1 15.6001L12.6 15.9001H3.4L2.9 15.6001L2.6 15.1001C2.51969 14.9108 2.48542 14.7052 2.5 14.5001V3.0001H1.5V2.0001H5.5V1.0001C5.48504 0.859138 5.52046 0.717432 5.6 0.600098L5.8 0.300098L6.1 0.100098H9.9L10.2 0.300098L10.4 0.600098C10.4795 0.717432 10.515 0.859138 10.5 1.0001V2.0001H14.5V3.0001ZM12.5 3.0001H3.5V14.5001C3.48504 14.6411 3.52046 14.7828 3.6 14.9001H12.4C12.4795 14.7828 12.515 14.6411 12.5 14.5001V3.0001ZM6.5 13.0001H5.5V5.0001H6.5V13.0001ZM6.5 2.0001H9.5V1.0001H6.5V2.0001ZM8.5 13.0001H7.5V5.0001H8.5V13.0001ZM10.5 13.0001H9.5V5.0001H10.5V13.0001Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 767 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 2.62C15.9975 2.96301 15.9296 3.3024 15.8 3.62C15.6698 3.94212 15.476 4.23464 15.23 4.48L5 14.77L0 16L1.23 11.05L11.52 0.77C11.7654 0.524034 12.0579 0.330158 12.38 0.2C12.6976 0.0704162 13.037 0.00253902 13.38 0C13.7242 0.000976246 14.0645 0.0724452 14.38 0.21C14.6919 0.338295 14.9743 0.528845 15.21 0.77C15.4479 1.00841 15.638 1.29014 15.77 1.6C15.9171 1.92018 15.9955 2.26766 16 2.62ZM1.38 14.62L4 14C3.94126 13.7636 3.85395 13.5353 3.74 13.32C3.62299 13.1141 3.48201 12.9228 3.32 12.75C3.14724 12.588 2.95591 12.447 2.75 12.33C2.51363 12.2036 2.26139 12.1094 2 12.05L1.38 14.62ZM2.55 11.16C3.0852 11.3342 3.57163 11.6324 3.96961 12.0304C4.36759 12.4284 4.66583 12.9148 4.84 13.45L13.29 5L11 2.71L2.55 11.16ZM14 4.29L14.38 3.92C14.4943 3.80702 14.6012 3.68677 14.7 3.56C14.789 3.42875 14.8628 3.28786 14.92 3.14C14.9755 2.97236 15.0026 2.79659 15 2.62C15.0032 2.40625 14.9588 2.19445 14.87 2C14.7902 1.80451 14.6711 1.62751 14.52 1.48C14.3725 1.32892 14.1955 1.20978 14 1.13C13.8055 1.04118 13.5938 0.996774 13.38 1C13.2034 0.997418 13.0276 1.02446 12.86 1.08C12.7121 1.13724 12.5712 1.21105 12.44 1.3C12.3108 1.39589 12.1904 1.50297 12.08 1.62L11.71 2L14 4.29Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,3 @@
<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.8002 -8.11447e-06C12.3474 0.00189106 12.8896 0.103554 13.4002 0.299992L14.8002 1.19999L15.7002 2.59999C15.9043 3.14328 16.0061 3.71966 16.0002 4.29999C15.9983 4.84713 15.8967 5.38933 15.7002 5.89999C15.4966 6.42202 15.1906 6.89803 14.8002 7.29999L8.00024 14L1.20024 7.29999C0.809851 6.89803 0.503844 6.42202 0.300236 5.89999C0.103798 5.38933 0.0021352 4.84713 0.000236026 4.29999C-0.00557996 3.71966 0.0961354 3.14328 0.300236 2.59999L1.20024 1.19999L2.60024 0.299992C3.14352 0.0958913 3.71991 -0.0058241 4.30024 -8.11447e-06H5.40024L6.30024 0.499992C6.64198 0.628901 6.9498 0.834113 7.20024 1.09999L8.00024 1.99999L8.80024 1.19999C9.05067 0.934113 9.35849 0.728901 9.70024 0.599992L10.6002 0.0999919L11.8002 -8.11447e-06ZM14.0002 6.49999C14.3492 6.24177 14.6249 5.89713 14.8002 5.49999C14.9155 5.10962 14.9827 4.70664 15.0002 4.29999C15.0064 3.84882 14.9035 3.40282 14.7002 2.99999C14.5855 2.6224 14.3794 2.27893 14.1002 1.99999C13.799 1.67702 13.4204 1.43611 13.0002 1.29999L11.8002 0.999992L10.6002 1.19999L9.60024 1.79999L8.80024 2.49999L8.00024 3.39999L7.20024 2.59999L6.30024 1.79999L5.40024 1.19999L4.30024 0.999992C3.84906 0.993784 3.40307 1.09671 3.00024 1.29999C2.60363 1.4394 2.23217 1.64201 1.90024 1.89999C1.64226 2.23192 1.43964 2.60338 1.30024 2.99999C1.09695 3.40282 0.994028 3.84882 1.00024 4.29999C1.01781 4.70664 1.08497 5.10962 1.20024 5.49999C1.37556 5.89713 1.65127 6.24177 2.00024 6.49999L8.00024 12.6L14.0002 6.49999Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,23 @@
<svg id="e561869b-c34b-48c3-a0e3-042ce22ae6c3" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
<defs>
<linearGradient id="e78d5bd2-2af6-4751-8b3e-4bbc0400e30b" x1="11.13" y1="10.95" x2="11.13" y2="1.21" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#0078d4"/>
<stop offset="0.16" stop-color="#1380da"/>
<stop offset="0.53" stop-color="#3c91e5"/>
<stop offset="0.82" stop-color="#559cec"/>
<stop offset="1" stop-color="#5ea0ef"/>
</linearGradient>
<linearGradient id="b7bc0491-3dd3-430b-9796-b05c5a14606e" x1="7.06" y1="16.79" x2="7.06" y2="6.78" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#198ab3"/>
<stop offset="0.13" stop-color="#21a0c7"/>
<stop offset="0.31" stop-color="#28b7db"/>
<stop offset="0.5" stop-color="#2ec7ea"/>
<stop offset="0.72" stop-color="#31d1f2"/>
<stop offset="1" stop-color="#32d4f5"/>
</linearGradient>
</defs>
<title>Icon-migrate-282</title>
<path d="M18,7.9a3.09,3.09,0,0,0-2.68-3,3.89,3.89,0,0,0-4-3.72A4,4,0,0,0,7.5,3.81,3.68,3.68,0,0,0,4.26,7.36,3.74,3.74,0,0,0,8.13,11l.34,0h6.26l.17,0A3.13,3.13,0,0,0,18,7.9Z" fill="url(#e78d5bd2-2af6-4751-8b3e-4bbc0400e30b)"/>
<path d="M14.39,5.22,12.56,3.44c-.2-.2-.37-.13-.37.18v.8a.22.22,0,0,1-.23.22c-1.18,0-4.47.31-4.59,4.81a.23.23,0,0,0,.23.23H8.77A.23.23,0,0,0,9,9.43,2.76,2.76,0,0,1,12,6.1a.23.23,0,0,1,.23.23v.74c0,.37.12.43.37.18L14.39,5.6A.23.23,0,0,0,14.39,5.22Z" fill="#fff"/>
<path d="M14.12,13.66a3.17,3.17,0,0,0-2.75-3.05A4,4,0,0,0,7.25,6.78,4.1,4.1,0,0,0,3.33,9.46,3.78,3.78,0,0,0,0,13.1a3.84,3.84,0,0,0,4,3.69h6.78a.47.47,0,0,0,.17,0A3.21,3.21,0,0,0,14.12,13.66Z" fill="url(#b7bc0491-3dd3-430b-9796-b05c5a14606e)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 0V13H13V16H0V3H3V0H16ZM15 12V1H4V3H6V4H1V15H12V10H13V12H15ZM7.35156 9.35156L6.64844 8.64844L11.2891 4H8V3H13V8H12V4.71094L7.35156 9.35156Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 273 B

View File

@@ -0,0 +1 @@
<svg id="fc890127-728b-4ac0-b5da-86cdfc191e86" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><defs><linearGradient id="a28dee20-4c71-46b5-b957-804c67da725a" x1="2.44" y1="10.67" x2="15.27" y2="10.67" gradientTransform="translate(0.14 -0.5) rotate(-0.01)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1"/><stop offset="0.07" stop-color="#0060a9"/><stop offset="0.36" stop-color="#0071c8"/><stop offset="0.52" stop-color="#0078d4"/><stop offset="0.64" stop-color="#0074cd"/><stop offset="0.82" stop-color="#006abb"/><stop offset="1" stop-color="#005ba1"/></linearGradient></defs><title>Icon-databases-131</title><path d="M9,5.14c-3.54,0-6.41-1-6.41-2.32V15.18c0,1.27,2.82,2.3,6.32,2.32H9c3.54,0,6.41-1,6.41-2.32V2.82C15.41,4.1,12.54,5.14,9,5.14Z" fill="url(#a28dee20-4c71-46b5-b957-804c67da725a)"/><path d="M15.41,2.82c0,1.28-2.87,2.32-6.41,2.32s-6.41-1-6.41-2.32S5.46.5,9,.5s6.41,1,6.41,2.32" fill="#e8e8e8"/><path d="M13.91,2.63c0,.82-2.2,1.48-4.91,1.48S4.08,3.45,4.08,2.64,6.28,1.16,9,1.16s4.91.66,4.91,1.47" fill="#50e6ff"/><path d="M9,3a11.65,11.65,0,0,0-3.9.57A11.53,11.53,0,0,0,9,4.11a11.47,11.47,0,0,0,3.89-.58A11.93,11.93,0,0,0,9,3Z" fill="#198ab3"/><path d="M12,9c0,.08,0,.24,0,.42a5.12,5.12,0,0,0-.08.63c0,.12,0,.3.05.46s0,.27,0,.36a1.68,1.68,0,0,1-.25.86.43.43,0,0,0,0,.07l.1.12a10.55,10.55,0,0,0,1.06-2.38h0c.28-.95.31-1.63.09-1.92a2.58,2.58,0,0,0-2.68-.86,3.29,3.29,0,0,1,.91.67A2.28,2.28,0,0,1,12,9Zm-.31.08a1.15,1.15,0,0,0-.79.09c-.29.18-.2.55,0,1a7.77,7.77,0,0,0,.35.85l.09.16h0c.05.08.08.15.11.2l.08.13a1.28,1.28,0,0,0,.18-.65,2.86,2.86,0,0,0,0-.33c0-.17,0-.36-.05-.49a6.1,6.1,0,0,1,.08-.69C11.71,9.24,11.72,9.13,11.73,9.05Zm-.3.41a.4.4,0,0,1-.18.1h0a.33.33,0,0,1-.14,0A.23.23,0,0,1,11,9.4h0c0-.07.11-.13.24-.15h.19s.09,0,.09.08A.2.2,0,0,1,11.43,9.46Zm-4.69.89c0-.07,0-.13,0-.17a1,1,0,0,0,0-.17,5.55,5.55,0,0,1,0-1A5.22,5.22,0,0,1,7,7.94,2.41,2.41,0,0,1,7.58,7,4.78,4.78,0,0,0,6.23,6.8a1.87,1.87,0,0,0-1.1.3A2,2,0,0,0,4.5,8.92,12.27,12.27,0,0,0,5,11.16c.34,1.14.73,1.84,1.07,1.95h0c.15.05.31,0,.47-.21.28-.34.54-.63.69-.8A1.88,1.88,0,0,1,6.74,10.35Zm.26.4a2.18,2.18,0,0,0,.06.56,1.5,1.5,0,0,0,.26.44,1.07,1.07,0,0,0,.35.25,1.09,1.09,0,0,0,.39.08c0-.17.14-.38.23-.6a4.35,4.35,0,0,0,.21-.59,6.61,6.61,0,0,0,0-1.11c0-.09,0-.19-.06-.3a.45.45,0,0,0-.12-.27l0,0A.66.66,0,0,0,8,9.08H7.8a1.56,1.56,0,0,0-.48.14A2,2,0,0,0,7,9.41v.11c0,.2,0,.41,0,.61v0a.86.86,0,0,1,0,.15l0,.39H7Zm.66-1.34,0,0a.46.46,0,0,1,.28,0,.6.6,0,0,1,.19.06c.09,0,.1.11.09.14h0a.37.37,0,0,1-.12.13A.3.3,0,0,1,8,9.73h0a.34.34,0,0,1-.28-.28Zm.74,3a.23.23,0,0,0-.13.06l-.14.17c-.17.21-.24.28-.73.38a.52.52,0,0,0-.26.1.58.58,0,0,0,.24.11,1.18,1.18,0,0,0,.72,0A1.7,1.7,0,0,0,8.45,13a.61.61,0,0,0,.2-.31.36.36,0,0,0-.1-.28A.15.15,0,0,0,8.4,12.39Zm4.61,0a1.63,1.63,0,0,1-1.13,0,.22.22,0,0,0-.14,0,.3.3,0,0,0-.17.14,1.09,1.09,0,0,0,0,.31,1.8,1.8,0,0,0,1.1-.1,1.36,1.36,0,0,0,.48-.34Zm-2.4-2.14c-.14-.41-.34-1,.18-1.36a1.35,1.35,0,0,1,.89-.15A3.18,3.18,0,0,0,11,7.64l-.1-.1-.06-.06h0a.34.34,0,0,0-.06-.06l0,0,0,0A2.34,2.34,0,0,0,10.11,7,2.63,2.63,0,0,0,9,6.78a1.52,1.52,0,0,0-.7.11A1.77,1.77,0,0,0,8,7a2.1,2.1,0,0,0-.74,1,5.84,5.84,0,0,0-.21,1,1.66,1.66,0,0,1,1-.23.84.84,0,0,1,.77.91,7.26,7.26,0,0,1,0,1.27,3.87,3.87,0,0,1-.23.63c-.06.17-.14.35-.18.49a.5.5,0,0,1,.38.14.66.66,0,0,1,.19.53H9c0,.08,0,.16,0,.24a6.55,6.55,0,0,0,.24,2.44.54.54,0,0,0,.24.21.6.6,0,0,0,.31.1,1.3,1.3,0,0,0,1-.34,1.05,1.05,0,0,0,.29-.66c.07-.45.22-1.7.24-2h0a.72.72,0,0,1,.09-.44.63.63,0,0,1,.27-.24A5.36,5.36,0,0,1,10.61,10.24Z" fill="#f2f2f2"/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,20 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.49995 0H2.69995V34H9.49995V0Z" fill="#E5E5E5"/>
<path d="M8.1501 1.34998H4.1001V32.65H8.1501V1.34998Z" fill="#59B4D9"/>
<path opacity="0.6" d="M8.2001 13.6H4.1001V32.65H8.2001V13.6Z" fill="white"/>
<path d="M9.49995 12.25H2.69995V14.95H9.49995V12.25Z" fill="#7A7A7A"/>
<path opacity="0.7" d="M9.49995 12.25H2.69995V13.6H9.49995V12.25Z" fill="white"/>
<path d="M20.4001 0H13.6001V34H20.4001V0Z" fill="#E5E5E5"/>
<path d="M19 1.34998H14.95V32.65H19V1.34998Z" fill="#59B4D9"/>
<path opacity="0.6" d="M19.05 24.5H14.95V32.65H19.05V24.5Z" fill="white"/>
<path d="M20.4001 23.1H13.6001V25.8H20.4001V23.1Z" fill="#7A7A7A"/>
<path opacity="0.7" d="M20.4001 23.1H13.6001V24.45H20.4001V23.1Z" fill="white"/>
<path d="M31.3 0H24.5V34H31.3V0Z" fill="#E5E5E5"/>
<path d="M29.9001 1.34998H25.8501V32.65H29.9001V1.34998Z" fill="#59B4D9"/>
<path opacity="0.6" d="M29.9501 13.6H25.8501V32.65H29.9501V13.6Z" fill="white"/>
<path d="M31.3 12.25H24.5V14.95H31.3V12.25Z" fill="#7A7A7A"/>
<path opacity="0.7" d="M31.3 12.25H24.5V13.6H31.3V12.25Z" fill="white"/>
<path opacity="0.2" d="M9.49995 14.95H2.69995V16.3H9.49995V14.95Z" fill="#1E1E1E"/>
<path opacity="0.2" d="M31.25 14.95H24.45V16.3H31.25V14.95Z" fill="#1E1E1E"/>
<path opacity="0.2" d="M20.4001 25.85H13.6001V27.2H20.4001V25.85Z" fill="#1E1E1E"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1328 0.296875C10.9974 0.53125 11.7891 0.898438 12.5078 1.39844C13.2266 1.89323 13.8438 2.48177 14.3594 3.16406C14.8802 3.84115 15.2839 4.59375 15.5703 5.42188C15.8568 6.24479 16 7.10417 16 8C16 8.73438 15.9036 9.44271 15.7109 10.125C15.5234 10.8073 15.2552 11.4453 14.9062 12.0391C14.5625 12.6328 14.1458 13.1745 13.6562 13.6641C13.1719 14.1484 12.6328 14.5651 12.0391 14.9141C11.4453 15.2578 10.8073 15.526 10.125 15.7188C9.44271 15.9062 8.73438 16 8 16C7.26562 16 6.55729 15.9062 5.875 15.7188C5.19271 15.526 4.55469 15.2578 3.96094 14.9141C3.36719 14.5651 2.82552 14.1484 2.33594 13.6641C1.85156 13.1745 1.4349 12.6328 1.08594 12.0391C0.742188 11.4453 0.473958 10.8099 0.28125 10.1328C0.09375 9.45052 0 8.73958 0 8C0 7.27083 0.0963542 6.5625 0.289062 5.875C0.481771 5.1875 0.755208 4.54167 1.10938 3.9375C1.46875 3.32812 1.90365 2.77604 2.41406 2.28125C2.92448 1.78125 3.5 1.35417 4.14062 1H2V0H6V4H5V1.67969C4.39062 1.97135 3.83854 2.33854 3.34375 2.78125C2.85417 3.21875 2.4349 3.71354 2.08594 4.26562C1.73698 4.8125 1.46875 5.40365 1.28125 6.03906C1.09375 6.67448 1 7.32812 1 8C1 8.64062 1.08333 9.26042 1.25 9.85938C1.41667 10.4531 1.65104 11.0104 1.95312 11.5312C2.26042 12.0469 2.6276 12.5182 3.05469 12.9453C3.48177 13.3724 3.95312 13.7396 4.46875 14.0469C4.98958 14.349 5.54688 14.5833 6.14062 14.75C6.73438 14.9167 7.35417 15 8 15C8.64062 15 9.25781 14.9167 9.85156 14.75C10.4505 14.5833 11.0078 14.349 11.5234 14.0469C12.0443 13.7396 12.5182 13.3724 12.9453 12.9453C13.3724 12.5182 13.737 12.0469 14.0391 11.5312C14.3464 11.0104 14.5833 10.4531 14.75 9.85938C14.9167 9.26562 15 8.64583 15 8C15 7.21875 14.8724 6.46615 14.6172 5.74219C14.3672 5.01823 14.0156 4.35938 13.5625 3.76562C13.1094 3.17188 12.5677 2.65885 11.9375 2.22656C11.3125 1.78906 10.6224 1.46615 9.86719 1.25781L10.1328 0.296875Z" fill="#0078D4"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,17 @@
<svg id="fe62c4da-ab98-4bb3-a1a5-9a22b229614c" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
<defs>
<linearGradient id="f36136e6-f568-4134-ab6f-c0fefbc04f83" x1="9" y1="16.795" x2="9" y2="1.205" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#5e9624"/>
<stop offset="0.321" stop-color="#639d26"/>
<stop offset="0.794" stop-color="#6fb12a"/>
<stop offset="0.999" stop-color="#76bc2d"/>
</linearGradient>
</defs>
<g>
<path d="M16.083,8.438c0,4.571-5.626,8.25-6.85,9a.449.449,0,0,1-.466,0c-1.224-.747-6.85-4.426-6.85-9v-5.5A.44.44,0,0,1,2.351,2.5C6.728,2.386,5.72.5,9,.5s2.272,1.886,6.649,2a.44.44,0,0,1,.434.435Z" fill="#76bc2d"/>
<path d="M15.5,8.485c0,4.191-5.16,7.566-6.282,8.25a.412.412,0,0,1-.428,0C7.664,16.051,2.5,12.676,2.5,8.485V3.441a.4.4,0,0,1,.4-.4C6.916,2.935,5.992,1.205,9,1.205s2.084,1.73,6.1,1.837a.4.4,0,0,1,.4.4Z" fill="url(#f36136e6-f568-4134-ab6f-c0fefbc04f83)"/>
<path d="M11.853,7.66h-.408l0-1.417a2.652,2.652,0,0,0-.7-1.809,2.358,2.358,0,0,0-3.483,0,2.606,2.606,0,0,0-.7,1.808V7.66H6.147a.328.328,0,0,0-.326.32v3.682a.329.329,0,0,0,.326.32h5.706a.329.329,0,0,0,.326-.32V7.98A.328.328,0,0,0,11.853,7.66Zm-1.549,0H7.7V6.219a1.434,1.434,0,0,1,.41-.99,1.2,1.2,0,0,1,1.788,0,1.394,1.394,0,0,1,.153.2h0a1.445,1.445,0,0,1,.258.791Z" fill="#fff"/>
<path d="M6.148,7.658h5.705a.328.328,0,0,1,.21.08L5.938,11.9a.313.313,0,0,1-.116-.241V7.979A.328.328,0,0,1,6.148,7.658Z" fill="#b3b3b3" opacity="0.15"/>
<path d="M11.853,7.658H6.147a.328.328,0,0,0-.209.08L12.062,11.9a.314.314,0,0,0,.117-.241V7.979A.329.329,0,0,0,11.853,7.658Z" fill="#a3a3a3" opacity="0.09"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,65 @@
{
"name": "arc",
"displayName": "%arc.displayName%",
"description": "%arc.description%",
"version": "0.1.0",
"publisher": "Microsoft",
"preview": true,
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/LICENSE.txt",
"icon": "images/extension.png",
"engines": {
"vscode": "*",
"azdata": ">=1.18.0"
},
"activationEvents": [
"onCommand:arc.manageMiaa",
"onCommand:arc.managePostgres"
],
"repository": {
"type": "git",
"url": "https://github.com/Microsoft/azuredatastudio.git"
},
"main": "./out/extension",
"contributes": {
"commands": [
{
"command": "arc.manageMiaa",
"title": "%arc.manageMiaa%"
},
{
"command": "arc.managePostgres",
"title": "%arc.managePostgres%"
}
],
"menus": {
"commandPalette": [
{
"command": "arc.manageMiaa",
"when": "false"
},
{
"command": "arc.managePostgres",
"when": "false"
}
]
},
"configuration": {
"type": "object",
"title": "%arc.configuration.title%",
"properties": {
"arc.ignoreSslVerification": {
"type": "boolean",
"default": true,
"description": "%arc.ignoreSslVerification.desc%"
}
}
}
},
"dependencies": {
"request": "^2.88.0",
"vscode-nls": "^4.1.2"
},
"devDependencies": {
"@types/request": "^2.48.3"
}
}

View File

@@ -0,0 +1,8 @@
{
"arc.displayName": "Azure Arc",
"arc.description": "Support for Azure Arc",
"arc.configuration.title": "Azure Arc",
"arc.ignoreSslVerification.desc" : "Ignore SSL verification errors against the controller endpoint if true",
"arc.manageMiaa": "Manage MIAA",
"arc.managePostgres": "Manage Postgres"
}

View File

@@ -0,0 +1,25 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/**
* Deferred promise
*/
export class Deferred<T> {
promise: Promise<T>;
resolve!: (value?: T | PromiseLike<T>) => void;
reject!: (reason?: any) => void;
constructor() {
this.promise = new Promise<T>((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}
then<TResult>(onfulfilled?: (value: T) => TResult | Thenable<TResult>, onrejected?: (reason: any) => TResult | Thenable<TResult>): Thenable<TResult>;
then<TResult>(onfulfilled?: (value: T) => TResult | Thenable<TResult>, onrejected?: (reason: any) => void): Thenable<TResult>;
then<TResult>(onfulfilled?: (value: T) => TResult | Thenable<TResult>, onrejected?: (reason: any) => TResult | Thenable<TResult>): Thenable<TResult> {
return this.promise.then(onfulfilled, onrejected);
}
}

View File

@@ -0,0 +1,102 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
export interface IconPath {
dark: string;
light: string;
}
export class IconPathHelper {
private static context: vscode.ExtensionContext;
public static add: IconPath;
public static edit: IconPath;
public static delete: IconPath;
public static openInTab: IconPath;
public static heart: IconPath;
public static copy: IconPath;
public static collapseUp: IconPath;
public static collapseDown: IconPath;
public static postgres: IconPath;
public static computeStorage: IconPath;
public static connection: IconPath;
public static backup: IconPath;
public static properties: IconPath;
public static networking: IconPath;
public static refresh: IconPath;
public static setExtensionContext(context: vscode.ExtensionContext) {
IconPathHelper.context = context;
IconPathHelper.add = {
light: IconPathHelper.context.asAbsolutePath('images/add.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/add.svg')
};
IconPathHelper.edit = {
light: IconPathHelper.context.asAbsolutePath('images/edit.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/edit.svg')
};
IconPathHelper.delete = {
light: IconPathHelper.context.asAbsolutePath('images/delete.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/delete.svg')
};
IconPathHelper.openInTab = {
light: IconPathHelper.context.asAbsolutePath('images/open-in-tab.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/open-in-tab.svg')
};
IconPathHelper.heart = {
light: IconPathHelper.context.asAbsolutePath('images/heart.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/heart.svg')
};
IconPathHelper.copy = {
light: IconPathHelper.context.asAbsolutePath('images/copy.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/copy.svg')
};
IconPathHelper.collapseUp = {
light: IconPathHelper.context.asAbsolutePath('images/collapse-up.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/collapse-up-inverse.svg')
};
IconPathHelper.collapseDown = {
light: IconPathHelper.context.asAbsolutePath('images/collapse-down.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/collapse-down-inverse.svg')
};
IconPathHelper.postgres = {
light: IconPathHelper.context.asAbsolutePath('images/postgres.svg'),
dark: IconPathHelper.context.asAbsolutePath('images/postgres.svg')
};
IconPathHelper.computeStorage = {
light: context.asAbsolutePath('images/billing.svg'),
dark: context.asAbsolutePath('images/billing.svg')
};
IconPathHelper.connection = {
light: context.asAbsolutePath('images/connections.svg'),
dark: context.asAbsolutePath('images/connections.svg')
};
IconPathHelper.backup = {
light: context.asAbsolutePath('images/migrate.svg'),
dark: context.asAbsolutePath('images/migrate.svg')
};
IconPathHelper.properties = {
light: context.asAbsolutePath('images/properties.svg'),
dark: context.asAbsolutePath('images/properties.svg')
};
IconPathHelper.networking = {
light: context.asAbsolutePath('images/security.svg'),
dark: context.asAbsolutePath('images/security.svg')
};
IconPathHelper.refresh = {
light: context.asAbsolutePath('images/refresh.svg'),
dark: context.asAbsolutePath('images/refresh.svg')
};
}
}
export namespace cssStyles {
export const text = { 'user-select': 'text', 'cursor': 'text' };
export const title = { ...text, 'font-weight': 'bold', 'font-size': '14px' };
export const tableHeader = { ...text, 'text-align': 'left', 'border': 'none' };
export const tableRow = { ...text, 'border-top': 'solid 1px #ccc', 'border-bottom': 'solid 1px #ccc', 'border-left': 'none', 'border-right': 'none' };
}

View File

@@ -0,0 +1,20 @@
# Updating the Swagger generated clients
The TypeScript clients used to communicate with the controller are generated from the controller's Swagger specification. To update the clients:
1. Get the Swagger specification from a running controller, and save it locally:
* `https://<controller_ip>:30080/api/<api_name>/swagger.json`
2. Generate the clients:
* At the time of writing, [editor.swagger.io](https://editor.swagger.io) does not support typescript-node client generation from OpenAPI 3.x specifications. So we'll use [openapi-generator.tech](https://openapi-generator.tech) instead.
* Run openapi-generator:
* Either by [installing it](https://openapi-generator.tech/docs/installation) (requires Java) and running:
* `openapi-generator generate -i swagger.json -g typescript-node -o out --additional-properties supportsES6=true`
* Or by running the Docker image (works in Linux or PowerShell):
* `docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -i /local/swagger.json -g typescript-node -o /local/out --additional-properties supportsES6=true`
3. Copy the generated clients (api.ts, api/, model/) to ./generated/<api_name>.
4. The generated clients have some unused imports. This will not compile. VS Code has an "Organize Imports" command (Shift + Alt + O) that fixes this, but it fixes a single file. To organize imports for all files in a folder, you can use the [Folder Source Actions extension](https://marketplace.visualstudio.com/items?itemName=bierner.folder-source-actions). Followed by File -> Save All.

View File

@@ -0,0 +1,77 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as request from 'request';
import * as vscode from 'vscode';
export interface Authentication {
applyToRequest(requestOptions: request.Options): Promise<void> | void;
}
class SslAuth implements Authentication {
constructor() { }
applyToRequest(requestOptions: request.Options): void {
requestOptions['agentOptions'] = {
rejectUnauthorized: !getIgnoreSslVerificationConfigSetting()
};
}
}
export class KerberosAuth extends SslAuth implements Authentication {
constructor(public kerberosToken: string) {
super();
}
applyToRequest(requestOptions: request.Options): void {
super.applyToRequest(requestOptions);
if (requestOptions && requestOptions.headers) {
requestOptions.headers['Authorization'] = `Negotiate ${this.kerberosToken}`;
}
requestOptions.auth = undefined;
}
}
export class BasicAuth extends SslAuth implements Authentication {
constructor(public username: string, public password: string) {
super();
}
applyToRequest(requestOptions: request.Options): void {
super.applyToRequest(requestOptions);
requestOptions.auth = {
username: this.username, password: this.password
};
}
}
export class OAuthWithSsl extends SslAuth implements Authentication {
constructor(public accessToken: string) {
super();
}
applyToRequest(requestOptions: request.Options): void {
super.applyToRequest(requestOptions);
if (requestOptions && requestOptions.headers) {
requestOptions.headers['Authorization'] = `Bearer ${this.accessToken}`;
}
requestOptions.auth = undefined;
}
}
/* Retrieves the current setting for whether to ignore SSL verification errors */
export function getIgnoreSslVerificationConfigSetting(): boolean {
const arcConfigSectionName = 'arc';
const ignoreSslConfigName = 'ignoreSslVerification';
try {
const config = vscode.workspace.getConfiguration(arcConfigSectionName);
return config.get<boolean>(ignoreSslConfigName, true);
} catch (error) {
console.error(`Unexpected error retrieving ${arcConfigSectionName}.${ignoreSslConfigName} setting : ${error}`);
}
return true;
}

View File

@@ -0,0 +1,3 @@
// This is the entrypoint for the package
export * from './api/apis';
export * from './model/models';

View File

@@ -0,0 +1,31 @@
export * from './databaseRouterApi';
export * from './databaseValidateRouterApi';
export * from './logsRouterApi';
export * from './metricRouterApi';
export * from './operatorRouterApi';
import * as fs from 'fs';
import * as http from 'http';
import { DatabaseRouterApi } from './databaseRouterApi';
import { DatabaseValidateRouterApi } from './databaseValidateRouterApi';
import { LogsRouterApi } from './logsRouterApi';
import { MetricRouterApi } from './metricRouterApi';
import { OperatorRouterApi } from './operatorRouterApi';
export class HttpError extends Error {
constructor (public response: http.IncomingMessage, public body: any, public statusCode?: number) {
super('HTTP request failed');
this.name = 'HttpError';
}
}
export interface RequestDetailedFile {
value: Buffer;
options?: {
filename?: string;
contentType?: string;
}
}
export type RequestFile = string | Buffer | fs.ReadStream | RequestDetailedFile;
export const APIS = [DatabaseRouterApi, DatabaseValidateRouterApi, LogsRouterApi, MetricRouterApi, OperatorRouterApi];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,260 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { DuskyObjectModelsDatabaseService } from '../model/duskyObjectModelsDatabaseService';
import { DuskyObjectModelsDuskyValidationResult } from '../model/duskyObjectModelsDuskyValidationResult';
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum DatabaseValidateRouterApiApiKeys {
}
export class DatabaseValidateRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: DatabaseValidateRouterApiApiKeys, value: string) {
(this.authentications as any)[DatabaseValidateRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary Validate database service creation.
* @param duskyObjectModelsDatabaseService
*/
public async validateCreateDatabaseService (duskyObjectModelsDatabaseService?: DuskyObjectModelsDatabaseService, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }> {
const localVarPath = this.basePath + '/dusky/databases/validate';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(duskyObjectModelsDatabaseService, "DuskyObjectModelsDatabaseService")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "DuskyObjectModelsDuskyValidationResult");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
/**
*
* @summary Validate database service update.
* @param ns The namespace of the database service.
* @param name The name of the database service to update.
* @param duskyObjectModelsDatabaseService
*/
public async validateUpdateDatabaseService (ns: string, name: string, duskyObjectModelsDatabaseService?: DuskyObjectModelsDatabaseService, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }> {
const localVarPath = this.basePath + '/dusky/databases/validate/{ns}/{name}'
.replace('{' + 'ns' + '}', encodeURIComponent(String(ns)))
.replace('{' + 'name' + '}', encodeURIComponent(String(name)));
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
// verify required parameter 'ns' is not null or undefined
if (ns === null || ns === undefined) {
throw new Error('Required parameter ns was null or undefined when calling validateUpdateDatabaseService.');
}
// verify required parameter 'name' is not null or undefined
if (name === null || name === undefined) {
throw new Error('Required parameter name was null or undefined when calling validateUpdateDatabaseService.');
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(duskyObjectModelsDatabaseService, "DuskyObjectModelsDatabaseService")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "DuskyObjectModelsDuskyValidationResult");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -0,0 +1,175 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { LogsRequest } from '../model/logsRequest';
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum LogsRouterApiApiKeys {
}
export class LogsRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: LogsRouterApiApiKeys, value: string) {
(this.authentications as any)[LogsRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary Gets logs from Elasticsearch.
* @param logsRequest
*/
public async apiV1LogsPost (logsRequest?: LogsRequest, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: object; }> {
const localVarPath = this.basePath + '/api/v1/logs';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(logsRequest, "LogsRequest")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: object; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "object");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -0,0 +1,171 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum MetricRouterApiApiKeys {
}
export class MetricRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: MetricRouterApiApiKeys, value: string) {
(this.authentications as any)[MetricRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
*/
public async apiV1MetricsPost (options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: object; }> {
const localVarPath = this.basePath + '/api/v1/metrics';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: object; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "object");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -0,0 +1,236 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { ClusterPatchModel } from '../model/clusterPatchModel';
import { DuskyObjectModelsOperatorStatus } from '../model/duskyObjectModelsOperatorStatus';
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum OperatorRouterApiApiKeys {
}
export class OperatorRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: OperatorRouterApiApiKeys, value: string) {
(this.authentications as any)[OperatorRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary Gets the status of the Dusky operator.
*/
public async getDuskyOperatorStatus (options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsOperatorStatus; }> {
const localVarPath = this.basePath + '/dusky/operator/status';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'GET',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsOperatorStatus; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "DuskyObjectModelsOperatorStatus");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
/**
*
* @summary Upgrades the Dusky operator.
* @param clusterPatchModel
*/
public async upgradeDuskyOperator (clusterPatchModel?: ClusterPatchModel, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body?: any; }> {
const localVarPath = this.basePath + '/dusky/operator/upgrade';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'PATCH',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(clusterPatchModel, "ClusterPatchModel")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body?: any; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -0,0 +1,36 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class ClusterPatchModel {
'targetVersion': string;
'targetRepository'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "targetVersion",
"baseName": "targetVersion",
"type": "string"
},
{
"name": "targetRepository",
"baseName": "targetRepository",
"type": "string"
} ];
static getAttributeTypeMap() {
return ClusterPatchModel.attributeTypeMap;
}
}

View File

@@ -0,0 +1,67 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsError } from './duskyObjectModelsError';
export class DuskyObjectModelsBackup {
'error'?: DuskyObjectModelsError;
'id'?: string;
'name'?: string;
'timestamp': Date;
'size'?: number | null;
'state': string;
'tiers'?: number | null;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "error",
"baseName": "error",
"type": "DuskyObjectModelsError"
},
{
"name": "id",
"baseName": "id",
"type": "string"
},
{
"name": "name",
"baseName": "name",
"type": "string"
},
{
"name": "timestamp",
"baseName": "timestamp",
"type": "Date"
},
{
"name": "size",
"baseName": "size",
"type": "number"
},
{
"name": "state",
"baseName": "state",
"type": "string"
},
{
"name": "tiers",
"baseName": "tiers",
"type": "number"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsBackup.attributeTypeMap;
}
}

View File

@@ -0,0 +1,36 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsBackupCopySchedule {
'interval': string;
'offset'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "interval",
"baseName": "interval",
"type": "string"
},
{
"name": "offset",
"baseName": "offset",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsBackupCopySchedule.attributeTypeMap;
}
}

View File

@@ -0,0 +1,36 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsBackupRetention {
'maximums'?: Array<string>;
'minimums'?: Array<string>;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "maximums",
"baseName": "maximums",
"type": "Array<string>"
},
{
"name": "minimums",
"baseName": "minimums",
"type": "Array<string>"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsBackupRetention.attributeTypeMap;
}
}

View File

@@ -0,0 +1,50 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsBackupCopySchedule } from './duskyObjectModelsBackupCopySchedule';
import { DuskyObjectModelsBackupTier } from './duskyObjectModelsBackupTier';
export class DuskyObjectModelsBackupSpec {
'deltaMinutes'?: number | null;
'fullMinutes'?: number | null;
'copySchedule'?: DuskyObjectModelsBackupCopySchedule;
'tiers': Array<DuskyObjectModelsBackupTier>;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "deltaMinutes",
"baseName": "deltaMinutes",
"type": "number"
},
{
"name": "fullMinutes",
"baseName": "fullMinutes",
"type": "number"
},
{
"name": "copySchedule",
"baseName": "copySchedule",
"type": "DuskyObjectModelsBackupCopySchedule"
},
{
"name": "tiers",
"baseName": "tiers",
"type": "Array<DuskyObjectModelsBackupTier>"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsBackupSpec.attributeTypeMap;
}
}

View File

@@ -0,0 +1,38 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsRetentionSpec } from './duskyObjectModelsRetentionSpec';
import { DuskyObjectModelsStorageSpec } from './duskyObjectModelsStorageSpec';
export class DuskyObjectModelsBackupTier {
'retention'?: DuskyObjectModelsRetentionSpec;
'storage': DuskyObjectModelsStorageSpec;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "retention",
"baseName": "retention",
"type": "DuskyObjectModelsRetentionSpec"
},
{
"name": "storage",
"baseName": "storage",
"type": "DuskyObjectModelsStorageSpec"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsBackupTier.attributeTypeMap;
}
}

View File

@@ -0,0 +1,42 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDatabase {
'name': string;
'owner'?: string;
'sharded'?: boolean;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "name",
"baseName": "name",
"type": "string"
},
{
"name": "owner",
"baseName": "owner",
"type": "string"
},
{
"name": "sharded",
"baseName": "sharded",
"type": "boolean"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabase.attributeTypeMap;
}
}

View File

@@ -0,0 +1,64 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsDatabaseServiceArcPayload } from './duskyObjectModelsDatabaseServiceArcPayload';
import { DuskyObjectModelsDatabaseServiceSpec } from './duskyObjectModelsDatabaseServiceSpec';
import { DuskyObjectModelsDatabaseServiceStatus } from './duskyObjectModelsDatabaseServiceStatus';
import { DuskyObjectModelsObjectMeta } from './duskyObjectModelsObjectMeta';
export class DuskyObjectModelsDatabaseService {
'kind'?: string;
'apiVersion'?: string;
'metadata'?: DuskyObjectModelsObjectMeta;
'spec': DuskyObjectModelsDatabaseServiceSpec;
'status'?: DuskyObjectModelsDatabaseServiceStatus;
'arc'?: DuskyObjectModelsDatabaseServiceArcPayload;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "kind",
"baseName": "kind",
"type": "string"
},
{
"name": "apiVersion",
"baseName": "apiVersion",
"type": "string"
},
{
"name": "metadata",
"baseName": "metadata",
"type": "DuskyObjectModelsObjectMeta"
},
{
"name": "spec",
"baseName": "spec",
"type": "DuskyObjectModelsDatabaseServiceSpec"
},
{
"name": "status",
"baseName": "status",
"type": "DuskyObjectModelsDatabaseServiceStatus"
},
{
"name": "arc",
"baseName": "arc",
"type": "DuskyObjectModelsDatabaseServiceArcPayload"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseService.attributeTypeMap;
}
}

View File

@@ -0,0 +1,30 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDatabaseServiceArcPayload {
'servicePassword'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "servicePassword",
"baseName": "servicePassword",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceArcPayload.attributeTypeMap;
}
}

View File

@@ -0,0 +1,61 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDatabaseServiceCondition {
'type': string;
'status': DuskyObjectModelsDatabaseServiceCondition.StatusEnum;
'lastTransitionTime'?: Date | null;
'reason'?: string;
'message'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "type",
"baseName": "type",
"type": "string"
},
{
"name": "status",
"baseName": "status",
"type": "DuskyObjectModelsDatabaseServiceCondition.StatusEnum"
},
{
"name": "lastTransitionTime",
"baseName": "lastTransitionTime",
"type": "Date"
},
{
"name": "reason",
"baseName": "reason",
"type": "string"
},
{
"name": "message",
"baseName": "message",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceCondition.attributeTypeMap;
}
}
export namespace DuskyObjectModelsDatabaseServiceCondition {
export enum StatusEnum {
Unknown = <any> 'Unknown',
False = <any> 'False',
True = <any> 'True'
}
}

View File

@@ -0,0 +1,49 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsDatabaseService } from './duskyObjectModelsDatabaseService';
export class DuskyObjectModelsDatabaseServiceList {
'kind'?: string;
'apiVersion'?: string;
'metadata'?: object;
'items': Array<DuskyObjectModelsDatabaseService>;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "kind",
"baseName": "kind",
"type": "string"
},
{
"name": "apiVersion",
"baseName": "apiVersion",
"type": "string"
},
{
"name": "metadata",
"baseName": "metadata",
"type": "object"
},
{
"name": "items",
"baseName": "items",
"type": "Array<DuskyObjectModelsDatabaseService>"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceList.attributeTypeMap;
}
}

View File

@@ -0,0 +1,80 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsBackupSpec } from './duskyObjectModelsBackupSpec';
import { DuskyObjectModelsDockerSpec } from './duskyObjectModelsDockerSpec';
import { DuskyObjectModelsEngineSpec } from './duskyObjectModelsEngineSpec';
import { DuskyObjectModelsMonitoringSpec } from './duskyObjectModelsMonitoringSpec';
import { DuskyObjectModelsScaleSpec } from './duskyObjectModelsScaleSpec';
import { DuskyObjectModelsSchedulingSpec } from './duskyObjectModelsSchedulingSpec';
import { DuskyObjectModelsServiceSpec } from './duskyObjectModelsServiceSpec';
import { DuskyObjectModelsStorageSpec } from './duskyObjectModelsStorageSpec';
export class DuskyObjectModelsDatabaseServiceSpec {
'backups'?: DuskyObjectModelsBackupSpec;
'docker'?: DuskyObjectModelsDockerSpec;
'engine': DuskyObjectModelsEngineSpec;
'monitoring'?: DuskyObjectModelsMonitoringSpec;
'scale'?: DuskyObjectModelsScaleSpec;
'scheduling'?: DuskyObjectModelsSchedulingSpec;
'service'?: DuskyObjectModelsServiceSpec;
'storage': DuskyObjectModelsStorageSpec;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "backups",
"baseName": "backups",
"type": "DuskyObjectModelsBackupSpec"
},
{
"name": "docker",
"baseName": "docker",
"type": "DuskyObjectModelsDockerSpec"
},
{
"name": "engine",
"baseName": "engine",
"type": "DuskyObjectModelsEngineSpec"
},
{
"name": "monitoring",
"baseName": "monitoring",
"type": "DuskyObjectModelsMonitoringSpec"
},
{
"name": "scale",
"baseName": "scale",
"type": "DuskyObjectModelsScaleSpec"
},
{
"name": "scheduling",
"baseName": "scheduling",
"type": "DuskyObjectModelsSchedulingSpec"
},
{
"name": "service",
"baseName": "service",
"type": "DuskyObjectModelsServiceSpec"
},
{
"name": "storage",
"baseName": "storage",
"type": "DuskyObjectModelsStorageSpec"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceSpec.attributeTypeMap;
}
}

View File

@@ -0,0 +1,115 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsDatabaseServiceCondition } from './duskyObjectModelsDatabaseServiceCondition';
export class DuskyObjectModelsDatabaseServiceStatus {
'state': string;
'appliedGeneration'?: number | null;
'conditions'?: Array<DuskyObjectModelsDatabaseServiceCondition>;
'internalIP'?: string;
'internalPort'?: number | null;
'externalIP'?: string;
'externalPort'?: number | null;
'podsFailed': number;
'podsPending': number;
'podsRunning': number;
'podsUnknown': number;
'restartRequired': boolean;
'execFailCount'?: number | null;
'settingsUpdatePending'?: boolean;
'shardsProvisioned'?: number | null;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "state",
"baseName": "state",
"type": "string"
},
{
"name": "appliedGeneration",
"baseName": "appliedGeneration",
"type": "number"
},
{
"name": "conditions",
"baseName": "conditions",
"type": "Array<DuskyObjectModelsDatabaseServiceCondition>"
},
{
"name": "internalIP",
"baseName": "internalIP",
"type": "string"
},
{
"name": "internalPort",
"baseName": "internalPort",
"type": "number"
},
{
"name": "externalIP",
"baseName": "externalIP",
"type": "string"
},
{
"name": "externalPort",
"baseName": "externalPort",
"type": "number"
},
{
"name": "podsFailed",
"baseName": "podsFailed",
"type": "number"
},
{
"name": "podsPending",
"baseName": "podsPending",
"type": "number"
},
{
"name": "podsRunning",
"baseName": "podsRunning",
"type": "number"
},
{
"name": "podsUnknown",
"baseName": "podsUnknown",
"type": "number"
},
{
"name": "restartRequired",
"baseName": "restartRequired",
"type": "boolean"
},
{
"name": "execFailCount",
"baseName": "execFailCount",
"type": "number"
},
{
"name": "settingsUpdatePending",
"baseName": "settingsUpdatePending",
"type": "boolean"
},
{
"name": "shardsProvisioned",
"baseName": "shardsProvisioned",
"type": "number"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceStatus.attributeTypeMap;
}
}

View File

@@ -0,0 +1,54 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDatabaseServiceVolumeStatus {
'id'?: string;
'count'?: number;
'totalSize'?: number;
'storageClass'?: string;
'state'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "id",
"baseName": "id",
"type": "string"
},
{
"name": "count",
"baseName": "count",
"type": "number"
},
{
"name": "totalSize",
"baseName": "totalSize",
"type": "number"
},
{
"name": "storageClass",
"baseName": "storageClass",
"type": "string"
},
{
"name": "state",
"baseName": "state",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDatabaseServiceVolumeStatus.attributeTypeMap;
}
}

View File

@@ -0,0 +1,54 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDockerSpec {
'registry'?: string;
'repository'?: string;
'imagePullPolicy'?: string;
'imagePullSecret'?: string;
'imageTagSuffix'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "registry",
"baseName": "registry",
"type": "string"
},
{
"name": "repository",
"baseName": "repository",
"type": "string"
},
{
"name": "imagePullPolicy",
"baseName": "imagePullPolicy",
"type": "string"
},
{
"name": "imagePullSecret",
"baseName": "imagePullSecret",
"type": "string"
},
{
"name": "imageTagSuffix",
"baseName": "imageTagSuffix",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDockerSpec.attributeTypeMap;
}
}

View File

@@ -0,0 +1,57 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsDuskyValidationMessage {
'type'?: DuskyObjectModelsDuskyValidationMessage.TypeEnum;
'code'?: DuskyObjectModelsDuskyValidationMessage.CodeEnum;
'message'?: string;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "type",
"baseName": "type",
"type": "DuskyObjectModelsDuskyValidationMessage.TypeEnum"
},
{
"name": "code",
"baseName": "code",
"type": "DuskyObjectModelsDuskyValidationMessage.CodeEnum"
},
{
"name": "message",
"baseName": "message",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDuskyValidationMessage.attributeTypeMap;
}
}
export namespace DuskyObjectModelsDuskyValidationMessage {
export enum TypeEnum {
Info = <any> 'Info',
Warning = <any> 'Warning',
Fail = <any> 'Fail'
}
export enum CodeEnum {
InvalidInput = <any> 'InvalidInput',
ResourceExists = <any> 'ResourceExists',
ResourceNotFound = <any> 'ResourceNotFound',
ResourceNotRunning = <any> 'ResourceNotRunning',
AvailableResources = <any> 'AvailableResources',
InsufficientResources = <any> 'InsufficientResources'
}
}

View File

@@ -0,0 +1,31 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsDuskyValidationMessage } from './duskyObjectModelsDuskyValidationMessage';
export class DuskyObjectModelsDuskyValidationResult {
'messages'?: Array<DuskyObjectModelsDuskyValidationMessage>;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "messages",
"baseName": "messages",
"type": "Array<DuskyObjectModelsDuskyValidationMessage>"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsDuskyValidationResult.attributeTypeMap;
}
}

View File

@@ -0,0 +1,49 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsPluginSpec } from './duskyObjectModelsPluginSpec';
export class DuskyObjectModelsEngineSpec {
'type': string;
'version'?: number | null;
'settings'?: { [key: string]: string; };
'plugins'?: Array<DuskyObjectModelsPluginSpec>;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "type",
"baseName": "type",
"type": "string"
},
{
"name": "version",
"baseName": "version",
"type": "number"
},
{
"name": "settings",
"baseName": "settings",
"type": "{ [key: string]: string; }"
},
{
"name": "plugins",
"baseName": "plugins",
"type": "Array<DuskyObjectModelsPluginSpec>"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsEngineSpec.attributeTypeMap;
}
}

View File

@@ -0,0 +1,49 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsErrorDetails } from './duskyObjectModelsErrorDetails';
export class DuskyObjectModelsError {
'reason'?: string;
'message'?: string;
'details'?: DuskyObjectModelsErrorDetails;
'code'?: number | null;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "reason",
"baseName": "reason",
"type": "string"
},
{
"name": "message",
"baseName": "message",
"type": "string"
},
{
"name": "details",
"baseName": "details",
"type": "DuskyObjectModelsErrorDetails"
},
{
"name": "code",
"baseName": "code",
"type": "number"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsError.attributeTypeMap;
}
}

View File

@@ -0,0 +1,42 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsErrorDetails {
'reason'?: string;
'message'?: string;
'details'?: DuskyObjectModelsErrorDetails;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "reason",
"baseName": "reason",
"type": "string"
},
{
"name": "message",
"baseName": "message",
"type": "string"
},
{
"name": "details",
"baseName": "details",
"type": "DuskyObjectModelsErrorDetails"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsErrorDetails.attributeTypeMap;
}
}

View File

@@ -0,0 +1,31 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsTINASpec } from './duskyObjectModelsTINASpec';
export class DuskyObjectModelsMonitoringSpec {
'tina'?: DuskyObjectModelsTINASpec;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "tina",
"baseName": "tina",
"type": "DuskyObjectModelsTINASpec"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsMonitoringSpec.attributeTypeMap;
}
}

View File

@@ -0,0 +1,102 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class DuskyObjectModelsObjectMeta {
'annotations'?: { [key: string]: string; };
'creationTimestamp'?: Date | null;
'deletionTimestamp'?: Date | null;
'finalizers'?: Array<object>;
'generateName'?: string;
'generation'?: number | null;
'labels'?: { [key: string]: string; };
'name'?: string;
'namespace'?: string;
'ownerReferences'?: Array<object>;
'resourceVersion'?: string;
'selfLink'?: string;
'uid'?: string | null;
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "annotations",
"baseName": "annotations",
"type": "{ [key: string]: string; }"
},
{
"name": "creationTimestamp",
"baseName": "creationTimestamp",
"type": "Date"
},
{
"name": "deletionTimestamp",
"baseName": "deletionTimestamp",
"type": "Date"
},
{
"name": "finalizers",
"baseName": "finalizers",
"type": "Array<object>"
},
{
"name": "generateName",
"baseName": "generateName",
"type": "string"
},
{
"name": "generation",
"baseName": "generation",
"type": "number"
},
{
"name": "labels",
"baseName": "labels",
"type": "{ [key: string]: string; }"
},
{
"name": "name",
"baseName": "name",
"type": "string"
},
{
"name": "namespace",
"baseName": "namespace",
"type": "string"
},
{
"name": "ownerReferences",
"baseName": "ownerReferences",
"type": "Array<object>"
},
{
"name": "resourceVersion",
"baseName": "resourceVersion",
"type": "string"
},
{
"name": "selfLink",
"baseName": "selfLink",
"type": "string"
},
{
"name": "uid",
"baseName": "uid",
"type": "string"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsObjectMeta.attributeTypeMap;
}
}

View File

@@ -0,0 +1,31 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { DuskyObjectModelsReplicaStatus } from './duskyObjectModelsReplicaStatus';
export class DuskyObjectModelsOperatorStatus {
'statuses'?: { [key: string]: DuskyObjectModelsReplicaStatus; };
static discriminator: string | undefined = undefined;
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
{
"name": "statuses",
"baseName": "statuses",
"type": "{ [key: string]: DuskyObjectModelsReplicaStatus; }"
} ];
static getAttributeTypeMap() {
return DuskyObjectModelsOperatorStatus.attributeTypeMap;
}
}

Some files were not shown because too many files have changed in this diff Show More