Conflicts:
	tools/devcloud/devcloudsetup.sh
This commit is contained in:
chip.childers@gmail.com 2012-07-10 22:29:15 -04:00
commit 5f4728beb6
6 changed files with 223 additions and 19 deletions

View File

@ -35,7 +35,7 @@
<target name="rdeploydb">
<echo message="ant rdeploydb"/>
<sshexec host="${host}" port="${port}" username="root" password="password" command="echo $CATALINA_HOME; export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;killall java;service cloud-management stop;cd /opt/cloudstack/incubator-cloudstack;ant deploycddb -Drhost=${host}"/>
<sshexec trust="yes" host="${host}" port="${port}" username="root" password="password" command="echo $CATALINA_HOME; export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;killall java;service cloud-management stop;cd /opt/cloudstack/incubator-cloudstack;ant deploycddb -Drhost=${host}"/>
</target>
<target name="deploycddb" description="deploy specific db configuration for clouddev" depends="deploydb">
@ -50,10 +50,10 @@
<echo message="ant debug-suspend"/>
<sshexec host="${host}" port="${port}" username="root" password="password" command="killall java;service cloud-management stop;sleep 1;echo $CATALINA_HOME; export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;cd /opt/cloudstack/incubator-cloudstack;ant deploy-server;ant debug-suspend"/>
</target>
<target name="rdebug">
<echo message="ant debug"/>
<sshexec host="${host}" port="${port}" username="root" password="password" command="killall java;service cloud-management stop;sleep 1;export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;cd /opt/cloudstack/incubator-cloudstack;ant deploy-server; ant debug "/>
<sshexec trust="yes" host="${host}" port="${port}" username="root" password="password" command="killall java;service cloud-management stop;sleep 1;export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;cd /opt/cloudstack/incubator-cloudstack;ant deploy-server; ant debug "/>
</target>
@ -61,38 +61,38 @@
<condition property="zip.uptodate">
<available file="${deploy.work.dir}/client.zip" type="file"/>
</condition>
<echo message="copying build folder to remote"/>
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/build">
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/build">
<fileset dir="build">
</fileset>
</scp>
<scp trust="yes" port="${port}" file="build.xml" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/">
<scp trust="yes" port="${port}" file="build.xml" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/">
</scp>
<echo message="copying deps folder to remote"/>
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/deps">
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/deps">
<fileset dir="deps">
</fileset>
</scp>
<echo message="copying target folder to remote"/>
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/target">
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/target">
<fileset dir="target">
</fileset>
</scp>
<echo message="copying dist folder to remote"/>
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/dist">
<scp trust="yes" port="${port}" todir="root:password@${host}:/opt/cloudstack/incubator-cloudstack/dist">
<fileset dir="dist">
</fileset>
</scp>
<sshexec host="${host}" port="${port}" username="root" password="password" command="echo $CATALINA_HOME; export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;cd /opt/cloudstack/incubator-cloudstack;ant deploy-server"/>
<sshexec trust="yes" host="${host}" port="${port}" username="root" password="password" command="echo $CATALINA_HOME; export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32;cd /opt/cloudstack/incubator-cloudstack;ant deploy-server"/>
</target>
</project>

View File

