Skip to content

Commit

Permalink
Merge CSR feature into master (#757)
Browse files Browse the repository at this point in the history
* Add attach debugger window (#600)

* Add attach debugger window, context menu.

* Minor text, name change.

* Add OnLoaded event

* Properly set CanExecuteCommand state.

* Simplify the wizard

* minor changes

* Remove the OnLoaded event handler.

* merge master to m_dbg (#610)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Add steps of enable debugger port and remote powershell port (#614)

Add steps of enable debugger port and remote powershell port

* merge from master (#620)

merge from master

* Add set credential step (#622)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Master sorting organzing usings formatting warnings (#609)

* Sorting and organizing usings.

* Formatting the code.

* Trun on warnings as errors in all projects.

* Fixing small formatter error.

* Add set credential step

* name change.

* Save settings to solution .suo instead of global settings.

* no message

* no message

* no message

* Code review changes.

* no message

* Address code review feedback.

* Save GCE instance default user to app data  (#629)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Master sorting organzing usings formatting warnings (#609)

* Sorting and organizing usings.

* Formatting the code.

* Trun on warnings as errors in all projects.

* Fixing small formatter error.

* Save GCE instance default user into app data file.
Add unit tests for SolutionSettingKeyAttribute, SolutionUserOptionsTests

* merge from master (#632)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Master sorting organzing usings formatting warnings (#609)

* Sorting and organizing usings.

* Formatting the code.

* Trun on warnings as errors in all projects.

* Fixing small formatter error.

* In-dialog validation framework and examples. (#552)

* Add ValidatingViewModelBase.

* Add validation popup to an error control template. Apply that error template to TextBoxs

* Implement validation for Publish Gke dialog.

* Add unit tests for ValidatingVeiwModelBase.

* Add GoogleCloudExtensionUnitTest.dll to unit test assemblies.

* Add remote PowerShell scripts to install, start debugger tools (#630)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Master sorting organzing usings formatting warnings (#609)

* Sorting and organizing usings.

* Formatting the code.

* Trun on warnings as errors in all projects.

* Fixing small formatter error.

* Add set credential step

* name change.

* Save settings to solution .suo instead of global settings.

* no message

* no message

* no message

* code refactoring

* Code review changes.

* no message

* no message

* Fix some comments

* no message

* no message

* no message

* In-dialog validation framework and examples. (#552)

* Add ValidatingViewModelBase.

* Add validation popup to an error control template. Apply that error template to TextBoxs

* Implement validation for Publish Gke dialog.

* Add unit tests for ValidatingVeiwModelBase.

* Add GoogleCloudExtensionUnitTest.dll to unit test assemblies.

* Code review feedback change

* no message

* Fix comment

* code review

* no message

* no message

* Close remote PowerShell session at solution close time (#637)

* Close remote session at solution close time

* Connect debugger to remote tool (#638)

* bug fixes and improvement on browsing git source (#602)

* Improve code for searching git revision file.

* Updating the templates to the latest packages. (#606)

* Removing all warnings, adding setting to appveryor build to use warnings as errors. (#604)

* Fix merge error

* Force a rebuild

* Master sorting organzing usings formatting warnings (#609)

* Sorting and organizing usings.

* Formatting the code.

* Trun on warnings as errors in all projects.

* Fixing small formatter error.

* Add set credential step

* name change.

* Save settings to solution .suo instead of global settings.

* no message

* no message

* no message

* code refactoring

* Code review changes.

* no message

* no message

* List process clean up.

* Fix some comments

* no message

* no message

* no message

* In-dialog validation framework and examples. (#552)

* Add ValidatingViewModelBase.

* Add validation popup to an error control template. Apply that error template to TextBoxs

* Implement validation for Publish Gke dialog.

* Add unit tests for ValidatingVeiwModelBase.

* Add GoogleCloudExtensionUnitTest.dll to unit test assemblies.

* Code review feedback change

* no message

* Fix comment

* Fix merge error

* Close remote session at solution close time if it haven't

* execute closing events handlers in parallal.

* no message

* no message

* no message

* changes

* no message

* no message

* no message

* no message

* no message

* Changes on code review feedback

* change or code review

* Add a help message as last step (#642)

Add a help message as last step

* merge master (#650)

* merge master changes (#656)

* change out to ref

* Add cloud source repositories section to Team Explorer (#655)

* Add views (#689)

* Add views

* Show the list of repositories (#704)

* List repositories

* merge from master (#717)

* Add more test for Pub Sub cloud explorer resources.

* Minor change on text review feedback (#705)

* Resolve PR comments.

* Fix for issue #703

* Master merging gcs browser (#707)

* Initial drop of the tool window.

* Showing the simple contents of a bucket.

* Make the toolwindow multi window.

* Making the toolwindow behave like a document, transient.

* Set the caption when the bucket is updated.

* Initial visuals for the browser.

* Better look.

* Adding method to list directories, show data in the UI.

* Custom templates.

* Showing hyperlinks for directories.

* Show directories.

* Navigate directories, down.

* Navigate all the way to the top.

* Adding a stack of states to manage navigation.

* Adding region.

* Using a collection view source as the source of data.

* Initial implementation of custom sorter behaviors.

Initial implementation of custom sorter.

Creating sorter inline, making items a list to get right collectionv view.

Only sort on the right column.

* Adding selection and display of properties.

* Adding descriptions, full gs://... paths.

* Initial support for drop operations.

* Adding error handler, upload object creation.

* Adding refresh button, not hooked up yet.

* Adding refresh support.

* Adding method to upload files.

* Initial drop of the progress dialog.

Adding progress for the upload.

Making the dialog not disapear.

Better margins, paddings.

Use trimming for the name.

Refresh after upload operation.

Support multiple selection.

* Ensure the right size.

* Upload folders and subfolders.

* Adding icons for files and folder.

* Initial context menu.

* Implement download of files to a local folder.

* Sorting usings, adding method to delete files.

* Deleting files.

* Add message for dialog.

* Ensure licenses in all files.

* Formatting code.

* Ensuring licenses.

* Adding the content type.

* List the files to delete, better UI.

* Adding error prompt.

* Refactor the code to get all files under a given prefix.

* Download directories and sub-directories.

* Adding comments.

* Adding initial prompt for names, adding feature to create folders.

* Set the focus on load.

* Filter out folder names.

* Adding behavior for double click, using it for opening directories.

* Fixing the logic for adding/removing handler.

* Sorting and organizing usings, using Stream.Null instead of empty one.

* Ensuring licenses.

* Modifying the code so the formatter understands it.

* Moving parsing logic to the extension class.

* Adding comments, simplifying the code.

* Added local to simplify.

* Extracting strings.

* Extracting more strings.

* Adding scripts to find not extracted strings.

* Run the script that verifies that all literal strings are fixed.

* Simplify the find expression.

* Try this.

* Using bash syntax for path.

* Attempt at using python to replace find.

* Renamed to a better name.

* Adding missing strings, fixing script.

* Adding comments.

* Adding comments.

* Adding comments.

* Adding full path for directories as well.

* Adding a more generic behavior for controls, use it in the file browser.

* Adding interface to implement input behaviors.

* Extracting all strings.

* Setting the focus to the VS window.

* Removing the existing navigation stack.

* Adding missing licenses.

* Formatting code.

* Formatting, adding licenses, etc...

* Adding comments.

* Self review.

* First review comments.

* Updating the license.

* Adding comments.

* Fixing names, comments.

* M2 master merging master 20170210 (#412) (#414)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Merging m2 master into m2 gcs browser (#496)

* M2 master merging master 20170210 (#412)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* M2 master merging master 20170217 (#444)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* Stackdriver Logs Viewer (#445)

Stackdriver Logs Viewer

* Merging master into m2 master 20170307 (#495)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* Adding checkbox to choose whether a service is public. (#447)

* Separate the UI for exposing service from making it public.

* Show the cluster IP address of a private service.

* Modifying the logic to add spots where to delete services.

* Adding method to delete services, use it when upating.

* Extracting strings.

* Adding missing licenses, sorting usings, etc...

* Formatting code.

* Adding constant for the types.

* Add "Migrage all traffic" command for App Engine versions in Cloud Explorer (#448)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Trivial update of the icon. (#452)

* More flexibility to delete versions (#451)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Adding better logic to determine if a version can be deleted.

* Updating to version 1.1.4.0. (#455)

* Updating ASP.NET 4.x templates to add logging and error reporting. (#454)

* Initial drop of changes.

* Updating compressed templates.

* Updating compressed template.

* Adding missing usings.

* Adding missing dependencies.

* Adding missing usings.

* Updating assembly redirects.

* Adding targets to .csproj.

* Updating MVC with package references.

* Updating mvc template.

* Updating the assembly redirects.

* Updating JSON.NET binding.

* Adding initial check for valid config.

* Added support for error reporting.

* Updating usings.

* Missing using.

* Log at the end of logging setup.

* Better formatting.

* Fixing bad name.

* Adding parameters to the config file for error reporting.

* Removing the unused keys.

* Update the comment.

* Trying to use the projectId from the environment by default.

* Use the GCE details instead.

* Updating MVC to use the projectId from the ambient.

* Checkign for null project id.

* Removing extra dots. (#461)

* Prevent context menu to show from nodes with no context menu. (#460)

* Prevent the context menu to show if no menu is defined.

* Sorting and organzing usings, adding IsWarning for GCE no instances.

* Formatting code.

* Adding aspnetcore templates (#464)

* Adding new template.

* Initial drop of the template.

* Fixing the templates.

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library (#3)

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library

* Fix bad copy and update template

* Updated zip files.

* Add cleanup to script, remove the project.lock.json from template.

* Initial drop of Web API template.

* Fixing the template definition, adding .zip file.

* Adding the .zip to the project.

* Adding logging to Web API template.

* Adding missing reference.

* Updating formatting.

* Updating with final indentation.

* Adding updated project readme, ensuring it opens on creation.

* Updating templates to work on Gae as well.

* Using cached instance.

* Master fixing issue 463 (#466)

* Not generating the Dockerfile during deployment.

* Common strings, adding tracking of the task.

* Using the common strings.

* Updating strings.

* Updating to latest reviewed strings. (#469)

* Simplify menu strings.

* Updating strings.

* Adding analytics for deployments. (#472)

* Adding events for deployment targets, send those events.

* Report duration of deployment.

* Sorting/organizing usings.

* Adding missing licenses.

* Allow "runtime: custom" deployments from VS. (#470)

* Detect the runtime.

* Only use the runtime builder if the runtime is aspnetcore.

* Adds check for Cloud SDK version. (#473)

* Adding common check for gcloud version and components.

* Making methods private.

* Having common strings for gcloud failures.

* Sorting/organizing usings.

* Adding missing licenses.

* Formatting code.

* Updated the string to show the version required.

* Updating the string for out of date Cloud SDK.

* Adding comments.

* Adding comments.

* Using a label. (#475)

* Updating to version 1.1.5.0 (#476)

* Updating readmes (#485)

* Updating project template readmes.

* Updating the main readme.md

* Fixing typos.

* Updated readme. (#489)

* Requiring latest version of gcloud, removing workaround. (#488)

* Updating to version 1.1.6.0 (#490)

* Update the default view. (#493)

* Update the default view.

* Updating the templates.

* Updating to version 1.1.7.0 (#494)

* Removing unused strings.

* Fixing strings, removing unused ones.

* Removing the base check for now, too broad.

* M2 gcs browser merging master (#537)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* M2 master merging master 20170210 (#412)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* M2 master merging master 20170217 (#444)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* Stackdriver Logs Viewer (#445)

Stackdriver Logs Viewer

* Adding checkbox to choose whether a service is public. (#447)

* Separate the UI for exposing service from making it public.

* Show the cluster IP address of a private service.

* Modifying the logic to add spots where to delete services.

* Adding method to delete services, use it when upating.

* Extracting strings.

* Adding missing licenses, sorting usings, etc...

* Formatting code.

* Adding constant for the types.

* Add "Migrage all traffic" command for App Engine versions in Cloud Explorer (#448)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Trivial update of the icon. (#452)

* More flexibility to delete versions (#451)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Adding better logic to determine if a version can be deleted.

* Updating to version 1.1.4.0. (#455)

* Updating ASP.NET 4.x templates to add logging and error reporting. (#454)

* Initial drop of changes.

* Updating compressed templates.

* Updating compressed template.

* Adding missing usings.

* Adding missing dependencies.

* Adding missing usings.

* Updating assembly redirects.

* Adding targets to .csproj.

* Updating MVC with package references.

* Updating mvc template.

* Updating the assembly redirects.

* Updating JSON.NET binding.

* Adding initial check for valid config.

* Added support for error reporting.

* Updating usings.

* Missing using.

* Log at the end of logging setup.

* Better formatting.

* Fixing bad name.

* Adding parameters to the config file for error reporting.

* Removing the unused keys.

* Update the comment.

* Trying to use the projectId from the environment by default.

* Use the GCE details instead.

* Updating MVC to use the projectId from the ambient.

* Checkign for null project id.

* Removing extra dots. (#461)

* Prevent context menu to show from nodes with no context menu. (#460)

* Prevent the context menu to show if no menu is defined.

* Sorting and organzing usings, adding IsWarning for GCE no instances.

* Formatting code.

* Adding aspnetcore templates (#464)

* Adding new template.

* Initial drop of the template.

* Fixing the templates.

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library (#3)

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library

* Fix bad copy and update template

* Updated zip files.

* Add cleanup to script, remove the project.lock.json from template.

* Initial drop of Web API template.

* Fixing the template definition, adding .zip file.

* Adding the .zip to the project.

* Adding logging to Web API template.

* Adding missing reference.

* Updating formatting.

* Updating with final indentation.

* Adding updated project readme, ensuring it opens on creation.

* Updating templates to work on Gae as well.

* Using cached instance.

* Master fixing issue 463 (#466)

* Not generating the Dockerfile during deployment.

* Common strings, adding tracking of the task.

* Using the common strings.

* Updating strings.

* Updating to latest reviewed strings. (#469)

* Simplify menu strings.

* Updating strings.

* Adding analytics for deployments. (#472)

* Adding events for deployment targets, send those events.

* Report duration of deployment.

* Sorting/organizing usings.

* Adding missing licenses.

* Allow "runtime: custom" deployments from VS. (#470)

* Detect the runtime.

* Only use the runtime builder if the runtime is aspnetcore.

* Adds check for Cloud SDK version. (#473)

* Adding common check for gcloud version and components.

* Making methods private.

* Having common strings for gcloud failures.

* Sorting/organizing usings.

* Adding missing licenses.

* Formatting code.

* Updated the string to show the version required.

* Updating the string for out of date Cloud SDK.

* Adding comments.

* Adding comments.

* Using a label. (#475)

* Updating to version 1.1.5.0 (#476)

* Updating readmes (#485)

* Updating project template readmes.

* Updating the main readme.md

* Fixing typos.

* Updated readme. (#489)

* Requiring latest version of gcloud, removing workaround. (#488)

* Updating to version 1.1.6.0 (#490)

* Update the default view. (#493)

* Update the default view.

* Updating the templates.

* Updating to version 1.1.7.0 (#494)

* Merging master into m2 master 20170307 (#495)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* Adding checkbox to choose whether a service is public. (#447)

* Separate the UI for exposing service from making it public.

* Show the cluster IP address of a private service.

* Modifying the logic to add spots where to delete services.

* Adding method to delete services, use it when upating.

* Extracting strings.

* Adding missing licenses, sorting usings, etc...

* Formatting code.

* Adding constant for the types.

* Add "Migrage all traffic" command for App Engine versions in Cloud Explorer (#448)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Trivial update of the icon. (#452)

* More flexibility to delete versions (#451)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Adding better logic to determine if a version can be deleted.

* Updating to version 1.1.4.0. (#455)

* Updating ASP.NET 4.x templates to add logging and error reporting. (#454)

* Initial drop of changes.

* Updating compressed templates.

* Updating compressed template.

* Adding missing usings.

* Adding missing dependencies.

* Adding missing usings.

* Updating assembly redirects.

* Adding targets to .csproj.

* Updating MVC with package references.

* Updating mvc template.

* Updating the assembly redirects.

* Updating JSON.NET binding.

* Adding initial check for valid config.

* Added support for error reporting.

* Updating usings.

* Missing using.

* Log at the end of logging setup.

* Better formatting.

* Fixing bad name.

* Adding parameters to the config file for error reporting.

* Removing the unused keys.

* Update the comment.

* Trying to use the projectId from the environment by default.

* Use the GCE details instead.

* Updating MVC to use the projectId from the ambient.

* Checkign for null project id.

* Removing extra dots. (#461)

* Prevent context menu to show from nodes with no context menu. (#460)

* Prevent the context menu to show if no menu is defined.

* Sorting and organzing usings, adding IsWarning for GCE no instances.

* Formatting code.

* Adding aspnetcore templates (#464)

* Adding new template.

* Initial drop of the template.

* Fixing the templates.

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library (#3)

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library

* Fix bad copy and update template

* Updated zip files.

* Add cleanup to script, remove the project.lock.json from template.

* Initial drop of Web API template.

* Fixing the template definition, adding .zip file.

* Adding the .zip to the project.

* Adding logging to Web API template.

* Adding missing reference.

* Updating formatting.

* Updating with final indentation.

* Adding updated project readme, ensuring it opens on creation.

* Updating templates to work on Gae as well.

* Using cached instance.

* Master fixing issue 463 (#466)

* Not generating the Dockerfile during deployment.

* Common strings, adding tracking of the task.

* Using the common strings.

* Updating strings.

* Updating to latest reviewed strings. (#469)

* Simplify menu strings.

* Updating strings.

* Adding analytics for deployments. (#472)

* Adding events for deployment targets, send those events.

* Report duration of deployment.

* Sorting/organizing usings.

* Adding missing licenses.

* Allow "runtime: custom" deployments from VS. (#470)

* Detect the runtime.

* Only use the runtime builder if the runtime is aspnetcore.

* Adds check for Cloud SDK version. (#473)

* Adding common check for gcloud version and components.

* Making methods private.

* Having common strings for gcloud failures.

* Sorting/organizing usings.

* Adding missing licenses.

* Formatting code.

* Updated the string to show the version required.

* Updating the string for out of date Cloud SDK.

* Adding comments.

* Adding comments.

* Using a label. (#475)

* Updating to version 1.1.5.0 (#476)

* Updating readmes (#485)

* Updating project template readmes.

* Updating the main readme.md

* Fixing typos.

* Updated readme. (#489)

* Requiring latest version of gcloud, removing workaround. (#488)

* Updating to version 1.1.6.0 (#490)

* Update the default view. (#493)

* Update the default view.

* Updating the templates.

* Updating to version 1.1.7.0 (#494)

* Removing unused strings.

* Updating to version 1.2.2.0

* Remove duplicate.

* Merge m2_e_report to master (#516)

Add Error Reporting Viewer

* Pubsub feature (#520)

* Pub sub (#186)

Add Pub/Sub tree element.
Add topics under Pub/Sub tree element.
Add listing subscriptions by topic.

* Pub sub add/delete topics and subscriptions. (#202)

* Add create and delete windows for PubSub topics and subscriptions.

* Update code to work with new changes in master.

* Resolve comments from Deren.

* Resolve Ivann PR comments.

* Make all validation messages end with a period.

* Add changes based on UI review.

* Change acknowledgement deadline label to be a LabelWithHelp.

* Use 1.0 tag instead.

* Change text on Action button of Delete resource dialogs to Delete. (#531)

Close #527

* Fix xaml errors (#524)

* Make BindableList a subclass of ObservableCollection. This removes a designer warning on the <theming:CommonDialogWindowBaseContent.Buttons/> element of every xaml file.

* Remove the now useless BindableList.Collection

* Cleaning up conflicts.

* Fixing the last conflicts.

* Removed unused strings, restored script to the master level.

* M2 gcs browser mergin master (#587)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* M2 master merging master 20170210 (#412)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* M2 master merging master 20170217 (#444)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#418)

* Adding functionality to read the name property of the project.json.

* Sorting and organizing usings.

* Adding missing licenses.

* Better comments.

* Adding error details to the error dialog, show when erorr details are present. (#422)

* Adding support for parsing the 'service: name' portion of an app.yaml. (#420)

* Adding support for parsing the 'service: name' portion of an app.yaml.

* Fixed the comment.

* Adding the param to the string. (#428)

* Ensuring right credentials for kubectl calls. (#434)

* Common way of storing env, set the variable to use gcloud.

* Adding workaround for kubectl credentials foes.

* Organizing usings.

* Adding licenses.

* Results from the review.

* Using the official runtime tag. (#439)

* Use the "runtime: aspnetcore" in the generated app.yaml. (#441)

* User the runtime builder to build the app for App Engine Flex.

* Enable runtime builders when deploying to App Engine Flex.

* Updating to version 1.1.3.0. (#442)

* Stackdriver Logs Viewer (#445)

Stackdriver Logs Viewer

* Adding checkbox to choose whether a service is public. (#447)

* Separate the UI for exposing service from making it public.

* Show the cluster IP address of a private service.

* Modifying the logic to add spots where to delete services.

* Adding method to delete services, use it when upating.

* Extracting strings.

* Adding missing licenses, sorting usings, etc...

* Formatting code.

* Adding constant for the types.

* Add "Migrage all traffic" command for App Engine versions in Cloud Explorer (#448)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Trivial update of the icon. (#452)

* More flexibility to delete versions (#451)

* Remove the nullable double.

* Adding simpler await for operations, use it for the 100% migration.

* Bit of refactoring and sharing code.

* Extracting strings.

* Hide away the operation poller.

* Better formatting.

* Review feedback.

* Adding better logic to determine if a version can be deleted.

* Updating to version 1.1.4.0. (#455)

* Updating ASP.NET 4.x templates to add logging and error reporting. (#454)

* Initial drop of changes.

* Updating compressed templates.

* Updating compressed template.

* Adding missing usings.

* Adding missing dependencies.

* Adding missing usings.

* Updating assembly redirects.

* Adding targets to .csproj.

* Updating MVC with package references.

* Updating mvc template.

* Updating the assembly redirects.

* Updating JSON.NET binding.

* Adding initial check for valid config.

* Added support for error reporting.

* Updating usings.

* Missing using.

* Log at the end of logging setup.

* Better formatting.

* Fixing bad name.

* Adding parameters to the config file for error reporting.

* Removing the unused keys.

* Update the comment.

* Trying to use the projectId from the environment by default.

* Use the GCE details instead.

* Updating MVC to use the projectId from the ambient.

* Checkign for null project id.

* Removing extra dots. (#461)

* Prevent context menu to show from nodes with no context menu. (#460)

* Prevent the context menu to show if no menu is defined.

* Sorting and organzing usings, adding IsWarning for GCE no instances.

* Formatting code.

* Adding aspnetcore templates (#464)

* Adding new template.

* Initial drop of the template.

* Fixing the templates.

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library (#3)

* Update the Google ASP.NET Core MVC template to use the Google.Cloud.Diagnositc.AspNetCore library

* Fix bad copy and update template

* Updated zip files.

* Add cleanup to script, remove the project.lock.json from template.

* Initial drop of Web API template.

* Fixing the template definition, adding .zip file.

* Adding the .zip to the project.

* Adding logging to Web API template.

* Adding missing reference.

* Updating formatting.

* Updating with final indentation.

* Adding updated project readme, ensuring it opens on creation.

* Updating templates to work on Gae as well.

* Using cached instance.

* Master fixing issue 463 (#466)

* Not generating the Dockerfile during deployment.

* Common strings, adding tracking of the task.

* Using the common strings.

* Updating strings.

* Updating to latest reviewed strings. (#469)

* Simplify menu strings.

* Updating strings.

* Adding analytics for deployments. (#472)

* Adding events for deployment targets, send those events.

* Report duration of deployment.

* Sorting/organizing usings.

* Adding missing licenses.

* Allow "runtime: custom" deployments from VS. (#470)

* Detect the runtime.

* Only use the runtime builder if the runtime is aspnetcore.

* Adds check for Cloud SDK version. (#473)

* Adding common check for gcloud version and components.

* Making methods private.

* Having common strings for gcloud failures.

* Sorting/organizing usings.

* Adding missing licenses.

* Formatting code.

* Updated the string to show the version required.

* Updating the string for out of date Cloud SDK.

* Adding comments.

* Adding comments.

* Using a label. (#475)

* Updating to version 1.1.5.0 (#476)

* Updating readmes (#485)

* Updating project template readmes.

* Updating the main readme.md

* Fixing typos.

* Updated readme. (#489)

* Requiring latest version of gcloud, removing workaround. (#488)

* Updating to version 1.1.6.0 (#490)

* Update the default view. (#493)

* Update the default view.

* Updating the templates.

* Updating to version 1.1.7.0 (#494)

* Merging master into m2 master 20170307 (#495)

* Cleanup the name to ensure no invalid chars. (#393)

* Cleanup the name to ensure no invalid chars.

* Review results.

* Adding save all method, call it from the deployment steps. (#395)

* Master fixing issue 253 (#402)

* Adding common default version code.

* Sorting usings.

* Formatting code.

* Adding licenses.

* Adding validation for the GKE step.

* Adding validation for the name in Flex.

* Updating comment.

* Addressing review comments.

* Master app engine load upfront (#401)

* Fixing caption, detection of flex environment, default value of filter.

* Load all data upfront for app engine.

* Load everything in parallel.

* Removed unneeded code.

* Simplify code.

* Invalidate the state of the service in the explorer.

* Keep the expanded state.

* Disable the menu when busy, share code with GCE source.

* Removed unused strings.

* Renamed to be more ASP.NET Core specific.

* Adding project context menu item to generate project's app.yaml and Dockerfile. (#406)

* Initial setup of the command.

* First iteration of the generation.

* Check for configuration status, warn the user iteration 1.

* Renaming the folder.

* Extracting all strings, small refactoring.

* Sorting usings.

* Adding missing licenses.

* Formatting code.

* Adding comments.

* Only display the menu item if the project is ASP.NET Core.

* Updating string to be more explicit.

* Adding missing error handling.

* Setting the working directory to the project's root for ASP.NET Core apps when deploying. (#407)

* Set the current working directory to the project.

* Use the project.json from the current directory.

* Clarified comment.

* Ensuring all GAE Property window items have descriptions and display names, removing instances. (#409)

* Adding description for the service.

* Adding more descriptions for the version item.

* Removing unused strings.

* Removing the instances from the GAE source.

* Adding the last strings.

* Removing unused strings.

* Fixing the Service => service issue.

* Updating to version 1.1.2.0 (#413)

* Take into account the "name" property from project.json. (#41…
  • Loading branch information
Deren-Liao authored Jul 14, 2017
1 parent 6bfee25 commit d38b124
Show file tree
Hide file tree
Showing 86 changed files with 4,876 additions and 66 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using Google;
using Google.Apis.Auth.OAuth2;
using Google.Apis.CloudSourceRepositories.v1;
using Google.Apis.CloudSourceRepositories.v1.Data;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;

namespace GoogleCloudExtension.DataSources
{
/// <summary>
/// Data source class that lists or creates Google Cloud Source Repositories.
/// </summary>
public class CsrDataSource : DataSourceBase<CloudSourceRepositoriesService>
{
/// <summary>
/// Initializes an instance of <seealso cref="CsrDataSource"/> class.
/// </summary>
/// <param name="projectId">A Google Cloud Platform project id of the current user account.</param>
/// <param name="credential">The credentials to use for the call.</param>
/// <param name="appName">The name of the application.</param>
public CsrDataSource(string projectId, GoogleCredential credential, string appName)
: base(projectId, credential, init => new CloudSourceRepositoriesService(init), appName)
{ }

/// <summary>
/// Returns all repositories under the GCP project.
/// </summary>
public async Task<IList<Repo>> ListReposAsync()
{
return await LoadPagedListAsync(
(token) =>
{
var request = Service.Projects.Repos.List(ProjectResourceName);
request.PageToken = token;
return request.ExecuteAsync();
},
x => x.Repos,
x => x.NextPageToken);
}

/// <summary>
/// Creates a cloud source repository.
/// </summary>
/// <param name="repoName">The repository name.</param>
public async Task<Repo> CreateRepoAsync(string repoName)
{
if (string.IsNullOrWhiteSpace(repoName))
{
throw new ArgumentNullException(nameof(repoName));
}

var body = new Repo { Name = $"{ProjectResourceName}/repos/{repoName}" };
var request = Service.Projects.Repos.Create(body, ProjectResourceName);
try
{
return await request.ExecuteAsync();
}
catch (GoogleApiException ex)
{
Debug.WriteLine($"Failed to create CSR repo: {ex.Message}");
throw new DataSourceException(ex.Message, ex);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using Google;
using System;
using System.Runtime.Serialization;

Expand All @@ -23,6 +24,8 @@ namespace GoogleCloudExtension.DataSources
[Serializable]
public class DataSourceException : Exception
{
public GoogleApiException InnerGoogleApiException { get; }

public DataSourceException()
{
}
Expand All @@ -33,6 +36,7 @@ public DataSourceException(string message) : base(message)

public DataSourceException(string message, Exception innerException) : base(message, innerException)
{
InnerGoogleApiException = innerException as GoogleApiException;
}

protected DataSourceException(SerializationInfo info, StreamingContext context) : base(info, context)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
<HintPath>..\packages\Google.Apis.CloudResourceManager.v1.1.26.2.874\lib\net45\Google.Apis.CloudResourceManager.v1.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Google.Apis.CloudSourceRepositories.v1, Version=1.26.2.878, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.CloudSourceRepositories.v1.1.26.2.878\lib\net45\Google.Apis.CloudSourceRepositories.v1.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Google.Apis.Compute.v1, Version=1.26.2.865, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Compute.v1.1.26.2.865\lib\net45\Google.Apis.Compute.v1.dll</HintPath>
<Private>True</Private>
Expand Down Expand Up @@ -125,6 +129,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="CloudSQLDataSource.cs" />
<Compile Include="CsrDataSource.cs" />
<Compile Include="DatabaseInstanceExtensions.cs" />
<Compile Include="DataSourceBase.cs" />
<Compile Include="DataSourceException.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;

namespace GoogleCloudExtension.DataSources
Expand All @@ -36,6 +37,7 @@ public ResourceManagerDataSource(GoogleCredential credential, string appName)

/// <summary>
/// Returns the complete list of projects for the current credentials.
/// It always return empty list if no item is found, caller can safely assume there is no null return.
/// </summary>
public Task<IList<Project>> GetProjectsListAsync()
{
Expand Down Expand Up @@ -67,5 +69,20 @@ public Task<Project> GetProjectAsync(string projectId)
{
return Service.Projects.Get(projectId).ExecuteAsync();
}


/// <summary>
/// Retrives the list of "ACTIVE" projects that belongs to current account.
/// Sort the resulsts by project name.
/// </summary>
/// <returns>
/// A list of <seealso cref="Project"/>.
/// It always return empty list if no item is found, caller can safely assume there is no null return.
/// </returns>
public async Task<IList<Project>> GetSortedActiveProjectsAsync() =>
(await GetProjectsListAsync())?
.Where(x => x.LifecycleState == "ACTIVE")
.OrderBy(x => x.Name)
.ToList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<package id="Google.Apis.Auth" version="1.26.2" targetFramework="net452" />
<package id="Google.Apis.Clouderrorreporting.v1beta1" version="1.26.2.874" targetFramework="net452" />
<package id="Google.Apis.CloudResourceManager.v1" version="1.26.2.874" targetFramework="net452" />
<package id="Google.Apis.CloudSourceRepositories.v1" version="1.26.2.878" targetFramework="net452" />
<package id="Google.Apis.Compute.v1" version="1.26.2.865" targetFramework="net452" />
<package id="Google.Apis.Container.v1" version="1.26.2.850" targetFramework="net452" />
<package id="Google.Apis.Core" version="1.26.2" targetFramework="net452" />
Expand Down
131 changes: 131 additions & 0 deletions GoogleCloudExtension/GoogleCloudExtension.GitUtils/CsrGitUtils.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using GoogleCloudExtension.Utils;
using System;
using System.Diagnostics;
using System.Linq;
using System.IO;
using System.Threading.Tasks;

namespace GoogleCloudExtension.GitUtils
{
/// <summary>
/// Helper methods for clone, create Google Cloud Source Repositories.
/// </summary>
public static class CsrGitUtils
{
/// <summary>
/// To use refresh token to access CSR, the user name is required to be this constant name.
/// </summary>
private const string CsrRefreshTokenAccessUserName = "VisualStudioUser";

/// <summary>
/// The Google Cloud Source Repositories url scheme + host part.
/// </summary>
public const string CsrUrlAuthority = "https://source.developers.google.com";

/// <summary>
/// Clone a Google Cloud Source Repository locally.
/// </summary>
/// <param name="url">The repository remote URL.</param>
/// <param name="localPath">Local path to save the repository</param>
/// <returns>
/// A <seealso cref="GitRepository"/> object.
/// </returns>
/// <exception cref="GitCommandException">Throw when git command fails</exception>
public static async Task<GitRepository> CloneAsync(string url, string localPath)
{
if (Directory.Exists(localPath))
{
throw new ArgumentException($"{localPath} arleady exists.");
}

Directory.CreateDirectory(localPath);

// git clone https://host/myrepo/ "c:\git\myrepo" --config credential.helper=manager
string command = $@"clone {url} ""{localPath}"" --config credential.helper=manager";
var output = await GitRepository.RunGitCommandAsync(command, localPath);
Debug.WriteLine(output.FirstOrDefault() ?? "");
return await GitRepository.GetGitCommandWrapperForPathAsync(localPath);
}

/// <summary>
/// Store credential using git-credential-manager
/// </summary>
/// <param name="url">The repository url.</param>
/// <param name="refreshToken">Google cloud credential refresh token.</param>
/// <param name="pathOption"><seealso cref="StoreCredentialPathOption"/> </param>
/// <returns>
/// True: if credential is stored successfully.
/// Otherwise false.
/// </returns>
public static bool StoreCredential(
string url,
string refreshToken,
StoreCredentialPathOption pathOption)
{
url.ThrowIfNullOrEmpty(nameof(url));
refreshToken.ThrowIfNullOrEmpty(nameof(refreshToken));

Uri uri = new Uri(url);
UriPartial uriPartial;
switch(pathOption)
{
case StoreCredentialPathOption.UrlPath:
uriPartial = UriPartial.Path;
break;
case StoreCredentialPathOption.UrlHost:
uriPartial = UriPartial.Authority;
break;
default:
throw new ArgumentException(nameof(pathOption));
}
return WindowsCredentialManager.Write(
$"git:{uri.GetLeftPart(uriPartial)}",
username: CsrRefreshTokenAccessUserName,
password: refreshToken,
credentialType: WindowsCredentialManager.CredentialType.Generic,
persistenceType: WindowsCredentialManager.CredentialPersistence.LocalMachine);
}

/// <summary>
/// Set global git config useHttpPath for CSR host.
/// Refer to https://git-scm.com/docs/gitcredentials
/// </summary>
public static Task SetUseHttpPathAsync() =>
GitRepository.RunGitCommandAsync(
$"config --global credential.{CsrUrlAuthority}.useHttpPath true",
Directory.GetCurrentDirectory());

/// <summary>
/// Refer to <seealso cref="StoreCredential(string, string, StoreCredentialPathOption)"/>.
/// Store credential path option.
/// </summary>
public enum StoreCredentialPathOption
{
/// <summary>
/// Store credential for the host.
/// Example: https://source.developers.google.com
/// </summary>
UrlHost,

/// <summary>
/// Store credential for the UrlPath.
/// Example: https://source.developers.google.com/p/project-id/r/repo1
/// </summary>
UrlPath
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System;

namespace GoogleCloudExtension.GitUtils
{
/// <summary>
/// Exception if git command fails
/// </summary>
public class GitCommandException : Exception
{
public GitCommandException()
{ }
}
}
Loading

0 comments on commit d38b124

Please sign in to comment.