Revision bf968b7f lib/rapi/connector.py

b/lib/rapi/connector.py
31 31
from ganeti.rapi import baserlib
32 32
from ganeti.rapi import rlib2
33 33

  
34

  
35
_NAME_PATTERN = r"[\w\._-]+"
36

  
34 37
# the connection map is created at the end of this file
35 38
CONNECTOR = {}
36 39

  
......
144 147
    return baserlib.BuildUriList(_getResources("2"), "/2/%s")
145 148

  
146 149

  
147
CONNECTOR.update({
148
  "/": R_root,
150
def GetHandlers(node_name_pattern, instance_name_pattern, job_id_pattern):
151
  """Returns all supported resources and their handlers.
152

  
153
  """
154
  return {
155
    "/": R_root,
156

  
157
    "/version": rlib2.R_version,
149 158

  
150
  "/version": rlib2.R_version,
159
    "/2": R_2,
151 160

  
152
  "/2": R_2,
153
  "/2/jobs": rlib2.R_2_jobs,
154
  "/2/nodes": rlib2.R_2_nodes,
155
  re.compile(r'^/2/nodes/([\w\._-]+)$'): rlib2.R_2_nodes_name,
156
  re.compile(r'^/2/nodes/([\w\._-]+)/tags$'): rlib2.R_2_nodes_name_tags,
157
  re.compile(r'^/2/nodes/([\w\._-]+)/role$'): rlib2.R_2_nodes_name_role,
158
  re.compile(r'^/2/nodes/([\w\._-]+)/evacuate$'):
161
    "/2/nodes": rlib2.R_2_nodes,
162
    re.compile(r'^/2/nodes/(%s)$' % node_name_pattern):
163
      rlib2.R_2_nodes_name,
164
    re.compile(r'^/2/nodes/(%s)/tags$' % node_name_pattern):
165
      rlib2.R_2_nodes_name_tags,
166
    re.compile(r'^/2/nodes/(%s)/role$' % node_name_pattern):
167
      rlib2.R_2_nodes_name_role,
168
    re.compile(r'^/2/nodes/(%s)/evacuate$' % node_name_pattern):
159 169
      rlib2.R_2_nodes_name_evacuate,
160
  re.compile(r'^/2/nodes/([\w\._-]+)/migrate$'):
170
    re.compile(r'^/2/nodes/(%s)/migrate$' % node_name_pattern):
161 171
      rlib2.R_2_nodes_name_migrate,
162
  re.compile(r'^/2/nodes/([\w\._-]+)/storage$'):
172
    re.compile(r'^/2/nodes/(%s)/storage$' % node_name_pattern):
163 173
      rlib2.R_2_nodes_name_storage,
164
  re.compile(r'^/2/nodes/([\w\._-]+)/storage/modify$'):
174
    re.compile(r'^/2/nodes/(%s)/storage/modify$' % node_name_pattern):
165 175
      rlib2.R_2_nodes_name_storage_modify,
166
  re.compile(r'^/2/nodes/([\w\._-]+)/storage/repair$'):
176
    re.compile(r'^/2/nodes/(%s)/storage/repair$' % node_name_pattern):
167 177
      rlib2.R_2_nodes_name_storage_repair,
168
  "/2/instances": rlib2.R_2_instances,
169
  re.compile(r'^/2/instances/([\w\._-]+)$'): rlib2.R_2_instances_name,
170
  re.compile(r'^/2/instances/([\w\._-]+)/info$'):
178

  
179
    "/2/instances": rlib2.R_2_instances,
180
    re.compile(r'^/2/instances/(%s)$' % instance_name_pattern):
181
      rlib2.R_2_instances_name,
182
    re.compile(r'^/2/instances/(%s)/info$' % instance_name_pattern):
171 183
      rlib2.R_2_instances_name_info,
172
  re.compile(r'^/2/instances/([\w\._-]+)/tags$'): rlib2.R_2_instances_name_tags,
173
  re.compile(r'^/2/instances/([\w\._-]+)/reboot$'):
184
    re.compile(r'^/2/instances/(%s)/tags$' % instance_name_pattern):
185
      rlib2.R_2_instances_name_tags,
186
    re.compile(r'^/2/instances/(%s)/reboot$' % instance_name_pattern):
174 187
      rlib2.R_2_instances_name_reboot,
175
  re.compile(r'^/2/instances/([\w\._-]+)/reinstall$'):
188
    re.compile(r'^/2/instances/(%s)/reinstall$' % instance_name_pattern):
176 189
      rlib2.R_2_instances_name_reinstall,
177
  re.compile(r'^/2/instances/([\w\._-]+)/replace-disks$'):
190
    re.compile(r'^/2/instances/(%s)/replace-disks$' % instance_name_pattern):
178 191
      rlib2.R_2_instances_name_replace_disks,
179
  re.compile(r'^/2/instances/([\w\._-]+)/shutdown$'):
192
    re.compile(r'^/2/instances/(%s)/shutdown$' % instance_name_pattern):
180 193
      rlib2.R_2_instances_name_shutdown,
181
  re.compile(r'^/2/instances/([\w\._-]+)/startup$'):
194
    re.compile(r'^/2/instances/(%s)/startup$' % instance_name_pattern):
182 195
      rlib2.R_2_instances_name_startup,
183
  re.compile(r'/2/jobs/(%s)$' % constants.JOB_ID_TEMPLATE): rlib2.R_2_jobs_id,
184
  "/2/tags": rlib2.R_2_tags,
185
  "/2/info": rlib2.R_2_info,
186
  "/2/os": rlib2.R_2_os,
187
  })
196

  
197
    "/2/jobs": rlib2.R_2_jobs,
198
    re.compile(r'/2/jobs/(%s)$' % job_id_pattern):
199
      rlib2.R_2_jobs_id,
200

  
201
    "/2/tags": rlib2.R_2_tags,
202
    "/2/info": rlib2.R_2_info,
203
    "/2/os": rlib2.R_2_os,
204
    }
205

  
206

  
207
CONNECTOR.update(GetHandlers(_NAME_PATTERN, _NAME_PATTERN,
208
                             constants.JOB_ID_TEMPLATE))

Also available in: Unified diff