diff --git a/public/ods/fixtures/fixtures.js b/public/ods/fixtures/fixtures.js
index 93adc50..e9d350e 100644
--- a/public/ods/fixtures/fixtures.js
+++ b/public/ods/fixtures/fixtures.js
@@ -485,4 +485,21 @@ steal("jquery/dom/fixture", "jquery/lang/json", function(){
return res;
});
+ $.fixture('GET /api/adapters', function(original, settings, headers) {
+ console.log("original: ", original);
+ console.log("settings: ", settings);
+
+ var res = {
+ "status": "OK",
+ "adapters": [{
+ "id": 1,
+ "name": "Centos_openstack"
+ }, {
+ "id": 2,
+ "name": "Centos"
+ }
+ ]
+ };
+ return res;
+ });
})
diff --git a/public/ods/models/cluster.js b/public/ods/models/cluster.js
index d33ac11..d663c15 100644
--- a/public/ods/models/cluster.js
+++ b/public/ods/models/cluster.js
@@ -113,6 +113,14 @@ steal("jquery/model", "jquery/lang/json",
success: success,
error: error
});
+ },
+ get: function(success, error) {
+ $.ajax({
+ url: '/api/adapters',
+ type: 'get',
+ success: success,
+ error: error
+ });
}
}, {});
diff --git a/public/ods/ods.js b/public/ods/ods.js
index 6b272c7..7432eea 100644
--- a/public/ods/ods.js
+++ b/public/ods/ods.js
@@ -19,7 +19,8 @@ steal(
machines: [],
switches: [],
snmp: true,
- adapter_id: null
+ adapter_id: null,
+ adapters: []
};
var state = new $.Observe(odsState);
diff --git a/public/ods/ui/servers/servers.js b/public/ods/ui/servers/servers.js
index da40af8..dcd4a3a 100644
--- a/public/ods/ui/servers/servers.js
+++ b/public/ods/ui/servers/servers.js
@@ -36,6 +36,11 @@ steal(
this.dataTable.fnClearTable();
this.dataTable.fnAddData(oldAllServersData);
+ for (var i = 0; i < this.options.odsState.adapters.length; i++) {
+ $("#adapter").append("");
+ }
+ $('#adapter').val(String(this.options.odsState.adapter_id));
+
var oldSelectedServersData = this.options.odsState.servers;
for (var i = 0; i < oldSelectedServersData.length; i++) {
@@ -47,6 +52,10 @@ steal(
});
}
this.countCheckedServers();
+ } else {
+ // get adapters
+ this.adapters = [];
+ Ods.Adapter.get(this.proxy('onGetAdapters'), this.proxy('onGetAdaptersErr'));
}
@@ -79,7 +88,6 @@ steal(
"serverControl": this
});
}
-
},
dataTableIpAddrSort: function() {
@@ -203,14 +211,14 @@ steal(
this.options.odsState.machines = this.dataTable.fnGetData();
if (this.initServerStep) {
+ this.options.odsState.adapter_id = parseInt($("#adapter").val());
// create cluster
Ods.Cluster.create({
"cluster": {
"name": "",
- "adapter_id": 1
+ "adapter_id": this.options.odsState.adapter_id
}
}, this.proxy('onClusterCreated'), this.proxy('onClusterCreatedErr'));
- this.options.odsState.adapter_id = 1;
} else {
// replace all hosts in current cluster
var cluster_id = this.options.odsState.cluster_id;
@@ -222,6 +230,30 @@ steal(
}
},
+ /************************************/
+ // get adapters success callback
+ /************************************/
+ 'onGetAdapters': function(data, textStatus, xhr) {
+ if (xhr.status == 200) {
+ this.adapters = data.adapters;
+ this.options.odsState.adapters = data.adapters;
+ if (this.adapters.length > 0) {
+ for (var i = 0; i < this.adapters.length; i++) {
+ $("#adapter").append("");
+ }
+ } else {
+ $("#adapter").append("");
+ }
+ }
+ },
+
+ /************************************/
+ // get adapters error callback
+ /************************************/
+ 'onGetAdaptersErr': function(xhr, status, statusText) {
+ $("#adapter").append("");
+ },
+
/************************************/
// create cluster success callback
/************************************/
diff --git a/public/ods/ui/servers/views/init.ejs b/public/ods/ui/servers/views/init.ejs
index e75b483..2074d79 100644
--- a/public/ods/ui/servers/views/init.ejs
+++ b/public/ods/ui/servers/views/init.ejs
@@ -54,6 +54,9 @@
+