예제 #1
0
 def testContainerWithoutWorkingDir(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
     self.assertIsNone(x[0].working_dir)
예제 #2
0
 def testContainerValidFull(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
     command:
       - one
       - two
     workingDir: /tmp
     ports:
       - name: port1
         hostPort: 111
         containerPort: 2222
         protocol: UDP
     volumeMounts:
       - name: vol1
         path: /mnt
         readOnly: true
     env:
       - key: KEY
         value: value str
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), ['vol1'])
     self.assertEqual(1, len(x))
     self.assertEqual('abc123', x[0].name)
     self.assertEqual('foo/bar', x[0].image)
     self.assertEqual(['one', 'two'], x[0].command)
     self.assertEqual('/tmp', x[0].working_dir)
     self.assertEqual((111, 2222, '/udp'), x[0].ports[0])
     self.assertEqual('/export/vol1:/mnt:ro', x[0].mounts[0])
     self.assertEqual('KEY=value str', x[0].env_vars[0])
예제 #3
0
 def testContainerWithoutEnv(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
     self.assertEqual(0, len(x[0].env_vars))
예제 #4
0
 def testContainerNoImage(self):
     yaml_code = """
   - name: abc123
     notimage: foo/bar
   """
     with self.assertRaises(SystemExit):
         run_containers.LoadUserContainers(yaml.load(yaml_code), [])
예제 #5
0
 def testContainerInvalidName(self):
     yaml_code = """
   - name: not_good
     image: foo/bar
   """
     with self.assertRaises(SystemExit):
         run_containers.LoadUserContainers(yaml.load(yaml_code), [])
예제 #6
0
 def testContainerWorkingDirNotAbsolute(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
     workingDir: foo/bar
   """
     with self.assertRaises(SystemExit):
         run_containers.LoadUserContainers(yaml.load(yaml_code), [])
예제 #7
0
 def testContainerWithWorkingDir(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
     workingDir: /foo/bar
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
     self.assertEqual('/foo/bar', x[0].working_dir)
예제 #8
0
 def testContainerWithoutCommand(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
     self.assertEqual(1, len(x))
     self.assertEqual(0, len(x[0].command))
예제 #9
0
 def testContainerWithCommand(self):
     yaml_code = """
   - name: abc123
     image: foo/bar
     command:
       - first
       - second
       - third fourth
   """
     x = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
     self.assertEqual(1, len(x))
     self.assertEqual(3, len(x[0].command))
예제 #10
0
    def testContainerValidMinimal(self):
        yaml_code = """
      - name: abc123
        image: foo/bar
      - name: abc124
        image: foo/bar
      """
        user = run_containers.LoadUserContainers(yaml.load(yaml_code), [])
        self.assertEqual(2, len(user))
        self.assertEqual('abc123', user[0].name)
        self.assertEqual('abc124', user[1].name)

        infra = run_containers.LoadInfraContainers(user)
        self.assertEqual(1, len(infra))
        self.assertEqual('.net', infra[0].name)
예제 #11
0
 def testContainerValidFullJson(self):
     """Proves that the same YAML parsing code handles JSON."""
     json_code = """
   [
     {
       "name": "abc123",
       "image": "foo/bar",
       "command": [
         "one",
         "two"
       ],
       "workingDir": "/tmp",
       "ports": [
         {
           "name": "port1",
           "hostPort": 111,
           "containerPort": 2222,
           "protocol": "UDP"
         }
       ],
       "volumeMounts": [
         {
           "name": "vol1",
           "path": "/mnt",
           "readOnly": true
         }
       ],
       "env": [
         {
           "key": "KEY",
           "value": "value str"
         }
       ]
     }
   ]
   """
     x = run_containers.LoadUserContainers(yaml.load(json_code), ['vol1'])
     self.assertEqual(1, len(x))
     self.assertEqual('abc123', x[0].name)
     self.assertEqual('foo/bar', x[0].image)
     self.assertEqual(['one', 'two'], x[0].command)
     self.assertEqual('/tmp', x[0].working_dir)
     self.assertEqual((111, 2222, '/udp'), x[0].ports[0])
     self.assertEqual('/export/vol1:/mnt:ro', x[0].mounts[0])
     self.assertEqual('KEY=value str', x[0].env_vars[0])