blob: a76c2efb5e055f80007ca7ea8c9be2889614277d [file] [log] [blame]
// 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.modules.infrastructure = function(module) {
module.pluginAPI.extend({
networkServiceProvider: function(args) {
var name = args.name;
var id = args.id;
var state = args.state;
var detailView = args.detailView;
var listView = args.listView;
cloudStack.sections.system.naas.networkProviders.types[id] = detailView;
cloudStack.sections.system.subsections[listView.id] = {
id: listView.id,
title: name,
listView: listView
};
$(window).bind('cloudStack.system.serviceProviders.makeHarcodedArray', function(event, data) {
var nspHardcodingArray = data.nspHardcodingArray;
var selectedZoneObj = data.selectedZoneObj;
var selectedPhysicalNetworkObj = data.selectedPhysicalNetworkObj;
if(selectedZoneObj.networktype == "Advanced"){
var selectedProviderObj = null;
$.ajax({
url: createURL('listNetworkServiceProviders'),
data: {
name: id, //e.g. 'CiscoVnmc'
physicalnetworkid: selectedPhysicalNetworkObj.id
},
async: false,
success: function(json){
var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
if(items != null && items.length > 0) {
selectedProviderObj = items[0];
}
}
});
nspHardcodingArray.push({
id: id,
name: name,
state: selectedProviderObj? selectedProviderObj.state : 'Absent'
});
}
});
},
resource: function(args) {
var type = args.type;
if (type) {
return cloudStack.sections.system.subsections[type];
} else {
return false;
}
}
});
};
}(jQuery, cloudStack));