diff --git a/ui/plugins/cloudian/cloudian.css b/ui/plugins/cloudian/cloudian.css
new file mode 100644
index 000000000000..447cf434b320
--- /dev/null
+++ b/ui/plugins/cloudian/cloudian.css
@@ -0,0 +1,18 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you 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.
+*/
diff --git a/ui/plugins/cloudian/cloudian.js b/ui/plugins/cloudian/cloudian.js
new file mode 100644
index 000000000000..1b8a35ab1e97
--- /dev/null
+++ b/ui/plugins/cloudian/cloudian.js
@@ -0,0 +1,66 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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.
+
+(function (cloudStack) {
+ cloudStack.plugins.cloudian = function(plugin) {
+
+ plugin.ui.addSection({
+ id: 'cloudian',
+ title: 'Cloudian Storage',
+ showOnNavigation: true,
+ preFilter: function(args) {
+ var pluginEnabled = false;
+ $.ajax({
+ url: createURL('cloudianIsEnabled'),
+ async: false,
+ success: function(json) {
+ var response = json.cloudianisenabledresponse.cloudianisenabled;
+ pluginEnabled = response.enabled;
+ if (pluginEnabled) {
+ var cloudianLogoutUrl = response.url + "logout.htm?";
+ onLogoutCallback = function() {
+ g_loginResponse = null;
+ var csUrl = window.location.href;
+ var redirect = "redirect=" + encodeURIComponent(csUrl);
+ window.location.replace(cloudianLogoutUrl + redirect);
+ return false;
+ };
+ }
+ }
+ });
+ return pluginEnabled;
+ },
+
+ show: function() {
+ var description = 'Cloudian Management Console should open in another window.';
+ $.ajax({
+ url: createURL('cloudianSsoLogin'),
+ async: false,
+ success: function(json) {
+ var response = json.cloudianssologinresponse.cloudianssologin;
+ var cmcWindow = window.open(response.url, "CMCWindow");
+ cmcWindow.focus();
+ },
+ error: function(data) {
+ description = 'Single-Sign-On failed for Cloudian Management Console. Please ask your administrator to fix integration issues.';
+ }
+ });
+ return $('').html(description);
+ }
+ });
+ };
+}(cloudStack));
diff --git a/ui/plugins/cloudian/config.js b/ui/plugins/cloudian/config.js
new file mode 100644
index 000000000000..b72cd5f2ff97
--- /dev/null
+++ b/ui/plugins/cloudian/config.js
@@ -0,0 +1,25 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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.
+(function (cloudStack) {
+ cloudStack.plugins.cloudian.config = {
+ title: 'Cloudian Storage',
+ desc: 'Cloudian Storage',
+ externalLink: 'https://cloudian.com/',
+ authorName: 'Cloudian Inc.',
+ authorEmail: 'info@cloudian.com '
+ };
+}(cloudStack));
diff --git a/ui/plugins/cloudian/icon.png b/ui/plugins/cloudian/icon.png
new file mode 100644
index 000000000000..d18ec2376788
Binary files /dev/null and b/ui/plugins/cloudian/icon.png differ
diff --git a/ui/plugins/plugins.js b/ui/plugins/plugins.js
index 21da7a07f4d0..6edfe88fe1d7 100644
--- a/ui/plugins/plugins.js
+++ b/ui/plugins/plugins.js
@@ -17,6 +17,7 @@
(function($, cloudStack) {
cloudStack.plugins = [
//'testPlugin',
+ 'cloudian',
'quota'
];
}(jQuery, cloudStack));