コード例 #1
0
 def upload_to_repository(self, app_name, version, file_name, file_path):
     parts = {'name': HttpEntityBuilder.create_string_body(app_name), 'version': HttpEntityBuilder.create_string_body(version), 'file': HttpEntityBuilder.create_file_body(file_path) }
     r = self._request.post_without_headers("/api/repository", HttpEntityBuilder.create_multipart_entity(parts))
     if not r.isSuccessful and r.status != 201:
         raise Exception("Failed to upload [%s]. Server return %s.\n%s" % (file_path, r.status, r.response))
     print "Received response after upload [%s].\n" % r.response
     return json.loads(r.response)
コード例 #2
0
   def uploadFile( self, domain, path, fileName, fileData ):
      '''
      Upload a file to a Datapower device

      param: domain: The domain in the Datapower device where the file will be stored
      param: path: the Datapower path
      param: fileName: the file to be stored on the datapower devide
      param: fileData: the file content to be stored on the datapower devide
      '''
      uri = '/mgmt/filestore/%s/%s/%s' % ( domain, path, fileName )
      fileData64 = base64.encodestring( fileData )
      payload = '''
      {
        "file": {
                "name":"%s",
                "content":"%s"
        }
      }
      '''
      body = payload % ( fileName, fileData64 )

      
      r = self.request.put( uri, HttpEntityBuilder.create_string_entity( body ), contentType = 'application/json' )
      
      response = json.loads( r.response )
      
      return response['result']
コード例 #3
0
    def uploadFile(self, domain, path, fileName, fileData):
        '''
      Upload a file to a Datapower device

      param: domain: The domain in the Datapower device where the file will be stored
      param: path: the Datapower path
      param: fileName: the file to be stored on the datapower devide
      param: fileData: the file content to be stored on the datapower devide
      '''
        uri = '/mgmt/filestore/%s/%s/%s' % (domain, path, fileName)
        fileData64 = base64.encodestring(fileData)
        payload = '''
      {
        "file": {
                "name":"%s",
                "content":"%s"
        }
      }
      '''
        body = payload % (fileName, fileData64)

        r = self.request.put(uri,
                             HttpEntityBuilder.create_string_entity(body),
                             contentType='application/json')

        response = json.loads(r.response)

        return response['result']
コード例 #4
0
 def _create_deployment(self, name, cluster_ids, server_ids, version_id):
     # delete existing deployment before creating new one
     self.delete_deployment(name)
     req = {'name': name, 'clusters': cluster_ids, 'servers': server_ids, 'applications': [version_id]}
     r = self._request.post("/api/deployments", HttpEntityBuilder.create_string_entity(json.dumps(req)), contentType = 'application/json')
     if not r.isSuccessful():
         raise Exception("Failed to create deployment. Server return %s.\n%s" % (r.status, r.response))
     return json.loads(r.response)['id']
コード例 #5
0
 def upgradeService(self, service):
 #   print "Executing method upgradeService() in class RancherClient class in file RancherClient.py\n"
     if service['state'] != 'active':
         print "%s cannot be upgraded because its current state is %s" % (service['name'], service['state'])
         sys.exit(1)
     print "Upgrading %s, state was %s\n" % (service['name'], service['state'])
     link = service['actions']['upgrade']
     if service['upgrade']:       
         upgradeConfig = service['upgrade']['inServiceStrategy']
     else:
         upgradeConfig = None
     upgradeRequestBody = {"inServiceStrategy":upgradeConfig,"toServiceStrategy": None}
     urlString = urlunparse(('', '', urlparse(link).path, '', urlparse(link).query, ''))[1:]
     r =self.request.post(urlString, HttpEntityBuilder.create_string_entity(json.dumps(upgradeRequestBody)), contentType='application/json')
     if r.getStatus() not in HTTP_SUCCESS:
         self.throw_error(r)
     serviceAfterTransitioning = self.getStateAfterTransitioning(service)
     if serviceAfterTransitioning['state'] == 'upgraded':
         print "Service %s has been upgraded\n" % service['id']
     else:
         print "Service %s has not been upgraded; do rollback\n" % service['id']
     return serviceAfterTransitioning
コード例 #6
0
import json

HTTP_SUCCESS = [200,201,202,204]

conn = HttpConnection(
    deployed.container.url,
    deployed.container.username,
    deployed.container.password
)
req = HttpRequest(conn)

# Get Session Token
body = json.dumps(generateToken(deployed))
resp = req.post(
    "/id/login",
    HttpEntityBuilder.create_string_entity(body),
    contentType='application/json'
)
if resp.getStatus() not in HTTP_SUCCESS:
    resp.errorDump()
    raise Exception(resp)
sessionToken = json.loads(resp.getResponse())['sessionToken']

# Create service
body = json.dumps(generateService(deployed))
resp = req.post(
    "/services/create",
    HttpEntityBuilder.create_string_entity(body),
    contentType='application/json',
    headers={
        "Authorization": "Bearer %s" % sessionToken
コード例 #7
0
 def redeploy_deployment_by_id(self, deployment_id):
     r = self._request.post("/api/deployments/%s/redeploy" % deployment_id,HttpEntityBuilder.create_string_entity(''),  contentType = 'application/json')
     if not r.isSuccessful():
         raise Exception("Failed to redeploy [%s]. Server return %s.\n%s" % (deployment_id, r.status, r.response))