Changeset 434
- Timestamp:
- 05/05/08 14:07:05
(8 months ago)
- Author:
- jmowery
- Message:
adding update and list functions to manager cli
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
- Property svn:executable set to *
| r433 |
r434 |
|
| 37 | 37 | return msg |
|---|
| 38 | 38 | |
|---|
| | 39 | def update_group(self, group=''): |
|---|
| | 40 | print 'update' |
|---|
| | 41 | msg = protocol.Message() |
|---|
| | 42 | msg.msg = 'update group' |
|---|
| | 43 | msg.type = query() |
|---|
| | 44 | msg.body = group |
|---|
| | 45 | return msg |
|---|
| | 46 | |
|---|
| 39 | 47 | def update_query(self): |
|---|
| 40 | 48 | print 'update?' |
|---|
| … | … | |
| 59 | 67 | msg.type = "query" |
|---|
| 60 | 68 | msg.body = "UPDATE" |
|---|
| | 69 | return msg |
|---|
| | 70 | |
|---|
| | 71 | def list_groups(self): |
|---|
| | 72 | print 'listing all groups' |
|---|
| | 73 | msg = protocol.Message() |
|---|
| | 74 | msg.msg = 'list' |
|---|
| | 75 | msg.type = 'query' |
|---|
| | 76 | msg.body = 'groups' |
|---|
| | 77 | return msg |
|---|
| | 78 | |
|---|
| | 79 | def list_clients(self): |
|---|
| | 80 | print 'listing clients' |
|---|
| | 81 | msg = protocol.Message() |
|---|
| | 82 | msg.msg = 'list' |
|---|
| | 83 | msg.type = 'query' |
|---|
| | 84 | msg.body = 'all' |
|---|
| 61 | 85 | return msg |
|---|
| 62 | 86 | |
|---|
| … | … | |
| 102 | 126 | if arg1 == 'client': |
|---|
| 103 | 127 | msg = self.update() |
|---|
| 104 | | msg.body = arg2 |
|---|
| | 128 | msg.body = sys.argv[3:] |
|---|
| 105 | 129 | elif arg1 == 'group': |
|---|
| 106 | | print 'group update not yet implemented' |
|---|
| | 130 | if arg2 == '': |
|---|
| | 131 | print 'missing group to update' |
|---|
| | 132 | sys.exit(1) |
|---|
| | 133 | msg = self.update_group(arg2) |
|---|
| 107 | 134 | elif arg1 == 'all' or arg1 == '': |
|---|
| 108 | 135 | msg = self.update() |
|---|
| … | … | |
| 114 | 141 | elif cmd == 'list': |
|---|
| 115 | 142 | if arg1 == 'groups': |
|---|
| 116 | | print 'list all groups not yet implemented' |
|---|
| | 143 | msg = m.list_groups() |
|---|
| 117 | 144 | elif arg1 == 'clients': |
|---|
| 118 | 145 | if arg2 == 'reachable': |
|---|
| 119 | | print 'list reachable clients not yet implemented' |
|---|
| | 146 | msg = m.list_clients() |
|---|
| | 147 | msg.body = 'reachable' |
|---|
| 120 | 148 | elif arg2 == 'update': |
|---|
| 121 | 149 | msg = self.update_query() |
|---|
| … | … | |
| 124 | 152 | print 'missing group name' |
|---|
| 125 | 153 | sys.exit(1) |
|---|
| 126 | | print 'group list not yet implemented' |
|---|
| | 154 | msg = self.list_clients() |
|---|
| | 155 | msg.body = sys.argv[4] |
|---|
| 127 | 156 | elif arg2 == 'all' or arg2 == '': |
|---|
| 128 | | print 'list all clients not yet implemented' |
|---|
| | 157 | msg = m.list_clients() |
|---|
| 129 | 158 | else: |
|---|
| 130 | | print 'unknown client request' |
|---|
| | 159 | print 'unknown client list request' |
|---|
| 131 | 160 | sys.exit(1) |
|---|
| 132 | 161 | else: |
|---|
| … | … | |
| 135 | 164 | elif cmd == 'logs': |
|---|
| 136 | 165 | print 'log fetch not yet implemented' |
|---|
| 137 | | sys.exit(2) |
|---|
| 138 | 166 | else: |
|---|
| 139 | 167 | print 'unknow command' |
|---|
| r430 |
r434 |
|
| 59 | 59 | val.body = ret |
|---|
| 60 | 60 | res = val |
|---|
| | 61 | elif val.msg = 'update group': |
|---|
| | 62 | val.type = 'response' |
|---|
| | 63 | if val.body in storage.list_all_layers(storage_root): |
|---|
| | 64 | l = Layer(os.path.join(os.path.dirname(storage_root, val.body))) |
|---|
| | 65 | ret = [] |
|---|
| | 66 | for c in l.list_nodes(): |
|---|
| | 67 | ret.append((c, self.update_client(c))) |
|---|
| | 68 | val.body = ret |
|---|
| | 69 | else: |
|---|
| | 70 | val.body = [] |
|---|
| | 71 | res = val |
|---|
| 61 | 72 | elif val.msg == 'bools': |
|---|
| 62 | 73 | self.clients.send_all(val) |
|---|
| … | … | |
| 69 | 80 | n.update() |
|---|
| 70 | 81 | res.append((ret, i)) |
|---|
| | 82 | elif val.msg == 'list': |
|---|
| | 83 | val.type = 'response' |
|---|
| | 84 | if val.body == 'groups': |
|---|
| | 85 | val.body = storage.list_all_layers(storage_root) |
|---|
| | 86 | elif val.body == 'reachable': |
|---|
| | 87 | val.body = [x[0] for x in self.clients.get_clients().values()] |
|---|
| | 88 | elif val.body == 'all': |
|---|
| | 89 | l = Layer(storage_root) |
|---|
| | 90 | val.body = l.list_nodes() |
|---|
| | 91 | else: |
|---|
| | 92 | val.body = [] |
|---|
| | 93 | res = val |
|---|
| 71 | 94 | else: |
|---|
| 72 | 95 | self.clients.send_all(val) |
|---|
| r430 |
r434 |
|
| 702 | 702 | return os.path.basename(root) |
|---|
| 703 | 703 | |
|---|
| | 704 | def list_all_layers(path): |
|---|
| | 705 | path = os.path.realpath(os.path.expanduser(path)) |
|---|
| | 706 | if not os.path.isdir(path): |
|---|
| | 707 | path = os.path.dirname(path) |
|---|
| | 708 | root_dir = find_control_root(path) |
|---|
| | 709 | layer_list = [] |
|---|
| | 710 | l = Layer(root_dir) |
|---|
| | 711 | layer_list.append(l.short_name()) |
|---|
| | 712 | layer_list += collect_layers(l) |
|---|
| | 713 | return layer_list |
|---|
| | 714 | |
|---|
| | 715 | def collect_layers(l): |
|---|
| | 716 | layer_list = [] |
|---|
| | 717 | for dir in l.list_controlled_dirs(): |
|---|
| | 718 | tmp = Layer(os.path.join(l.Name, dir)) |
|---|
| | 719 | layer_list.append(tmp.short_name()) |
|---|
| | 720 | layer_list += collect_layers(tmp) |
|---|
| | 721 | return layer_list |
|---|
| | 722 | |
|---|
| 704 | 723 | class NodeStatus: |
|---|
| 705 | 724 | Id = '' |
|---|
Download in other formats:
* Generating other formats may take time.