Revision 4588b4bd lib/rapi/rlib2.py
b/lib/rapi/rlib2.py | ||
---|---|---|
71 | 71 |
I_FIELDS = ["name", "admin_state", "os", |
72 | 72 |
"pnode", "snodes", |
73 | 73 |
"disk_template", |
74 |
"nic.ips", "nic.macs", "nic.modes", "nic.links", "nic.bridges", |
|
74 |
"nic.ips", "nic.macs", "nic.modes", |
|
75 |
"nic.links", "nic.networks", "nic.bridges", |
|
75 | 76 |
"network_port", |
76 | 77 |
"disk.sizes", "disk_usage", |
77 | 78 |
"beparams", "hvparams", |
... | ... | |
91 | 92 |
"group.uuid", |
92 | 93 |
] + _COMMON_FIELDS |
93 | 94 |
|
95 |
NET_FIELDS = ["name", "network", "gateway", |
|
96 |
"network6", "gateway6", |
|
97 |
"mac_prefix", "network_type", |
|
98 |
"free_count", "reserved_count", |
|
99 |
"map", "group_list", "inst_list", |
|
100 |
"external_reservations", |
|
101 |
] |
|
102 |
|
|
94 | 103 |
G_FIELDS = [ |
95 | 104 |
"alloc_policy", |
96 | 105 |
"name", |
... | ... | |
643 | 652 |
}) |
644 | 653 |
|
645 | 654 |
|
655 |
class R_2_networks(baserlib.OpcodeResource): |
|
656 |
"""/2/networks resource. |
|
657 |
|
|
658 |
""" |
|
659 |
GET_OPCODE = opcodes.OpNetworkQuery |
|
660 |
POST_OPCODE = opcodes.OpNetworkAdd |
|
661 |
POST_RENAME = { |
|
662 |
"name": "network_name", |
|
663 |
} |
|
664 |
|
|
665 |
def GetPostOpInput(self): |
|
666 |
"""Create a network. |
|
667 |
|
|
668 |
""" |
|
669 |
assert not self.items |
|
670 |
return (self.request_body, { |
|
671 |
"dry_run": self.dryRun(), |
|
672 |
}) |
|
673 |
|
|
674 |
def GET(self): |
|
675 |
"""Returns a list of all networks. |
|
676 |
|
|
677 |
""" |
|
678 |
client = self.GetClient() |
|
679 |
|
|
680 |
if self.useBulk(): |
|
681 |
bulkdata = client.QueryNetworks([], NET_FIELDS, False) |
|
682 |
return baserlib.MapBulkFields(bulkdata, NET_FIELDS) |
|
683 |
else: |
|
684 |
data = client.QueryNetworks([], ["name"], False) |
|
685 |
networknames = [row[0] for row in data] |
|
686 |
return baserlib.BuildUriList(networknames, "/2/networks/%s", |
|
687 |
uri_fields=("name", "uri")) |
|
688 |
|
|
689 |
|
|
690 |
class R_2_networks_name(baserlib.OpcodeResource): |
|
691 |
"""/2/network/[network_name] resource. |
|
692 |
|
|
693 |
""" |
|
694 |
DELETE_OPCODE = opcodes.OpNetworkRemove |
|
695 |
|
|
696 |
def GET(self): |
|
697 |
"""Send information about a network. |
|
698 |
|
|
699 |
""" |
|
700 |
network_name = self.items[0] |
|
701 |
client = self.GetClient() |
|
702 |
|
|
703 |
result = baserlib.HandleItemQueryErrors(client.QueryNetworks, |
|
704 |
names=[network_name], |
|
705 |
fields=NET_FIELDS, |
|
706 |
use_locking=self.useLocking()) |
|
707 |
|
|
708 |
return baserlib.MapFields(NET_FIELDS, result[0]) |
|
709 |
|
|
710 |
def GetDeleteOpInput(self): |
|
711 |
"""Delete a network. |
|
712 |
|
|
713 |
""" |
|
714 |
assert len(self.items) == 1 |
|
715 |
return (self.request_body, { |
|
716 |
"network_name": self.items[0], |
|
717 |
"dry_run": self.dryRun(), |
|
718 |
}) |
|
719 |
|
|
720 |
class R_2_networks_name_connect(baserlib.OpcodeResource): |
|
721 |
"""/2/network/[network_name]/connect. |
|
722 |
|
|
723 |
""" |
|
724 |
PUT_OPCODE = opcodes.OpNetworkConnect |
|
725 |
|
|
726 |
def GetPutOpInput(self): |
|
727 |
"""Changes some parameters of node group. |
|
728 |
|
|
729 |
""" |
|
730 |
assert self.items |
|
731 |
return (self.request_body, { |
|
732 |
"network_name": self.items[0], |
|
733 |
}) |
|
734 |
|
|
735 |
class R_2_networks_name_disconnect(baserlib.OpcodeResource): |
|
736 |
"""/2/network/[network_name]/disconnect. |
|
737 |
|
|
738 |
""" |
|
739 |
PUT_OPCODE = opcodes.OpNetworkDisconnect |
|
740 |
|
|
741 |
def GetPutOpInput(self): |
|
742 |
"""Changes some parameters of node group. |
|
743 |
|
|
744 |
""" |
|
745 |
assert self.items |
|
746 |
return (self.request_body, { |
|
747 |
"network_name": self.items[0], |
|
748 |
}) |
|
749 |
|
|
646 | 750 |
class R_2_groups(baserlib.OpcodeResource): |
647 | 751 |
"""/2/groups resource. |
648 | 752 |
|
... | ... | |
656 | 760 |
def GetPostOpInput(self): |
657 | 761 |
"""Create a node group. |
658 | 762 |
|
763 |
|
|
659 | 764 |
""" |
660 | 765 |
assert not self.items |
661 | 766 |
return (self.request_body, { |
Also available in: Unified diff