| | 128 | ### The following functions handle the command line options. |
|---|
| | 129 | ### Each function takes a manager as the first argument and |
|---|
| | 130 | ### the remainder of the argument list as the second argument. |
|---|
| | 131 | ### returns the response from the server. |
|---|
| | 132 | def handlestorage(mgr, cmd, argv): |
|---|
| | 133 | useage = 'useage:\n ' + cmd + " FILE GROUP" |
|---|
| | 134 | if(len(argv) < 2): |
|---|
| | 135 | print useage |
|---|
| | 136 | sys.exit(1) |
|---|
| | 137 | if cmd == 'add': |
|---|
| | 138 | if not os.path.exists(argv[0]): |
|---|
| | 139 | print 'File \'' + argv[0] + '\' does not exist' |
|---|
| | 140 | print 'moduole addition not yet implemented' |
|---|
| | 141 | elif cmd == 'remove': |
|---|
| | 142 | print 'module removal not yet implemented' |
|---|
| | 143 | return None |
|---|
| | 144 | |
|---|
| | 145 | def handleupdate(mgr, argv): |
|---|
| | 146 | useage = 'useage:\n update (group GROUPNAME | all | client [clientlist])' |
|---|
| | 147 | if argv[0] == 'client': |
|---|
| | 148 | msg = self.update() |
|---|
| | 149 | msg.body = sys.argv[3:] |
|---|
| | 150 | elif argv[0] == 'group': |
|---|
| | 151 | if argv[1] == '': |
|---|
| | 152 | print 'missing group to update' |
|---|
| | 153 | sys.exit(1) |
|---|
| | 154 | msg = m.update_group(argv[1]) |
|---|
| | 155 | elif argv[0] == 'all' or argv[0] == '': |
|---|
| | 156 | msg = m.update() |
|---|
| | 157 | else: |
|---|
| | 158 | print 'unknown update request' |
|---|
| | 159 | print useage |
|---|
| | 160 | sys.exit(1) |
|---|
| | 161 | return mgr.query_server(msg) |
|---|
| | 162 | |
|---|
| | 163 | def handlelist(mgr, argv): |
|---|
| | 164 | if argv[0] == 'groups': |
|---|
| | 165 | msg = m.list_groups() |
|---|
| | 166 | elif argv[0] == 'clients': |
|---|
| | 167 | if argv[1] == 'reachable': |
|---|
| | 168 | msg = m.list_clients() |
|---|
| | 169 | msg.body = 'reachable' |
|---|
| | 170 | elif argv[1] == 'update': |
|---|
| | 171 | msg = m.update_query() |
|---|
| | 172 | elif argv[1] == 'in': |
|---|
| | 173 | if len(sys.argv) < 5: |
|---|
| | 174 | print 'missing group name' |
|---|
| | 175 | sys.exit(1) |
|---|
| | 176 | msg = self.list_clients() |
|---|
| | 177 | msg.body = sys.argv[4] |
|---|
| | 178 | elif argv[1] == 'all' or argv[1] == '': |
|---|
| | 179 | msg = m.list_clients() |
|---|
| | 180 | else: |
|---|
| | 181 | print 'unknown client list request' |
|---|
| | 182 | sys.exit(1) |
|---|
| | 183 | else: |
|---|
| | 184 | print 'list what?' |
|---|
| | 185 | sys.exit(1) |
|---|
| | 186 | return mgr.query_server(msg) |
|---|
| | 187 | |
|---|
| | 188 | def handlelog(manager, arglist): |
|---|
| | 189 | ''' Takes a manager object and the remainder of the command |
|---|
| | 190 | line arguments and processes the log command |
|---|
| | 191 | Current commands: all, delta ''' |
|---|
| | 192 | useage = 'usage: log (all|delta) [ (group|IP) [IP list] ]' |
|---|
| | 193 | if(len(arglist) == 0): |
|---|
| | 194 | print useage |
|---|
| | 195 | return |
|---|
| | 196 | cmd = arglist[0] |
|---|
| | 197 | targets = None |
|---|
| | 198 | if arglist[1:] != []: |
|---|
| | 199 | targets = (arglist[1], arglist[2:]) |
|---|
| | 200 | if cmd == "all": |
|---|
| | 201 | resp = manager.query_server(manager.requestlog(), targets) |
|---|
| | 202 | elif cmd == "delta": |
|---|
| | 203 | resp = manager.query_server(manager.requestlog(), targets) |
|---|
| | 204 | else: |
|---|
| | 205 | print useage |
|---|
| | 206 | return |
|---|
| | 207 | return resp |
|---|
| | 208 | |
|---|
| 124 | | if len(sys.argv) >= 3: |
|---|
| 125 | | arg1 = sys.argv[2] |
|---|
| 126 | | if len(sys.argv) >= 4: |
|---|
| 127 | | arg2 = sys.argv[3] |
|---|
| 128 | | if cmd == 'add': |
|---|
| 129 | | if arg1 == '' or arg2 == '': |
|---|
| 130 | | print 'usage:' |
|---|
| 131 | | print ' add GROUP FILE...' |
|---|
| 132 | | sys.exit(1) |
|---|
| 133 | | resp = m.query_server(m.list_groups()) |
|---|
| 134 | | if arg1 not in resp.body: |
|---|
| 135 | | print 'Group \'' + arg1 + '\' does not exist' |
|---|
| 136 | | sys.exit(1) |
|---|
| 137 | | files = [] |
|---|
| 138 | | for arg in sys.argv[3:]: |
|---|
| 139 | | if not os.path.exists(arg): |
|---|
| 140 | | print 'File \'' + arg + '\' does not exist' |
|---|
| 141 | | else: |
|---|
| 142 | | files.append((os.path.realpath(os.path.expanduser(arg))), file_util.checksum(arg)) |
|---|
| 143 | | if len(files) != len(sys.argv[3:]): |
|---|
| 144 | | sys.exit(1) |
|---|
| 145 | | msg = m.add_message(arg1) |
|---|
| 146 | | msg.body[1] += files |
|---|
| 147 | | elif cmd == 'remove': |
|---|
| 148 | | if arg1 == '' or arg2 == '': |
|---|
| 149 | | print 'usage:' |
|---|
| 150 | | print ' remove GROUP FILE...' |
|---|
| 151 | | sys.exit(1) |
|---|
| 152 | | resp = m.query_server(m.list_groups()) |
|---|
| 153 | | if arg1 not in resp.body: |
|---|
| 154 | | print 'Group \'' + arg1 + '\' does not exist' |
|---|
| 155 | | sys.exit(1) |
|---|
| 156 | | files = [os.path.basename(x) for x in sys.argv[3:]] |
|---|
| 157 | | msg = m.remove_message(arg1) |
|---|
| 158 | | msg.body[1] += files |
|---|
| | 216 | if cmd == 'add' or cmd == 'remove': |
|---|
| | 217 | res = handlestorage(m, cmd, sys.argv[2:]) |
|---|
| | 218 | #if cmd == 'add': |
|---|
| | 219 | # if arg1 == '' or arg2 == '': |
|---|
| | 220 | # print 'usage:' |
|---|
| | 221 | # print ' add GROUP FILE...' |
|---|
| | 222 | # sys.exit(1) |
|---|
| | 223 | # resp = m.query_server(m.list_groups()) |
|---|
| | 224 | # if arg1 not in resp.body: |
|---|
| | 225 | # print 'Group \'' + arg1 + '\' does not exist' |
|---|
| | 226 | # sys.exit(1) |
|---|
| | 227 | # files = [] |
|---|
| | 228 | # for arg in sys.argv[3:]: |
|---|
| | 229 | # if not os.path.exists(arg): |
|---|
| | 230 | # print 'File \'' + arg + '\' does not exist' |
|---|
| | 231 | # else: |
|---|
| | 232 | # files.append((os.path.realpath(os.path.expanduser(arg))), file_util.checksum(arg)) |
|---|
| | 233 | # if len(files) != len(sys.argv[3:]): |
|---|
| | 234 | # sys.exit(1) |
|---|
| | 235 | # msg = m.add_message(arg1) |
|---|
| | 236 | # msg.body[1] += files |
|---|
| | 237 | #elif cmd == 'remove': |
|---|
| | 238 | # if arg1 == '' or arg2 == '': |
|---|
| | 239 | # print 'usage:' |
|---|
| | 240 | # print ' remove GROUP FILE...' |
|---|
| | 241 | # sys.exit(1) |
|---|
| | 242 | # resp = m.query_server(m.list_groups()) |
|---|
| | 243 | # if arg1 not in resp.body: |
|---|
| | 244 | # print 'Group \'' + arg1 + '\' does not exist' |
|---|
| | 245 | # sys.exit(1) |
|---|
| | 246 | # files = [os.path.basename(x) for x in sys.argv[3:]] |
|---|
| | 247 | # msg = m.remove_message(arg1) |
|---|
| | 248 | # msg.body[1] += files |
|---|