Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dvc/dependency/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from urllib.parse import urlparse

import dvc.output as output
from dvc.dependency.azure import AzureDependency
from dvc.dependency.gs import GSDependency
from dvc.dependency.hdfs import HDFSDependency
from dvc.dependency.http import HTTPDependency
Expand All @@ -17,6 +18,7 @@
from .repo import RepoDependency

DEPS = [
AzureDependency,
GSDependency,
HDFSDependency,
HTTPDependency,
Expand All @@ -30,6 +32,7 @@
Schemes.LOCAL: LocalDependency,
Schemes.SSH: SSHDependency,
Schemes.S3: S3Dependency,
Schemes.AZURE: AzureDependency,
Schemes.GS: GSDependency,
Schemes.HDFS: HDFSDependency,
Schemes.HTTP: HTTPDependency,
Expand Down
6 changes: 6 additions & 0 deletions dvc/dependency/azure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.azure import AzureOutput


class AzureDependency(BaseDependency, AzureOutput):
pass
5 changes: 5 additions & 0 deletions dvc/output/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@

from voluptuous import And, Any, Coerce, Length, Lower, Required, SetTo

from dvc.output.azure import AzureOutput
from dvc.output.base import BaseOutput
from dvc.output.gs import GSOutput
from dvc.output.hdfs import HDFSOutput
from dvc.output.local import LocalOutput
from dvc.output.s3 import S3Output
from dvc.output.ssh import SSHOutput
from dvc.remote import Remote
from dvc.remote.azure import AzureRemote
from dvc.remote.hdfs import HDFSRemote
from dvc.remote.local import LocalRemote
from dvc.remote.s3 import S3Remote
from dvc.scheme import Schemes

OUTS = [
AzureOutput,
HDFSOutput,
S3Output,
GSOutput,
Expand All @@ -23,6 +26,7 @@
]

OUTS_MAP = {
Schemes.AZURE: AzureOutput,
Schemes.HDFS: HDFSOutput,
Schemes.S3: S3Output,
Schemes.GS: GSOutput,
Expand All @@ -45,6 +49,7 @@
# so when a few types of outputs share the same name, we only need
# specify it once.
CHECKSUMS_SCHEMA = {
AzureRemote.PARAM_CHECKSUM: CHECKSUM_SCHEMA,
LocalRemote.PARAM_CHECKSUM: CHECKSUM_SCHEMA,
S3Remote.PARAM_CHECKSUM: CHECKSUM_SCHEMA,
HDFSRemote.PARAM_CHECKSUM: CHECKSUM_SCHEMA,
Expand Down
6 changes: 6 additions & 0 deletions dvc/output/azure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from dvc.output.base import BaseOutput
from dvc.remote.azure import AzureRemote


class AzureOutput(BaseOutput):
REMOTE = AzureRemote
9 changes: 9 additions & 0 deletions dvc/remote/azure.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,15 @@ def blob_service(self):
blob_service.create_container(self.path_info.bucket)
return blob_service

def get_etag(cls, path_info):
etag = self.blob_service.get_blob_properties(
path_info.bucket, path_info.path
).properties.etag
return etag.strip('"')

def get_file_checksum(self, path_info):
return self.get_etag(path_info)

def remove(self, path_info):
if path_info.scheme != self.scheme:
raise NotImplementedError
Expand Down
7 changes: 7 additions & 0 deletions tests/unit/dependency/test_azure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from dvc.dependency.azure import AzureDependency
from tests.unit.dependency.test_local import TestLocalDependency


class TestAzureDependency(TestLocalDependency):
def _get_cls(self):
return AzureDependency
7 changes: 7 additions & 0 deletions tests/unit/output/test_azure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from dvc.output.azure import AzureOutput
from tests.unit.output.test_local import TestLocalOutput


class TestAzureOutput(TestLocalOutput):
def _get_cls(self):
return AzureOutput