|
625 | 625 | }); |
626 | 626 | }, |
627 | 627 | actions: { |
| 628 | + add: { |
| 629 | + label: 'Assign VMs', |
| 630 | + messages: { |
| 631 | + notification: function(args) { return 'Assign VMs'; } |
| 632 | + }, |
| 633 | + listView: $.extend(true, {}, cloudStack.sections.instances.listView, { |
| 634 | + type: 'checkbox', |
| 635 | + filters: false, |
| 636 | + dataProvider: function(args) { |
| 637 | + $.ajax({ |
| 638 | + url: createURL('listVirtualMachines'), |
| 639 | + data: { |
| 640 | + networkid: args.context.networks[0].id, |
| 641 | + listAll: true |
| 642 | + }, |
| 643 | + success: function(json) { |
| 644 | + var instances = json.listvirtualmachinesresponse.virtualmachine; |
| 645 | + |
| 646 | + // Pre-select existing instances in LB rule |
| 647 | + $(instances).map(function(index, instance) { |
| 648 | + instance._isSelected = $.grep( |
| 649 | + args.context.internalLoadBalancers[0].loadbalancerinstance, |
| 650 | + |
| 651 | + function(lbInstance) { |
| 652 | + return lbInstance.id == instance.id; |
| 653 | + } |
| 654 | + ).length ? true : false; |
| 655 | + }); |
| 656 | + |
| 657 | + args.response.success({ |
| 658 | + data: instances |
| 659 | + }); |
| 660 | + } |
| 661 | + }); |
| 662 | + } |
| 663 | + }), |
| 664 | + action: function(args) { |
| 665 | + var vms = args.context.instances; |
| 666 | + var array1 = []; |
| 667 | + for(var i = 0; i < vms.length; i++) { |
| 668 | + array1.push(vms[i].id); |
| 669 | + } |
| 670 | + var virtualmachineids = array1.join(','); |
| 671 | + |
| 672 | + $.ajax({ |
| 673 | + url: createURL('assignToLoadBalancerRule'), |
| 674 | + data: { |
| 675 | + id: args.context.internalLoadBalancers[0].id, |
| 676 | + virtualmachineids: virtualmachineids |
| 677 | + }, |
| 678 | + dataType: 'json', |
| 679 | + async: true, |
| 680 | + success: function(data) { |
| 681 | + var jid = data.assigntoloadbalancerruleresponse.jobid; |
| 682 | + args.response.success({ |
| 683 | + _custom: { jobId: jid } |
| 684 | + }); |
| 685 | + } |
| 686 | + }); |
| 687 | + }, |
| 688 | + notification: { |
| 689 | + poll: pollAsyncJobResult |
| 690 | + } |
| 691 | + }, |
| 692 | + |
628 | 693 | remove: { |
629 | 694 | label: 'remove VM from load balancer', |
630 | 695 | addRow: 'false', |
|
0 commit comments