diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql
index 3f2dd1b2..ddbe2d69 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -4462,4 +4462,759 @@ GO
BEGIN
UPDATE [dbo].[ServiceItemTypes] SET [Suspendable] = 1 WHERE [ItemTypeID] = 38 AND [GroupID] = 23
END
-GO
\ No newline at end of file
+GO
+
+/* SQL 2014 Provider */
+IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft SQL Server 2014')
+BEGIN
+INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (1203, 46, N'MsSQL', N'Microsoft SQL Server 2014', N'WebsitePanel.Providers.Database.MsSqlServer2014, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)
+INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (39, 46, N'MsSQL2014Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1)
+INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 46, N'MsSQL2014User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (470, 46, 1, N'MsSQL2014.Databases', N'Databases', 2, 0, 39, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (471, 46, 2, N'MsSQL2014.Users', N'Users', 2, 0, 40, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (472, 46, 3, N'MsSQL2014.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (473, 46, 5, N'MsSQL2014.Backup', N'Database Backups', 1, 0, NULL, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (474, 46, 6, N'MsSQL2014.Restore', N'Database Restores', 1, 0, NULL, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (475, 46, 7, N'MsSQL2014.Truncate', N'Database Truncate', 1, 0, NULL, NULL)
+INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (476, 46, 4, N'MsSQL2014.MaxLogSize', N'Max Log Size', 3, 0, NULL, NULL)
+END
+ELSE
+BEGIN
+UPDATE [dbo].[Providers] SET [DisableAutoDiscovery] = NULL, GroupID = 46 WHERE [DisplayName] = 'Microsoft SQL Server 2014'
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'MsSQL2014')
+BEGIN
+INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController], [ShowGroup]) VALUES (46, N'MsSQL2014', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController', 1)
+END
+ELSE
+BEGIN
+UPDATE [dbo].[ResourceGroups] SET [ShowGroup] = 1 WHERE [GroupName] = 'MsSQL2014'
+END
+GO
+
+/*This should be [DefaultValue]= N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MsSQL2014=SQL Server 2014;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' but the field is not large enough!! */
+UPDATE [dbo].[ScheduleTaskParameters] SET [DefaultValue]= N'MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MsSQL2014=SQL Server 2014;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' WHERE [TaskID]= 'SCHEDULE_TASK_BACKUP_DATABASE' AND [ParameterID]='DATABASE_GROUP'
+GO
+
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'PackageSummaryLetter', N'HtmlBody', N'
+
+ Hosting Space Summary Information
+
+
+
+
+
+
+
+
+
+
+
+Hello #user.FirstName#,
+
+
+
+"#space.Package.PackageName#" hosting space has been created under your user account
+and below is the summary information for its resources.
+
+
+
+
+
+
+
+Control Panel URL
+
+
+
+
+
Hosting Space Overview
+
+
+ General hosting space limits:
+
+
+
+ Disk Space, MB: |
+ |
+
+
+ Bandwidth, MB/Month: |
+ |
+
+
+ Maximum Number of Domains: |
+ |
+
+
+ Maximum Number of Sub-Domains: |
+ |
+
+
+
+
+
+Web
+
+
+ Limits
+
+
+
+ Maximum Number of Web Sites: |
+ |
+
+
+ Web Application Gallery: |
+ |
+
+
+ Classic ASP: |
+ |
+
+
+ ASP.NET 1.1: |
+ |
+
+
+ ASP.NET 2.0: |
+ |
+
+
+ ASP.NET 4.0: |
+ |
+
+
+ PHP 4: |
+ |
+
+
+ PHP 5: |
+ |
+
+
+ Perl: |
+ |
+
+
+ CGI-BIN: |
+ |
+
+
+
+
+
+Name Servers
+
+ In order to point your domain to the web site in this hosting space you should use the following Name Servers:
+
+
+
+ You should change the name servers in domain registrar (Register.com, GoDaddy.com, etc.) control panel.
+ Please, study domain registrar''s user manual for directions how to change name servers or contact your domain
+ registrar directly by e-mail or phone.
+
+
+ Please note, the changes in domain registrar database do not reflect immediately and sometimes it requires from
+ 12 to 48 hours till the end of DNS propagation.
+
+
+
+Web Sites
+
+ The following web sites have been created under hosting space:
+
+
+
+ * Please note, your web sites may not be accessible from 12 to 48 hours after you''ve changed name servers for their respective domains.
+
+
+
+
+Temporary URL
+
+ You can access your web sites right now using their respective temporary URLs (instant aliases).
+ Temporary URL is a sub-domain of the form http://yourdomain.com.providerdomain.com where "yourdomain.com" is your
+ domain and "providerdomain.com" is the domain of your hosting provider.
+
+
+ You can use the following Temporary URL for all your web sites:
+
+
+
+
+ http://YourDomain.com.#InstantAlias#
+ |
+
+
+
+
+
+Files Location
+
+ Sometimes it is required to know the physical location of the hosting space folder (absolute path).
+ Hosting space folder is the folder where all hosting space files such as web sites content, web logs, data files, etc. are located.
+
+
+ The root of your hosting space on our HDD is here:
+
+
+
+
+ #PackageRootFolder#
+ |
+
+
+
+ By default the root folder of any web site within your hosting space is built as following (you can change it anytime from the control panel):
+
+
+
+
+ #PackageRootFolder#\YourDomain.com\wwwroot
+ |
+
+
+
+
+
+
+
+FTP
+
+
+Limits
+
+
+ Maximum Number of FTP Accounts: |
+ |
+
+
+
+
+
+FTP Server
+
+Your hosting space allows working with your files by FTP.
+You can use the following FTP server to access your space files remotely:
+
+
+
+ Also, you can use the following domain names to access your FTP server:
+
+
+
+ ftp://ftp.YourDomain.com |
+
+
+
+
+ During DNS propagation period (when domain name servers have been changed), similar to web sites, FTP server can be access with Temporary URL too:
+
+
+
+ ftp://ftp.YourDomain.com.#InstantAlias# |
+
+
+
+
+FTP Accounts
+
+ The following FTP accounts have been created under your hosting space and can be used to access FTP server:
+
+
+
+
+ Username |
+
+ Password |
+
+ Folder |
+
+
+
+
+
+ #FtpAcocunt.Name# |
+
+
+ #FtpAcocunt.Password#
+ |
+
+ #FtpAcocunt.Folder# |
+
+
+
+
+
+
+
+
+
+Mail
+
+
+Limits
+
+
+ Maximum Number of Mail Accounts: |
+ |
+
+
+ Maximum Number of Mail Forwardings: |
+ |
+
+
+ Maximum Number of Mail Groups (Aliases): |
+ |
+
+
+ Maximum Number of Mailing Lists: |
+ |
+
+
+
+
+SMTP/POP3 Server
+
+Below is the IP address of your POP3/SMTP/IMAP server. You can always access your mailbox(es)
+using this IP address instead of actual POP3/SMTP/IMAP servers name:
+
+
+
+
+ #MailRecords[0].ExternalIP#
+ |
+
+
+
+
+ Also, you can use the following domain names to access SMTP/POP3 server from your favourite e-mail client software:
+
+
+
+ mail.YourDomain.com |
+
+
+
+
+
+ During DNS propagation period (when domain name servers have been changed), similar to web sites, SMTP/POP3 server can be access with temporary domain too:
+
+
+
+ mail.YourDomain.com.#InstantAlias# |
+
+
+
+
+
+Mail Accounts
+
+ The following mail accounts have been created under your hosting space:
+
+
+
+
+ E-mail |
+ Username (for POP3/SMTP/IMAP/WebMail) |
+
+ Password |
+
+
+
+
+
+
+ #MailAccount.Name# |
+ #MailAccount.Name# |
+
+
+ #MailAccount.Password#
+ |
+
+
+
+
+
+
+
+
+
Databases
+
+
+ You can create databases and database users on "Space Home -> Databases" screen in the control panel.
+
+
+
+
+
+SQL Server 2000
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to SQL Server 2000 from Management Studio, Enterprise Manager, Query Analyzer
+ or other client software you can use the following SQL Server address:
+
+
+
+ #MsSQL2000Address# |
+
+
+
+
+
+
+
+
+SQL Server 2005
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to SQL Server 2005 from Management Studio, Enterprise Manager, Query Analyzer
+ or other client software you can use the following SQL Server address:
+
+
+
+ #MsSQL2005Address# |
+
+
+
+
+
+
+
+
+SQL Server 2008
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to SQL Server 2008 from Management Studio, Enterprise Manager, Query Analyzer
+ or other client software you can use the following SQL Server address:
+
+
+
+ #MsSQL2008Address# |
+
+
+
+
+
+
+
+
+SQL Server 2014
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to SQL Server 2014 from Management Studio, Enterprise Manager, Query Analyzer
+ or other client software you can use the following SQL Server address:
+
+
+
+ #MsSQL2014Address# |
+
+
+
+
+
+
+
+
+SQL Server 2014
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to SQL Server 2014 from Management Studio, Enterprise Manager, Query Analyzer
+ or other client software you can use the following SQL Server address:
+
+
+
+ #MsSQL2014Address# |
+
+
+
+
+
+
+
+MySQL 4.x
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to MySQL 4.x server you can use the following address:
+
+
+
+
+
+
+
+MySQL 5.x
+
+
+
+ Maximum Number of Databases: |
+ |
+
+
+ Maximum Number of Users: |
+ |
+
+
+
+
+ In order to connect to MySQL 5.x server you can use the following address:
+
+
+
+
+
+
+
Microsoft Access
+
+ Microsoft Access database are automatically allowed in any hosting plan. You can create/upload any number of Access
+ database from File Manager in control panel.
+
+
+
+
+
+Web Statistics
+
+
+
+ Maximum Number of Statistics Sites: |
+ |
+
+
+
+
+ You can view advanced statistics from your domain using URL of the following form:
+
+
+
+ http://stats.YourDomain.com |
+
+
+
+
+ During DNS propagation period (when domain name servers have been changed), you can access web site statistics with Temporary URL:
+
+
+
+ http://stats.YourDomain.com.#InstantAlias# |
+
+
+
+
+
+
+
+If you have any questions regarding your hosting account, feel free to contact our support department at any time.
+
+
+
+Best regards,
+ACME Hosting Inc.
+Web Site: www.AcmeHosting.com
+E-Mail: support@AcmeHosting.com
+
+
+
+
+
+
+ You may also use SQL Server address above in your application connection strings, for example:
+
+
+
+ Classic ASP (ADO Library) |
+ Provider=SQLOLEDB;Data source=#server#;Initial catalog=databaseName;User Id=userName;Password=password; |
+
+
+ ASP.NET (ADO.NET Library) |
+ Server=#server#;Database=databaseName;Uid=userName;Password=password; |
+
+
+
+
+
+
+ #space.Quotas[quota].QuotaAllocatedValue#Unlimited
+
+ 0
+
+
+
+
+
+ EnabledDisabled
+
+ Disabled
+
+
+
+
+
+')
+GO
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
index ca3e129a..78480041 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
@@ -39,6 +39,7 @@ namespace WebsitePanel.EnterpriseServer
public const string MsSql2005 = "MsSQL2005";
public const string MsSql2008 = "MsSQL2008";
public const string MsSql2012 = "MsSQL2012";
+ public const string MsSql2014 = "MsSQL2014";
public const string MySql5 = "MySQL5";
public const string Dns = "DNS";
public const string Statistics = "Statistics";
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
index 987e66e4..17bef13f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
@@ -482,6 +482,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
+ ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
@@ -1999,6 +2000,7 @@ namespace WebsitePanel.EnterpriseServer
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2005);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2008);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2012);
+ SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2014);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql4);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql5);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
index eaca340c..02050909 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
@@ -1780,6 +1780,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
+ ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
@@ -2338,6 +2339,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2012, domain, "");
+ ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Statistics, domain, "");
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs
index 3dc7c030..fdb190cb 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs
@@ -262,7 +262,8 @@ namespace WebsitePanel.EnterpriseServer
//if (context.Groups.ContainsKey(ResourceGroups.MsSql2000) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2005) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2008) ||
- // context.Groups.ContainsKey(ResourceGroups.MsSql2012))
+ // context.Groups.ContainsKey(ResourceGroups.MsSql2012) ||
+ // context.Groups.ContainsKey(ResourceGroups.MsSql2014))
//{
// appsFilter.AddRange(SupportedAppDependencies.MSSQL_DATABASE);
//}
@@ -496,6 +497,7 @@ namespace WebsitePanel.EnterpriseServer
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2012)
+ || context.Groups.ContainsKey(ResourceGroups.MsSql2014)
|| context.Groups.ContainsKey(ResourceGroups.MySql4)
|| context.Groups.ContainsKey(ResourceGroups.MySql5)))
result.ErrorCodes.Add(GalleryErrors.DatabaseRequired);
@@ -505,7 +507,8 @@ namespace WebsitePanel.EnterpriseServer
&& !(context.Groups.ContainsKey(ResourceGroups.MsSql2000)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008)
- || context.Groups.ContainsKey(ResourceGroups.MsSql2012)))
+ || context.Groups.ContainsKey(ResourceGroups.MsSql2012)
+ || context.Groups.ContainsKey(ResourceGroups.MsSql2014)))
result.ErrorCodes.Add(GalleryErrors.SQLRequired);
// MySQL
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/MsSqlServer2014.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/MsSqlServer2014.cs
new file mode 100644
index 00000000..a3e84919
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/MsSqlServer2014.cs
@@ -0,0 +1,47 @@
+// Copyright (c) 2014, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+
+namespace WebsitePanel.Providers.Database
+{
+ public class MsSqlServer2014 : MsSqlServer2005
+ {
+ public override bool IsInstalled()
+ {
+ return CheckVersion("12.");
+ }
+
+ public override void TruncateDatabase(string databaseName)
+ {
+ SqlDatabase database = GetDatabase(databaseName);
+ ExecuteNonQuery(String.Format(@"USE [{0}];DBCC SHRINKFILE ('{1}', 1);",
+ databaseName, database.LogName));
+ }
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.csproj
index 2e00638b..e1779c25 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.csproj
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.csproj
@@ -66,6 +66,7 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.sln b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.sln
new file mode 100644
index 00000000..5f020c9c
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Database.SqlServer/WebsitePanel.Providers.Database.SqlServer.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Database.SqlServer", "WebsitePanel.Providers.Database.SqlServer.csproj", "{3744791D-C7B5-4818-8521-78EB5261CB34}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3744791D-C7B5-4818-8521-78EB5261CB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3744791D-C7B5-4818-8521-78EB5261CB34}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3744791D-C7B5-4818-8521-78EB5261CB34}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3744791D-C7B5-4818-8521-78EB5261CB34}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ModulesData.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ModulesData.config
index c418eca5..54627906 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ModulesData.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ModulesData.config
@@ -57,6 +57,7 @@
+
@@ -115,6 +116,7 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
index 9dd556ee..7c08a0dc 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
@@ -417,6 +417,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx
index 6e584424..4b8617d3 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx
@@ -287,6 +287,12 @@
{user} - {space} - SQL Server 2012
+
+
+ SQL Server 2014
+
+
+ {user} - {space} - SQL Server 2014
{user} - {space} - SQL Server 2005
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
index 985172f2..1976376c 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
@@ -1854,6 +1854,24 @@
Users
+
+ Database Backups
+
+
+ Databases
+
+
+ Max Database Size, MB
+
+
+ Database Restores
+
+
+ Database Truncate
+
+
+ Users
+
Database Backups
@@ -1905,6 +1923,9 @@
SQL Server 2012
+
+ SQL Server 2014
+
Minimum Tasks Interval, minutes
@@ -2100,6 +2121,12 @@
MS SQL 2012 User
+
+ MS SQL 2014 Database
+
+
+ MS SQL 2014 User
+
MySQL 4 Database
@@ -3274,6 +3301,9 @@
Max Log Size, MB
+
+ Max Log Size, MB
+
Error updating mailbox permissions. See audit log for more details.
@@ -4834,6 +4864,9 @@
SQL Server 2012
+
+ SQL Server 2014
+
Error while install application pack
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/App_LocalResources/HostingPlanQuotas.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/App_LocalResources/HostingPlanQuotas.ascx.resx
index 35fd28ca..618ce2c3 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/App_LocalResources/HostingPlanQuotas.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/App_LocalResources/HostingPlanQuotas.ascx.resx
@@ -168,4 +168,7 @@
Microsoft SQL 2012 Quotas
+
+ Microsoft SQL 2014 Quotas
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx
index 75d7707f..c355b985 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx
@@ -165,7 +165,7 @@
-
+
|
@@ -179,6 +179,25 @@
+
+
+
+
+
+
+
+ |
+
+
+
+
+ <%# GetSharedLocalizedString("Quota." + GetQuotaItemName((string)Container.DataItem)) %>: |
+ <%# GetQuotaItemAllocatedValue((string)Container.DataItem) %> |
+
+
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx.designer.cs
index d599044c..190ad3aa 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/Ecommerce/UserControls/HostingPlanQuotas.ascx.designer.cs
@@ -1,10 +1,9 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:2.0.50727.3074
//
// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
+// the code is regenerated.
//
//------------------------------------------------------------------------------
@@ -157,15 +156,6 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
///
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2008;
- ///
- /// MsSQL2012 control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2012;
-
///
/// Localize3 control.
///
@@ -184,6 +174,24 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
///
protected global::System.Web.UI.WebControls.Repeater MsSQL2008_Quotas;
+ ///
+ /// MsSQL2012 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2012;
+
+ ///
+ /// Localize8 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize Localize8;
+
///
/// MsSQL2012_Quotas control.
///
@@ -193,6 +201,33 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
///
protected global::System.Web.UI.WebControls.Repeater MsSQL2012_Quotas;
+ ///
+ /// MsSQL2014 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2014;
+
+ ///
+ /// Localize7 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize Localize7;
+
+ ///
+ /// MsSQL2014_Quotas control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Repeater MsSQL2014_Quotas;
+
///
/// MySQL4 control.
///
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/WebsitePanelControlBase.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/WebsitePanelControlBase.cs
index 311309a5..e9d61910 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/WebsitePanelControlBase.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/WebsitePanelControlBase.cs
@@ -303,6 +303,7 @@ namespace WebsitePanel.Portal
AddDatabaseVersion(cntx, ResourceGroups.MsSql2005, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2008, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2012, items, versions);
+ AddDatabaseVersion(cntx, ResourceGroups.MsSql2014, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql4, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql5, items, versions);
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OdbcEditSource.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OdbcEditSource.ascx.cs
index 0ed91167..014be7c2 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OdbcEditSource.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OdbcEditSource.ascx.cs
@@ -207,10 +207,12 @@ namespace WebsitePanel.Portal
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2005, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2008, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2012, false));
+ sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2014, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2000, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2005, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2008, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2012, false));
+ sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2014, false));
}
else if (driverName == "MySql")
{
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
index d018f2ef..5ef64502 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
@@ -170,7 +170,8 @@ namespace WebsitePanel.Portal
(resourceGroup.GroupName == ResourceGroups.MsSql2000)|
(resourceGroup.GroupName == ResourceGroups.MsSql2005)|
(resourceGroup.GroupName == ResourceGroups.MsSql2008)|
- (resourceGroup.GroupName == ResourceGroups.MsSql2012)|
+ (resourceGroup.GroupName == ResourceGroups.MsSql2012) |
+ (resourceGroup.GroupName == ResourceGroups.MsSql2014) |
(resourceGroup.GroupName == ResourceGroups.MySql4)|
(resourceGroup.GroupName == ResourceGroups.MySql5)|
(resourceGroup.GroupName == ResourceGroups.Statistics)|
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SharePointEditSite.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SharePointEditSite.ascx.cs
index c683b4bf..b6d402c3 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SharePointEditSite.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SharePointEditSite.ascx.cs
@@ -70,6 +70,7 @@ namespace WebsitePanel.Portal
versions.Add(ResourceGroups.MsSql2005);
versions.Add(ResourceGroups.MsSql2008);
versions.Add(ResourceGroups.MsSql2012);
+ versions.Add(ResourceGroups.MsSql2014);
FillDatabaseVersions(PanelSecurity.PackageId, ddlDatabaseVersion.Items, versions);
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs
index 9c40f697..f4a7f6c1 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs
@@ -161,6 +161,8 @@ namespace WebsitePanel.Portal
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// add SQL Server engines
+ if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2014))
+ AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2014, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2014));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2012))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2012, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2012));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2008))
|