@ -21,13 +21,13 @@ install_xen() {
aptitude update
echo "install xen"
aptitude -y install linux-headers-3.2.0-23-generic-pae
aptitude -y install xen-hypervisor-4.1 xcp-xapi
aptitude -y install xen-hypervisor-4.1-i386 xcp-xapi
echo "configure xen"
sed -i -e 's/xend_start$/#xend_start/' -e 's/xend_stop$/#xend_stop/' /etc/init.d/xend
update-rc.d xendomains disable
sed -i 's/GRUB_DEFAULT=.\+/GRUB_DEFAULT="Xen 4.1-amd64"/' /etc/default/grub
sed -i 's/GRUB_DEFAULT=.\+/GRUB_DEFAULT="Xen 4.1-i386"/' /etc/default/grub
echo 'GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M,max:512M"' | cat /etc/default/grub - >> /etc/default/newgrub
mv /etc/default/newgrub /etc/default/grub
update-grub
@ -49,6 +49,8 @@ iface xenbr0 inet dhcp
auto eth0
iface eth0 inet dhcp
pre-up iptables-save < /etc/iptables.save
pre-up /etc/init.d/ebtables load
EOF
echo TOOLSTACK=xapi > /etc/default/xen
@ -68,6 +70,14 @@ postsetup() {
print "xen dom0 is not running, make sure dom0 is installed"
exit 1
fi
#disable virtualbox dhcp server for Vms created by cloudstack
apt-get install ebtables
iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill
mac=`ifconfig xenbr0 |grep HWaddr |awk '{print $5}'`
ebtables -I FORWARD -d ! $mac -i eth0 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP
iptables-save > /etc/iptables.save
/etc/init.d/ebtables save
echo "configure NFS server"
aptitude -y install nfs-server

View File

@ -6595,6 +6595,11 @@ div.panel.ui-dialog div.list-view div.fixed-header {
.multi-edit {
}
.multi-edit > form {
position: relative;
clear: both;
}
.multi-edit table.multi-edit {
border-top: none;
}
@ -6926,6 +6931,34 @@ div.panel.ui-dialog div.list-view div.fixed-header {
margin: 0 22px 0 0;
}
/** Header fields*/
.multi-edit .header-fields {
position: relative;
/*+placement:shift 8px 11px;*/
position: relative;
left: 8px;
top: 11px;
}
.multi-edit .header-fields .form-item {
margin-bottom: 32px;
float: left;
}
.multi-edit .header-fields .form-item .name,
.multi-edit .header-fields .form-item .value {
float: left;
}
.multi-edit .header-fields .form-item .name {
font-size: 14px;
padding: 5px;
color: #55687A;
}
.multi-edit .header-fields input[type=submit] {
}
/*Security Rules*/
.security-rules .multi-edit input {
width: 69px;
@ -9233,6 +9266,34 @@ div.panel.ui-dialog div.list-view div.fixed-header {
width: 46px;
}
/*VPC: Enable Static NAT fields*/
.list-view.instances .filters.tier-select {
width: 246px;
/*+border-radius:4px;*/
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
background: #8F98A1;
padding: 2px 20px 2px 13px;
margin: 1px 120px 0 19px;
border: 1px solid #000000;
}
.list-view.instances .filters.tier-select label {
color: #FFFFFF;
/*+text-shadow:0px 1px 3px #000000;*/
-moz-text-shadow: 0px 1px 3px #000000;
-webkit-text-shadow: 0px 1px 3px #000000;
-o-text-shadow: 0px 1px 3px #000000;
text-shadow: 0px 1px 3px #000000;
}
.list-view.instances .filters.tier-select select {
width: 166px;
float: left;
}
/*Configure ACL dialog*/
.ui-dialog.configure-acl {
}

View File

@ -197,7 +197,7 @@
label: 'label.add.guest.network',
preFilter: function(args) {
var basicZoneExists = false;
var basicZoneExists = true; //Modifying the logic behind displaying the tabs depending on the networktype
$.ajax({
url: createURL("listZones"),
dataType: "json",
@ -206,8 +206,8 @@
if(json.listzonesresponse.zone != null && json.listzonesresponse.zone.length > 0) {
zoneObjs = json.listzonesresponse.zone;
$(zoneObjs).each(function() {
if(this.networktype == "Basic") {
basicZoneExists = true;
if(this.networktype == "Advanced") {
basicZoneExists = false; // For any occurence of an Advanced zone with any combination of basic zone , the add guest network tab will be displayed
return false; //break each loop
}
});
@ -1230,9 +1230,28 @@
},
enableStaticNAT: {
label: 'label.action.enable.static.NAT',
action: {
noAdd: true,
custom: cloudStack.uiCustom.enableStaticNAT({
// VPC
tierSelect: function(args) {
args.$tierSelect.hide(); // Hidden by default
// Determine if tiers are supported here
var enableTiers = false;
if (enableTiers) {
args.$tierSelect.show();
args.response.success({
data: [
{ id: '1', description: 'VPC 1' },
{ id: '2', description: 'VPC 2' }
]
});
}
},
listView: $.extend(true, {}, cloudStack.sections.instances, {
listView: {
dataProvider: function(args) {
@ -1949,6 +1968,21 @@
}
}
}),
headerFields: {
tier: {
label: 'Tier',
select: function(args) {
args.response.success({
data: [
{ id: '', name: '', description: 'None' },
{ id: '1', name: 'tier1', description: 'tier1' },
{ id: '2', name: 'tier2', description: 'tier2' },
{ id: '3', name: 'tier3', description: 'tier3' }
]
});
}
}
},
multipleAdd: true,
fields: {
'name': { edit: true, label: 'label.name', isEditable: true },
@ -1967,6 +2001,7 @@
});
}
},
'sticky': {
label: 'label.stickiness',
custom: {
@ -2178,7 +2213,9 @@
}
}
},
dataProvider: function(args) {
dataProvider: function(args) {
var $multi = args.$multi;
$.ajax({
url: createURL('listLoadBalancerRules'),
data: {
@ -2273,11 +2310,36 @@
});
}
});
// Check if tiers are present; hide/show header drop-down
var hasTiers = false;
var $headerFields = $multi.find('.header-fields');
if (hasTiers) {
$headerFields.hide();
} else {
$headerFields.show();
}
}
},
// Port forwarding rules
portForwarding: {
headerFields: {
tier: {
label: 'Tier',
select: function(args) {
args.response.success({
data: [
{ id: '', name: '', description: 'None' },
{ id: '1', name: 'tier1', description: 'tier1' },
{ id: '2', name: 'tier2', description: 'tier2' },
{ id: '3', name: 'tier3', description: 'tier3' }
]
});
}
}
},
listView: $.extend(true, {}, cloudStack.sections.instances, {
listView: {
dataProvider: function(args) {
@ -2413,6 +2475,8 @@
}
},
dataProvider: function(args) {
var $multi = args.$multi;
$.ajax({
url: createURL('listPortForwardingRules'),
data: {
@ -2464,6 +2528,16 @@
}
});
});
// Check if tiers are present; hide/show header drop-down
var hasTiers = false;
var $headerFields = $multi.find('.header-fields');
if (hasTiers) {
$headerFields.hide();
} else {
$headerFields.show();
}
},
error: function(data) {
args.response.error(parseXMLHttpResponse(data));

View File

@ -18,6 +18,7 @@
cloudStack.uiCustom.enableStaticNAT = function(args) {
var listView = args.listView;
var action = args.action;
var tierSelect = args.tierSelect;
return function(args) {
var context = args.context;
@ -86,6 +87,7 @@
$dataList.fadeOut(function() {
action({
tierID: $dataList.find('.tier-select select').val(),
context: $.extend(true, {}, context, {
instances: [
$dataList.find('tr.multi-edit-selected').data('json-obj')
@ -124,6 +126,38 @@
}
]
}).parent('.ui-dialog').overlay();
// Add tier select dialog
if (tierSelect) {
var $toolbar = $dataList.find('.toolbar');
var $tierSelect = $('<div>').addClass('filters tier-select').prependTo($toolbar);
var $tierSelectLabel = $('<label>').html('Select tier').appendTo($tierSelect);
var $tierSelectInput = $('<select>').appendTo($tierSelect);
// Get tier data
tierSelect({
context: context,
$tierSelect: $tierSelect,
response: {
success: function(args) {
var data = args.data;
$(data).map(function(index, item) {
var $option = $('<option>');
$option.attr('value', item.id);
$option.html(item.description);
$option.appendTo($tierSelectInput);
});
},
error: function(message) {
cloudStack.dialog.notice({
message: message ? message : 'Could not retrieve VPC tiers'
});
}
}
});
}
};
};
}(cloudStack, jQuery));

View File

@ -15,6 +15,10 @@
// specific language governing permissions and limitations
// under the License.
(function($, cloudStack) {
var getMultiData = function($multi) {
return cloudStack.serializeForm($multi.find('form'));
};
var _medit = cloudStack.ui.widgets.multiEdit = {
/**
* Append item to list
@ -362,6 +366,7 @@
var $listView;
var instances = $.extend(true, {}, listView, {
context: $.extend(true, {}, context, {
multiData: getMultiData($multi),
multiRule: options.multiRule ? [options.multiRule] : null
}),
uiCustom: true
@ -755,6 +760,25 @@
}
});
// Setup header fields
var showHeaderFields = args.headerFields ? true : false;
var headerForm = showHeaderFields ? cloudStack.dialog.createForm({
context: context,
noDialog: true,
form: {
fields: args.headerFields
},
after: function(args) {
// Form fields are handled by main 'add' action
}
}) : null;
var $headerFields = $('<div>').addClass('header-fields');
if (headerForm) {
$headerFields.append(headerForm.$formContainer)
.prependTo($multi);
}
if (args.actions && !args.noHeaderActionsColumn) {
$thead.append($('<th></th>').html(_l('label.actions')).addClass('multi-actions'));
$inputForm.append($('<td></td>').addClass('multi-actions'));
@ -772,7 +796,7 @@
var addItem = function(itemData) {
var data = {};
$.each(cloudStack.serializeForm($multiForm), function(key, value) {
$.each(getMultiData($multi), function(key, value) {
if (value != '') {
data[key] = value;
}
@ -873,6 +897,7 @@
var getData = function() {
dataProvider({
context: context,
$multi: $multi,
response: {
success: function(args) {
$multi.find('.data-item').remove();