예제 #1
0
 def test_check_version_too_low(self):
     self.version.major = v1_api.BASE_VERSION
     self.version.minor = v1_api.MIN_VER.minor - 1
     self.assertRaises(
         webob_exc.HTTPNotAcceptable,
         v1_api.Controller()._check_version,
         self.version)
예제 #2
0
class RootController(rest.RestController):

    _versions = [version.ID_VERSION1]
    """All supported API versions"""

    _default_version = version.ID_VERSION1
    """The default API version"""

    v1 = v1.Controller()

    @expose.expose(Root)
    def get(self):
        # NOTE: The reason why convert() it's being called for every
        #       request is because we need to get the host url from
        #       the request object to make the links.
        return Root.convert()

    @pecan.expose()
    def _route(self, args, request=None):
        """Overrides the default routing behavior.

        It redirects the request to the default version of the ironic API
        if the version number is not specified in the url.
        """

        if args[0] and args[0] not in self._versions:
            args = [self._default_version] + args
        return super(RootController, self)._route(args, request)
예제 #3
0
 def test_check_version_too_high(self):
     self.version.major = v1_api.BASE_VERSION
     self.version.minor = v1_api.MAX_VER.minor + 1
     e = self.assertRaises(webob_exc.HTTPNotAcceptable,
                           v1_api.Controller()._check_version, self.version,
                           {'fake-headers': v1_api.MAX_VER.minor})
     self.assertEqual(v1_api.MAX_VER.minor, e.headers['fake-headers'])
예제 #4
0
 def test_check_version_invalid_major_version(self):
     self.version.major = v1_api.BASE_VERSION + 1
     self.version.minor = v1_api.MIN_VER.minor
     self.assertRaises(
         webob_exc.HTTPNotAcceptable,
         v1_api.Controller()._check_version,
         self.version)
예제 #5
0
파일: test_root.py 프로젝트: skw0rm/ironic
 def test_check_version_too_high(self):
     self.version.major = 1
     self.version.minor = v1_api.MAX_VER + 1
     self.assertRaises(
             webob_exc.HTTPNotAcceptable,
             v1_api.Controller()._check_version,
             self.version)
예제 #6
0
파일: root.py 프로젝트: schatt/ironic
class RootController(object):

    v1 = v1.Controller()

    @pecan.expose(generic=True)
    def index(self):
        # FIXME: GET / should return more than just ''
        return ''
예제 #7
0
파일: root.py 프로젝트: mydaisy2/ironic
class RootController(rest.RestController):

    v1 = v1.Controller()

    @wsme_pecan.wsexpose(Root)
    def get(self):
        # NOTE: The reason why convert() it's being called for every
        #       request is because we need to get the host url from
        #       the request object to make the links.
        return Root.convert()
예제 #8
0
파일: root.py 프로젝트: younkun/ironic
class RootController(rest.RestController):

    v1 = v1.Controller()

    @method.expose()
    def get(self):
        return root()

    @pecan.expose()
    def _route(self, args, request=None):
        """Overrides the default routing behavior.

        It redirects the request to the default version of the ironic API
        if the version number is not specified in the url.
        """

        if args[0] and args[0] != version.ID_VERSION1:
            args = [version.ID_VERSION1] + args
        return super(RootController, self)._route(args, request)
예제 #9
0
 def test_check_version_ok(self):
     self.version.major = v1_api.BASE_VERSION
     self.version.minor = v1_api.MIN_VER.minor
     v1_api.Controller()._check_version(self.version)
예제 #10
0
파일: test_root.py 프로젝트: skw0rm/ironic
 def test_check_version_ok(self):
     self.version.major = 1
     self.version.minor = v1_api.MIN_VER
     v1_api.Controller()._check_version(self.version)
     self.assertEqual(1, self.version.set_min_max.call_count)
예제 #11
0
파일: root.py 프로젝트: namnx228/ironic
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

import pecan

from ironic.api.controllers import v1
from ironic.api.controllers import version
from ironic.api import method

V1 = v1.Controller()


def root():
    return {
        'name':
        "OpenStack Ironic API",
        'description': ("Ironic is an OpenStack project which aims to "
                        "provision baremetal machines."),
        'default_version':
        version.default_version(),
        'versions':
        version.all_versions()
    }